數(shù)據(jù)庫課程設計-學生宿舍管理系統(tǒng)_第1頁
數(shù)據(jù)庫課程設計-學生宿舍管理系統(tǒng)_第2頁
數(shù)據(jù)庫課程設計-學生宿舍管理系統(tǒng)_第3頁
數(shù)據(jù)庫課程設計-學生宿舍管理系統(tǒng)_第4頁
數(shù)據(jù)庫課程設計-學生宿舍管理系統(tǒng)_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

《數(shù)據(jù)庫原理》課程設計說明書學生宿舍管理系統(tǒng)學院:計算機與信息科學學院 專業(yè):網(wǎng)絡工程 班級:網(wǎng)絡 姓名學號: 姓名學號:指導教師:職稱講師 完成時間:20年12月 1、管理系統(tǒng)設計的背景、意義及目標設計背景設計意義設計目標2、系統(tǒng)開發(fā)環(huán)境3、系統(tǒng)需求分析基本功能需求功能模塊數(shù)據(jù)字典4、概念結構設計概念設計E_R模型設計5、邏輯結構設計將E_R圖轉(zhuǎn)換為關系模型各表關系模型圖6、數(shù)據(jù)實施和維護功能實現(xiàn)代碼系統(tǒng)實現(xiàn)效果7、個人實現(xiàn)的功能8、總結1、管理系統(tǒng)設計的背景、意義及目標設計背景隨著IT事業(yè)的發(fā)展,如今,我們已經(jīng)全面跨入信息時代。計算機被廣泛的應用于各個行業(yè),人工戰(zhàn)略已經(jīng)轉(zhuǎn)化為信息戰(zhàn)略,如何在短時間內(nèi)獲取大量信息并整合信息,成為立足于時代的關鍵。為了適應考生人數(shù)的急劇增長,當今社會各大高校都在進行擴招政策,學生數(shù)量的急劇增加帶來信息量的成倍增長,由于信息管理的不善與疏忽,各大高校大小事故時有發(fā)生。進行正確的信息管理,對于信息及時處理和反應,能夠最大程度的減少學校以及在校學生的損失,減小潛在危機。學生宿舍是學生生活的基本單位,是同學休息與學習的地方,為了保障同學入住學生宿舍的安全性,信息的處理和管理極為重要。據(jù)了解,本校的宿舍信息管理仍然使用傳統(tǒng)的手工方式,主要方式是基于文本、表格等紙介質(zhì)的手工處理,用人工手抄對男女生信宿信息進行處理登記。數(shù)據(jù)信息處理工作量大,容易出錯且不易修改;由于數(shù)據(jù)繁多,容易丟失,逐條查找記錄的方式不易操作,浪費了大量的時間,效率極低。學校的宿舍管理缺乏系統(tǒng),規(guī)范的信息管理手段。建立學生宿舍管理系統(tǒng),使宿舍管理工作系統(tǒng)化,規(guī)范化,便捷化,程序化,避免宿舍管理的隨意性,提高信息處理的速度和準確性,能夠及時、準確、有效的查詢和修改宿舍情況。設計的意義高校規(guī)模的擴大,在校學生的基本情況隨之層次化、多樣化、復雜化,相應的,學生管理工作面臨嚴峻的挑戰(zhàn)。高校學生信息日漸龐大,相應的宿舍管理工作變得復雜而困難。傳統(tǒng)的賬本化工作模式,手工記錄學生信息并存檔,這樣的人工管理方式費時、費事、費力,信息獲取慢,更新滯后,查閱困難,容易出錯。為了給學生提供一個安全舒適的工作、生活、學習環(huán)境,方便宿舍管理工作的同時為學生、教師提供準確實時的信息至關重要。本校的宿舍信息管理,主要方式是基于文本、表格等紙介質(zhì)的手工處理,用人工手抄對男女生信宿信息進行處理登記。數(shù)據(jù)信息處理工作量大,容易出錯且不易修改;由于數(shù)據(jù)繁多,容易丟失,逐條查找記錄的方式不易操作,浪費了大量的時間,效率極低。以上的管理缺陷對學生宿舍管理造成了相當大的阻力,工作進展困難,問題解決的周期過長,資料整改工作量過大。為了改善學生宿舍管理情況,運用數(shù)據(jù)庫技術對學生信息進行處理和統(tǒng)一管理,在校園內(nèi)實現(xiàn)宿舍無紙化辦公。利用計算機的特點,利用互聯(lián)網(wǎng)進行遠程操作,制定學生客戶端,教師客戶端,管理員客戶端,實現(xiàn)有針對性信息化管理,充分發(fā)揮計算機的高效性、可靠性、保密性、大容量、低成本等特點,建立學生宿舍管理系統(tǒng),對宿舍相關信息進行統(tǒng)一管理。新型管理方式——學生宿舍管理系統(tǒng),將幫助宿舍管理人員提高工作效率,全面地掌握宿舍情況,提高宿舍安全系數(shù),快速解決學生入住學生宿舍遇到的問題,幫助管理人員與教師及時掌握學生情況。設計目標開發(fā)設計學生宿舍管理系統(tǒng),運用簡單的計算機操作實現(xiàn)快速檢索和快速查找,方便信息錄入和更新,本系統(tǒng)僅針對管理員進行使用。實現(xiàn)信息查詢、日常管理、宿舍管理、信息維護幾個方面的系統(tǒng)化管理:1、信息查詢:a)宿舍信息:包括宿舍樓編號、寢室編號、入住人數(shù)、寢室入住人員學號、用水量、用電量、水費、電費。b)學生信息:包括學生姓名、學號、宿舍號c)宿舍基本配置:包括床、柜子、燈、風扇、電視機2、宿舍管理:學生管理(入住、更換宿舍、);房間管理(增加、刪除、查詢)3、信息維護:學生個人信息更新、宿舍信息更新、宿舍設備信息更新。2、系統(tǒng)開發(fā)環(huán)境開發(fā)所使用數(shù)據(jù)庫系統(tǒng):MySql開發(fā)環(huán)境:windows7開發(fā)工具:MicrosoftVisualStudio2010開發(fā)語言:C++、SQL3、系統(tǒng)需求分析基本功能需求學生宿舍管理系統(tǒng)為了更好的進行宿舍管理而設計。用戶的需求具體體現(xiàn)在各種信息的輸入、修改和查詢。系統(tǒng)功能實現(xiàn)如下:1、提供學生的入住信息的錄入,更換宿舍信息登記。提供各宿舍的具體信息,如宿舍樓棟、宿舍號、水費、電費等。并可通過查詢宿舍號得到宿舍的具體信息、入住的學生信息、宿舍的設備信息等。2、提供管理員增加、刪除各信息的功能。功能模塊本宿舍管理系統(tǒng)的主要功能為:學生管理、宿舍信息管理、宿舍設備信息管理、信息查詢、息更新、信息維護。數(shù)據(jù)字典(1)宿舍設備情況數(shù)據(jù)字典(2)宿舍信息情況數(shù)據(jù)字典(3)學生信息情況數(shù)據(jù)字典4、概念結構設計概念設計(1)學生實體:用于顯示學生的屬性,包括姓名、學號、宿舍編號。(2)宿舍實體:用于顯示宿舍的屬性,包括樓號、宿舍號、入住學生學號、可住人數(shù)、已住人數(shù)、用水量、水費、用電量、電費。(3)宿舍設備實體:用于顯示宿舍設備的屬性,包括床、柜子、風扇、燈、電視機。E_R模型設計學生實體E_R圖(2)宿舍實體E_R圖(3)宿舍物品設備實體E_R圖(4)各實體關系E_R圖5、邏輯結構設計將E-R圖轉(zhuǎn)換為關系模型:(1)Student:(num、name、dormitoryCat);(2)Room:(dormitoryCat、dormitory、room、studentNum、water、waterCharge、electricity、electricityCharge);(3)Item:(dormitoryCat、bed、cabinet、light、fan、tv)各表關系模型圖:Item表外鍵設計:Student表外鍵設計:各表之間的關系模型圖,Item表與Student表通過外鍵與Room聯(lián)系:6、數(shù)據(jù)實施和維護功能實現(xiàn)的代碼//dbstruct.h#pragmaonceclassdbStruct{public: MYSQLmy; charerrMsg[300]; //學生表 char StudentNum[9]; char StudentName[20]; //宿舍 char dormitoryCat[6]; char dormitory[3]; char room[4]; double water; double electricity; double waterCharge; double electricityCharge; unsignedintmembers; //物件 bool bed; bool cabinet; bool light; bool fan; bool tv; dbStruct(); ~dbStruct(); boolInit(); boolGetStruct(); //添加學生表一項 boolInsertStudentTable(); //改變一項 boolSetStudentTable(charnum[9]);//主鍵為num,vachar(8) //獲取一項 boolGetStudent(charnum[9]); //******************刪除一項 boolDeleteStudent(charnum[9]); //添加宿舍表一項 boolInsertDormitoryTable(); //改變一項 boolSetDormitoryTable(chardormitoryCat[6]);//主鍵為dormitoryCat,varchar(6) //獲得一項 boolGetDormitory(chardormitoryCat[6]); //刪除一項 boolDeleteDormitory(chardormitoryCat[6]); //添加物品表一項 boolInsertItemTable(); //改變一項 boolSetItemTable(chardormitoryCat[6]);//主鍵為dormitoryCat,varchar(6) //獲得一項 boolGetItem(chardormitoryCat[6]); //******************刪除一項 boolDeleteItem(chardormitoryCat[6]); voidErrMB();};//dbStruct.cpp#include"stdafx.h"dbStruct::dbStruct(){ this->water=0.0; this->electricity=0.0; this->waterCharge=0.0; this->electricityCharge=0.0; this->members=4; this->bed=TRUE; this->cabinet=TRUE; this->light=TRUE; this->fan=TRUE; this->tv=TRUE;}dbStruct::~dbStruct(){ mysql_close(&my);}booldbStruct::Init(){ mysql_init(&this->my); if(!mysql_real_connect(&this->my,"localhost","root","fast","dormitory",0,NULL,0)) { StringCchPrintfA(errMsg,300,"獲取寢室物件信息錯誤:%s\n",mysql_error(&this->my)); returnfalse; } mysql_query(&this->my,"SETNAMESgbk"); returntrue;}////////////////////////////////////////////////////////booldbStruct::InsertStudentTable(){ if(this->dormitoryCat==NULL|| this->StudentName==NULL||this->StudentNum==NULL) { StringCchPrintfA(errMsg,100,"添加學生信息錯誤:值不完整\n"); returnFALSE; } charquery[300]; //獲得該寢室已住人數(shù)數(shù) StringCchPrintfA(query,300, "SELECTcount(dormitoryCat)FROMstudentWHEREdormitoryCat=\"19425\"", this->dormitoryCat); mysql_query(&this->my,query);//可以確保在數(shù)據(jù)庫工作正常的情況下,能夠查詢到惟一的一條數(shù)據(jù) MYSQL_RES*res; res=mysql_use_result(&this->my); MYSQL_ROWrow; inti;//i為已住人數(shù) while((row=mysql_fetch_row(res))!=NULL) { i=row[0][0]-'0'; } mysql_free_result(res); if(++i>4) { //超過了寢室最大人員數(shù)量 StringCchPrintfA(errMsg,300,"添加學生信息錯誤:此寢室已滿\n"); //**********是否自動添加宿舍信息 returnFALSE; } //可以添加學生信息 StringCchPrintfA(query,300, "INSERTINTOstudent(num,name,dormitoryCat)VALUES(\"%s\",\"%s\",\"%s\")", this->StudentNum,this->StudentName,this->dormitoryCat); if(mysql_query(&this->my,query)!=0) { StringCchPrintfA(errMsg,300,"添加學生信息錯誤:%s\n",mysql_error(&this->my)); //**********是否需要自動添加宿舍信息 returnFALSE; } returnTRUE;}booldbStruct::DeleteStudent(charnum[9]){ charquery[300]; StringCchPrintfA(query,300, "DELETEFROMstudentWHEREnum=\"%s\"",num); if(mysql_query(&this->my,query)!=0) { StringCchPrintfA(errMsg,300,"刪除學生信息錯誤:%s\n",mysql_error(&this->my)); //**********是否需要自動添加宿舍信息 returnFALSE; } returnTRUE;}booldbStruct::GetStudent(charnum[9]){ charquery[300]; StringCchPrintfA(query,300,"SELECT*FROMstudentWHEREnum=\"%s\"",num); if(mysql_query(&this->my,query)!=NULL) { StringCchPrintfA(errMsg,300,"獲取學生信息錯誤:%s\n",mysql_error(&this->my)); returnFALSE; } MYSQL_RES*res; MYSQL_ROWrow; res=mysql_use_result(&this->my); while((row=mysql_fetch_row(res))!=NULL) { StringCchPrintfA(this->StudentNum,9,row[0]); StringCchPrintfA(this->StudentName,20,row[1]); StringCchPrintfA(this->dormitoryCat,6,row[2]); } mysql_free_result(res); returnTRUE;}////////////////////////////////////////////////////////booldbStruct::InsertDormitoryTable(){ if(this->dormitoryCat==NULL||this->room==NULL||this->dormitory==NULL) { StringCchPrintfA(errMsg,300,"添加宿舍信息錯誤:值不完整\n"); returnFALSE; } charquery[300]; StringCchPrintfA(query,300, "INSERTINTOroom(dormitoryCat,dormitory,room,\ studentsNum,water,electricity,waterCharge,\ electricityCharge)VALUES(\"%s\",\"%s\",\"%s\",%d,%.2lf,%.2lf,%.2lf,%.2lf)", this->dormitoryCat,this->dormitory,this->room, this->members,this->water,this->electricity, this->waterCharge,this->electricityCharge); if(mysql_query(&this->my,query)!=0) { StringCchPrintfA(errMsg,300,"添加宿舍信息錯誤:%s\n",mysql_error(&this->my)); returnFALSE; } this->InsertItemTable(); returnTRUE;}booldbStruct::DeleteDormitory(chardormitoryCat[6]){ //由于外鍵約束,刪除此寢室時,相應的student和item表中的此寢室信息自動刪除. charquery[300]; StringCchPrintfA(query,300,"DELETEFROMroomWHEREdormitoryCat=\"%s\"",dormitoryCat); if(mysql_query(&this->my,query)!=0) { StringCchPrintfA(errMsg,300,"刪除宿舍信息錯誤:%s\n",mysql_error(&this->my)); returnFALSE; } returnTRUE;}booldbStruct::GetDormitory(chardormitoryCat[6]){ charquery[300]; StringCchPrintfA(query,300,"SELECT*FROMroomWHEREdormitoryCat=\"%s\"",dormitoryCat); if(mysql_query(&this->my,query)!=NULL) { StringCchPrintfA(errMsg,300,"獲取寢室信息錯誤:%s\n",mysql_error(&this->my)); returnFALSE; } MYSQL_RES*res; MYSQL_ROWrow; res=mysql_use_result(&this->my); while((row=mysql_fetch_row(res))!=NULL) { StringCchPrintfA(this->dormitoryCat,6,row[0]); StringCchPrintfA(this->dormitory,3,row[1]); StringCchPrintfA(this->room,4,row[2]); this->members=atoi(row[3]); this->water=atof(row[4]); this->electricity=atof(row[5]); this->waterCharge=atof(row[6]); this->electricityCharge=atof(row[7]); } mysql_free_result(res); returnTRUE;}////////////////////////////////////////////////////////booldbStruct::InsertItemTable(){ if(this->dormitoryCat==NULL) { StringCchPrintfA(errMsg,300,"添加宿舍信息錯誤:值不完整\n"); returnFALSE; } charquery[300]; StringCchPrintfA(query,300, "INSERTINTOitem(dormitoryCat,bed,cabinet,light,fan,tv)VALUES(\"%s\",%d,%d,%d,%d,%d)", this->dormitoryCat,this->bed,this->cabinet,this->light, this->fan,this->tv); if(mysql_query(&this->my,query)!=0) { StringCchPrintfA(errMsg,300,"添加宿舍物件信息錯誤:%s\n",mysql_error(&this->my)); returnFALSE; } returnTRUE;}booldbStruct::GetItem(chardormitoryCat[6]){ charquery[300]; StringCchPrintfA(query,300,"SELECT*FROMitemWHEREdormitoryCat=\"%s\"",dormitoryCat); if(mysql_query(&this->my,query)!=NULL) { StringCchPrintfA(errMsg,300,"獲取寢室物件信息錯誤:%s\n",mysql_error(&this->my)); returnFALSE; } MYSQL_RES*res; MYSQL_ROWrow; res=mysql_use_result(&this->my); while((row=mysql_fetch_row(res))!=NULL) { StringCchPrintfA(this->dormitoryCat,6,row[0]); this->bed=(atoi(row[3])==1?true:false); this->cabinet=(atof(row[4])==1?true:false); this->light=(atof(row[5])==1?true:false); this->fan=(atof(row[6])==1?true:false); this->tv=(atof(row[7])==1?true:false); } mysql_free_result(res); returnTRUE;}voiddbStruct::ErrMB(){ MessageBoxA(GetActiveWindow(),this->errMsg,"發(fā)生錯誤!",MB_ICONERROR);}//stdafx.h#pragmaonce#include"targetver.h"http://Windows頭文件:#include<windows.h>#include<mysql.h>#include<WindowsX.h>#include<CommCtrl.h>//C運行時頭文件#include<stdlib.h>#include<malloc.h>#include<memory.h>#include<tchar.h>#include<strsafe.h>//TODO:在此處引用程序需要的其他頭文件#include"dbStruct.h"#pragmacomment(lib,"libmysql.lib")#pragmacomment(lib,"comctl32.lib")//stdafx.cpp//stdafx.cpp:只包括標準包含文件的源文件//DormitoryMng.pch將作為預編譯頭//stdafx.obj將包含預編譯類型信息#include"stdafx.h"http://dormitoryMng.h#pragmaonce#include"resource.h"#defineMAX_LOADSTRING100//dormitoryMng.cpp(部分代碼)boolQueryStart(boolflag){ charquery[300]; if(flag==true)//查詢寢室信息 { GetWindowTextA(GetDlgItem(g_hWndQuery,IDC_EDITBUILD),m_db.dormitory,3); GetWindowTextA(GetDlgItem(g_hWndQuery,IDC_EDITROOM),m_db.room,4); if(strcmp(m_db.dormitory,"")==0&&strcmp(m_db.room,"")==0) { StringCchCopyA(query,300, "SELECTroom.dormitoryCat,dormitory,room,studentsNum,\ count(student.dormitoryCat),water,electricity,waterCharge,\ electricityChargeFROMroomLEFTJOINstudentONroom.dormitoryCat=\ student.dormitoryCatGROUPBYroom.dormitoryCat" ); } elseif(strcmp(m_db.dormitory,"")!=0&&strcmp(m_db.room,"")==0) { StringCchPrintfA(query,300, "SELECTroom.dormitoryCat,dormitory,room,studentsNum,\ count(student.dormitoryCat),water,electricity,waterCharge,\ electricityChargeFROMroomLEFTJOINstudentONroom.dormitoryCat=\ student.dormitoryCatWHEREdormitory=\"%s\"GROUPBYroom.dormitoryCat", m_db.dormitory); } elseif(strcmp(m_db.dormitory,"")==0&&strcmp(m_db.room,"")!=0) { StringCchPrintfA(query,300, "SELECTroom.dormitoryCat,dormitory,room,studentsNum,\ count(student.dormitoryCat),water,electricity,waterCharge,\ electricityChargeFROMroomLEFTJOINstudentONroom.dormitoryCat=\ student.dormitoryCatWHEREroom=\"%s\"GROUPBYroom.dormitoryCat", m_db.room); } else { StringCchPrintfA(query,300, "SELECTroom.dormitoryCat,dormitory,room,studentsNum,\ count(student.dormitoryCat),water,electricity,waterCharge,\ electricityChargeFROMroomLEFTJOINstudentONroom.dormitoryCat=\ student.dormitoryCatWHEREdormitory=\"%s\"ANDroom=\"%s\"GROUPBYroom.dormitoryCat", m_db.dormitory,m_db.room); } if(true!=QueryInput(L"寢室號.樓棟號.寢室號.可住人數(shù).當前人數(shù).用水量.用電量.水費.電費",9,query)) { m_db.ErrMB(); } } else//查詢學生信息 { GetWindowTextA(GetDlgItem(g_hWndQuery,IDC_EDITSTUNO),m_db.StudentNum,9); GetWindowTextA(GetDlgItem(g_hWndQuery,IDC_EDITSTUNAME),m_db.StudentName,20); if(strcmp(m_db.StudentNum,"")==0&&strcmp(m_db.StudentName,"")==0) { StringCchCopyA(query,300, "SELECTnum,name,dormitoryCatFROMstudent"); } elseif(strcmp(m_db.StudentNum,"")!=0&&strcmp(m_db.StudentName,"")==0) { StringCchPrintfA(query,300, "SELECTnum,name,dormitoryCatFROMstudentWHEREnum=\"%s\"", m_db.StudentNum); } elseif(strcmp(m_db.StudentNum,"")==0&&strcmp(m_db.StudentName,"")!=0) { StringCchPrintfA(query,300, "SELECTnum,name,dormitoryCatFROMstudentWHEREname=\"%s\"", m_db.StudentName); } else { StringCchPrintfA(query,300, "SELECTnum,name,dormitoryCatFROMstudentWHEREname=\"%s\"ANDnum=\"%s\"", m_db.StudentName,m_db.StudentNum); } if(true!=QueryInput(L"學號.姓名.所住寢室",3,query)) { m_db.ErrMB(); } } returnTRUE;}LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam){ intwmId,wmEvent; PAINTSTRUCTps; HDChdc; switch(message) { caseWM_CREATE: { if(!m_db.Init()) { m_db.ErrMB(); //*********填寫錯誤信息 break; } //創(chuàng)建列表 CreateList(hWnd); //查詢填充 if(false==QueryInput(L"寢室號.樓棟號.寢室號.可住人數(shù).當前人數(shù).用水量.用電量.水費.電費",9, "SELECTroom.dormitoryCat,dormitory,room,studentsNum,\ count(student.dormitoryCat),water,electricity,waterCharge,\ electricityChargeFROMroomLEFTJOINstudentONroom.dormitoryCat\ =student.dormitoryCatGROUPBYroom.dormitoryCat")) { m_db.ErrMB(); } } break; caseWM_NOTIFY: { LPNMITEMACTIVATEnc=(LPNMITEMACTIVATE)lParam; if(nc->hdr.code==NM_RCLICK&&nc->iSubItem!=0) { HMENUhMenu=CreatePopupMenu(); InsertMenu(hMenu,0,MF_ENABLED,10023,_T("刪除")); InsertMenu(hMenu,0,MF_ENABLED,10024,_T("詳細信息")); ClientToScreen(hWnd,&nc->ptAction); intresult=TrackPopupMenu(hMenu, TPM_RETURNCMD|TPM_LEFTBUTTON|TPM_NOANIMATION, nc->ptAction.x+5,nc->ptAction.y+30,0,hWnd,NULL); if(result==10023) { wchar_tstr[9]; ListView_GetItemText(g_hWndList,nc->iItem,2,str,9); intiSize; char*szMultiByte; //寬字符轉(zhuǎn)換成多字節(jié)型 iSize=WideCharToMultiByte(CP_ACP,0,str,-1,NULL,0,NULL,NULL); szMultiByte=newchar[iSize]; WideCharToMultiByte(CP_ACP,0,str,-1,szMultiByte,iSize,NULL,NULL); if(iSize==6) { if(!m_db.DeleteDormitory(szMultiByte)) { m_db.ErrMB(); deleteszMultiByte; break; } //刷新 ListView_DeleteAllItems(g_hWndList); while(ListView_DeleteColumn(g_hWndList,1)) {} if(true!=QueryInput(L"寢室號.樓棟號.寢室號.可住人數(shù).當前人數(shù).用水量.用電量.水費.電費",9, "SELECTroom.dormitoryCat,dormitory,room,studentsNum,\ count(student.dormitoryCat),water,electricity,waterCharge,\ electricityChargeFROMroomLEFTJOINstudentONroom.dormitoryCat\ =student.dormitoryCatGROUPBYroom.dormitoryCat")) { m_db.ErrMB(); } } else { if(!m_db.DeleteStudent(szMultiByte)) { m_db.ErrMB(); deleteszMultiByte; break; } //刷新 ListView_DeleteAllItems(g_hWndList); while(ListView_DeleteColumn(g_hWndList,1)) {} if(true!=QueryInput(L"學號.姓名.所住寢室",3,"SELECT*FROMstudent")) { m_db.ErrMB(); } } deleteszMultiByte; RedrawWindow(g_hWnd,NULL,NULL,RDW_INVALIDATE); } } break; } caseWM_COMMAND: { wmId=LOWORD(wParam); wmEvent=HIWORD(wParam); //分析菜單選擇: switch(wmId) { caseIDC_REFRESH: //刷新 ListView_DeleteAllItems(g_hWndList); while(ListView_DeleteColumn(g_hWndList,1)) {} if(true!=QueryInput(L"寢室號.樓棟號.寢室號.可住人數(shù).當前人數(shù).用水量.用電量.水費.電費",9, "SELECTroom.dormitoryCat,dormitory,room,studentsNum,\ count(student.dormitoryCat),water,electricity,waterCharge,\ electricityChargeFROMroomLEFTJOINstudentONroom.dormitoryCat\ =student.dormitoryCatGROUPBYroom.dormitoryCat")) { m_db.ErrMB(); } RedrawWindow(g_hWnd,NULL,NULL,RDW_INVALIDATE); break; caseIDC_DELETE: { intitemCount; itemCount=ListView_GetItemCount(g_hWndList); for(inti=0;i<itemCount;i++) { if(ListView_GetCheckState(g_hWndList,i)) { wchar_tstr[9]; ListView_GetItemText(g_hWndList,i,2,str,9); intiSize; char*szMultiByte; //寬字符轉(zhuǎn)換成多字節(jié)型 iSize=WideCharToMultiByte(CP_ACP,0,str,-1,NULL,0,NULL,NULL); szMultiByte=newchar[iSize]; WideCharToMultiByte(CP_ACP,0,str,-1,szMultiByte,iSize,NULL,NULL); if(iSize==6) { if(!m_db.DeleteDormitory(szMultiByte)) { m_db.ErrMB(); deleteszMultiByte; break; } //刷新 ListView_DeleteAllItems(g_hWndList); while(ListView_DeleteColumn(g_hWndList,1)) {} if(true!=QueryInput(L"寢室號.樓棟號.寢室號.可住人數(shù).當前人數(shù).用水量.用電量.水費.電費",9, "SELECTroom.dormitoryCat,dormitory,room,studentsNum,\ count(student.dormitoryCat),water,electricity,waterCharge,\ electricityChargeFROMroomLEFTJOINstudentONroom.dormitoryCat\ =student.dormitoryCatGROUPBYroom.dormitoryCat")) { m_db.ErrMB(); } } else { if(!m_db.DeleteStudent(szMultiByte)) { m_db.ErrMB(); deleteszMultiByte; break; } //刷新 ListView_DeleteAllItems(g_hWndList); while(ListView_DeleteColumn(g_hWndList,1)) {} if(true!=QueryInput(L"學號.姓名.所住寢室",3,"SELECT*FROMstudent")) { m_db.ErrMB(); } } deleteszMultiByte; break; } } break; } caseIDC_DELETESOME: { intitemCount; intiSize; inti=0; while(i<(itemCount=ListView_GetItemCount(g_hWndList))) { if(ListView_GetCheckState(g_hWndList,i)) { wchar_tstr[9]; ListView_GetItemText(g_hWndList,i,2,str,9); char*szMultiByte; //寬字符轉(zhuǎn)換成多字節(jié)型 iSize=WideCharToMultiByte(CP_ACP,0,str,-1,NULL,0,NULL,NULL); szMultiByte=newchar[iSize]; WideCharToMultiByte(CP_ACP,0,str,-1,szMultiByte,iSize,NULL,NULL); if(iSize==6) { if(!m_db.DeleteDormitory(szMultiByte)) { m_db.ErrMB(); deleteszMultiByte; return0; } } else { if(!m_db.DeleteStudent(szMultiByte)) { m_db.ErrMB(); deleteszMultiByte; return0; } } deleteszMultiByte; break; } else i++; } if(iSize==6) { //刷新 ListView_DeleteAllItems(g_hWndList); while(ListView_DeleteColumn(g_hWndList,1)) {} if(true!=QueryInput(L"寢室號.樓棟號.寢室號.可住人數(shù).當前人數(shù).用水量.用電量.水費.電費",9, "SELECTroom.dormitoryCat,dormitory,room,studentsNum,\ count(student.dormitoryCat),water,electricity,waterCharge,\ electricityChargeFROMroomLEFTJOINstudentONroom.dormitoryCat\ =student.dormitoryCatGROUPBYroom.dormitoryCat")) { m_db.ErrMB(); } } else { //刷新 ListView_DeleteAllItems(g_hWndList); while(ListView_DeleteColumn(g_hWndList,1)) {} if(true!=QueryInput(L"學號.姓名.所住寢室",3,"SELECT*FROMstudent")) { m_db.ErrMB(); } } break; } caseIDM_ABOUT: DialogBox(g_hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About); break; caseIDM_EXIT: DestroyWindow(g_hWndQuery); DestroyWindow(g_hWndAddStu); DestroyWindow(g_hWndAddRoom); DestroyWindow(hWnd); break; caseIDM_QUERY: { if(firstQuery) { g_hWndQuery=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_DLGQUERY),hWnd,Query); firstQuery=false; } else ShowWindow(g_hWndQuery,SW_NORMAL); break; } caseIDM_ADDSTU: { if(firstAddStu) { g_hWndAddStu=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_STU),hWnd,AddStu); firstAddStu=false; } else ShowWindow(g_hWndAddStu,SW_NORMAL); break; } caseIDM_ADDROOM: { if(firstAddRoom) { g_hWndAddRoom=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_ROOM),hWnd,AddRoom); firstAddRoom=false; } else ShowWindow(g_hWndAddRoom,SW_NORMAL); break; } default: returnDefWindowProc(hWnd,message,wParam,lParam); } break; } caseWM_PAINT: { hdc=BeginPaint(hWnd,&ps); //TODO:在此添加任意繪圖代碼... HFONTguiFont=(HFONT)GetStockObject(DEFAULT_GUI_FONT); SelectObject(hdc,guiFont); SetBkMode(hdc,TRANSPARENT); SendDlgItemMessage(hWnd,IDC_DELETE,WM_SETFONT, (WPARAM)guiFont,TRUE); SendDlgItemMessage(hWnd,IDC_DELETESOME,WM_SETFONT, (WPARA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論