宿舍管理系統(tǒng)報(bào)告_第1頁(yè)
宿舍管理系統(tǒng)報(bào)告_第2頁(yè)
宿舍管理系統(tǒng)報(bào)告_第3頁(yè)
宿舍管理系統(tǒng)報(bào)告_第4頁(yè)
宿舍管理系統(tǒng)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 目 錄一、實(shí)驗(yàn)?zāi)康?二、實(shí)驗(yàn)內(nèi)容3三、實(shí)驗(yàn)環(huán)境3四、需求分析3五、概要設(shè)計(jì)41、方案設(shè)計(jì)42、數(shù)據(jù)結(jié)構(gòu)說(shuō)明43、模塊功能說(shuō)明5六、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果61、登陸界面62、主界面63、錄入模塊74、錄入界面85、打印學(xué)生信息界面86、更新學(xué)生信息界面97、查詢宿舍信息界面98、統(tǒng)計(jì)宿舍信息界面109、學(xué)生宿舍排序10七、源程序11八、心得體會(huì)29學(xué)生宿舍管理系統(tǒng)一、實(shí)驗(yàn)?zāi)康? 熟練掌握線性表的基本操作在順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)上的實(shí)現(xiàn)。、;2 以線性表的各種操作(建立、插入、刪除、遍歷等)的實(shí)現(xiàn)為重點(diǎn);3 掌握線性表的動(dòng)態(tài)分配順序存儲(chǔ)結(jié)構(gòu)的定義和基本操作的實(shí)現(xiàn);4 通過(guò)實(shí)驗(yàn)幫助學(xué)生加深對(duì)C語(yǔ)言的使用(

2、特別是函數(shù)的參數(shù)調(diào)用、指針類型的應(yīng)用和鏈表的建立等各種基本操作)。二、實(shí)驗(yàn)內(nèi)容我組設(shè)計(jì)的是“學(xué)生宿舍管理系統(tǒng)”,主要是針對(duì)住宿學(xué)生個(gè)人信息的管理,適用對(duì)象主要是學(xué)校,以方便學(xué)校對(duì)住宿學(xué)生的管理.包括學(xué)生的姓名、學(xué)號(hào)、性別、專業(yè)、班級(jí)等等。在編寫(xiě)過(guò)程中主要運(yùn)用C語(yǔ)言的基本知識(shí)有:數(shù)據(jù)類型(整形、實(shí)型、字符型、指針、數(shù)組、結(jié)構(gòu)等);運(yùn)算類型(算術(shù)運(yùn)算、邏輯運(yùn)算、自增自減運(yùn)算、賦值運(yùn)算等);程序結(jié)構(gòu)(順序結(jié)構(gòu)、判斷選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu));大程序的功能分解方法(即函數(shù)的調(diào)用與使用)等。三、實(shí)驗(yàn)環(huán)境臺(tái)式計(jì)算機(jī)每人一臺(tái);軟件:Visual C+6。0;四、需求分析該程序是由C語(yǔ)言編寫(xiě)的一個(gè)宿舍管理查詢軟件,

3、本程序在Microsoft Visual C+ 6。0下運(yùn)行,其主要功能是實(shí)現(xiàn)對(duì)學(xué)生信息的錄入、添加、刪除、修改、查詢、統(tǒng)計(jì)。其中查詢可以分別以姓名、學(xué)號(hào)、宿舍號(hào)為關(guān)鍵字查詢學(xué)生信息.統(tǒng)計(jì)可以分別以學(xué)號(hào)、宿舍號(hào)、性別、班級(jí)、專業(yè)為關(guān)鍵字進(jìn)行統(tǒng)計(jì),并且輸出信息按學(xué)號(hào)大小從小到大輸出.五、概要設(shè)計(jì)1、方案設(shè)計(jì)主函數(shù)密碼模塊錄入模塊添加模塊修改模塊刪除模塊查詢模塊統(tǒng)計(jì)模塊退出系統(tǒng)學(xué) 號(hào)姓名宿舍性 別年齡專 業(yè)返 回班 級(jí)按姓名按學(xué)號(hào)按宿舍返 回按性別按學(xué)號(hào)按宿舍返 回按班級(jí)按專業(yè)2、數(shù)據(jù)結(jié)構(gòu)說(shuō)明程序中數(shù)據(jù)主要是學(xué)生信息和宿舍信息,具體屬于類型如下:struct stu char name20; in

4、t num; char sex; int age; int grade; int nclass; char zhuanye30;struct dom int bui_num; int floor_num; int room_num; int bed_num; struct stu st;sMAX,p;3、模塊功能說(shuō)明第一密碼模塊:調(diào)用cipher(),進(jìn)行管理者的注冊(cè)與登錄操作.第二錄入模塊:調(diào)用input_message(),對(duì)住宿學(xué)生信息進(jìn)行錄入。第三添加模塊:調(diào)用append_message(),對(duì)新來(lái)學(xué)生信息進(jìn)行添加錄入。第四修改模塊:調(diào)用revise_message(),對(duì)需修改學(xué)生

5、的信息進(jìn)行修改.第五刪除模塊:調(diào)用delete_message(),對(duì)某一學(xué)生信息進(jìn)行刪除操作。第六查詢模塊:調(diào)用find_message(),分別以姓名、學(xué)號(hào)、宿舍號(hào)對(duì)學(xué)生信息進(jìn)行查詢。第七統(tǒng)計(jì)模塊:調(diào)用census_message(),分別以學(xué)號(hào)、宿舍號(hào)、性別、班級(jí)、專業(yè)方式對(duì)學(xué)生信息進(jìn)行統(tǒng)計(jì),并按學(xué)號(hào)由小到大輸出。六、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果1、登陸界面2、主界面3、錄入模塊輸入學(xué)號(hào)輸入姓名輸入性別輸入年齡輸入年級(jí)輸入班級(jí)輸入專業(yè)是否繼續(xù)錄入結(jié) 束NY宿舍樓號(hào)宿舍樓層號(hào)宿舍房間號(hào)宿舍床號(hào)4、錄入界面5、打印學(xué)生信息界面6、更新學(xué)生信息界面7、查詢宿舍信息界面8、統(tǒng)計(jì)宿舍信息界面9、學(xué)生宿舍排序

6、七、源程序include <stdio.hinclude ”string。h”#define MAX 10define PRINT1 printf(”-n”)define PRINT2 printf(”學(xué)號(hào)學(xué)生姓名-性別年齡-年級(jí)班級(jí)專業(yè)樓號(hào)樓層號(hào)-房間號(hào)床號(hào)nn”)int sum;struct stu char name20; int num; char sex; int age; int grade; int nclass; char zhuanye30;;struct dom int bui_num; int floor_num; int room_num; int bed_num

7、; struct stu st;sMAX,p; /*保存信息*/ save_message() FILE *fp; int i; if(fp=fopen("dom.txt",”wt”))=NULL) printf(”讀文件錯(cuò)誤!n”); return 0; for(i=0;i<sum;i+) if(fwrite(&si,sizeof(struct dom),1,fp)!=1) printf("寫(xiě)文件錯(cuò)誤!n”); fclose(fp); /輸入模塊/ input_message() int i=0; /clrscr(); printf(”nn 錄入學(xué)

8、生信息(最多d個(gè))n”,MAX); printf(” -n"); do printf(”n 第d個(gè)學(xué)生nn”,i+1); printf(”n 學(xué)號(hào): ”); scanf(”d”,&si。st。num); if(si.st.num=0) break; printf(”n 學(xué)生姓名: ”); scanf(”%s",); printf(”n 學(xué)生性別(男生用M表示,女生用F表示):”); getchar(); scanf("c”,si。st.sex); printf("n 學(xué)生年齡: "); scanf(”%d"

9、,&si。st。age); printf(”n 學(xué)生年級(jí): "); scanf("d”,si。st.grade); printf(”n 學(xué)生班級(jí): ”); scanf(”%d”,si。st.nclass); printf(”n 學(xué)生專業(yè): "); scanf(”%s”,si。st。zhuanye); printf("n 宿舍樓號(hào): ”); scanf(”d",si。bui_num); printf(”n 宿舍樓層號(hào): ”); scanf(”d”,&si.floor_num); printf(”n 宿舍房間號(hào): ”); scanf

10、(”d",&si.room_num); printf("n 宿舍床號(hào): ”); scanf("%d”,si。bed_num); i+; while(i<MAX); printf(”n d個(gè)學(xué)生的信息輸入完畢!n",i); sum=i; printf(”n 按任意鍵返回主菜單!”); getchar(); / bioskey(0); return 0; /讀取信息/ int read_message() FILE *fp; int i=0; if(fp=fopen("dom。txt",”rt"))=NULL) p

11、rintf(”nn暫時(shí)還沒(méi)有任何信息,按任意鍵進(jìn)入主菜單選擇基本信息的錄入!*n"); return 0; while(!feof(fp)) fread(&si,sizeof(struct dom),1,fp); i+; fclose(fp); return(i); /*輸出模塊/ output_message() int i=0;/ clrscr();printf(”nn -學(xué)生信息表 nn”);PRINT2;PRINT1;for(i=0;isum;i+)if(si。st。num!=0) printf(”%2d10s6c7d6d5d%8s5d6d%8d9dnn”,si.st

12、。num,,si。st.sex,si。st。age, si。st.grade,si.st.nclass,si.st.zhuanye,si。bui_num,si.floor_num,si.room_num,si.bed_num); printf("n");/ bioskey(0);return 0; / /添加學(xué)生信息/ insert_message() int i=sum,flag=0; char choice; printf("nn 添加一個(gè)新同學(xué)n”); printf(" -n”); do printf("n 新學(xué)號(hào):

13、”); scanf(”%d”,si.st。num); printf("n 學(xué)生姓名: ”); scanf(”s”,); printf("n 學(xué)生性別(男生用M表示,女生用F表示):”); getchar(); scanf(”%c”,si.st.sex); printf(”n 學(xué)生年齡: "); scanf(”d”,si.st.age); printf(”n 學(xué)生年級(jí): "); scanf(”%d",&si。st。grade); printf(”n 學(xué)生班級(jí): ”); scanf(”d”,&si。st。ncla

14、ss); printf(”n 學(xué)生專業(yè): ”); scanf("s",si.st。zhuanye); printf("n 宿舍樓號(hào): ”); scanf("d”,si.bui_num); printf("n 宿舍樓層號(hào): ”); scanf(”%d”,&si。floor_num); printf("n 宿舍房間號(hào): "); scanf(”d”,si。room_num); printf("n 宿舍床號(hào): "); scanf(”d",&si.bed_num); sum+; print

15、f(”n 要繼續(xù)嗎?(Y/N)”); getchar(); scanf(”%c”,choice); if(choice=y choice=Y) flag=1; i+; printf("n 繼續(xù)!n”); else flag=0; while(flag=1); printf(”n 按任意鍵返回主菜單!"); return 0; /*刪除模塊/ del_message() int flag,del_num,i,k; char choice; do printf(”n 輸入要?jiǎng)h除的學(xué)生學(xué)號(hào): "); scanf(”d”,del_num); for(i=0;i<su

16、m;i+) if(del_num=si。st。num) for(k=i;ksum-1;k+) sk=sk+1; sum; printf("nn 繼續(xù)嗎?(Y/N)”); getchar(); scanf(”c",&choice); if(choice=y choice=Y) flag=1; printf(”n 繼續(xù)!n”); else flag=0; while(flag=1); printf(”nn 按任意鍵返回主菜單!”); getchar(); return 0; /*修改模塊/ revise_message()int i=0,choices,revise_n

17、um,flag=0; char choice; do printf("n 輸入要修改的學(xué)生號(hào): ”); scanf(”%d",&revise_num); for(i=0;isum;i+) if(si.st。num=revise_num) printf("n -學(xué)生信息-n"); PRINT1; PRINT2; printf("2d10s6c7d6d%5d8s5d%6d8d9dnn”,si.st。num,,si。st。sex,si。st。age,si.st.grade,si。st。nclass,si。st.zhuany

18、e,si.bui_num,si。floor_num,si。room_num,si。bed_num); printf("n 您要修改哪一項(xiàng)?n”); printf(”n 1。學(xué)號(hào)n"); printf(”n 2。性別n"); printf(”n 3。姓名n"); printf("n 4.年齡n”); printf(”n 5。年級(jí)n"); printf(”n 6。班級(jí)n"); printf(”n 7.專業(yè)n"); printf("n 8.樓號(hào)n"); printf("n 9。樓層號(hào)n&qu

19、ot;); printf("n 10。房間號(hào)n"); printf("n 11。床號(hào)n"); printf("n 請(qǐng)選擇(1-11): "); scanf(”%d”,choices); switch(choices) case 1:printf(”n 輸入修改后的學(xué)號(hào)”); scanf(”d”,&si。st。num);break; case 2:printf(”n 輸入修改后的姓名"); scanf(”s",);break; case 3:printf(”n 輸入修改后的性別”); sc

20、anf(”s",si。st。sex);break; case 4:printf("n 輸入修改后的年齡”); scanf("%d",&si。st.age);break; case 5:printf("n 輸入修改后的年級(jí)”); scanf("%d",&si。st。grade);break; case 6:printf(”n 輸入修改后的班級(jí)”); scanf(”d”,&si。st。nclass);break; case 7:printf("n 輸入修改后的專業(yè)"); scanf(&

21、quot;s",si。st。zhuanye);break; case 8:printf("n 輸入修改后的樓號(hào)”); scanf(”d”,si.bui_num);break; case 9:printf(”n 輸入修改后的樓層號(hào)”); scanf("d”,si。floor_num);break; case 10:printf(”n 輸入修改后的房間號(hào)”); scanf(”d”,&si.room_num);break; case 11:printf(”n 輸入修改后的床號(hào)"); scanf("%d",si。bed_num);br

22、eak; PRINT1; PRINT2; printf(”2d10s6c7d%6d%5d%8s5d6d8d9dnn”,si。st。num,,si。st。sex,si。st。age,si。st.grade,si。st。nclass,si.st。zhuanye,si.bui_num,si。floor_num,si。room_num,si。bed_num); break; if(i=sum) printf("n 該學(xué)生不存在!");/ bioskey(0); return 0;/* printf(”nn 繼續(xù)修改嗎?(Y/N)”); getchar(); sc

23、anf(”%c",choice); if(choice='y| choice=Y') flag=1; printf(”n 繼續(xù)!n"); else flag=0; / while(flag=1); getchar(); printf(”n 按任意鍵返回主菜單! ”); return 0; /*更新模塊/ renew_message() int choice; do printf(”nnn *更新學(xué)生信息*nn”); printf(" 1.添加學(xué)生信息nn”); printf(" 2。刪除學(xué)生信息nn”); printf(” 3。修改學(xué)生信

24、息nn”); printf(” 0。返回主菜單nn"); printf(” 請(qǐng)選擇(0-3): "); scanf(”d”,choice); switch(choice) case 1:insert_message();break; case 2:del_message();break; case 3:revise_message();break; case 0:break; while(choice!=0); return 0; inquire_name() /*按姓名查詢*/ int i,j=0; char inquire_name10; printf("n

25、輸入要查詢的學(xué)生姓名: ”); scanf(”%s”,inquire_name); for(i=0;i<sum;i+) if(strcmp(,inquire_name)=0si。st.num!=0) printf(”n -學(xué)生信息- n”); PRINT1; PRINT2; printf("2d%10s%6c%7d%6d%5d8s5d6d%8d9dnn”,si。st。num,,si。st。sex,si。st。age, si。st。grade,si.st。nclass,si。st。zhuanye,si.bui_num,si。floor_nu

26、m,si。room_num,si.bed_num); else j+; if(j=sum) printf(”n 該學(xué)生不存在!”); return 0; int inquire_num() /*按學(xué)號(hào)查詢/ int i,j=0,inquire_num; printf(”n 輸入要查詢的學(xué)生學(xué)號(hào): ”); scanf(”d”,&inquire_num); for(i=0;i<sum;i+) if(inquire_num=si.st.num) printf(”n -學(xué)生信息-n"); PRINT1; PRINT2; printf("2d%10s%6c7d%6d5d

27、%8s5d6d%8d%9dnn",si。st.num,,si。st.sex,si.st。age, si。st.grade,si.st。nclass,si。st.zhuanye,si。bui_num,si.floor_num,si.room_num,si。bed_num); else j+; if(j=sum) printf(”n 該學(xué)生不存在!”); return 0; /*查詢模塊*/ inquire_message() int choice; do printf(”nn *查詢學(xué)生信息*nn”); printf(” 1。按學(xué)生姓名查詢n”); printf(”

28、 2。按學(xué)生學(xué)號(hào)查詢n"); printf(” 0.回主菜單n"); printf(” 請(qǐng)選擇(02): "); scanf(”d",&choice); switch(choice) case 1:inquire_name();break; case 2:inquire_num();break; case 0:break; while(choice!=0); return 0; count_person() /學(xué)生住宿情況統(tǒng)計(jì)/ int i,j=0,count_grade,count_nclass; char count_zhuanye20; p

29、rintf("n 輸入要統(tǒng)計(jì)的學(xué)生專業(yè),年級(jí),班級(jí): ”); scanf(”10s 8d %8d",&count_zhuanye,count_grade,count_nclass); printf("n 住宿情況”); printf("n -n"); printf("n 姓名 學(xué)號(hào) 樓號(hào) 樓層號(hào) 房間號(hào) 床號(hào) n”); for(i=0;i<sum;i+) if(si.st。grade=count_gradesi.st。nclass=count_nclassstrcmp(si.st。zhuanye,count_zhuany

30、e)=0) printf("n%10s8d8d8d8d%8dn",,si.st。num,si.bui_num,si。floor_num, si.room_num,si。bed_num); else j+; if(j=sum) printf(”n 該學(xué)生不存在!”); return 0; /統(tǒng)計(jì)模塊/ count_message() int choice; do printf(”nn *統(tǒng)計(jì)住宿信息n"); printf(” 1。學(xué)生住宿情況統(tǒng)計(jì)n"); printf(” 0。返回主菜單n”); printf(" 請(qǐng)選擇(01

31、): ”); scanf(”%d",choice); switch(choice) case 1:count_person();break; case 0:break; while(choice!=0); return 0;sort_domitry() /學(xué)生宿舍情況排序*/ int i,j ; printf(”n 宿舍排序n"); printf(” -n”); printf(”n 排序 姓名 學(xué)號(hào) 性別 樓號(hào) 樓層號(hào) 房間號(hào) 床號(hào)n”); for(i=0;i<sum1;i+) for(j=i+1;jsum;j+) if(si。bui_num<sj.bui_nu

32、m) p=si; si=sj; sj=p; else if(si.bui_num=sj。bui_num) if(si。floor_numsj。floor_num) p=si; si=sj; sj=p; else if(si.floor_num=sj。floor_num) if(si.room_numsj。room_num) p=si; si=sj; si=p; else if(si.room_num=sj.room_num) if(si.bed_numsj.bed_num) p=si; si=sj; sj=p; for(i=0;i<sum;i+) if(si。st.num!=0) printf("n12d8s%8d8c8d8d8d%6dnn”,i+1,,si.st。num,si.st。sex,si。bui_num,si。floor_num,si。room_num,si。bed_num); return 0; /排序模塊*/ sort_message() int choice; do printf(”n *宿舍排序*n”); printf(” 1。宿舍情況排序n”); printf(” 0.返回主菜單!n"); printf(" 請(qǐng)選擇(01): "); scanf(”d”,choice); switch(cho

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論