c++宿舍管理系統(tǒng)實現(xiàn)(共29頁)_第1頁
c++宿舍管理系統(tǒng)實現(xiàn)(共29頁)_第2頁
c++宿舍管理系統(tǒng)實現(xiàn)(共29頁)_第3頁
c++宿舍管理系統(tǒng)實現(xiàn)(共29頁)_第4頁
c++宿舍管理系統(tǒng)實現(xiàn)(共29頁)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上河南工業(yè)大學 計科0906 馬飛揚根據(jù)本報告,可完全實現(xiàn)建立運行宿舍管理系統(tǒng),這是我c+的課程設計。1:工程結(jié)構(gòu)初始信息:2:源代碼main.cpp:#include/預編譯語句#include/#include/#include/using namespace std;/#includeshow.h/文件包含語句#includeshow2.h/#includedenglu.h/#includejianlixinxi.h/#includechaxun.h/#includexiugai.h/#includeshanchu.h/#includehuizong.h/#inc

2、ludexiumima.h/#includezhuce.h/#includeweisheng.h/void main()int choice=0;/記錄選擇denglu();/輸入登錄信息show();/顯示菜單cinchoice;while(choice!=0)/循環(huán)輸入選擇 switch(choice) case 1:jianli();break;/建立宿舍信息 case 2:chaxun();break;/查詢學生信息 case 3:huizong();break;/宿舍信息匯總 case 4:xiugai();break;/修改學生信息 case 5:zhuce();break;/添加

3、學生信息 case 6:shanchu();break;/刪除學生信息 case 7:weisheng();break;/宿舍衛(wèi)生評比 case 8:xiumima();break;/修改登錄信息 case 0:break; default:cout您按錯了!choice;chaxun.h:void chaxue(int renshu);/按學號查詢void chaban(int renshu);/按班級查詢void chasu(int renshu);/按宿舍查詢struct student2/定義存儲信息的結(jié)點結(jié)構(gòu)char name20;char number20;char banji20

4、;int sushehao;student2 array1100;/定義存儲信息的線性結(jié)構(gòu)數(shù)組void chaxun()student2 p;/輔助結(jié)點變量int choice=0;int renshu=0; ifstream fin2(學生信息.txt);if(!fin2)couterror!p.numberp.banjip.sushehao;renshu+;renshu-;fin2.close();cout1:按學號查詢;coutttt 2:按班級查詢n;cout3:按宿舍查詢n;coutchoice;while(choice!=0)/循環(huán)操作 switch(choice) c

5、ase 1:chaxue(renshu);break; case 2:chaban(renshu);break; case 3:chasu(renshu);break; case 0:break; default:cout您輸錯了!endl;break; coutchoice;cout已退出!endl;show2();/顯示主菜單void chaxue(int renshu)student2 p;int i=0;char xuehao20;coutxuehao;/輸入查詢的學號ifstream fin1(學生信息.txt);if(!fin1)couterror!endl;exit(0);for

6、(int j=0;p.numberp.banjip.sushehao;if(!strcmp(p.number,xuehao)/找到相關信息后進行輸出cout姓名:tt 學號:p.numberendl;cout班級:p.banjitt 宿舍號:p.sushehaoendl;i+;break;fin1.close();if(i=0)cout沒有該生信息!endl;void chaban(int renshu)/實現(xiàn)細節(jié)類似上個函數(shù)student2 p;int i=0;char banji20;coutbanji;ifstream fin1(學生信息.txt);if(!fi

7、n1)couterror!endl;exit(0);for(int j=0;p.numberp.banjip.sushehao;if(!strcmp(p.banji,banji)cout姓名:tt 學號:p.numberendl;cout班級:p.banjitt 宿舍號:p.sushehaoendl;i+;fin1.close();if(i=0)cout沒有該班學生信息!endl;void chasu(int renshu)/實現(xiàn)細節(jié)類似上個函數(shù)student2 p;int i=0;int sushehao;coutsushehao;ifstream fin1(學生信

8、息.txt);if(!fin1)couterror!endl;exit(0);for(int j=0;p.numberp.banjip.sushehao;if(p.sushehao=sushehao)cout姓名:tt 學號:p.numberendl;cout班級:p.banjitt 宿舍號:p.sushehaoendl;i+;fin1.close();if(i=0)cout該宿舍無人入住!endl;denglu.h:void denglu()char yonghu120;/存儲用戶輸入的登錄信息char mima110;/char yonghu220;/存儲當前系統(tǒng)

9、設定的登錄信息char mima210;/coutyonghu1;coutmima1;ifstream fin1(登錄信息.txt);if(!fin1)couterror!yonghu2 mima2;fin1.close();if(strcmp(yonghu1,yonghu2)|strcmp(mima1,mima2)/判斷是否為合法用戶cout用戶名或密碼錯誤!endl;exit(0);huizong.h:void huizong()char louhao20;int loucheng=0;int fangjian=0;int rongliang=0;int i=0;/記錄宿舍樓的基本信息st

10、udent2 array4100;/存儲宿舍樓的所有學生信息int susheshu=0;int renshu=0;/記錄宿舍樓已入住的宿舍數(shù)及總?cè)胱∪藬?shù)ifstream fin(學生信息.txt);if(!fin)couterror!array4renshu.numberarray4renshu.banjiarray4renshu.sushehao;renshu+;renshu-;/記錄入住人數(shù)fin.close();if(renshu!=0) susheshu+;/ for(i=1;irenshu;i+)/計算已入住的宿舍個數(shù) if(array4i.sus

11、hehao!=array4i-1.sushehao) susheshu+; ifstream fin1(宿舍信息.txt);if(!fin1)couterror!louhao;/宿舍樓編號fin1loucheng;/樓層個數(shù)fin1fangjian;/每層房間數(shù)fin1rongliang;/房間容量fin1.close();coutlouhao宿舍樓信息匯總:endl;cout已入住:renshu名學生;/輸出已入住的人數(shù)couttt 剩余容納量:loucheng*fangjian*rongliang-renshuendl;/剩余容納量cout空房間數(shù):loucheng*fangjian-su

12、sheshuendl;/空房間數(shù)show2();/顯示主菜單jianlixinxi.h:struct student/存儲學生信息的單鏈表結(jié)點存儲結(jié)構(gòu)char name20;char number20;char banji20;int sushehao;student*next;struct sushe/存儲各房間信息的單鏈表頭結(jié)點int renshu;student*next;void jianli()int choice;coutchoice;/if(choice)ofstream fout3;fout3.open(學生信息.txt);if(!fout3)couterrorendl;exi

13、t(0);fout3.eof();/格式化當前記錄的學生信息fout3.close; char louhao20;int loucheng;int fangjian;int rongliang;/存儲宿舍樓基本信息 coutlouhao;/coutloucheng;/coutfangjian;/coutrongliang;/ofstream fout1(宿舍信息.txt);if(!fout1)couterror!endl;exit(0);fout1louhaoendl;/輸入到文件fout1louchengendl;/fout1fangjianendl;/fout1rongliangendl;

14、/fout1.close();for(int i=0;iloucheng;i+)/按樓層數(shù)逐個建立每層信息sushe*lou=new sushefangjian;/定義存儲每層信息的線性結(jié)構(gòu)for(int j=0;jfangjian;j+)/對該線性結(jié)構(gòu)進行初始化louj.renshu=0;/louj.next=NULL;/student*p=NULL;/輔助結(jié)點變量p=new student;cout第i+1層信息(宿舍號-1進入下一層):endl;cout宿舍號((i+1)*100(i+1)*100+fangjian-1p-sushehao;/輸入宿舍號以進行下面的操作while(p-su

15、shehao!=-1)sushe*q=NULL;coutp-name;coutp-number;coutp-banji;if(loup-sushehao%100.renshusushehao%100.renshu=0)/空房間直接插入loup-sushehao%100.next=p;p-next=NULL;loup-sushehao%100.renshu+;else/非空房間先找到鏈表尾結(jié)點再進行插入q=loup-sushehao%100.next;for(int m=0;msushehao%100.renshu-1;m+)q=q-next;q-next=p;p-next=NULL;loup-

16、sushehao%100.renshu+;else/房間已滿輸入無效cout該宿舍已滿,此次輸入無效!endl;p=new student;coutp-sushehao;if(p-sushehao=-1)/退出本層信息輸入后輸入本層信息至文件ofstream fout2;fout2.open(學生信息.txt,ios:app);if(!fout2)couterrorendl;exit(0);for(j=0;jfangjian;j+)if(louj.renshu!=0)p=louj.next;for(int s=0;slouj.renshu;s+)fout2nameendl;fout2numbe

17、rendl;fout2banjiendl;fout2sushehaonext;fout2.close();deletelou;cout已建立宿舍信息!endl;show2();/顯示主菜單shanchu.h:void mingshan();/按名字進行刪除void xueshan();/按學號進行刪除void shanchu()int choice=0;cout1:按名字刪除:;couttt 2:按學號刪除:n;coutchoice;while(choice!=0)/循環(huán)操作switch(choice)case 1:mingshan();break;case 2:xueshan();break

18、;case 0:break;default:cout您按錯了!endl;break;coutchoice;cout已退出!endl;show2();/顯示主菜單void mingshan() student2 array3100;/存儲當前所有學生信息int renshu=0;char name20;/存儲待刪除信息的名字int j=0;ifstream fin(學生信息.txt);if(!fin)couterror!array3renshu.numberarray3renshu.banjiarray3renshu.sushehao;renshu+;rensh

19、u-;/記錄人數(shù)fin.close();coutname;/輸入待刪除名字for(int i=0;irenshu;i+)/循環(huán)查找線性表if(!strcmp(,name)/找到相關信息 ofstream fout3; fout3.open(學生信息.txt); if(!fout3) couterrorendl; exit(0); fout3.eof();/格式化當前信息 fout3.close; j+; ofstream fout; fout.open(學生信息.txt,ios:app); if(!fout) couterror!endl; exit(0); for(i

20、nt s=0;srenshu;s+)/輸入非刪除信息至文件 if(s!=i) endl; foutarray3s.numberendl; foutarray3s.banjiendl; foutarray3s.sushehaoendl; fout.close(); cout已刪除!endl; break;if(j=0)/查找失敗時cout不存在該生信息!endl;void xueshan()/實現(xiàn)細節(jié)于上個函數(shù) student2 array4100;int renshu=0;char number20;int j=0;ifstream fin(學生信息.txt);

21、if(!fin)couterror!array4renshu.numberarray4renshu.banjiarray4renshu.sushehao;renshu+;renshu-;fin.close();coutnumber;for(int i=0;irenshu;i+)if(!strcmp(array4i.number,number) ofstream fout3; fout3.open(學生信息.txt); if(!fout3) couterrorendl; exit(0); fout3.eof(); fout3.close; j+; ofstrea

22、m fout; fout.open(學生信息.txt,ios:app); if(!fout) couterror!endl; exit(0); for(int s=0;srenshu;s+) if(s!=i) endl; foutarray4s.numberendl; foutarray4s.banjiendl; foutarray4s.sushehaoendl; fout.close(); cout已刪除!endl; break;if(j=0)cout不存在該生信息!endl;show.h:void show()/主界面顯示信息time_t t;time(&t

23、); cout -宿舍管理查詢系統(tǒng)-endl; cout ttt 時間: ctime(&t); cout-n; cout1:建立宿舍信息; coutttttttt 2:查詢學生信息n; cout3:宿舍信息匯總; coutttttttt 4:修改學生信息n; cout5:注冊學生信息; coutttttttt 6:刪除學生信息n; cout7:宿舍衛(wèi)生評比; coutttttttt 8:修改登錄信息n; cout-n; cout請選擇(0退出):;show2.h:void show2()/進行操作后顯示的主界面信息 cout-n; cout1:建立宿舍信息; coutttttttt 2:查詢學

24、生信息n; cout3:宿舍信息匯總; coutttttttt 4:修改學生信息n; cout5:注冊學生信息; coutttttttt 6:刪除學生信息n; cout7:宿舍衛(wèi)生評比; coutttttttt 8:修改登錄信息n; cout-n; cout請選擇(0退出):;weisheng.h:struct wei/宿舍衛(wèi)生存儲結(jié)構(gòu)int sushehao;int score;void sort(wei*l,int low,int high);/快速排序函數(shù)int partion(wei*l,int low,int high);/返回樞軸位置void weisheng()student2

25、array5100;/學生信息存儲結(jié)構(gòu)wei sheng100;/宿舍衛(wèi)生信息存儲結(jié)構(gòu)int renshu=0;int susheshu=0;int i=0;ifstream fin1(學生信息.txt);if(!fin1)couterror!array5renshu.numberarray5renshu.banjiarray5renshu.sushehao;renshu+;renshu-;/記錄人數(shù)fin1.close();if(renshu!=0)shengsusheshu.sushehao=array5i.sushehao;susheshu+;for(i

26、=1;irenshu;i+)/建立已入住的宿舍信息存儲數(shù)組if(array5i-1.sushehao!=array5i.sushehao)shengsusheshu.sushehao=array5i.sushehao;susheshu+;cout為各宿舍打分(0100):endl;/為各入住宿舍打分for(i=0;isusheshu;i+)cout宿舍shengi.sushehaoshengi.score;wei*l;l=sheng;i=susheshu-1;sort(l,0,i);/按得分對宿舍信息進行排序ofstream fout3;fout3.open(宿舍衛(wèi)生信息.txt);if(!f

27、out3)couterror!endl;exit(0); fout3.eof();/格式化上次得分信息fout3.close();ofstream fout2;fout2.open(宿舍衛(wèi)生信息.txt,ios:app);if(!fout2)couterror!endl;exit(0);for(i=0;isusheshu;i+)/寫入宿舍衛(wèi)生信息至文件fout2shengi.sushehaoendl;fout2shengi.scoreendl;fout2.close();int susheshu2=susheshu;cout得分最高的宿舍為:=2&shengsusheshu2-2.score=

28、shengsusheshu2-1.score)/循環(huán)輸出最高得分宿舍cout,;coutshengsusheshu2-2.sushehao;susheshu2-;coutendl;i=0;if(shengi.score60)cout不及格宿舍有:shengi.sushehao;i+;while(isusheshu&shengi.score60)/循環(huán)輸出不及格宿舍信息cout,; coutshengi.sushehao;i+;coutendl;elsecout所有宿舍均及格!endl;elsecout當前宿舍信息為空!endl;cout各宿舍得分已輸入文件!endl;show2();/顯示主菜

29、單void sort(wei*l,int low,int high)/快速排序函數(shù)if(lowhigh)int key=partion(l,low,high);sort(l,low,key-1); sort(l,key+1,high);int partion(wei*l,int low,int high)/返回樞軸位置int p=0;int q=0;int key=llow.score;while(lowhigh)while(low=key)-high;p=llow.score;q=llow.sushehao;llow.score=lhigh.score;llow.sushehao=lhigh

30、.sushehao;lhigh.score=p;lhigh.sushehao=q;while(lowhigh&llow.score=key)+low;p=llow.score;q=llow.sushehao;llow.score=lhigh.score;llow.sushehao=lhigh.sushehao;lhigh.score=p;lhigh.sushehao=q;return low;xiugai.h:void mingxiu(int renshu);/按名字修改void xuexiu(int renshu);/按學號修改student2 array2100;/存儲學生信息void x

31、iugai()int choice=0;int renshu=0;ifstream fin(學生信息.txt);if(!fin)couterror!array2renshu.numberarray2renshu.banjiarray2renshu.sushehao;renshu+;renshu-;fin.close();cout1:按名字修改:;couttt 2:按學號修改:n;coutchoice;while(choice!=0)switch(choice)case 1:mingxiu(renshu);break;case 2:xuexiu(renshu);

32、break;case 0:break;default:cout您按錯了!endl;break;coutchoice;cout已退出!endl;show2();void mingxiu(int renshu)char na20;int j=0;coutna;for(int i=0;irenshu;i+)if(!strcmp(,na)/找到相關信息進行修改 ; coutarray2i.number; coutarray2i.banji; coutarray2i.sushehao; j+; ofstream fout3; fout3.open(

33、學生信息.txt); if(!fout3) couterrorendl; exit(0); fout3.eof(); fout3.close; ofstream fout; fout.open(學生信息.txt,ios:app); if(!fout) couterror!endl; exit(0); for(int s=0;srenshu;s+)/寫入修改后的信息至文件 endl; foutarray2s.numberendl; foutarray2s.banjiendl; foutarray2s.sushehaoendl; fout.close(); cout

34、已修改,; break;if(j=0)/查找失敗cout不存在該生信息!endl;void xuexiu(int renshu)/實現(xiàn)細節(jié)類是與上個函數(shù)char number20;int j=0;coutnumber;for(int i=0;irenshu;i+)if(!strcmp(array2i.number,number) ; coutarray2i.number; coutarray2i.banji; coutarray2i.sushehao; j+; ofstream fout3; fout3.open(學生信息.txt); if(!fout3) co

35、uterrorendl; exit(0); fout3.eof(); fout3.close; ofstream fout; fout.open(學生信息.txt,ios:app); if(!fout) couterror!endl; exit(0); for(int s=0;srenshu;s+) endl; foutarray2s.numberendl; foutarray2s.banjiendl; foutarray2s.sushehaoendl; fout.close(); cout已修改,; break;if(j=0)cout不存在該生信息!endl;

36、xiumima.h:void xiumima()char yonghu120;/存儲登錄信息的輔助數(shù)組char mima110;/char yonghu20;/char mima10;/ifstream fin1(登錄信息.txt);if(!fin1)couterror!yonghu/讀入舊的登錄信息 mima;/fin1.close();coutyonghu1;coutmima1;if(!(strcmp(yonghu1,yonghu)|strcmp(mima1,mima)/判斷是否為合法用戶coutyonghu;coutmima;cout已完成修改!endl;ofstream fout(登錄信息.txt);if(!fout)couterror!endl;exit(0);foutyonghuendl;/修改登錄信息foutmimaendl;/e

溫馨提示

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

評論

0/150

提交評論