版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課 程 設(shè) 計(jì) </b></p><p> 課題名稱: 數(shù)據(jù)庫課程設(shè)計(jì) </p><p> 設(shè)計(jì)課題: 學(xué)生公寓管理系統(tǒng) </p><p> 專業(yè): 班級(jí):
2、 </p><p> 姓名: 學(xué)號(hào): </p><p> 同組人: </p><p> 指導(dǎo)教師: </
3、p><p> 1、管理系統(tǒng)設(shè)計(jì)的背景、意義及目標(biāo)</p><p><b> 設(shè)計(jì)背景</b></p><p><b> 設(shè)計(jì)意義</b></p><p><b> 設(shè)計(jì)目標(biāo)</b></p><p><b> 2、系統(tǒng)開發(fā)環(huán)境</b&
4、gt;</p><p><b> 3、系統(tǒng)需求分析</b></p><p><b> 基本功能需求</b></p><p><b> 功能模塊</b></p><p><b> 數(shù)據(jù)字典</b></p><p><b&
5、gt; 4、概念結(jié)構(gòu)設(shè)計(jì)</b></p><p><b> 概念設(shè)計(jì)</b></p><p><b> E_R模型設(shè)計(jì)</b></p><p><b> 5、邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p> 將E_R圖轉(zhuǎn)換為關(guān)系模型</p><p
6、><b> 各表關(guān)系模型圖</b></p><p><b> 6、數(shù)據(jù)實(shí)施和維護(hù)</b></p><p><b> 功能實(shí)現(xiàn)代碼</b></p><p><b> 系統(tǒng)實(shí)現(xiàn)效果</b></p><p><b> 7、個(gè)人實(shí)現(xiàn)的功能
7、</b></p><p><b> 8、總結(jié)</b></p><p> 1、管理系統(tǒng)設(shè)計(jì)的背景、意義及目標(biāo)</p><p><b> 設(shè)計(jì)背景</b></p><p> 隨著IT事業(yè)的發(fā)展,如今,我們已經(jīng)全面跨入信息時(shí)代。計(jì)算機(jī)被廣泛的應(yīng)用于各個(gè)行業(yè),人工戰(zhàn)略已經(jīng)轉(zhuǎn)化為信息戰(zhàn)略,
8、如何在短時(shí)間內(nèi)獲取大量信息并整合信息,成為立足于時(shí)代的關(guān)鍵。</p><p> 為了適應(yīng)考生人數(shù)的急劇增長,當(dāng)今社會(huì)各大高校都在進(jìn)行擴(kuò)招政策,學(xué)生數(shù)量的急劇增加帶來信息量的成倍增長,由于信息管理的不善與疏忽,各大高校大小事故時(shí)有發(fā)生。進(jìn)行正確的信息管理,對(duì)于信息及時(shí)處理和反應(yīng),能夠最大程度的減少學(xué)校以及在校學(xué)生的損失,減小潛在危機(jī)。</p><p> 學(xué)生宿舍是學(xué)生生活的基本單位,是同
9、學(xué)休息與學(xué)習(xí)的地方,為了保障同學(xué)入住學(xué)生宿舍的安全性,信息的處理和管理極為重要。據(jù)了解,本校的宿舍信息管理仍然使用傳統(tǒng)的手工方式,主要方式是基于文本、表格等紙介質(zhì)的手工處理,用人工手抄對(duì)男女生信宿信息進(jìn)行處理登記。數(shù)據(jù)信息處理工作量大,容易出錯(cuò)且不易修改;由于數(shù)據(jù)繁多,容易丟失,逐條查找記錄的方式不易操作,浪費(fèi)了大量的時(shí)間,效率極低。學(xué)校的宿舍管理缺乏系統(tǒng),規(guī)范的信息管理手段。</p><p> 建立學(xué)生宿舍管
10、理系統(tǒng),使宿舍管理工作系統(tǒng)化,規(guī)范化,便捷化,程序化,避免宿舍管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改宿舍情況。</p><p><b> 設(shè)計(jì)的意義</b></p><p> 高校規(guī)模的擴(kuò)大,在校學(xué)生的基本情況隨之層次化、多樣化、復(fù)雜化,相應(yīng)的,學(xué)生管理工作面臨嚴(yán)峻的挑戰(zhàn)。高校學(xué)生信息日漸龐大,相應(yīng)的宿舍管理工作變得復(fù)雜而困難。
11、傳統(tǒng)的賬本化工作模式,手工記錄學(xué)生信息并存檔,這樣的人工管理方式費(fèi)時(shí)、費(fèi)事、費(fèi)力,信息獲取慢,更新滯后,查閱困難,容易出錯(cuò)。為了給學(xué)生提供一個(gè)安全舒適的工作、生活、學(xué)習(xí)環(huán)境,方便宿舍管理工作的同時(shí)為學(xué)生、教師提供準(zhǔn)確實(shí)時(shí)的信息至關(guān)重要。 </p><p> 本校的宿舍信息管理,主要方式是基于文本、表格等紙介質(zhì)的手工處理,用人工手抄對(duì)男女生信宿信息進(jìn)行處理登記。數(shù)據(jù)信息處理工作量大,容易出錯(cuò)且不易修改;由于數(shù)據(jù)繁
12、多,容易丟失,逐條查找記錄的方式不易操作,浪費(fèi)了大量的時(shí)間,效率極低。</p><p> 以上的管理缺陷對(duì)學(xué)生宿舍管理造成了相當(dāng)大的阻力,工作進(jìn)展困難,問題解決的周期過長,資料整改工作量過大。為了改善學(xué)生宿舍管理情況,運(yùn)用數(shù)據(jù)庫技術(shù)對(duì)學(xué)生信息進(jìn)行處理和統(tǒng)一管理,在校園內(nèi)實(shí)現(xiàn)宿舍無紙化辦公。利用計(jì)算機(jī)的特點(diǎn),利用互聯(lián)網(wǎng)進(jìn)行遠(yuǎn)程操作,制定學(xué)生客戶端,教師客戶端,管理員客戶端,實(shí)現(xiàn)有針對(duì)性信息化管理,充分發(fā)揮計(jì)算機(jī)的
13、高效性、可靠性、保密性、大容量、低成本等特點(diǎn),建立學(xué)生宿舍管理系統(tǒng),對(duì)宿舍相關(guān)信息進(jìn)行統(tǒng)一管理。</p><p> 新型管理方式——學(xué)生宿舍管理系統(tǒng),將幫助宿舍管理人員提高工作效率,全面地掌握宿舍情況,提高宿舍安全系數(shù),快速解決學(xué)生入住學(xué)生宿舍遇到的問題,幫助管理人員與教師及時(shí)掌握學(xué)生情況。</p><p><b> 設(shè)計(jì)目標(biāo)</b></p><
14、;p> 開發(fā)設(shè)計(jì)學(xué)生宿舍管理系統(tǒng),運(yùn)用簡單的計(jì)算機(jī)操作實(shí)現(xiàn)快速檢索和快速查找,方便信息錄入和更新,本系統(tǒng)僅針對(duì)管理員進(jìn)行使用。實(shí)現(xiàn)信息查詢、日常管理、宿舍管理、信息維護(hù)幾個(gè)方面的系統(tǒng)化管理:</p><p><b> 1、信息查詢:</b></p><p> a)宿舍信息:包括宿舍樓編號(hào)、寢室編號(hào)、入住人數(shù)、寢室入住人員學(xué)號(hào)、用水量、用電量、水費(fèi)、電費(fèi)。&
15、lt;/p><p> b)學(xué)生信息:包括學(xué)生姓名、學(xué)號(hào)、宿舍號(hào)</p><p> c)宿舍基本配置:包括床、柜子、燈、風(fēng)扇、電視機(jī)</p><p><b> 2、宿舍管理:</b></p><p> 學(xué)生管理(入住、更換宿舍、);房間管理(增加、刪除、查詢)</p><p><b>
16、 3、信息維護(hù):</b></p><p> 學(xué)生個(gè)人信息更新、宿舍信息更新、宿舍設(shè)備信息更新。</p><p><b> 2、系統(tǒng)開發(fā)環(huán)境</b></p><p> 開發(fā)所使用數(shù)據(jù)庫系統(tǒng):MySql</p><p> 開發(fā)環(huán)境:windows 7</p><p> 開發(fā)工具
17、:Microsoft VisualStudio 2010</p><p> 開發(fā)語言:C++、SQL</p><p><b> 3、系統(tǒng)需求分析</b></p><p><b> 基本功能需求</b></p><p> 學(xué)生宿舍管理系統(tǒng)為了更好的進(jìn)行宿舍管理而設(shè)計(jì)。用戶的需求具體體現(xiàn)在各種信
18、息的輸入、修改和查詢。系統(tǒng)功能實(shí)現(xiàn)如下:</p><p> 1、提供學(xué)生的入住信息的錄入,更換宿舍信息登記。</p><p> 提供各宿舍的具體信息,如宿舍樓棟、宿舍號(hào)、水費(fèi)、電費(fèi)等。并可通過查詢宿舍號(hào)得到宿舍的具體信息、入住的學(xué)生信息、宿舍的設(shè)備信息等。</p><p> 2、提供管理員增加、刪除各信息的功能。</p><p><
19、;b> 功能模塊</b></p><p> 本宿舍管理系統(tǒng)的主要功能為:學(xué)生管理、宿舍信息管理、宿舍設(shè)備信息管理、信息查詢、息更新、信息維護(hù)。</p><p><b> 數(shù)據(jù)字典</b></p><p> ?。?)宿舍設(shè)備情況數(shù)據(jù)字典</p><p> ?。?)宿舍信息情況數(shù)據(jù)字典</p&g
20、t;<p> (3)學(xué)生信息情況數(shù)據(jù)字典</p><p><b> 4、概念結(jié)構(gòu)設(shè)計(jì)</b></p><p><b> 概念設(shè)計(jì)</b></p><p> ?。?)學(xué)生實(shí)體:用于顯示學(xué)生的屬性,包括姓名、學(xué)號(hào)、宿舍編號(hào)。</p><p> ?。?)宿舍實(shí)體:用于顯示宿舍的屬性,包
21、括樓號(hào)、宿舍號(hào)、入住學(xué)生學(xué)號(hào)、可住人數(shù)、已住人數(shù)、用水量、水費(fèi)、用電量、電費(fèi)。</p><p> ?。?)宿舍設(shè)備實(shí)體:用于顯示宿舍設(shè)備的屬性,包括床、柜子、風(fēng)扇、燈、電視機(jī)。</p><p><b> E_R模型設(shè)計(jì)</b></p><p><b> 學(xué)生實(shí)體E_R圖</b></p><p>
22、 (2)宿舍實(shí)體E_R圖</p><p> ?。?)宿舍物品設(shè)備實(shí)體E_R圖</p><p> (4)各實(shí)體關(guān)系E_R圖</p><p><b> 5、邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p> 將E-R圖轉(zhuǎn)換為關(guān)系模型:</p><p> (1)Student:(num、name、dorm
23、itoryCat);</p><p> ?。?)Room:(dormitoryCat、dormitory、room、studentNum、water、waterCharge、electricity、electricityCharge);</p><p> ?。?)Item:(dormitoryCat、bed、cabinet、light、fan、tv)</p><p>
24、;<b> 各表關(guān)系模型圖:</b></p><p> Item表外鍵設(shè)計(jì):</p><p> Student表外鍵設(shè)計(jì):</p><p> 各表之間的關(guān)系模型圖,Item表與Student表通過外鍵與Room</p><p><b> 聯(lián)系:</b></p><p&g
25、t;<b> 6、數(shù)據(jù)實(shí)施和維護(hù)</b></p><p><b> 功能實(shí)現(xiàn)的代碼</b></p><p> //dbstruct.h</p><p> #pragma once</p><p> class dbStruct</p><p><b>
26、{</b></p><p><b> public:</b></p><p><b> MYSQL my;</b></p><p> char errMsg[300];</p><p><b> //學(xué)生表</b></p><p>
27、 charStudentNum[9];</p><p> charStudentName[20];</p><p><b> //宿舍</b></p><p> chardormitoryCat[6];</p><p> chardormitory[3];</p><p>
28、 charroom[4];</p><p> doublewater;</p><p> doubleelectricity;</p><p> doublewaterCharge;</p><p> doubleelectricityCharge;</p><p> unsigned
29、 int members;</p><p><b> //物件</b></p><p> boolbed;</p><p> boolcabinet;</p><p> boollight;</p><p> boolfan;</p><p>&l
30、t;b> booltv;</b></p><p> dbStruct();</p><p> ~dbStruct();</p><p> bool Init();</p><p> bool GetStruct();</p><p><b> //添加學(xué)生表一項(xiàng)</b&
31、gt;</p><p> bool InsertStudentTable();</p><p><b> //改變一項(xiàng)</b></p><p> bool SetStudentTable(char num[9]);//主鍵為num, vachar(8)</p><p><b> //獲取一項(xiàng)</b
32、></p><p> bool GetStudent(char num[9]);</p><p> //******************刪除一項(xiàng)</p><p> bool DeleteStudent(char num[9]);</p><p><b> //添加宿舍表一項(xiàng)</b></p>
33、<p> bool InsertDormitoryTable();</p><p><b> //改變一項(xiàng)</b></p><p> bool SetDormitoryTable(char dormitoryCat[6]);//主鍵為dormitoryCat, varchar(6)</p><p><b> //獲
34、得一項(xiàng)</b></p><p> bool GetDormitory(char dormitoryCat[6]);</p><p><b> //刪除一項(xiàng)</b></p><p> bool DeleteDormitory(char dormitoryCat[6]);</p><p><b>
35、 //添加物品表一項(xiàng)</b></p><p> bool InsertItemTable();</p><p><b> //改變一項(xiàng)</b></p><p> bool SetItemTable(char dormitoryCat[6]);//主鍵為dormitoryCat, varchar(6)</p>&
36、lt;p><b> //獲得一項(xiàng)</b></p><p> bool GetItem(char dormitoryCat[6]);</p><p> //******************刪除一項(xiàng)</p><p> bool DeleteItem(char dormitoryCat[6]);</p><p&g
37、t; void ErrMB();</p><p><b> };</b></p><p> //dbStruct.cpp</p><p> #include "stdafx.h"</p><p> dbStruct::dbStruct()</p><p><b&
38、gt; {</b></p><p> this->water = 0.0;</p><p> this->electricity = 0.0;</p><p> this->waterCharge = 0.0;</p><p> this->electricityCharge = 0.0;<
39、/p><p> this->members = 4;</p><p> this->bed = TRUE;</p><p> this->cabinet = TRUE;</p><p> this->light = TRUE;</p><p> this->fan = TRUE;&l
40、t;/p><p> this->tv = TRUE;</p><p><b> }</b></p><p> dbStruct::~dbStruct()</p><p><b> {</b></p><p> mysql_close(&my);</p
41、><p><b> }</b></p><p> bool dbStruct::Init()</p><p><b> {</b></p><p> mysql_init(&this->my);</p><p> if(!mysql_real_connec
42、t(&this->my, "localhost", "root", "fast", "dormitory", 0, NULL, 0))</p><p><b> {</b></p><p> StringCchPrintfA(errMsg, 300, "獲取寢室
43、物件信息錯(cuò)誤: %s\n", mysql_error(&this->my));</p><p> return false;</p><p><b> }</b></p><p> mysql_query(&this->my, "SET NAMES gbk");</p>
44、<p> return true;</p><p><b> }</b></p><p> ////////////////////////////////////////////////////////</p><p> bool dbStruct::InsertStudentTable()</p><
45、;p><b> {</b></p><p> if(this->dormitoryCat == NULL ||</p><p> this->StudentName == NULL || this->StudentNum == NULL)</p><p><b> {</b></p&g
46、t;<p> StringCchPrintfA(errMsg, 100, "添加學(xué)生信息錯(cuò)誤: 值不完整\n");</p><p> return FALSE;</p><p><b> }</b></p><p> char query[300];</p><p> //獲得
47、該寢室已住人數(shù)數(shù)</p><p> StringCchPrintfA(query, 300, </p><p> "SELECT count(dormitoryCat) FROM student WHERE dormitoryCat = \"19425\"",</p><p> this->dormitoryCat
48、);</p><p> mysql_query(&this->my, query);//可以確保在數(shù)據(jù)庫工作正常的情況下,能夠查詢到惟一的一條數(shù)據(jù)</p><p> MYSQL_RES * res;</p><p> res = mysql_use_result(&this->my);</p><p> M
49、YSQL_ROW row;</p><p> int i; //i為已住人數(shù)</p><p> while((row = mysql_fetch_row(res)) != NULL)</p><p><b> {</b></p><p> i = row[0][0] - '0';</p>
50、;<p><b> }</b></p><p> mysql_free_result(res);</p><p> if(++i > 4)</p><p><b> {</b></p><p> //超過了寢室最大人員數(shù)量</p><p> S
51、tringCchPrintfA(errMsg, 300, "添加學(xué)生信息錯(cuò)誤: 此寢室已滿\n");</p><p> //**********是否自動(dòng)添加宿舍信息</p><p> return FALSE;</p><p><b> }</b></p><p> //可以添加學(xué)生信息<
52、;/p><p> StringCchPrintfA(query, 300,</p><p> "INSERT INTO student(num, name, dormitoryCat) VALUES(\"%s\", \"%s\", \"%s\")",</p><p> this->
53、;StudentNum, this->StudentName, this->dormitoryCat);</p><p> if(mysql_query(&this->my, query) != 0)</p><p><b> {</b></p><p> StringCchPrintfA(errMsg, 300
54、, "添加學(xué)生信息錯(cuò)誤: %s\n", mysql_error(&this->my));</p><p> //**********是否需要自動(dòng)添加宿舍信息</p><p> return FALSE;</p><p><b> }</b></p><p> return TRU
55、E;</p><p><b> }</b></p><p> bool dbStruct::DeleteStudent(char num[9])</p><p><b> {</b></p><p> char query[300];</p><p> String
56、CchPrintfA(query, 300, </p><p> "DELETE FROM student WHERE num = \"%s\"", num);</p><p> if(mysql_query(&this->my, query) != 0)</p><p><b> {</b
57、></p><p> StringCchPrintfA(errMsg, 300, "刪除學(xué)生信息錯(cuò)誤: %s\n", mysql_error(&this->my));</p><p> //**********是否需要自動(dòng)添加宿舍信息</p><p> return FALSE;</p><p>
58、<b> }</b></p><p> return TRUE;</p><p><b> }</b></p><p> bool dbStruct::GetStudent(char num[9])</p><p><b> {</b></p><
59、p> char query[300];</p><p> StringCchPrintfA(query, 300, "SELECT * FROM student WHERE num = \"%s\"", num);</p><p> if(mysql_query(&this->my, query) != NULL)</
60、p><p><b> {</b></p><p> StringCchPrintfA(errMsg, 300, "獲取學(xué)生信息錯(cuò)誤: %s\n", mysql_error(&this->my));</p><p> return FALSE;</p><p><b> }&
61、lt;/b></p><p> MYSQL_RES * res;</p><p> MYSQL_ROW row;</p><p> res = mysql_use_result(&this->my);</p><p> while((row = mysql_fetch_row(res)) != NULL)</
62、p><p><b> {</b></p><p> StringCchPrintfA(this->StudentNum, 9, row[0]);</p><p> StringCchPrintfA(this->StudentName, 20, row[1]);</p><p> StringCchPrin
63、tfA(this->dormitoryCat, 6, row[2]);</p><p><b> }</b></p><p> mysql_free_result(res);</p><p> return TRUE;</p><p><b> }</b></p><
64、;p> ////////////////////////////////////////////////////////</p><p> bool dbStruct::InsertDormitoryTable()</p><p><b> {</b></p><p> if(this->dormitoryCat == NU
65、LL || this->room == NULL || this->dormitory == NULL)</p><p><b> {</b></p><p> StringCchPrintfA(errMsg, 300, "添加宿舍信息錯(cuò)誤: 值不完整\n");</p><p> return FALSE;
66、</p><p><b> }</b></p><p> char query[300];</p><p> StringCchPrintfA(query, 300,</p><p> "INSERT INTO room(dormitoryCat, dormitory, room, \</p>
67、;<p> studentsNum, water, electricity, waterCharge, \</p><p> electricityCharge) VALUES(\"%s\", \"%s\", \"%s\", %d, %.2lf, %.2lf, %.2lf, %.2lf)",</p><p&
68、gt; this->dormitoryCat, this->dormitory, this->room,</p><p> this->members, this->water, this->electricity, </p><p> this->waterCharge, this->electricityCharge);<
69、/p><p> if(mysql_query(&this->my, query) != 0)</p><p><b> {</b></p><p> StringCchPrintfA(errMsg, 300, "添加宿舍信息錯(cuò)誤: %s\n", mysql_error(&this->my));&
70、lt;/p><p> return FALSE;</p><p><b> }</b></p><p> this->InsertItemTable();</p><p> return TRUE;</p><p><b> }</b></p>&l
71、t;p> bool dbStruct::DeleteDormitory(char dormitoryCat[6])</p><p><b> {</b></p><p> //由于外鍵約束,刪除此寢室時(shí),相應(yīng)的student和item表中的此寢室信息自動(dòng)刪除.</p><p> char query[300];</p>
72、<p> StringCchPrintfA(query, 300, "DELETE FROM room WHERE dormitoryCat = \"%s\"", dormitoryCat);</p><p> if(mysql_query(&this->my, query) != 0)</p><p><b&g
73、t; {</b></p><p> StringCchPrintfA(errMsg, 300, "刪除宿舍信息錯(cuò)誤: %s\n", mysql_error(&this->my));</p><p> return FALSE;</p><p><b> }</b></p>&l
74、t;p> return TRUE;</p><p><b> }</b></p><p> bool dbStruct::GetDormitory(char dormitoryCat[6])</p><p><b> {</b></p><p> char query[300];&l
75、t;/p><p> StringCchPrintfA(query, 300, "SELECT * FROM room WHERE dormitoryCat = \"%s\"", dormitoryCat);</p><p> if(mysql_query(&this->my, query) != NULL)</p><
76、;p><b> {</b></p><p> StringCchPrintfA(errMsg, 300, "獲取寢室信息錯(cuò)誤: %s\n", mysql_error(&this->my));</p><p> return FALSE;</p><p><b> }</b>&
77、lt;/p><p> MYSQL_RES * res;</p><p> MYSQL_ROW row;</p><p> res = mysql_use_result(&this->my);</p><p> while((row = mysql_fetch_row(res)) != NULL)</p><
78、;p><b> {</b></p><p> StringCchPrintfA(this->dormitoryCat, 6, row[0]);</p><p> StringCchPrintfA(this->dormitory, 3, row[1]);</p><p> StringCchPrintfA(this-&g
79、t;room, 4, row[2]);</p><p> this->members = atoi(row[3]);</p><p> this->water = atof(row[4]);</p><p> this->electricity = atof(row[5]);</p><p> this->wa
80、terCharge = atof(row[6]);</p><p> this->electricityCharge = atof(row[7]);</p><p><b> }</b></p><p> mysql_free_result(res);</p><p> return TRUE;</p
81、><p><b> }</b></p><p> ////////////////////////////////////////////////////////</p><p> bool dbStruct::InsertItemTable()</p><p><b> {</b></p
82、><p> if(this->dormitoryCat == NULL)</p><p><b> {</b></p><p> StringCchPrintfA(errMsg, 300, "添加宿舍信息錯(cuò)誤: 值不完整\n");</p><p> return FALSE;</p&g
83、t;<p><b> }</b></p><p> char query[300];</p><p> StringCchPrintfA(query, 300,</p><p> "INSERT INTO item(dormitoryCat,bed, cabinet, light, fan, tv) VALUES
84、(\"%s\", %d, %d, %d, %d, %d)",</p><p> this->dormitoryCat, this->bed, this->cabinet, this->light,</p><p> this->fan, this->tv);</p><p> if(mysq
85、l_query(&this->my, query) != 0)</p><p><b> {</b></p><p> StringCchPrintfA(errMsg, 300, "添加宿舍物件信息錯(cuò)誤: %s\n", mysql_error(&this->my));</p><p> re
86、turn FALSE;</p><p><b> }</b></p><p> return TRUE;</p><p><b> }</b></p><p> bool dbStruct::GetItem(char dormitoryCat[6])</p><p>
87、<b> {</b></p><p> char query[300];</p><p> StringCchPrintfA(query, 300, "SELECT * FROM item WHERE dormitoryCat = \"%s\"", dormitoryCat);</p><p>
88、if(mysql_query(&this->my, query) != NULL)</p><p><b> {</b></p><p> StringCchPrintfA(errMsg, 300, "獲取寢室物件信息錯(cuò)誤: %s\n", mysql_error(&this->my));</p><
89、;p> return FALSE;</p><p><b> }</b></p><p> MYSQL_RES * res;</p><p> MYSQL_ROW row;</p><p> res = mysql_use_result(&this->my);</p><
90、p> while((row = mysql_fetch_row(res)) != NULL)</p><p><b> {</b></p><p> StringCchPrintfA(this->dormitoryCat, 6, row[0]);</p><p> this->bed = (atoi(row[3]) =
91、= 1? true: false);</p><p> this->cabinet = (atof(row[4]) == 1? true: false);</p><p> this->light = (atof(row[5]) == 1? true: false);</p><p> this->fan = (atof(row[6])
92、 == 1? true: false);</p><p> this->tv = (atof(row[7]) == 1? true: false);</p><p><b> }</b></p><p> mysql_free_result(res);</p><p> return TRUE;</
93、p><p><b> }</b></p><p> void dbStruct::ErrMB()</p><p><b> {</b></p><p> MessageBoxA(GetActiveWindow(), this->errMsg, "發(fā)生錯(cuò)誤!", MB_I
94、CONERROR);</p><p><b> }</b></p><p> //stdafx.h</p><p> #pragma once</p><p> #include "targetver.h"</p><p> // Windows 頭文件:</p
95、><p> #include <windows.h></p><p> #include <mysql.h></p><p> #include <WindowsX.h></p><p> #include <CommCtrl.h></p><p> // C 運(yùn)行
96、時(shí)頭文件</p><p> #include <stdlib.h></p><p> #include <malloc.h></p><p> #include <memory.h></p><p> #include <tchar.h></p><p> #i
97、nclude <strsafe.h></p><p> // TODO: 在此處引用程序需要的其他頭文件</p><p> #include "dbStruct.h"</p><p> #pragma comment(lib, "libmysql.lib")</p><p> #pr
98、agma comment(lib, "comctl32.lib")</p><p> //stdafx.cpp</p><p> // stdafx.cpp : 只包括標(biāo)準(zhǔn)包含文件的源文件</p><p> // DormitoryMng.pch 將作為預(yù)編譯頭</p><p> // stdafx.obj 將包含
99、預(yù)編譯類型信息</p><p> #include "stdafx.h"</p><p> //dormitoryMng.h</p><p> #pragma once</p><p> #include "resource.h"</p><p> #define MA
100、X_LOADSTRING 100</p><p> //dormitoryMng.cpp(部分代碼)</p><p> bool QueryStart(bool flag)</p><p><b> {</b></p><p> char query[300];</p><p> if(
101、flag == true)//查詢寢室信息</p><p><b> {</b></p><p> GetWindowTextA(GetDlgItem(g_hWndQuery, IDC_EDITBUILD), m_db.dormitory, 3);</p><p> GetWindowTextA(GetDlgItem(g_hWndQuer
102、y, IDC_EDITROOM), m_db.room, 4);</p><p> if(strcmp(m_db.dormitory, "") == 0 && strcmp(m_db.room,"") == 0)</p><p><b> {</b></p><p> StringC
103、chCopyA(query, 300,</p><p> "SELECT room.dormitoryCat,dormitory, room, studentsNum, \</p><p> count(student.dormitoryCat), water, electricity, waterCharge, \</p><p> electri
104、cityCharge FROM room LEFT JOIN student ON room.dormitoryCat = \</p><p> student.dormitoryCat GROUP BY room.dormitoryCat"</p><p><b> );</b></p><p><b> }<
105、/b></p><p> else if(strcmp(m_db.dormitory, "") != 0 && strcmp(m_db.room,"") == 0)</p><p><b> {</b></p><p> StringCchPrintfA(query, 300,
106、</p><p> "SELECT room.dormitoryCat,dormitory, room, studentsNum, \</p><p> count(student.dormitoryCat), water, electricity, waterCharge, \</p><p> electricityCharge FROM roo
107、m LEFT JOIN student ON room.dormitoryCat = \</p><p> student.dormitoryCat WHERE dormitory = \"%s\" GROUP BY room.dormitoryCat",</p><p> m_db.dormitory);</p><p><
108、b> }</b></p><p> else if(strcmp(m_db.dormitory, "") == 0 && strcmp(m_db.room,"") != 0)</p><p><b> {</b></p><p> StringCchPrintfA
109、(query, 300,</p><p> "SELECT room.dormitoryCat,dormitory, room, studentsNum, \</p><p> count(student.dormitoryCat), water, electricity, waterCharge, \</p><p> electricityCha
110、rge FROM room LEFT JOIN student ON room.dormitoryCat = \</p><p> student.dormitoryCat WHERE room = \"%s\" GROUP BY room.dormitoryCat",</p><p> m_db.room);</p><p>&l
111、t;b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> StringCchPrintfA(query, 300,</p><p> "SELECT room.dormitoryCat,dormit
112、ory, room, studentsNum, \</p><p> count(student.dormitoryCat), water, electricity, waterCharge, \</p><p> electricityCharge FROM room LEFT JOIN student ON room.dormitoryCat = \</p><
113、p> student.dormitoryCat WHERE dormitory = \"%s\" AND room = \"%s\" GROUP BY room.dormitoryCat",</p><p> m_db.dormitory, m_db.room);</p><p><b> }</b><
114、;/p><p> if(true != QueryInput(L"寢室號(hào).樓棟號(hào).寢室號(hào).可住人數(shù).當(dāng)前人數(shù).用水量.用電量.水費(fèi).電費(fèi)", 9, query))</p><p><b> {</b></p><p> m_db.ErrMB();</p><p><b> }</b
115、></p><p><b> }</b></p><p> else//查詢學(xué)生信息</p><p><b> {</b></p><p> GetWindowTextA(GetDlgItem(g_hWndQuery, IDC_EDITSTUNO), m_db.StudentNum,
116、9);</p><p> GetWindowTextA(GetDlgItem(g_hWndQuery, IDC_EDITSTUNAME), m_db.StudentName, 20);</p><p> if(strcmp(m_db.StudentNum, "") == 0 && strcmp(m_db.StudentName, "&quo
117、t;) == 0)</p><p><b> {</b></p><p> StringCchCopyA(query, 300,</p><p> "SELECT num, name, dormitoryCat FROM student");</p><p><b> }</b
118、></p><p> else if(strcmp(m_db.StudentNum, "") != 0 && strcmp(m_db.StudentName, "") == 0)</p><p><b> {</b></p><p> StringCchPrintfA(quer
119、y, 300,</p><p> "SELECT num, name, dormitoryCat FROM student WHERE num = \"%s\"",</p><p> m_db.StudentNum);</p><p><b> }</b></p><p>
120、 else if(strcmp(m_db.StudentNum, "") == 0 && strcmp(m_db.StudentName, "") != 0)</p><p><b> {</b></p><p> StringCchPrintfA(query, 300,</p><p&g
121、t; "SELECT num, name, dormitoryCat FROM student WHERE name = \"%s\"",</p><p> m_db.StudentName);</p><p><b> }</b></p><p><b> else</b>
122、</p><p><b> {</b></p><p> StringCchPrintfA(query, 300,</p><p> "SELECT num, name, dormitoryCat FROM student WHERE name = \"%s\" AND num = \"%s\&qu
123、ot;",</p><p> m_db.StudentName, m_db.StudentNum);</p><p><b> }</b></p><p> if(true != QueryInput(L"學(xué)號(hào).姓名.所住寢室", 3, query))</p><p><b>
124、; {</b></p><p> m_db.ErrMB();</p><p><b> }</b></p><p><b> }</b></p><p> return TRUE;</p><p><b> }</b></p
125、><p> LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)</p><p><b> {</b></p><p> int wmId, wmEvent;</p><p> PAINTSTRUCT ps;&l
126、t;/p><p><b> HDC hdc;</b></p><p> switch (message)</p><p><b> {</b></p><p> case WM_CREATE:</p><p><b> {</b></p>
127、;<p> if(!m_db.Init())</p><p><b> {</b></p><p> m_db.ErrMB();</p><p> //*********填寫錯(cuò)誤信息</p><p><b> break;</b></p><p>&l
128、t;b> }</b></p><p><b> //創(chuàng)建列表</b></p><p> CreateList(hWnd);</p><p><b> //查詢填充</b></p><p> if(false == QueryInput(L"寢室號(hào).樓棟號(hào).寢室號(hào)
129、.可住人數(shù).當(dāng)前人數(shù).用水量.用電量.水費(fèi).電費(fèi)", 9,</p><p> "SELECT room.dormitoryCat,dormitory, room, studentsNum,\</p><p> count(student.dormitoryCat),water,electricity, waterCharge,\</p><p&g
130、t; electricityCharge FROM room LEFT JOIN student ON room.dormitoryCat \</p><p> = student.dormitoryCat GROUP BY room.dormitoryCat"))</p><p><b> {</b></p><p> m_
131、db.ErrMB();</p><p><b> }</b></p><p><b> }</b></p><p><b> break;</b></p><p> case WM_NOTIFY:</p><p><b> {<
132、/b></p><p> LPNMITEMACTIVATE nc = (LPNMITEMACTIVATE)lParam;</p><p> if(nc->hdr.code == NM_RCLICK && nc->iSubItem != 0)</p><p><b> {</b></p>&l
133、t;p> HMENU hMenu = CreatePopupMenu();</p><p> InsertMenu(hMenu, 0, MF_ENABLED, 10023, _T("刪除"));</p><p> InsertMenu(hMenu, 0, MF_ENABLED, 10024, _T("詳細(xì)信息"));</p>
134、<p> ClientToScreen(hWnd, &nc->ptAction);</p><p> int result = TrackPopupMenu(hMenu, </p><p> TPM_RETURNCMD | TPM_LEFTBUTTON| TPM_NOANIMATION,</p><p> nc->ptActi
135、on.x + 5, nc->ptAction.y + 30, 0, hWnd, NULL);</p><p> if(result == 10023)</p><p><b> {</b></p><p> wchar_t str[9];</p><p> ListView_GetItemText(g_hW
136、ndList, nc->iItem, 2, str, 9);</p><p> int iSize;</p><p> char * szMultiByte;</p><p> //寬字符轉(zhuǎn)換成多字節(jié)型</p><p> iSize = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生宿舍管理系統(tǒng)
- 學(xué)生宿舍管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)-學(xué)生宿舍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生宿舍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生宿舍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生宿舍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)-學(xué)生宿舍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生宿舍管理系統(tǒng)
- 學(xué)生宿舍管理系統(tǒng)-數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)-學(xué)生宿舍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--- 學(xué)生宿舍管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生宿舍管理系統(tǒng) (2)
- (數(shù)據(jù)庫課程設(shè)計(jì))學(xué)生宿舍管理系統(tǒng)畢業(yè)設(shè)
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生宿舍管理信息系統(tǒng)
- 計(jì)算機(jī)專業(yè)數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--學(xué)生宿舍管理系統(tǒng)
- 數(shù)據(jù)庫課設(shè)-學(xué)生宿舍管理系統(tǒng)
- 學(xué)生宿舍管理系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)庫課程設(shè)計(jì)--校園宿舍管理系統(tǒng)
- 學(xué)生宿舍管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生宿舍管理系統(tǒng)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論