版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課 程 設(shè) 計 報 告 課 程 名 稱 計算機(jī)通信工程學(xué)院 專 業(yè) 網(wǎng)絡(luò)工程 班 級 1班 學(xué) 生 姓 名 鮑蘇莉 學(xué) 號 10021240101 設(shè) 計 題 目 學(xué)生宿舍管理系統(tǒng) 指 導(dǎo) 教 師 張瑩 2012 年 6月 10日至2012年 6月 17日題目:宿舍管理系統(tǒng)目錄:1、 問題描述:為宿舍管理人員編寫一個宿舍管理查詢軟體。2、 需求分析:宿舍管理系統(tǒng)主要是解決宿舍學(xué)生的查詢、修改的問題,在計算機(jī)上實現(xiàn)學(xué)生的錄入,輸出,查詢,更新,修改,添加等功能,每次錄入完畢好后,文件中就會有相應(yīng)的學(xué)生的信息,并再次調(diào)用輸出的時候,錄入的學(xué)生會相應(yīng)的輸出。明確規(guī)定:(1)、輸入的學(xué)生的學(xué)號,年齡,
2、年級,宿舍樓層號,宿舍樓號是整數(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é)號查找(2)按姓名查找(0)退出可以連續(xù)操作。測試數(shù)據(jù):錄入正確的信息時:輸入錯誤信息的時候:3、 數(shù)據(jù)結(jié)構(gòu)設(shè)計: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è)計:定義了函數(shù)save(),保存輸入的學(xué)生信息到文件中。輸入函數(shù)shuru()和input()函數(shù),用來從計算機(jī)界面輸入學(xué)生的信息。讀取函數(shù)read(),從文件中讀取保存的學(xué)生的信息。輸出函數(shù)output()輸出輸入的學(xué)生信息。添加函數(shù) insert()用來添加學(xué)生信息。 del(), revise(),刪除和修改函數(shù)。按姓名和學(xué)號查詢的函數(shù) inquire_name(),inquire_num()。(2)
4、 詳細(xì)設(shè)計:宿舍管理系統(tǒng)菜單頁面menu()更新學(xué)生信息打印學(xué)生信息退出系統(tǒng)錄入學(xué)生信息查詢學(xué)生信息學(xué)生宿舍排序添加學(xué)生信息刪除學(xué)生信息修改學(xué)生信息返回主菜單宿舍情況排序返回主菜單按學(xué)生姓名查詢返回主菜單按學(xué)生學(xué)號查詢學(xué)生信息以保存在文件中5、 測試分析:(1) 實際測試的數(shù)據(jù):11,ff,f,22,2,fa,2,2(2) 預(yù)期結(jié)果:- 學(xué)號-學(xué)生姓名-性別-年齡-年級-專業(yè)-樓號-樓層號 11 ff f 22 2 fa 2 2(3)實際運(yùn)行與分析:在輸入學(xué)生的信息后,在主函數(shù)中在調(diào)用輸出函數(shù)和讀出函數(shù),然后在主屏幕上就會顯示上顯示的信息。(3) 算法的時空分析及改進(jìn)思想:在輸入學(xué)生的信息后,
5、就會寫進(jìn)二進(jìn)制的文件中,在從文件中讀出來,在主函數(shù)調(diào)用即在主屏幕上輸出學(xué)生的信息。改進(jìn)思想,在輸入函數(shù)是定義學(xué)生的最大人數(shù)是#define MAX 40,然后輸入學(xué)生時必須40個學(xué)生全部輸入才可進(jìn)行下一步的操作,所以程序比較簡單,在此基礎(chǔ)上,進(jìn)行改進(jìn),在輸入一個學(xué)生信息時主屏幕會顯示是否繼續(xù),如果繼續(xù)則繼續(xù)輸入下一個學(xué)生的信息,如果則返回到主菜單。6總結(jié):在剛開始編程序時,會遇到很多很多的問題和困難,主要還是對基礎(chǔ)知識掌握的不扎實造成的,一些簡單的語句也會出現(xiàn)最簡單的錯誤,隨著幾天的訓(xùn)練在編程方面會有點(diǎn)進(jìn)步但是還需要進(jìn)一步的學(xué)習(xí), 調(diào)試過程中,經(jīng)常會出現(xiàn)輸入或顯示為亂碼的情況,這往往是上下定義
6、的數(shù)據(jù)類型不同或定義數(shù)組長度不夠所造成的。有時候程序中還會出現(xiàn)錄入五個數(shù)據(jù)而只顯示四個的情況,這也往往是由于定義的結(jié)構(gòu)體數(shù)組長度過低所造成的。像這類問題只要把數(shù)據(jù)類型都定義成字符型,并且定義一個合理的數(shù)組長度往往都能解決。在進(jìn)行程序的編寫過程中,注意簡單的符號的漏輸。學(xué)生的宿舍管理系統(tǒng),用到文件的存儲,輸入學(xué)生信息需要寫文件,寫到文件里,在輸出學(xué)生信息時,在進(jìn)行文件的讀操作,在此程序上用到的是二進(jìn)制文件。7、主要參考文獻(xiàn):1.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計, 蘇仕華 等編著, 機(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)實用教程(第二版),徐孝凱編著,清華大學(xué)出版社 20065數(shù)據(jù)結(jié)構(gòu),謝楚屏等編著,人民郵電出版社源代碼:#include #include#include string.h#define MAX 40#define PRINT1 printf(-n)#define PRINT2 printf(學(xué)號-學(xué)生姓名-性別-年齡-年級-專業(yè)-樓號-樓層號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(讀文件錯誤!n); return 0; for(i=1;i=sum;i+) if(fwrite(&si,sizeof(struct dom),1,fp)!=1)/寫文件 printf(寫文件錯誤!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(請選擇(0-5):); do printf(請選擇:); scanf(%d,&i); while(i5); return i;int shuru() /輸入學(xué)生的信息 printf(n學(xué)號: ); 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é)生年級: ); scanf(%d,&sa.st.grade); printf(n學(xué)生專業(yè): ); scanf(%s,&sa.st.zhuanye); printf(n宿舍樓號: ); scanf(%d,&sa.bui_num); printf(n宿舍樓層號: ); scanf(%d,&sa.floor_num); return
11、 0; /輸入模塊 input() char ch; printf(nn錄入學(xué)生信息(最多%d個)n,MAX); printf(-n); printf(請輸入第%d個學(xué)生的信息n,+a);shuru(); sum=a;printf(是否繼續(xù)輸入?:n);scanf(%c,&ch);ch=getchar();while(ch=y)printf(請輸入第%d個學(xué)生的信息n,+a); shuru(); sum=a;ch=getchar(); printf(n);printf(是否繼續(xù)輸入?:);scanf(%c,&ch); if(ch=n) printf(n-%d個學(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*暫時還沒有任何信息,按任意鍵進(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 添加一個新同學(xué)n); printf( -n); do printf(n 新學(xué)號: ); 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é)生年級: ); scanf(%d,&si.st.grade); printf(n 學(xué)生專業(yè): ); scanf(%s,si.st.zhuanye); printf(n 宿舍樓號: ); scanf(%d,&si.bui_num); printf(n 宿舍樓層號
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 輸入要刪除的學(xué)生學(xué)號: ); 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é)生號: ); 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( 請選擇(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é)號查詢 int inquire_num() int i,j=0,inquire_num; printf(n 輸入要查詢的學(xué)生學(xué)號: ); 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é)號查詢n); printf( 0.回主菜單n); printf( 請選擇(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é)號 性別 樓號 樓層號 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等.壓縮文件請下載最新的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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年金融服務(wù)采購合同創(chuàng)新金融產(chǎn)品合作協(xié)議2篇
- 導(dǎo)演與發(fā)行方2025年度合同3篇
- 二零二五年度餐飲泔水處理與環(huán)保設(shè)施運(yùn)營管理合同6篇
- 二零二五年度高校畢業(yè)生就業(yè)見習(xí)實踐基地建設(shè)合作合同3篇
- 二零二五年度航空航天設(shè)備維修承包合同樣本3篇
- 二零二五年高性能混凝土委托加工合同范本3篇
- 碎石買賣合同(二零二五年度)2篇
- 二零二五年度藥品質(zhì)量第三方檢測合同范本6篇
- 二零二五版國際貿(mào)易中貨物所有權(quán)轉(zhuǎn)移與國際貿(mào)易政策研究合同3篇
- 2025年度電力設(shè)施租賃合同標(biāo)的轉(zhuǎn)讓協(xié)議3篇
- 課題申報書:大中小學(xué)鑄牢中華民族共同體意識教育一體化研究
- 巖土工程勘察課件0巖土工程勘察
- 《腎上腺腫瘤》課件
- 2024-2030年中國典當(dāng)行業(yè)發(fā)展前景預(yù)測及融資策略分析報告
- 《乘用車越野性能主觀評價方法》
- 幼師個人成長發(fā)展規(guī)劃
- 2024-2025學(xué)年北師大版高二上學(xué)期期末英語試題及解答參考
- 批發(fā)面包采購合同范本
- 乘風(fēng)化麟 蛇我其誰 2025XX集團(tuán)年終總結(jié)暨頒獎盛典
- 2024年大數(shù)據(jù)分析公司與中國政府合作協(xié)議
- 一年級數(shù)學(xué)(上)計算題專項練習(xí)匯編
評論
0/150
提交評論