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

下載本文檔

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

文檔簡介

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

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

3、本程序在Microsoft Visual C+ 6。0下運行,其主要功能是實現(xiàn)對學(xué)生信息的錄入、添加、刪除、修改、查詢、統(tǒng)計。其中查詢可以分別以姓名、學(xué)號、宿舍號為關(guān)鍵字查詢學(xué)生信息.統(tǒng)計可以分別以學(xué)號、宿舍號、性別、班級、專業(yè)為關(guān)鍵字進(jìn)行統(tǒng)計,并且輸出信息按學(xué)號大小從小到大輸出.五、概要設(shè)計1、方案設(shè)計主函數(shù)密碼模塊錄入模塊添加模塊修改模塊刪除模塊查詢模塊統(tǒng)計模塊退出系統(tǒng)學(xué) 號姓名宿舍性 別年齡專 業(yè)返 回班 級按姓名按學(xué)號按宿舍返 回按性別按學(xué)號按宿舍返 回按班級按專業(yè)2、數(shù)據(jù)結(jié)構(gòu)說明程序中數(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、模塊功能說明第一密碼模塊:調(diào)用cipher(),進(jìn)行管理者的注冊與登錄操作.第二錄入模塊:調(diào)用input_message(),對住宿學(xué)生信息進(jìn)行錄入。第三添加模塊:調(diào)用append_message(),對新來學(xué)生信息進(jìn)行添加錄入。第四修改模塊:調(diào)用revise_message(),對需修改學(xué)生

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

6、七、源程序include <stdio.hinclude ”string。h”#define MAX 10define PRINT1 printf(”-n”)define PRINT2 printf(”學(xué)號學(xué)生姓名-性別年齡-年級班級專業(yè)樓號樓層號-房間號床號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(”讀文件錯誤!n”); return 0; for(i=0;i<sum;i+) if(fwrite(&si,sizeof(struct dom),1,fp)!=1) printf("寫文件錯誤!n”); fclose(fp); /輸入模塊/ input_message() int i=0; /clrscr(); printf(”nn 錄入學(xué)

8、生信息(最多d個)n”,MAX); printf(” -n"); do printf(”n 第d個學(xué)生nn”,i+1); printf(”n 學(xué)號: ”); 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é)生年級: "); scanf("d”,si。st.grade); printf(”n 學(xué)生班級: ”); scanf(”%d”,si。st.nclass); printf(”n 學(xué)生專業(yè): "); scanf(”%s”,si。st。zhuanye); printf("n 宿舍樓號: ”); scanf(”d",si。bui_num); printf(”n 宿舍樓層號: ”); scanf(”d”,&si.floor_num); printf(”n 宿舍房間號: ”); scanf

10、(”d",&si.room_num); printf("n 宿舍床號: ”); scanf("%d”,si。bed_num); i+; while(i<MAX); printf(”n d個學(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暫時還沒有任何信息,按任意鍵進(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 添加一個新同學(xué)n”); printf(" -n”); do printf("n 新學(xué)號:

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é)生年級: "); scanf(”%d",&si。st。grade); printf(”n 學(xué)生班級: ”); scanf(”d”,&si。st。ncla

14、ss); printf(”n 學(xué)生專業(yè): ”); scanf("s",si.st。zhuanye); printf("n 宿舍樓號: ”); scanf("d”,si.bui_num); printf("n 宿舍樓層號: ”); scanf(”%d”,&si。floor_num); printf("n 宿舍房間號: "); scanf(”d”,si。room_num); printf("n 宿舍床號: "); 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 輸入要刪除的學(xué)生學(xué)號: "); 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é)生號: ”); 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 您要修改哪一項?n”); printf(”n 1。學(xué)號n"); printf(”n 2。性別n"); printf(”n 3。姓名n"); printf("n 4.年齡n”); printf(”n 5。年級n"); printf(”n 6。班級n"); printf(”n 7.專業(yè)n"); printf("n 8.樓號n"); printf("n 9。樓層號n&qu

19、ot;); printf("n 10。房間號n"); printf("n 11。床號n"); printf("n 請選擇(1-11): "); scanf(”%d”,choices); switch(choices) case 1:printf(”n 輸入修改后的學(xué)號”); 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 輸入修改后的年級”); scanf("%d",&si。st。grade);break; case 6:printf(”n 輸入修改后的班級”); scanf(”d”,&si。st。nclass);break; case 7:printf("n 輸入修改后的專業(yè)"); scanf(&

21、quot;s",si。st。zhuanye);break; case 8:printf("n 輸入修改后的樓號”); scanf(”d”,si.bui_num);break; case 9:printf(”n 輸入修改后的樓層號”); scanf("d”,si。floor_num);break; case 10:printf(”n 輸入修改后的房間號”); scanf(”d”,&si.room_num);break; case 11:printf(”n 輸入修改后的床號"); 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(” 請選擇(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é)號查詢/ int i,j=0,inquire_num; printf(”n 輸入要查詢的學(xué)生學(xué)號: ”); 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é)號查詢n"); printf(” 0.回主菜單n"); printf(” 請選擇(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)計/ int i,j=0,count_grade,count_nclass; char count_zhuanye20; p

29、rintf("n 輸入要統(tǒng)計的學(xué)生專業(yè),年級,班級: ”); scanf(”10s 8d %8d",&count_zhuanye,count_grade,count_nclass); printf("n 住宿情況”); printf("n -n"); printf("n 姓名 學(xué)號 樓號 樓層號 房間號 床號 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)計模塊/ count_message() int choice; do printf(”nn *統(tǒng)計住宿信息n"); printf(” 1。學(xué)生住宿情況統(tǒng)計n"); printf(” 0。返回主菜單n”); printf(" 請選擇(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é)號 性別 樓號 樓層號 房間號 床號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(" 請選擇(01): "); scanf(”d”,choice); switch(cho

溫馨提示

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

最新文檔

評論

0/150

提交評論