數(shù)據(jù)結(jié)構(gòu)宿舍管理查詢軟件課程設(shè)計(jì)_第1頁
數(shù)據(jù)結(jié)構(gòu)宿舍管理查詢軟件課程設(shè)計(jì)_第2頁
數(shù)據(jù)結(jié)構(gòu)宿舍管理查詢軟件課程設(shè)計(jì)_第3頁
數(shù)據(jù)結(jié)構(gòu)宿舍管理查詢軟件課程設(shè)計(jì)_第4頁
數(shù)據(jù)結(jié)構(gòu)宿舍管理查詢軟件課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)宿舍管理查詢軟件學(xué) 院: 信息科學(xué)技術(shù)學(xué)院班 級: 信 計(jì)082學(xué)號:0841110Q,姓 名: 余鵬扌旨導(dǎo)教師:并接完成日期: 2Q1Q年12月目錄一、設(shè)計(jì)任務(wù) 3二、總體設(shè)計(jì) 3三、系統(tǒng)流程圖3四、詳細(xì)設(shè)計(jì)及測試 5五、 心得體會12附錄:源代碼13一、設(shè)計(jì)任務(wù)題目:宿舍管理查詢軟件任務(wù):為宿舍管理人員編寫一個(gè)宿舍管理查詢軟件,程序設(shè)計(jì)要求:(1)建立數(shù)據(jù)文件,數(shù)據(jù)文件按關(guān)鍵字(姓名、學(xué)號、房號)進(jìn)行排序(冒 泡、選擇、插入排序等任選一種)(2)實(shí)現(xiàn)如下查詢功能:按姓名查詢按學(xué)號查詢按房號查詢(3)打印任意查詢結(jié)果(可以連續(xù)操作)針對題目所要求的功能不太多,我特意添加了插入

2、數(shù)據(jù)、讀入文件數(shù)據(jù)以及將數(shù) 據(jù)寫入文件三個(gè)額外功能。二、總體設(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)目:輸入記錄、顯示記錄、按姓名排序并顯示、按房間 號排序并顯示、按學(xué)號排序并顯示、按姓名查找并顯示、按房間號查找并顯 示、按學(xué)號查找并顯示、插入一條記錄按學(xué)號排序并顯示、從文件中讀入數(shù)據(jù)、 循環(huán)寫入數(shù)據(jù)以及結(jié)束程序。三、系統(tǒng)流程圖系統(tǒng)流程圖下頁圖所示四、詳細(xì)設(shè)計(jì)及測試根據(jù)流程圖,將程序源代碼輸入到編譯環(huán)境中,按照提示選擇進(jìn)行記錄的輸

3、入,輸入一個(gè)數(shù)據(jù)后提示是否繼續(xù)輸入,直到結(jié)束程序?yàn)橹埂⒊绦蚓幾g生成“學(xué)生宿舍管理系統(tǒng).exe ”運(yùn)行該文件如圖1所示V- e學(xué)錄錄排口 n_號查春入左行 A- W 輸顯:您擇 *1234567890 7T-一 知 i 1 請123 4 5670090101 1記記名間號名間號一件寫程*運(yùn)生佰4旨理系統(tǒng)1井11示示口排序并顯示的*選5*圖1輸出界面圖輸入記錄采用循環(huán)輸入while(sign!=n & sign!=N)/*判斷 */printf(tt姓名:”);scan f(tt%s, & room n+i. name);printf(tt學(xué)號:);scan f(tt%s, & room n+i

4、. nu m);printf(tt房間號:);sca nf(tt%s,&roomn+i.roo mnu m);printf(tt是否繼續(xù)輸入?(Y/N);scanf(tt%c,&sign);/*輸入判斷 */ i+;返回(n+i);按照提示選擇“ 1”進(jìn)行記錄的輸入如圖2所示:圖2輸入記錄顯示圖連續(xù)輸入多組數(shù)據(jù)后,按“ n”結(jié)束輸入,提示按任意鍵繼續(xù),按任意鍵后 選擇“2”進(jìn)行記錄的顯示如圖3所示。bun 0 宮(-Sci占 O 宮(-Sci占 O 宮 0-S.I占 O 宮0 ./.I.rt*統(tǒng)系SL理舍 宿 生學(xué)錄錄排口垂_號查誓入$行 齊記記名間號名間號一件寫程運(yùn)人示姓蠱于姓員天文環(huán)至要

5、輸顯您錄擇記 123456789010 選-下示 顯 并 序 L二示 示顯示示顯一E于據(jù) 顯并顯顯并聶數(shù) 并序井裟開黃據(jù) 查找記讀數(shù)示#fl*:21) T0按項(xiàng)選的105103200915王五225201088請按任意鍵繼續(xù)圖3顯示所有記錄按姓名排序采用冒泡排序法int i,j;char t10;for(i=0;in-1;i+)/*冒泡法排序 */for(j=0;j0)strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name);strcpy(roomj. name,t);strcpy(t,roomj+1. nu m);strcpy(roo

6、mj+1. nu m,roomj. nu m);strcpy(roomj. nu m,t);strcpy(t,roomj+1.roo mnu m);strcpy(roomj+1.roo mnu m,roomj.roo mnu m);strcpy(roomj.roo mnu m,t);顯示后提示按任意鍵繼續(xù),選擇“ 3”進(jìn)行按姓名排序并顯示,如圖4所示。E:噬件弟6C NMyProj已ct或謨*1設(shè)計(jì)De bu g程設(shè)計(jì)exh1 1 -EX.Q.E W.Qr.EmbE.r.0-s.c-r.G注月亠lw*:31 Tk 0按盍選的示 于錄ini_s$A5行顯 K記記名間號名間號-件寫程#幵 W入示姓

7、辜姓辰天文卯王要序? K 輸顯 你薯 K盍毎 電丄 2345678901 SI 選姓J(rèn)T示 示顯示示顯一塵子據(jù) 顯開顯顯開顯按數(shù) 并序-turn幵嘖據(jù) 查找記讀數(shù)示 顯 并 序 th李四 王五 址-房間號 學(xué)號 姓名1032M09152252A1088105200901請按任意鍵繼續(xù)按房間號排序采用冒泡排序法for(i=0;in-1;i+)/*冒泡法排序 */for(j=0;j0)strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m);strcpy(roomj. nu m,t);strcpy(t,roomj+1.roo mnu m);

8、strcpy(roomj+1.roo mnu m,roomj.roo mnu m);strcpy(roomj.roo mnu m,t);strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name);strcpy(roomj. name,t);顯示后提示按任意鍵繼續(xù),選擇“ 4”進(jìn)行按房間號排序并顯示,如圖5所示。示S-示示顯-S于據(jù) 顯幵顯顯幵顯按數(shù) 并序并競幵 學(xué)錄錄華 記記名間號名間號-曹程運(yùn)序A-輸顯您口冠as12345 6 78901 0 選房:41按項(xiàng)的顯房間號 學(xué)號 姓名183200915105200901225201088請按

9、任意鍵繼續(xù)-11王五* E:做件安裝包V C6CNMy Proj met磯課程設(shè)計(jì)bu 課程設(shè)計(jì)啟炬*同樣學(xué)號排序也是用的冒泡法排序。for(i=0;in-1;i+)/*冒泡法排序 */for(j=0;j0)strcpy(t,roomj+1.roo mnu m);strcpy(roomj+1.roo mnu m,roomj.roo mnu m);strcpy(roomj.roo mnu m,t);strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m);strcpy(roomj. nu m,t);strcpy(t,roomj+1. na

10、me);strcpy(roomj+1. name,roomj. name);strcpy(roomj. name,t);顯示后提示按任意鍵繼續(xù),選擇“ 5”進(jìn)行按學(xué)號排序并顯示,如圖6所示。件寶裝包匚NWyPzjg班課毘設(shè)計(jì)Debu飢諜程設(shè)計(jì)冶如*輸顯 123456789010選學(xué)學(xué)錄n_os$Ai行顯成 記記名間號名間號一件寫程運(yùn)】幵序 入示姓睪姓展天文環(huán)至要莠生宿舍管理系統(tǒng)$杳幵111華示示口排序顯示*選t項(xiàng)*按:5*房間號 學(xué)號 姓名105200901103200915垂三 李四 王五功能6-8為查找功能按姓名查找并顯示功能prin tf(tt輸入要查找的姓名:”);scan f(%s,

11、s);while(strcmp(roomi. name,s)!=O & i錄排口 當(dāng)書入$行*記記名間號焉號-件寫程運(yùn)*A-責(zé)輸顯 li8s&l*8s- 擇號要 12345 678900詵-#人8示 顯 井 LLF示 .示顯一不示顯一摩牖 顯并顯顯并顯贏 并序并賓查找応讀皺V 學(xué) V 間圖8按房間號查找并顯示圖功能9為插入一條記錄按學(xué)號排序并顯示。int In sert_a_record(Stude ntroom,i ntprintf(tt學(xué)生姓名:”);scan f(tt%s,&room n. name); printf(tt學(xué)生學(xué)號:);scan f(tt%s,&room n. nu m)

12、; printf(tt學(xué)生房間號:);sca nf(”tt%s,&roomn .roo mnu m); n+;Sort_by_ num(room,n);printf(tt插入記錄成功!n);return( n);顯示后提示按任意鍵繼續(xù),選擇裁5201088 王五請曲意鍵継續(xù).圖9按學(xué)號查找并顯示圖n) /*插入一條記錄并按學(xué)號排序 */*調(diào)用排序函數(shù)*/*返回成功信息*/9”進(jìn)行插入數(shù)據(jù),如下頁圖10所示。圖10插入一條記錄按學(xué)號排序并顯示圖五、心得體會這次課程設(shè)計(jì)我做的還不是很完善,因?yàn)楣δ懿皇呛芏?,如果以后有機(jī)會完 善的話,應(yīng)該對管理員和用戶登錄時(shí)做進(jìn)一步完善。學(xué)生的信息還不夠完整,如 學(xué)

13、生的宿舍長,系別,一些費(fèi)用以及學(xué)生的成績等待相關(guān)詳細(xì)信息。如果使次系統(tǒng)再詳細(xì)些,需添加更多的管理員以及管理員權(quán)限, 還有學(xué)生的 更多信息,如果有必要的話,添加一些有關(guān)教師的信息,以及教師登錄的界面。在這次課程設(shè)計(jì)的過程中,我們體會到要想開發(fā)一個(gè)系統(tǒng)軟件,不僅需要相 當(dāng)?shù)膶I(yè)技術(shù)知識,還要有嚴(yán)謹(jǐn)縝密的思維能力。只有思想上清晰了,編程才有 意義,否則就是白費(fèi)力氣。同時(shí)還要善于捕獲細(xì)小的方面,因?yàn)槟峭沁@個(gè)程 序的致命因素。這次課程設(shè)計(jì)培養(yǎng)了我的細(xì)心和耐性,更樹立了一種科學(xué)的態(tài)度。附錄:源代碼#in clude#in clude#in clude#in cludetypedef structcha

14、r roomnum 4;char num10;char n ame20;Stude nt;Stude nt room11000;int menu()char c;dosystem(cls);t 學(xué)生宿舍管理系統(tǒng)n);t1.輸入記錄n);t2.顯示記錄n);t3.按姓名排序并顯示n);t4.按房間號排序并顯示n);t5.按學(xué)號排序并顯示n);t6.按姓名查找并顯示n);t7.按房間號查找并顯示n);t8.按學(xué)號查找并顯示n);t9.插入一條記錄按學(xué)號排序并顯示n);t 10.從文件中讀入數(shù)據(jù) n);t 11.循環(huán)寫入數(shù)據(jù) n);t0.結(jié)束程序n);t n);prin tf(tt請選擇您要運(yùn)行的選

15、項(xiàng)按(0-11):);c=getchar();while(c11);return(c-O); int In put(Stude nt room,i nt n)int i=0;char sig n;while(sig n!= n & sig n!=N)printf(tt姓名:);scan f(tt%s, & room n+i. name);printf(tt學(xué)號:);scan f(tt%s, & room n+i.n um);printf(tt房間號:);sca nf(tt%s, &roomn+i.roo mnu m);printf(tt是否繼續(xù)輸入?(Y/N);scan f(tt%c, &si

16、g n);i+;return( n+i); void Display_all_record(Stude nt room,i nt n)int i;printf(ttn);prin tf(tt房間號 學(xué)號姓名n ”);printf(ttn);for(i=1;i n+1;i+)prin tf(tt%-10s%-10s%-10sn,roomi-1.room nu m,roomi-1. nu m,roomi-1. name);prin tf(tt);system(pause);void Display_a_record(Stude nt room,i nt n) printf(ttn);prin tf

17、(tt 房間號 學(xué)號姓名n ”);printf(ttn);prin tf(tt%-10s%-10s%-10sn,roo mn .ro omnum,roomn . nu m,roo mn . name);/*輸出所查找的一條記錄*/prin tf(n);prin tf(tt);void Sort_by_ name(Stude nt room,i nt n)int i,j;char t10;for(i=0;i n-1;i+)for(j=0;j0)strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name);strcpy(roomj. name,

18、t);strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m);strcpy(roomj. nu m,t);strcpy(t,roomj+1.ro omnu m);strcpy(roomj+1.roo mnu m,roomj.ro omnu m);strcpy(roomj.roo mnu m,t);void Sort_by_ nu m(Stude nt room,i nt n)int i,j;char t10;for(i=0;i n-1;i+)for(j=0;j0)strcpy(t,roomj+1.ro omnu m);strcpy(r

19、oomj+1.roo mnu m,roomj.ro omnu m);strcpy(roomj.roo mnu m,t);strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m);strcpy(roomj. nu m,t);strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name); strcpy(roomj. name,t);void Sort_by_r oomnu m(Stude nt room,i nt n)int i,j;char t10;for(i=0;i n-1;i+)f

20、or(j=0;j0) strcpy(t,roomj+1. nu m);strcpy(roomj+1. nu m,roomj. nu m);strcpy(roomj. nu m,t);strcpy(t,roomj+1.ro omnu m);strcpy(roomj+1.roo mnu m,roomj.ro omnu m);strcpy(roomj.roo mnu m,t);strcpy(t,roomj+1. name);strcpy(roomj+1. name,roomj. name); strcpy(roomj. name,t); void Fi nd_record _n ame(Stude

21、nt room,i nt n)char s10;int i=0;prin tf(tt輸入要查找的姓名:”);scan f(%s,s);while(strcmp(roomi. name,s)!=O & in) i+;if(i=n)prin tf(tt對不起沒有找到該學(xué)生!n);elseDisplay_a_record(room1,i);void Fi nd_record_rom mnu m(Stude nt room,i nt n)char s20;int i=0;prin tf(tt輸入要查找的房間號:”);scan f(%s,s);while(strcmp(roomi.roo mnu m,s

22、)!=0 & in) i+;if(i=n)prin tf(tt對不起沒有找到該學(xué)生!n);elseDisplay_a_record(room1,i); void Fin d_record_ nu m(Stude nt room,i nt n)char s20;int i=0;prin tf(tt輸入要查找的學(xué)號:”);scan f(%s,s);while(strcmp(roomi. nu m,s)!=O & in) i+;if(i=n)!n);prin tf(tt對不起沒有找到該學(xué)生elseDisplay_a_record(room1,i); int In sert_a_record(Stud

23、e nt room,i nt n)printf(tt學(xué)生姓名:);scan f(tt%s,&room n. name);printf(tt學(xué)生學(xué)號:);scan f(tt%s,&room n. nu m);printf(tt學(xué)生房間號:);sca nf(”tt%s,&roomn .roo mnu m); n+;Sort_by_ num(room,n);printf(tt 插入記錄成功!n); return( n);int AddfromText(Stude nt room,i nt n)int i=0, num;FILE *fp;char file name20;printf(tt輸入文件名:

24、”);scan f(tt%s, &filen ame);if(fp=fope n(file name,rb)=NULL)printf(tt 無法打開該文件n);prin tf(tt);system(pause);return( n);fsca nf(fp,%d, &nu m);while(i num) fsca nf(fp,%s%s%s%s,room n+i.roo mnu m,room n+i. nu m,room n+i. name); i+;n+=num;fclose(fp);printf(tt讀入成功!n);prin tf(tt);system(pause);return( n);vo

25、id WritetoText(Stude nt room,i nt n)int i=0;FILE *fp;char file name100;printf(tt循環(huán)寫入數(shù)據(jù)n);printf(tt輸入文件名:);scan f(tt%s, &file name);if(fp=fope n(file name,w)=NULL)printf(tt無法打開該文件n);system(pause);return;fprin tf(fp,%dn, n);while(i n)fprin tf(fp,%-10s%-10s%-10s%-10sn,roomi.room nu m,roomi. num,roomi. name);i+;fclose(fp);printf(寫入成功!n); int mai n()int n=0;for(;)switch(me nu()case 1:printf(tt輸入記錄 n);n=ln put(room1, n);printf(tt顯示記錄 n);Display_all_record(room1, n);break;case 3:prin tf(tt按姓名排序并顯示n);Sort_by_ name(room1, n);printf(tt排序成功!n);Display_all_recor

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論