2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論