![宿舍管理系統(tǒng)程序設(shè)計(jì)報(bào)告_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/21/568d2481-bc64-46e3-b030-ea673b51f030/568d2481-bc64-46e3-b030-ea673b51f0301.gif)
![宿舍管理系統(tǒng)程序設(shè)計(jì)報(bào)告_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/21/568d2481-bc64-46e3-b030-ea673b51f030/568d2481-bc64-46e3-b030-ea673b51f0302.gif)
![宿舍管理系統(tǒng)程序設(shè)計(jì)報(bào)告_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/21/568d2481-bc64-46e3-b030-ea673b51f030/568d2481-bc64-46e3-b030-ea673b51f0303.gif)
![宿舍管理系統(tǒng)程序設(shè)計(jì)報(bào)告_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/21/568d2481-bc64-46e3-b030-ea673b51f030/568d2481-bc64-46e3-b030-ea673b51f0304.gif)
![宿舍管理系統(tǒng)程序設(shè)計(jì)報(bào)告_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/21/568d2481-bc64-46e3-b030-ea673b51f030/568d2481-bc64-46e3-b030-ea673b51f0305.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課 程 設(shè) 計(jì) 報(bào) 告 課 程 名 稱 計(jì)算機(jī)通信工程學(xué)院 專 業(yè) 網(wǎng)絡(luò)工程 班 級(jí) 1班 學(xué) 生 姓 名 鮑蘇莉 學(xué) 號(hào) 10021240101 設(shè) 計(jì) 題 目 學(xué)生宿舍管理系統(tǒng) 指 導(dǎo) 教 師 張瑩 2012 年 6月 10日至2012年 6月 17日題目:宿舍管理系統(tǒng)目錄:1、 問題描述:為宿舍管理人員編寫一個(gè)宿舍管理查詢軟體。2、 需求分析:宿舍管理系統(tǒng)主要是解決宿舍學(xué)生的查詢、修改的問題,在計(jì)算機(jī)上實(shí)現(xiàn)學(xué)生的錄入,輸出,查詢,更新,修改,添加等功能,每次錄入完畢好后,文件中就會(huì)有相應(yīng)的學(xué)生的信息,并再次調(diào)用輸出的時(shí)候,錄入的學(xué)生會(huì)相應(yīng)的輸出。明確規(guī)定:(1)、輸入的學(xué)生的學(xué)號(hào),年齡,
2、年級(jí),宿舍樓層號(hào),宿舍樓號(hào)是整數(shù)類型,名字,專業(yè)是字符類型。(2)、輸出:定義#define PRINT1 #define PRINT2 為輸出語句,輸出類型有整形和字符型。(3)達(dá)成的功能:(1)錄入學(xué)生信息(2)打印學(xué)生信息 (3)更新學(xué)生信息 (4)查詢宿舍信息(5)學(xué)生宿舍排序(0)退出系統(tǒng)更新(1)添加學(xué)生信息(2)刪除學(xué)生信息(3)修改學(xué)生信息(0)返回主菜單查詢(1)按學(xué)號(hào)查找(2)按姓名查找(0)退出可以連續(xù)操作。測試數(shù)據(jù):錄入正確的信息時(shí):輸入錯(cuò)誤信息的時(shí)候:3、 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì):struct stu char name20; int num; char sex; int ag
3、e; int grade; char zhuanye30;struct dom int bui_num; int floor_num; struct stu st;sMAX,p;4、 概要設(shè)計(jì):定義了函數(shù)save(),保存輸入的學(xué)生信息到文件中。輸入函數(shù)shuru()和input()函數(shù),用來從計(jì)算機(jī)界面輸入學(xué)生的信息。讀取函數(shù)read(),從文件中讀取保存的學(xué)生的信息。輸出函數(shù)output()輸出輸入的學(xué)生信息。添加函數(shù) insert()用來添加學(xué)生信息。 del(), revise(),刪除和修改函數(shù)。按姓名和學(xué)號(hào)查詢的函數(shù) inquire_name(),inquire_num()。(2)
4、 詳細(xì)設(shè)計(jì):宿舍管理系統(tǒng)菜單頁面menu()更新學(xué)生信息打印學(xué)生信息退出系統(tǒng)錄入學(xué)生信息查詢學(xué)生信息學(xué)生宿舍排序添加學(xué)生信息刪除學(xué)生信息修改學(xué)生信息返回主菜單宿舍情況排序返回主菜單按學(xué)生姓名查詢返回主菜單按學(xué)生學(xué)號(hào)查詢學(xué)生信息以保存在文件中5、 測試分析:(1) 實(shí)際測試的數(shù)據(jù):11,ff,f,22,2,fa,2,2(2) 預(yù)期結(jié)果:- 學(xué)號(hào)-學(xué)生姓名-性別-年齡-年級(jí)-專業(yè)-樓號(hào)-樓層號(hào) 11 ff f 22 2 fa 2 2(3)實(shí)際運(yùn)行與分析:在輸入學(xué)生的信息后,在主函數(shù)中在調(diào)用輸出函數(shù)和讀出函數(shù),然后在主屏幕上就會(huì)顯示上顯示的信息。(3) 算法的時(shí)空分析及改進(jìn)思想:在輸入學(xué)生的信息后,
5、就會(huì)寫進(jìn)二進(jìn)制的文件中,在從文件中讀出來,在主函數(shù)調(diào)用即在主屏幕上輸出學(xué)生的信息。改進(jìn)思想,在輸入函數(shù)是定義學(xué)生的最大人數(shù)是#define MAX 40,然后輸入學(xué)生時(shí)必須40個(gè)學(xué)生全部輸入才可進(jìn)行下一步的操作,所以程序比較簡單,在此基礎(chǔ)上,進(jìn)行改進(jìn),在輸入一個(gè)學(xué)生信息時(shí)主屏幕會(huì)顯示是否繼續(xù),如果繼續(xù)則繼續(xù)輸入下一個(gè)學(xué)生的信息,如果則返回到主菜單。6總結(jié):在剛開始編程序時(shí),會(huì)遇到很多很多的問題和困難,主要還是對(duì)基礎(chǔ)知識(shí)掌握的不扎實(shí)造成的,一些簡單的語句也會(huì)出現(xiàn)最簡單的錯(cuò)誤,隨著幾天的訓(xùn)練在編程方面會(huì)有點(diǎn)進(jìn)步但是還需要進(jìn)一步的學(xué)習(xí), 調(diào)試過程中,經(jīng)常會(huì)出現(xiàn)輸入或顯示為亂碼的情況,這往往是上下定義
6、的數(shù)據(jù)類型不同或定義數(shù)組長度不夠所造成的。有時(shí)候程序中還會(huì)出現(xiàn)錄入五個(gè)數(shù)據(jù)而只顯示四個(gè)的情況,這也往往是由于定義的結(jié)構(gòu)體數(shù)組長度過低所造成的。像這類問題只要把數(shù)據(jù)類型都定義成字符型,并且定義一個(gè)合理的數(shù)組長度往往都能解決。在進(jìn)行程序的編寫過程中,注意簡單的符號(hào)的漏輸。學(xué)生的宿舍管理系統(tǒng),用到文件的存儲(chǔ),輸入學(xué)生信息需要寫文件,寫到文件里,在輸出學(xué)生信息時(shí),在進(jìn)行文件的讀操作,在此程序上用到的是二進(jìn)制文件。7、主要參考文獻(xiàn):1.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì), 蘇仕華 等編著, 機(jī)械工業(yè)出版社, 2005.5.第一版;2.算法與數(shù)據(jù)結(jié)構(gòu),范策等編著,機(jī)械工業(yè)出版社 2004,第一版。3數(shù)據(jù)結(jié)構(gòu) (C語言版),
7、嚴(yán)蔚敏等編著,清華大學(xué)出版社 20044數(shù)據(jù)結(jié)構(gòu)實(shí)用教程(第二版),徐孝凱編著,清華大學(xué)出版社 20065數(shù)據(jù)結(jié)構(gòu),謝楚屏等編著,人民郵電出版社源代碼:#include #include#include string.h#define MAX 40#define PRINT1 printf(-n)#define PRINT2 printf(學(xué)號(hào)-學(xué)生姓名-性別-年齡-年級(jí)-專業(yè)-樓號(hào)-樓層號(hào)nn)int sum=0;int number=6;int a=0;struct stu char name20; int num; char sex; int age; int grade; char z
8、huanye30;struct dom int bui_num; int floor_num; struct stu st;sMAX,p; /保存信息 save() FILE *fp; int i; if(fp=fopen(dom.txt,wt)=NULL)/打開文件 printf(讀文件錯(cuò)誤!n); return 0; for(i=1;i=sum;i+) if(fwrite(&si,sizeof(struct dom),1,fp)!=1)/寫文件 printf(寫文件錯(cuò)誤!n); return 0; fclose(fp); int menu()/菜單界面 int i; printf(nnn
9、*宿舍管理系統(tǒng)*nn); printf(1.錄入學(xué)生信息nn); printf(2.打印學(xué)生信息nn); printf(3.更新學(xué)生信息nn); printf(4.查詢宿舍信息nn); printf(5.學(xué)生宿舍排序nn); printf(0.退出系統(tǒng)nn); printf(請(qǐng)選擇(0-5):); do printf(請(qǐng)選擇:); scanf(%d,&i); while(i5); return i;int shuru() /輸入學(xué)生的信息 printf(n學(xué)號(hào): ); scanf(%d,&sa.st.num); if(sa.st.num=0) return 0; printf(n學(xué)生姓名: )
10、; scanf(%s,); printf(n學(xué)生性別(男生用M表示,女生用F表示):); getchar(); scanf(%c,&sa.st.sex); printf(n學(xué)生年齡: ); scanf(%d,&sa.st.age); printf(n學(xué)生年級(jí): ); scanf(%d,&sa.st.grade); printf(n學(xué)生專業(yè): ); scanf(%s,&sa.st.zhuanye); printf(n宿舍樓號(hào): ); scanf(%d,&sa.bui_num); printf(n宿舍樓層號(hào): ); scanf(%d,&sa.floor_num); return
11、 0; /輸入模塊 input() char ch; printf(nn錄入學(xué)生信息(最多%d個(gè))n,MAX); printf(-n); printf(請(qǐng)輸入第%d個(gè)學(xué)生的信息n,+a);shuru(); sum=a;printf(是否繼續(xù)輸入?:n);scanf(%c,&ch);ch=getchar();while(ch=y)printf(請(qǐng)輸入第%d個(gè)學(xué)生的信息n,+a); shuru(); sum=a;ch=getchar(); printf(n);printf(是否繼續(xù)輸入?:);scanf(%c,&ch); if(ch=n) printf(n-%d個(gè)學(xué)生的信息輸入完畢!-n,a);
12、sum=a; printf(n按任意鍵返回主菜單!); getchar();return 0; /讀取信息 int read() FILE *fp; int i=1; if(fp=fopen(dom.txt,rt)=NULL) printf(nn*暫時(shí)還沒有任何信息,按任意鍵進(jìn)入主菜單選擇基本信息的錄入!*n); return 0; while(!feof(fp)/判斷函數(shù)是否真的結(jié)束 fread(&si,sizeof(struct dom),1,fp); i+; fclose(fp); return(i); /輸出模塊 output() int i;printf(nn -學(xué)生信息表- nn)
13、;PRINT2;PRINT1;for(i=1;i=sum;i+)if(si.st.num!=0) printf(%2d%10s%6c%7d%6d%8s%5d%6dnn,si.st.num,,si.st.sex,si.st.age, si.st.grade,si.st.zhuanye,si.bui_num,si.floor_num); printf(n); /添加學(xué)生信息 insert() int i=sum+1,flag=0; char choice; printf(nn 添加一個(gè)新同學(xué)n); printf( -n); do printf(n 新學(xué)號(hào): ); scanf(%
14、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é)生專業(yè): ); scanf(%s,si.st.zhuanye); printf(n 宿舍樓號(hào): ); scanf(%d,&si.bui_num); printf(n 宿舍樓層號(hào)
15、: ); scanf(%d,&si.floor_num); sum+; printf(n 要繼續(xù)嗎?(Y/N); getchar(); scanf(%c,&choice); if(choice=y | choice=Y) flag=1; i+; printf(n 繼續(xù)!n); else if(choice=n|choice=N) flag=0; while(flag=1); printf(n 按任意鍵返回主菜單!); return 0; /刪除模塊 del() int flag,del,i,k; char choice; do printf(n 輸入要?jiǎng)h除的學(xué)生學(xué)號(hào): ); scanf(%d,
16、&del); for(i=1;i=sum;i+) if(del=si.st.num) for(k=i;k=sum-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 if(choice=n|choice=N) flag=0; while(flag=1); printf(nn 按任意鍵返回主菜單!); getchar(); return 0; /修改模塊 revise()int i,choices,r
17、evise_num,flag=0; do printf(n 輸入要修改的學(xué)生號(hào): ); scanf(%d,&revise_num); for( i=1;isum) printf(n 該學(xué)生不存在!); return 0; while(flag=1); getchar(); printf(n 按任意鍵返回主菜單! ); return 0; /更新模塊 renew_message() do printf(nnn *更新學(xué)生信息*nn); printf( 1.添加學(xué)生信息nn); printf( 2.刪除學(xué)生信息nn); printf( 3.修改學(xué)生信息nn); printf( 0.返回主菜單nn)
18、; printf( 請(qǐng)選擇(0-3): ); scanf(%d,&number); switch(number) case 1:insert();break; case 2:del();break; case 3:revise();break; case 0:break; while(number!=0); return 0;/按姓名查詢 inquire_name() int i,j=1; char inquire_name10; printf(n 輸入要查詢的學(xué)生姓名: ); scanf(%s,inquire_name); for(i=1;isum) printf(n 該學(xué)生不存在!); r
19、eturn 0; /按學(xué)號(hào)查詢 int inquire_num() int i,j=0,inquire_num; printf(n 輸入要查詢的學(xué)生學(xué)號(hào): ); scanf(%d,&inquire_num); for(i=1;isum) printf(n 該學(xué)生不存在!); return 0; /查詢模塊 inquire_message() int choice; do printf(nn *查詢學(xué)生信息*nn); printf( 1.按學(xué)生姓名查詢n); printf( 2.按學(xué)生學(xué)號(hào)查詢n); printf( 0.回主菜單n); printf( 請(qǐng)選擇(0-2): ); scanf(%d,
20、&choice); switch(choice) case 1:inquire_name();break; case 2:inquire_num();break; case 0:break; while(choice!=0); return 0; /學(xué)生宿舍情況排序sort_domitry() int i,j ; printf(n 宿舍排序n); printf( -n); printf(n 排序 姓名 學(xué)號(hào) 性別 樓號(hào) 樓層號(hào) n); for(i=1;i=sum;i+) for(j=i+1;jsj.bui_num) 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; for(i=1;i=sum;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球初級(jí)沖擊式破碎機(jī)行業(yè)調(diào)研及趨勢分析報(bào)告
- 座次禮儀健康管理系施怡寧講解
- 2025個(gè)人借款樓房抵押合同范本
- 2025標(biāo)準(zhǔn)材料采購合同范本
- 打灰工班組承包合同
- 生活污水處理合同書范本年
- 墻面廣告租賃合同
- 提高人際溝通與協(xié)調(diào)的技巧
- 建筑工程施工總承包合同
- 活動(dòng)板房工程合同范本
- 誡子書教案一等獎(jiǎng)?wù)]子書教案
- 《民航服務(wù)溝通技巧》教案第16課民航服務(wù)人員平行溝通的技巧
- 深圳市物業(yè)專項(xiàng)維修資金管理系統(tǒng)操作手冊(cè)(電子票據(jù))
- 2023年鐵嶺衛(wèi)生職業(yè)學(xué)院高職單招(數(shù)學(xué))試題庫含答案解析
- 10000中國普通人名大全
- 起重機(jī)械安裝吊裝危險(xiǎn)源辨識(shí)、風(fēng)險(xiǎn)評(píng)價(jià)表
- 華北理工兒童口腔醫(yī)學(xué)教案06兒童咬合誘導(dǎo)
- 中國建筑項(xiàng)目管理表格
- 高一3班第一次月考總結(jié)班會(huì)課件
- 公共政策分析導(dǎo)論教學(xué)課件匯總完整版電子教案
- 我國油菜生產(chǎn)機(jī)械化技術(shù)(-119)
評(píng)論
0/150
提交評(píng)論