版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
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)說明43、模塊功能說明5六、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果61、登陸界面62、主界面63、錄入模塊74、錄入界面85、打印學(xué)生信息界面86、更新學(xué)生信息界面97、查詢宿舍信息界面98、統(tǒng)計(jì)宿舍信息界面109、學(xué)生宿舍排序10七、源程序11八、心得體會29學(xué)生宿舍管理系統(tǒng)一、實(shí)驗(yàn)?zāi)康? 熟練掌握線性表的基本操作在順序存儲和鏈?zhǔn)酱鎯ι系膶?shí)現(xiàn)。、;2 以線性表的各種操作(建立、插入、刪除、遍歷等)的實(shí)現(xiàn)為重點(diǎn);3 掌握線性表的動態(tài)分配順序存儲結(jié)構(gòu)的定義和基本操作的實(shí)現(xiàn);4 通過實(shí)驗(yàn)幫助學(xué)生加深對c語言的使用(
2、特別是函數(shù)的參數(shù)調(diào)用、指針類型的應(yīng)用和鏈表的建立等各種基本操作)。二、實(shí)驗(yàn)內(nèi)容我組設(shè)計(jì)的是“學(xué)生宿舍管理系統(tǒng)”,主要是針對住宿學(xué)生個人信息的管理,適用對象主要是學(xué)校,以方便學(xué)校對住宿學(xué)生的管理。包括學(xué)生的姓名、學(xué)號、性別、專業(yè)、班級等等。在編寫過程中主要運(yùn)用c語言的基本知識有:數(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)境臺式計(jì)算機(jī)每人一臺;軟件:visual c+6.0;四、需求分析該程序是由c語言編寫的一個宿舍管理查詢軟件
3、,本程序在microsoft visual c+ 6.0下運(yùn)行,其主要功能是實(shí)現(xiàn)對學(xué)生信息的錄入、添加、刪除、修改、查詢、統(tǒng)計(jì)。其中查詢可以分別以姓名、學(xué)號、宿舍號為關(guān)鍵字查詢學(xué)生信息。統(tǒng)計(jì)可以分別以學(xué)號、宿舍號、性別、班級、專業(yè)為關(guān)鍵字進(jìn)行統(tǒng)計(jì),并且輸出信息按學(xué)號大小從小到大輸出。五、概要設(shè)計(jì)1、方案設(shè)計(jì)主函數(shù)密碼模塊錄入模塊添加模塊修改模塊刪除模塊查詢模塊統(tǒng)計(jì)模塊退出系統(tǒng)學(xué) 號姓名宿舍性 別年齡專 業(yè)返 回班 級按姓名按學(xué)號按宿舍返 回按性別按學(xué)號按宿舍返 回按班級按專業(yè)2、數(shù)據(jù)結(jié)構(gòu)說明程序中數(shù)據(jù)主要是學(xué)生信息和宿舍信息,具體屬于類型如下: struct stu char name20;
4、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; 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(),對需修改
5、學(xué)生的信息進(jìn)行修改。第五刪除模塊:調(diào)用delete_message(),對某一學(xué)生信息進(jìn)行刪除操作。第六查詢模塊:調(diào)用find_message(),分別以姓名、學(xué)號、宿舍號對學(xué)生信息進(jìn)行查詢。第七統(tǒng)計(jì)模塊:調(diào)用census_message(),分別以學(xué)號、宿舍號、性別、班級、專業(yè)方式對學(xué)生信息進(jìn)行統(tǒng)計(jì),并按學(xué)號由小到大輸出。六、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果1、登陸界面2、主界面3、錄入模塊輸入學(xué)號輸入姓名輸入性別輸入年齡輸入年級輸入班級輸入專業(yè)是否繼續(xù)錄入結(jié) 束ny宿舍樓號宿舍樓層號宿舍房間號宿舍床號4、錄入界面5、打印學(xué)生信息界面6、更新學(xué)生信息界面7、查詢宿舍信息界面8、統(tǒng)計(jì)宿舍信息界面9、學(xué)生宿舍
6、排序七、源程序#include #include string.h#define max 10#define 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; str
7、uct stu st;smax,p; /*保存信息*/ save_message() file *fp; int i; if(fp=fopen(dom.txt,wt)=null) printf(讀文件錯誤!n); return 0; for(i=0;isum;i+) if(fwrite(&si,sizeof(struct dom),1,fp)!=1) printf(寫文件錯誤!n); fclose(fp); /*輸入模塊*/ input_message() int i=0; /clrscr(); printf(nn 錄入學(xué)生信息(最多%d個)n,max); printf( -n); do pr
8、intf(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,&si.st.age); printf(n 學(xué)生年級: ); scanf(%d,&si.st.grade); printf(n 學(xué)生班級: ); scanf(%d,&si
9、.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(%d,&si.room_num); printf(n 宿舍床號: ); scanf(%d,&si.bed_num); i+; while(imax); printf(n -%d個學(xué)生的信息輸入完畢!-n,i); sum=i; printf(n 按任意鍵返回主菜單!)
10、; getchar(); / bioskey(0); return 0; /*讀取信息*/ int read_message() file *fp; int i=0; if(fp=fopen(dom.txt,rt)=null) printf(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(n
11、n -學(xué)生信息表- nn);print2;print1;for(i=0;isum;i+)if(si.st.num!=0) printf(%2d%10s%6c%7d%6d%5d%8s%5d%6d%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); printf(n);/ bioskey(0);return 0; / /*添加學(xué)生信息*/ insert_message() in
12、t i=sum,flag=0; char choice; printf(nn 添加一個新同學(xué)n); printf( -n); do printf(n 新學(xué)號: ); 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
13、 學(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(%d,&si.room_num); printf(n 宿舍床號: ); scanf(%d,&si.bed_num); sum+; printf(n 要繼續(xù)嗎?(y/n); getchar(); scanf(%c,&choic
14、e); 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;isum;i+) if(del_num=si.st.num) for(k=i;ksum-1;k+) sk=sk+1; sum-; printf
15、(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_num,flag=0; char choice; do printf(n 輸入要修改的學(xué)生號: ); scanf(%d,&revise_num); for(i=0;isum;
16、i+) if(si.st.num=revise_num) printf(n -學(xué)生信息-n); print1; print2; printf(%2d%10s%6c%7d%6d%5d%8s%5d%6d%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); printf(n 您要修改哪一項(xiàng)?n); printf(n 1.學(xué)號n); printf(n 2.性別n); printf(n
17、 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); 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,s
18、);break; case 3:printf(n 輸入修改后的性別); scanf(%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(%s,&si.st.zhuanye);break;
19、 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);break; print1; print2; printf(%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn,si.st.nu
20、m,,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(); scanf(%c,&choice); if(choice=y| choice=y) flag=1; printf(n 繼續(xù)!n); else flag=0; */ wh
21、ile(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é)生信息nn); printf( 0.返回主菜單nn); printf( 請選擇(0-3): ); scanf(%d,&choice); switch(choice) case 1:insert_message();break; case 2:del
22、_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 輸入要查詢的學(xué)生姓名: ); scanf(%s,inquire_name); for(i=0;isum;i+) if(strcmp(,inquire_name)=0&si.st.num!=0) printf(n -學(xué)生信息- n); print1; print2;
23、printf(%2d%10s%6c%7d%6d%5d%8s%5d%6d%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; int inquire_num() /*按學(xué)號查詢*/ int i,j=0,inquire_num; printf(n 輸入要查詢的學(xué)生學(xué)號: ); sca
24、nf(%d,&inquire_num); for(i=0;isum;i+) if(inquire_num=si.st.num) printf(n -學(xué)生信息-n); print1; print2; printf(%2d%10s%6c%7d%6d%5d%8s%5d%6d%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
25、 該學(xué)生不存在!); return 0; /*查詢模塊*/ inquire_message() int choice; do printf(nn *查詢學(xué)生信息*nn); printf( 1.按學(xué)生姓名查詢n); printf( 2.按學(xué)生學(xué)號查詢n); printf( 0.回主菜單n); printf( 請選擇(0-2): ); scanf(%d,&choice); switch(choice) case 1:inquire_name();break; case 2:inquire_num();break; case 0:break; while(choice!=0); return 0;
26、count_person() /*學(xué)生住宿情況統(tǒng)計(jì)*/ int i,j=0,count_grade,count_nclass; char count_zhuanye20; printf(n 輸入要統(tǒng)計(jì)的學(xué)生專業(yè),年級,班級: ); scanf(%10s %8d %8d,&count_zhuanye,&count_grade,&count_nclass); printf(n 住宿情況); printf(n -n); printf(n 姓名 學(xué)號 樓號 樓層號 房間號 床號 n); for(i=0;isum;i+) if(si.st.grade=count_grade&si.st.nclass=c
27、ount_nclass&strcmp(si.st.zhuanye,count_zhuanye)=0) printf(n%10s%8d%8d%8d%8d%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)
28、; printf( 請選擇(0-1): ); 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;isum-1;i+) for(j=i+1;jsum;j+) if(si.bui_numsj.bui_num) p=si
29、; 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;isum;i+) if(si.st.num!=0) printf(n%12d%8
30、s%8d%8c%8d%8d%8d%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( 請選擇(0-1): ); scanf(%d,&choice); switch(choice) case 1:sort_domitry();break; case 0:brea
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地鐵隧道清洗施工方案
- 智能生產(chǎn)預(yù)測分析-深度研究
- 攝像服務(wù)行業(yè)品牌建設(shè)研究-深度研究
- 道旗施工方案
- 膜結(jié)構(gòu)雨棚施工方案
- 機(jī)床智能運(yùn)維管理研究-深度研究
- 智能化食品包裝設(shè)計(jì)-深度研究
- 數(shù)據(jù)驅(qū)動決策分析篇-深度研究
- 工程倫理與道德困境-深度研究
- 中央2025年國務(wù)院發(fā)展研究中心有關(guān)直屬事業(yè)單位招聘19人筆試歷年參考題庫附帶答案詳解
- 2024年09月北京中信銀行北京分行社會招考(917)筆試歷年參考題庫附帶答案詳解
- 外呼合作協(xié)議
- 小學(xué)二年級100以內(nèi)進(jìn)退位加減法800道題
- 保險公司2025年工作總結(jié)與2025年工作計(jì)劃
- 2024年公司領(lǐng)導(dǎo)在新年動員會上的講話樣本(3篇)
- 眼科護(hù)理進(jìn)修專題匯報
- GB/T 33629-2024風(fēng)能發(fā)電系統(tǒng)雷電防護(hù)
- 深靜脈血栓(DVT)課件
- 2023年四川省廣元市中考數(shù)學(xué)試卷
- GB/T 19885-2005聲學(xué)隔聲間的隔聲性能測定實(shí)驗(yàn)室和現(xiàn)場測量
評論
0/150
提交評論