![宿舍管理查詢軟件 課程設(shè)計(jì)報(bào)告_第1頁(yè)](http://file4.renrendoc.com/view/0c2eb36a8891f3222d8b488a48407ac9/0c2eb36a8891f3222d8b488a48407ac91.gif)
![宿舍管理查詢軟件 課程設(shè)計(jì)報(bào)告_第2頁(yè)](http://file4.renrendoc.com/view/0c2eb36a8891f3222d8b488a48407ac9/0c2eb36a8891f3222d8b488a48407ac92.gif)
![宿舍管理查詢軟件 課程設(shè)計(jì)報(bào)告_第3頁(yè)](http://file4.renrendoc.com/view/0c2eb36a8891f3222d8b488a48407ac9/0c2eb36a8891f3222d8b488a48407ac93.gif)
![宿舍管理查詢軟件 課程設(shè)計(jì)報(bào)告_第4頁(yè)](http://file4.renrendoc.com/view/0c2eb36a8891f3222d8b488a48407ac9/0c2eb36a8891f3222d8b488a48407ac94.gif)
![宿舍管理查詢軟件 課程設(shè)計(jì)報(bào)告_第5頁(yè)](http://file4.renrendoc.com/view/0c2eb36a8891f3222d8b488a48407ac9/0c2eb36a8891f3222d8b488a48407ac95.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì)課程設(shè)計(jì)名稱: 宿舍管理查詢軟件 專 業(yè) 班 級(jí) : 計(jì)科0604 學(xué) 生 姓 名 : 胡方俊 學(xué) 號(hào) :20064140414 指 導(dǎo) 教 師 : 白浩 課程設(shè)計(jì)時(shí)間: 2008年6月23日 1 需求分析 為一個(gè)宿舍設(shè)計(jì)管理查詢軟件,每當(dāng)進(jìn)入個(gè)新同學(xué),可以輸入他的姓名,學(xué)號(hào)以及 號(hào)碼,并且可以把他們的所有信息按學(xué)號(hào)從小到大排列,能按照姓名查找并顯示其所有信息,也可以按照姓名刪除某個(gè)學(xué)生的信息。2 概要設(shè)計(jì)2.1 使用C語(yǔ)言中的結(jié)構(gòu)體鏈表來(lái)存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)體鏈表可以方便存儲(chǔ)成組的相關(guān)數(shù)據(jù)。結(jié)構(gòu)體鏈表可以方便結(jié)構(gòu)體的添加、刪除、查找。另外結(jié)構(gòu)體鏈表可以讓一個(gè)結(jié)構(gòu)體的相關(guān)數(shù)據(jù)集體存儲(chǔ),不
2、僅十分方便我們對(duì)數(shù)據(jù)的操作,而且讓程序的的思路特別清晰,讓程序更加清晰易懂。通過(guò)對(duì)結(jié)構(gòu)以鏈表的操作來(lái)控制數(shù)據(jù)。在添加數(shù)據(jù)時(shí),增加鏈表的長(zhǎng)度,在刪除時(shí)先通過(guò)查找找到此數(shù)據(jù)的前驅(qū)和后續(xù),來(lái)對(duì)數(shù)據(jù)進(jìn)行刪除。學(xué)會(huì)用文件的拷貝來(lái)實(shí)現(xiàn)冒泡法排序,這也是一種不同于常規(guī)的新方法。2.2 用戶界面設(shè)計(jì)窗口包括: 1:添加所有學(xué)生的信息 2:顯示學(xué)生所有信息 3:按學(xué)號(hào)進(jìn)行排序 4:插入學(xué)生所有信 5:按姓名刪除學(xué)生信息 6:查找學(xué)生所有的信息 0:退出學(xué)生信息管理系統(tǒng) 2.3 運(yùn)行說(shuō)明 此程序在使用時(shí),應(yīng)該先進(jìn)性多個(gè)學(xué)生信息的添加,之后才能進(jìn)行相關(guān)的操作,否則將不會(huì)顯示學(xué)生的信息,并提示重新操作。3 運(yùn)行環(huán)境3
3、.1 硬件環(huán)境一般的(1)Windows Vista/2003/XP(2)計(jì)算機(jī)及VisualC+6.0編程環(huán)境。4 開發(fā)工具和編程語(yǔ)言4.1 開發(fā)工具4.2 編程語(yǔ)言Visual C5 詳細(xì)設(shè)計(jì) 在宿舍管理系統(tǒng)里面添加學(xué)生信息 (1)添加學(xué)生信息的基本原理用指針*P來(lái)創(chuàng)建一個(gè)存儲(chǔ)單元,來(lái)存儲(chǔ)圖書的信息:學(xué)生的姓名、學(xué)號(hào)、 號(hào)碼。然后再和鏈變相連,有結(jié)構(gòu)體鏈表來(lái)存儲(chǔ)所有學(xué)生的信息。*指針只想最后一個(gè)結(jié)構(gòu)體鏈表的最后一個(gè)結(jié)構(gòu)體(2)添加學(xué)生信息的原理圖存儲(chǔ)圖書的結(jié)構(gòu)體單元P 的next指向NULL5.2 在宿舍管理系統(tǒng)中顯示所有學(xué)生的信息用printf來(lái)顯示學(xué)生的信息,并且用for循環(huán)來(lái)實(shí)現(xiàn)所有
4、的學(xué)生信息都能顯示。 在宿舍管理系統(tǒng)中按學(xué)號(hào)進(jìn)行排序 利用拷貝函數(shù)實(shí)現(xiàn)冒泡法排序,學(xué)號(hào)與學(xué)號(hào)間進(jìn)行大小的相互比較,大的自動(dòng)下沉,這樣每進(jìn)行一次比較,大的都會(huì)沉到下面,最終是由小到大的排列。 在宿舍管理系統(tǒng)中按姓名進(jìn)行刪除信息首先用指針找到此學(xué)生的前驅(qū)和后續(xù),然后讓前驅(qū)的NEXT指向后續(xù),就刪除所要?jiǎng)h除的信息了。程序源代碼#include /*引用庫(kù)函數(shù)*/ #include #include #include typedef struct /*定義結(jié)構(gòu)體數(shù)組*/ char num10; /*學(xué)號(hào)*/ char name20; /*姓名*/ long tel; /* */ Student; St
5、udent stu80; /*結(jié)構(gòu)體數(shù)組變量*/ int menu_select() /*菜單函數(shù)*/ char c; do system(cls); /*運(yùn)行前清屏*/ printf(*n); printf(*歡迎進(jìn)入宿舍管理系統(tǒng)*n );printf(*1:添加所有學(xué)生的信息*n);printf(*2:顯示學(xué)生所有信息*n);printf(*3:按學(xué)號(hào)進(jìn)行排序*n);printf(*4:插入學(xué)生所有信息*n);printf(*5:按姓名刪除學(xué)生信息*n);printf(*6:查找學(xué)生所有的信息*n);printf(*0:退出學(xué)生信息管理系統(tǒng)*n);printf(*n);printf(請(qǐng)選擇
6、功能選項(xiàng):);c=getchar(); /*讀入選擇*/ while(c9); return(c-0); /*返回選擇*/ int Input(Student stud,int n) /*輸入若干條記錄*/ int i=0; char sign,x10; /*x10為清除多余的數(shù)據(jù)所用*/ while(sign!=n&sign!=N) /*判斷*/ printf(tttstudents num:); /*交互輸入*/ scanf(ttt%s,studn+i.num); printf(tttstudents name:); scanf(ttt%s,studn+); printf(tt
7、tstudents tel:); scanf(ttt%d,&studn+i.tel); gets(x); /*清除多余的輸入*/ printf(tttany more records?(Y/N); scanf(ttt%c,&sign); /*輸入判斷*/ i+; return(n+i); void Display(Student stud,int n) /*顯示所有記錄*/ int i; printf(ttt-n); /*格式頭*/ printf(tttnumber name teln); printf(ttt-n); for(i=1;i1&i%10=0) /*每十個(gè)暫停*/ printf(t
8、tt-n); /*格式*/ printf(ttt); system(pause); printf(ttt-n); printf(ttt); system(pause); void Sort_by_num(Student stud,int n) /*按學(xué)號(hào)排序*/ int i,j,*p,*q,s; char t10; for(i=0;in-1;i+) /*冒泡法排序*/ for(j=0;j0) strcpy(t,studj+1.num); strcpy(studj+1.num,studj.num); strcpy(studj.num,t); strcpy(t,studj+1.name); str
9、cpy(studj+1.name,); strcpy(,t); p=&studj+1.tel; q=&studj.tel; s=*p; *p=*q; *q=s; int Insert_a_record(Student stud,int n) /*插入一條記錄*/ char x10; /*清除多余輸入所用*/ printf(tttstudents num:); /*交互式輸入*/ scanf(ttt%s,studn.num); printf(tttstudents name:); scanf(ttt%s,); printf(tttstu
10、dents tel:); scanf(ttt%d,&studn.tel); gets(x); n+; Sort_by_num(stud,n); /*調(diào)用排序函數(shù)*/ printf(tttInsert Successed!n); /*返回成功信息*/ return(n); int Delete_a_record(Student stud,int n) /*按姓名查找,刪除一條記錄*/ char s20; int i=0,j; printf(ttttell me his(her) name:); /*交互式問(wèn)尋*/ scanf(%s,s); while(strcmp(,s)!=
11、0&in) i+; /*查找判斷*/ if(i=n) printf(tttnot find!n); /*返回失敗信息*/ return(n); for(j=i;jn-1;j+) /*刪除操作*/ strcpy(studj.num,studj+1.num); strcpy(,studj+1.name); studj.tel=studj+1.tel; printf(tttDelete Successed!n); /*返回成功信息*/ return(n-1); void Query_a_record(Student stud,int n) /*查找并顯示一個(gè)記錄*/ char s
12、20; int i=0; printf(tttinput his(her) name:); /*交互式輸入*/ scanf(ttt%s,s); while(strcmp(,s)!=0&in) i+; /*查找判斷*/ if(i=n) printf(tttnot find!n); /*輸入失敗信息*/ return; printf(ttthis(her) number:%sn,studi.num); /*輸出該學(xué)生信息*/ printf(ttthis(her) tel:%dn,studi.tel); int AddfromText(Student stud,int n) /*
13、從文件中讀入數(shù)據(jù)*/ int i=0,num; FILE *fp; /*定義文件指針*/ char filename20; /*定義文件名*/ printf(tttInput the filename:); scanf(ttt%s,filename); /*輸入文件名*/ if(fp=fopen(filename,rb)=NULL) /*打開文件*/ printf(tttcannt open the filen); /*打開失敗信息*/ printf(ttt); system(pause); return(n); fscanf(fp,%d,&num); /*讀入總記錄量*/ while(inu
14、m) /*循環(huán)讀入數(shù)據(jù)*/ fscanf(fp,%s%s%d,studn+i.num,studn+,&studn+i.tel); i+; n+=num; fclose(fp); /*關(guān)閉文件*/ printf(tttSuccessed!n); printf(ttt); system(pause); return(n); void WritetoText(Student stud,int n) /*將所有記錄寫入文件*/ int i=0; FILE *fp; /*定義文件指針*/ char filename20; /*定義文件名*/ printf(tttWrite Records t
15、o a Text Filen); /*輸入文件名*/ printf(tttInput the filename:); scanf(ttt%s,filename); if(fp=fopen(filename,w)=NULL) /*打開文件*/ printf(tttcannt open the filen); system(pause); return; fprintf(fp,%dn,n); /*循環(huán)寫入數(shù)據(jù)*/ while(in) fprintf(fp,%-16s%-15s%dn,studi.num,,studi.tel); i+; fclose(fp); /*關(guān)閉文件*/
16、printf(Successed!n); /*返回成功信息*/ void main() /*主函數(shù)*/ int n=0; for(;) switch(menu_select() /*選擇判斷*/ case 1: printf(tttInput Recordsn); /*輸入若干條記錄*/ n=Input(stu,n); break; case 2: printf(tttDisplay All Recordsn); /*顯示所有記錄*/ Display(stu,n); break; case 3: printf(tttSortn); Sort_by_num(stu,n); /*按學(xué)號(hào)排序*/ p
17、rintf(tttSort Suceessed!n); printf(ttt); system(pause); break; case 4: printf(tttInsert a Recordn); n=Insert_a_record(stu,n); /*插入一條記錄*/ printf(ttt); system(pause); break; case 5: printf(tttDelete a Recordn); n=Delete_a_record(stu,n); /*按姓名查找,刪除一條記錄*/ printf(ttt); system(pause); break; case 6: print
18、f(tttQueryn); Query_a_record(stu,n); /*查找并顯示一個(gè)記錄*/ printf(ttt); system(pause); break; case 0: printf(tttHave a Good Luck,Bye-bye!n); /*結(jié)束程序*/ printf(ttt); system(pause); exit(0); 6 調(diào)試分析開始部分 6.2 添加學(xué)生信息 6.3 顯示學(xué)生信息按學(xué)號(hào)進(jìn)行排序 6.5 排序后顯示的結(jié)果6.6 插入新學(xué)生的信息 按姓名刪除學(xué)生信息 6.8 刪除進(jìn)行排序后顯示的結(jié)果6.9 按姓名查找學(xué)生的信息 6.10 退出管理系統(tǒng) 程序設(shè)計(jì)總結(jié)自己設(shè)計(jì)的宿舍管理系統(tǒng)基本實(shí)現(xiàn)了所要求的功能:1:添加所有學(xué)生的信息 2:顯示學(xué)生所有信息 3:按學(xué)號(hào)進(jìn)行排序 4:插入學(xué)生所有信息
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 殘疾人減免稅申請(qǐng)書
- 租房變更申請(qǐng)書
- 學(xué)校攤位申請(qǐng)書范文
- 環(huán)保視角下的設(shè)備高效使用與持久保護(hù)方案介紹
- 2024年高考?xì)v史二輪復(fù)習(xí)“12+2+3”專項(xiàng)練第24題專練-中華文明的勃興與社會(huì)轉(zhuǎn)型
- 加入?yún)f(xié)會(huì)的申請(qǐng)書
- 電子商務(wù)平臺(tái)的智能化運(yùn)營(yíng)與管理
- 電子商務(wù)與大數(shù)據(jù)驅(qū)動(dòng)的快遞業(yè)協(xié)同發(fā)展
- 電子商務(wù)運(yùn)營(yíng)中的數(shù)據(jù)分析與決策
- 二零二五年度葡萄種植項(xiàng)目融資與勞務(wù)合作協(xié)議3篇
- 寵物醫(yī)院?jiǎn)T工手冊(cè)
- 2024年高考英語(yǔ)讀后續(xù)寫高分寶典專題08讀后續(xù)寫肢體動(dòng)作描寫積累1(詞-句-文)講義
- 商業(yè)與公積金貸款政策
- 年獸的故事之The Legend of Nian
- 初中美術(shù)教學(xué)策略與方法
- 甲流護(hù)理查房病例
- 概率論與數(shù)理統(tǒng)計(jì)智慧樹知到課后章節(jié)答案2023年下四川師范大學(xué)
- 2024屆高考作文主題訓(xùn)練:時(shí)評(píng)類(含解析)
- 260噸汽車吊地基承載力驗(yàn)算
- 譯林版英語(yǔ)小學(xué)四年級(jí)下冊(cè)-課文翻譯(英漢對(duì)照)
- Vue.js前端開發(fā)實(shí)戰(zhàn)(第2版)全套完整教學(xué)課件
評(píng)論
0/150
提交評(píng)論