




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、學(xué)號(hào)2014-2015學(xué)年 第一學(xué)期數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告題目: 宿舍管理查詢系統(tǒng)的實(shí)現(xiàn)專業(yè):班級(jí):姓名:學(xué)號(hào):指導(dǎo)教師:成績:計(jì)算機(jī)與信息工程系2014年 10 月25 日目 錄1設(shè)計(jì)任務(wù)32總體設(shè)計(jì)33系統(tǒng)流程圖34詳細(xì)設(shè)計(jì)及測試.55心得體會(huì)12致謝.13參考文獻(xiàn).14附錄:源代碼151設(shè)計(jì)任務(wù)題目:宿舍管理查詢軟件 任務(wù):為宿舍管理人員編寫一個(gè)宿舍管理查詢軟件, 程序設(shè)計(jì)要求:(1)建立數(shù)據(jù)文件 ,數(shù)據(jù)文件按關(guān)鍵字(姓名、學(xué)號(hào)、房號(hào))進(jìn)行排序(冒泡、選擇、插入排序等任選一種)(2)實(shí)現(xiàn)如下查詢功能: 按姓名查詢 按學(xué)號(hào)查詢 按房號(hào)查詢(3) 打印任意查詢結(jié)果(可以連續(xù)操作)針對(duì)題目所要求
2、的功能不太多,我特意添加了插入數(shù)據(jù)、讀入文件數(shù)據(jù)以及將數(shù)據(jù)寫入文件三個(gè)額外功能。2總體設(shè)計(jì)根據(jù)系統(tǒng)要求,即本系統(tǒng)具有信息的錄入,顯示,排序顯示、查找,插入、從文件中讀入數(shù)據(jù)、循環(huán)寫入數(shù)據(jù)、結(jié)束程序等功能,先設(shè)計(jì)出詳細(xì)的系統(tǒng)流程圖,然后將源代碼輸入程序,進(jìn)行編譯調(diào)試即可。 程序總體分12個(gè)項(xiàng)目:輸入記錄、顯示記錄、按姓名排序并顯示、按房間號(hào)排序并顯示 、按學(xué)號(hào)排序并顯示 、按姓名查找并顯示 、按房間號(hào)查找并顯示 、按學(xué)號(hào)查找并顯示、插入一條記錄按學(xué)號(hào)排序并顯示、從文件中讀入數(shù)據(jù)、循環(huán)寫入數(shù)據(jù)以及結(jié)束程序。 3系統(tǒng)流程圖系統(tǒng)流程圖下頁圖1所示輸出界面 開始選擇操作輸入記錄選擇1 否 是 選擇2顯示
3、記錄 否 是 按姓名排序并顯示 否選擇3 是 選擇4按房間號(hào)排序并顯示 否 是按學(xué)號(hào)排序并顯示 否選擇5 是 選擇6 否按姓名查找并顯示 是選擇7 否按房間號(hào)查找并顯示 是選擇8按學(xué)號(hào)查找并顯示 否 是 插入一條記錄顯示選擇9 是 選擇10 否 從文件中讀入數(shù)據(jù) 是 選擇11循環(huán)寫入數(shù)據(jù) 否 是 否選擇0 是 否退出系統(tǒng) 是 結(jié)束 圖1 圖1系統(tǒng)流程圖4詳細(xì)設(shè)計(jì)及測試根據(jù)流程圖,將程序源代碼輸入到編譯環(huán)境中,按照提示選擇進(jìn)行記錄的輸入,輸入一個(gè)數(shù)據(jù)后提示是否繼續(xù)輸入,直到結(jié)束程序?yàn)橹埂⒊绦蚓幾g生成“學(xué)生宿舍管理系統(tǒng).exe”。運(yùn)行該文件如圖2所示。 圖2 輸出界面圖輸入記錄采用循環(huán)輸入whi
4、le(sign!='n' && sign!='N') /*判斷*/printf("tt姓名:");scanf("tt%s", &roomn+);printf("tt學(xué)號(hào):");scanf("tt%s", &roomn+i.num);printf("tt房間號(hào):"); scanf("tt%s",&roomn+i.roomnum);printf("tt是否繼續(xù)輸入?(Y/N)"
5、);scanf("tt%c",&sign); /*輸入判斷*/i+;返回(n+i);按照提示選擇“1”進(jìn)行記錄的輸入如圖3所示: 圖3 輸入記錄顯示圖 連續(xù)輸入多組數(shù)據(jù)后,按“n”結(jié)束輸入,提示按任意鍵繼續(xù),按任意鍵后選擇“2”進(jìn)行記錄的顯示如圖4所示。 圖4 顯示所有記錄按姓名排序采用冒泡排序法。 int i,j;char t10;for(i=0;i<n-1;i+) /*冒泡法排序*/for(j=0;j<n-1-i;j+)if(strcmp(,roomj+1.name)>0)strcpy(t,roomj+1.name);str
6、cpy(roomj+1.name,);strcpy(,t);strcpy(t,roomj+1.num);strcpy(roomj+1.num,roomj.num);strcpy(roomj.num,t);strcpy(t,roomj+1.roomnum);strcpy(roomj+1.roomnum,roomj.roomnum);strcpy(roomj.roomnum,t);顯示后提示按任意鍵繼續(xù),選擇“3”進(jìn)行按姓名排序并顯示,如圖5所示。 圖5 按姓名排序顯示圖按房間號(hào)排序采用 冒泡排序法 for(i=0;i<n-1;i+) /*冒泡法排序*
7、/for(j=0;j<n-1-i;j+)if(strcmp(roomj.roomnum,roomj+1.roomnum)>0)strcpy(t,roomj+1.num);strcpy(roomj+1.num,roomj.num);strcpy(roomj.num,t);strcpy(t,roomj+1.roomnum); strcpy(roomj+1.roomnum,roomj.roomnum); strcpy(roomj.roomnum,t);strcpy(t,roomj+1.name);strcpy(roomj+1.name,);strcpy(roomj.n
8、ame,t);顯示后提示按任意鍵繼續(xù),選擇“4”進(jìn)行按房間號(hào)排序并顯示,如圖6所示。 圖6 按房間號(hào)排序顯示圖 同樣學(xué)號(hào)排序也是用的冒泡法排序。for(i=0;i<n-1;i+) /*冒泡法排序*/for(j=0;j<n-1-i;j+)if(strcmp(roomj.num,roomj+1.num)>0)strcpy(t,roomj+1.roomnum);strcpy(roomj+1.roomnum,roomj.roomnum);strcpy(roomj.roomnum,t);strcpy(t,roomj+1.num);strcpy(roomj+1.num,roomj.num
9、);strcpy(roomj.num,t);strcpy(t,roomj+1.name);strcpy(roomj+1.name,);strcpy(,t);顯示后提示按任意鍵繼續(xù),選擇“5”進(jìn)行按學(xué)號(hào)排序并顯示,如圖7所示。 圖7按學(xué)號(hào)排序顯示圖功能6-8為查找功能 按姓名查找并顯示功能printf("tt輸入要查找的姓名:"); scanf("%s",s);while(strcmp(,s)!=0 && i<n) i+; /*查找判斷*/if(i=n)printf(&quo
10、t;tt對(duì)不起沒有找到該學(xué)生!n"); /*返回失敗信息*/elseDisplay_a_record(room1,i);/*調(diào)用函數(shù)*/顯示后提示按任意鍵繼續(xù),選擇“6”按提示步驟按學(xué)號(hào)查找一條記錄并顯示,如圖8所示。 圖8按姓名查找并顯示圖按房間號(hào)查找和按學(xué)號(hào)查找的方法大同小異。分別輸入“7”、“8”顯示截圖如下頁 圖9 按房間號(hào)查找并顯示圖 圖10 按學(xué)號(hào)查找并顯示圖功能9為插入一條記錄按學(xué)號(hào)排序并顯示。int Insert_a_record(Student room,int n) /*插入一條記錄并按學(xué)號(hào)排序*/printf("tt學(xué)生姓名:");scanf
11、("tt%s",&);printf("tt學(xué)生學(xué)號(hào):");scanf("tt%s",&roomn.num);printf("tt學(xué)生房間號(hào):"); scanf("tt%s",&roomn.roomnum);n+;Sort_by_num(room,n);/*調(diào)用排序函數(shù)*/printf("tt插入記錄成功!n");/*返回成功信息*/return(n);顯示后提示按任意鍵繼續(xù),選擇“9”進(jìn)行插入數(shù)據(jù),如下頁圖11所示。 圖11 插入一
12、條記錄按學(xué)號(hào)排序并顯示圖5心得體會(huì)這次課程設(shè)計(jì)我做的還不是很完善,因?yàn)楣δ懿皇呛芏?,如果以后有機(jī)會(huì)完善的話,應(yīng)該對(duì)管理員和用戶登錄時(shí)做進(jìn)一步完善。學(xué)生的信息還不夠完整,如學(xué)生的宿舍長,系別,一些費(fèi)用以及學(xué)生的成績等待相關(guān)詳細(xì)信息。如果使次系統(tǒng)再詳細(xì)些,需添加更多的管理員以及管理員權(quán)限,還有學(xué)生的更多信息,如果有必要的話,添加一些有關(guān)教師的信息,以及教師登錄的界面。在這次課程設(shè)計(jì)的過程中,我們體會(huì)到要想開發(fā)一個(gè)系統(tǒng)軟件,不僅需要相當(dāng)?shù)膶I(yè)技術(shù)知識(shí),還要有嚴(yán)謹(jǐn)縝密的思維能力。只有思想上清晰了,編程才有意義,否則就是白費(fèi)力氣。同時(shí)還要善于捕獲細(xì)小的方面,因?yàn)槟峭沁@個(gè)程序的致命因素。這次課程設(shè)計(jì)培
13、養(yǎng)了我的細(xì)心和耐性,更樹立了一種科學(xué)的態(tài)度。致謝在這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)中,我的老師和同學(xué)給了我及大的幫助。特別是我的指導(dǎo)老師王源老師,還有我的C 語言任課老師陳廣宏老師。在此,我對(duì)他們表示感謝!感謝他們在我面對(duì)困難時(shí)給了我?guī)椭椭С?。也感謝那些給我?guī)椭乃型瑢W(xué)!參考文獻(xiàn)1譚浩強(qiáng)著.C 程序設(shè)計(jì)(第二版).北京:清華大學(xué)出版社,19992譚浩強(qiáng),張基溫,唐永炎編著.C 語言程序設(shè)計(jì).北京:高等教育出版社,19923譚浩強(qiáng)編著.QBASIC 語言教程.北京:電子工業(yè)出版社,19974譚浩強(qiáng).C 程序設(shè)計(jì)M.3 版.北京:清華大學(xué)出版社,20055Herbert Schildt 著.戴健鵬譯.C
14、語言大全(第二版).北京:電子工業(yè)出版社,19946美SCHILDTH.C 語言大全M.4 版.王子恢等譯.北京:電子工業(yè)出版社,2001附錄:源代碼#include<stdio.h> #include<stdlib.h>#include<ctype.h>#include<string.h>typedef struct char roomnum4; char num10; char name20; Student;Student room11000; int menu() char c;do system("cls");pri
15、ntf("tt學(xué)生宿舍管理系統(tǒng)n"); printf("tt§ 1. 輸入記錄 §n");printf("tt§ 2. 顯示記錄 §n");printf("tt§ 3. 按姓名排序并顯示 §n");printf("tt§ 4. 按房間號(hào)排序并顯示 §n");printf("tt§ 5. 按學(xué)號(hào)排序并顯示 §n");printf("tt§ 6. 按姓名查找并顯
16、示 §n");printf("tt§ 7. 按房間號(hào)查找并顯示 §n");printf("tt§ 8. 按學(xué)號(hào)查找并顯示 §n");printf("tt§ 9. 插入一條記錄按學(xué)號(hào)排序并顯示 §n");printf("tt§10. 從文件中讀入數(shù)據(jù) §n");printf("tt§11. 循環(huán)寫入數(shù)據(jù) §n");printf("tt§ 0. 結(jié)束程序
17、67;n");printf("ttn");printf("tt請選擇您要運(yùn)行的選項(xiàng)按(0-11):");c=getchar(); while(c<'0'|c>'11');return(c-'0'); int Input(Student room,int n) int i=0;char sign;while(sign!='n' && sign!='N') printf("tt姓名:");scanf("tt%s&
18、quot;, &roomn+);printf("tt學(xué)號(hào):");scanf("tt%s", &roomn+i.num);printf("tt房間號(hào):"); scanf("tt%s",&roomn+i.roomnum);printf("tt是否繼續(xù)輸入?(Y/N)");scanf("tt%c",&sign); i+;return(n+i);void Display_all_record(Student room,int n) int
19、i;printf("tt-n"); printf("tt房間號(hào) 學(xué)號(hào) 姓名 n");printf("tt-n");for(i=1;i<n+1;i+) printf("tt%-10s%-10s%-10sn",roomi-1.roomnum,roomi-1.num,);printf("tt");system("pause");void Display_a_record(Student room,int n) printf("tt-n&quo
20、t;); printf("tt房間號(hào) 學(xué)號(hào) 姓名 n");printf("tt-n");printf("tt%-10s%-10s%-10sn",roomn.roomnum,roomn.num,);/*輸出所查找的一條記錄*/printf("n");printf("tt");void Sort_by_name(Student room,int n)int i,j;char t10;for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+)if(str
21、cmp(,roomj+1.name)>0)strcpy(t,roomj+1.name);strcpy(roomj+1.name,);strcpy(,t);strcpy(t,roomj+1.num);strcpy(roomj+1.num,roomj.num);strcpy(roomj.num,t);strcpy(t,roomj+1.roomnum);strcpy(roomj+1.roomnum,roomj.roomnum);strcpy(roomj.roomnum,t);void Sort_by_num(Student room,
22、int n) int i,j;char t10;for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+)if(strcmp(roomj.num,roomj+1.num)>0) strcpy(t,roomj+1.roomnum);strcpy(roomj+1.roomnum,roomj.roomnum);strcpy(roomj.roomnum,t);strcpy(t,roomj+1.num);strcpy(roomj+1.num,roomj.num);strcpy(roomj.num,t);strcpy(t,roomj+1.name);strcpy(room
23、j+1.name,);strcpy(,t);void Sort_by_roomnum(Student room,int n) int i,j;char t10;for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+)if(strcmp(roomj.roomnum,roomj+1.roomnum)>0) strcpy(t,roomj+1.num);strcpy(roomj+1.num,roomj.num);strcpy(roomj.num,t);strcpy(t,roomj+1.roomnum);strcpy(roomj
24、+1.roomnum,roomj.roomnum);strcpy(roomj.roomnum,t);strcpy(t,roomj+1.name);strcpy(roomj+1.name,);strcpy(,t);void Find_record_name(Student room,int n) char s10;int i=0;printf("tt輸入要查找的姓名:"); scanf("%s",s);while(strcmp(,s)!=0 && i<n) i+; if(i=
25、n)printf("tt對(duì)不起沒有找到該學(xué)生!n"); elseDisplay_a_record(room1,i);void Find_record_rommnum(Student room,int n) char s20;int i=0;printf("tt輸入要查找的房間號(hào):"); scanf("%s",s);while(strcmp(roomi.roomnum,s)!=0 && i<n) i+; if(i=n)printf("tt對(duì)不起沒有找到該學(xué)生!n"); elseDisplay_a
26、_record(room1,i);void Find_record_num(Student room,int n) char s20;int i=0;printf("tt輸入要查找的學(xué)號(hào):"); scanf("%s",s);while(strcmp(roomi.num,s)!=0 && i<n) i+; if(i=n)printf("tt對(duì)不起沒有找到該學(xué)生!n"); elseDisplay_a_record(room1,i);int Insert_a_record(Student room,int n) pri
27、ntf("tt學(xué)生姓名:");scanf("tt%s",&);printf("tt學(xué)生學(xué)號(hào):");scanf("tt%s",&roomn.num);printf("tt學(xué)生房間號(hào):"); scanf("tt%s",&roomn.roomnum);n+;Sort_by_num(room,n);printf("tt插入記錄成功!n");return(n);int AddfromText(Student room,in
28、t n) int i=0,num;FILE *fp; char filename20; printf("tt輸入文件名:");scanf("tt%s",&filename); if(fp=fopen(filename,"rb")=NULL) printf("tt無法打開該文件n"); printf("tt");system("pause");return(n);fscanf(fp,"%d",&num); while(i<num) fs
29、canf(fp,"%s%s%s%s",roomn+i.roomnum,roomn+i.num,roomn+);i+;n+=num;fclose(fp); printf("tt讀入成功!n");printf("tt");system("pause");return(n);void WritetoText(Student room,int n) int i=0;FILE *fp; char filename100; printf("tt循環(huán)寫入數(shù)據(jù)n"); printf("tt
30、輸入文件名:");scanf("tt%s",&filename);if(fp=fopen(filename,"w")=NULL) printf("tt無法打開該文件n");system("pause");return;fprintf(fp,"%dn",n); while(i<n)fprintf(fp,"%-10s%-10s%-10s%-10sn",roomi.roomnum,roomi.num,);i+;fclose(fp); pr
31、intf("寫入成功!n"); int main() int n=0;for(;)switch(menu() case 1:printf("tt輸入記錄n"); n=Input(room1,n);break;case 2:printf("tt顯示記錄n"); Display_all_record(room1,n);break;case 3:printf("tt按姓名排序并顯示n");Sort_by_name(room1,n); printf("tt排序成功!n");Display_all_record(room1,n);printf("tt");case 4:printf("tt按房間號(hào)排序并顯示n");Sort_by_roomnum(room1,n); printf("tt排序成功!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國家用榨汁機(jī)行業(yè)市場全景調(diào)研及發(fā)展趨向研判報(bào)告
- 2025年城市軌道交通智慧運(yùn)維系統(tǒng)智能化改造與升級(jí)案例分析報(bào)告
- 2025年交通運(yùn)輸行業(yè)節(jié)能減排技術(shù)改造與投資策略研究報(bào)告
- OsRGA1基因?qū)λ镜乩眉爱a(chǎn)量的多維度影響與機(jī)制探究
- 量子隱形傳態(tài)文員實(shí)驗(yàn)記錄條款25年次季度完整性標(biāo)準(zhǔn)
- 2025年中國樹莓汁市場運(yùn)行態(tài)勢及投資戰(zhàn)略咨詢研究報(bào)告
- 2025年中國櫥簾行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2025年中國歐式明珠鍋行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2025年中國計(jì)算機(jī)與通信技術(shù)行業(yè)發(fā)展趨勢及投資前景預(yù)測報(bào)告
- 裝訂膠圈項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 廣東省珠海市金灣區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期期末考試生物試題(無答案)
- 2024年湖南中考化學(xué)試卷及答案
- DL-T-300-2011火電廠凝氣器管防腐防垢導(dǎo)則
- 何家弘法律英語第四版翻譯完整版
- 機(jī)修鉗工實(shí)訓(xùn)室整體方案及流程
- 2024年中考地理簡答題答題模板
- 農(nóng)村自建房施工安全建議
- 2024助貸委托服務(wù)協(xié)議合同模板
- 2024年湖北省丹江口市初中畢業(yè)生適應(yīng)性考試地理·生物試題
- 承包商安全管理培訓(xùn)課件
- 學(xué)校體檢服務(wù)投標(biāo)方案(技術(shù)方案技術(shù)標(biāo))
評(píng)論
0/150
提交評(píng)論