![宿舍管理系統(tǒng)軟件數(shù)據(jù)結(jié)構課程設計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/5308283c-c09b-48f7-bda2-3cccbc00edb2/5308283c-c09b-48f7-bda2-3cccbc00edb21.gif)
![宿舍管理系統(tǒng)軟件數(shù)據(jù)結(jié)構課程設計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/5308283c-c09b-48f7-bda2-3cccbc00edb2/5308283c-c09b-48f7-bda2-3cccbc00edb22.gif)
![宿舍管理系統(tǒng)軟件數(shù)據(jù)結(jié)構課程設計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/5308283c-c09b-48f7-bda2-3cccbc00edb2/5308283c-c09b-48f7-bda2-3cccbc00edb23.gif)
![宿舍管理系統(tǒng)軟件數(shù)據(jù)結(jié)構課程設計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/5308283c-c09b-48f7-bda2-3cccbc00edb2/5308283c-c09b-48f7-bda2-3cccbc00edb24.gif)
![宿舍管理系統(tǒng)軟件數(shù)據(jù)結(jié)構課程設計_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/5308283c-c09b-48f7-bda2-3cccbc00edb2/5308283c-c09b-48f7-bda2-3cccbc00edb25.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、一、題目名稱:宿舍管理查詢軟件二、設計目的:進一步掌握和利用C語言進行課程設計的能力,理解和運用結(jié)構化程設計的思想和方法,熟練掌握條件語句、循環(huán)、數(shù)組、函數(shù)操作,初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法,學會高度一個較長程序的基本方法和利用流程圖或N-S圖表示算法,將本課程所學的知識合理地運用于實踐當中。了解一些書上沒有的函數(shù)及使用方法。三、設計分析:1、需求分析為了實現(xiàn)提高高校宿舍管理部門的工作效率,充分利用資源,減少不必要的人力、物力和財力的支出,方便宿舍管理部門的工作人員全面地掌握學生住宿情況等目的,為宿舍管理部門開發(fā)設計專用系統(tǒng)學生宿舍信息管理系統(tǒng)來進行管理學生宿舍信息,使學生宿舍信息實
2、現(xiàn)標準化的管理和規(guī)范化的制度是十分必要的。2、經(jīng)濟可行性分析如今是信息化時代,信息化管理可以使學生宿舍管理更加系統(tǒng)化,全面化,快速化,這樣可以為學校帶來高效的工作效益和經(jīng)濟效益,開發(fā)出本系統(tǒng)可以減少宿舍管理人員人數(shù),而且管理方便,各功能實現(xiàn)迅速,數(shù)據(jù)有效的管理。這些效益和管理上的便捷遠遠超過了開發(fā)本系統(tǒng)的成本,所以在經(jīng)濟上具有完全的可行性。四、總體設計:根據(jù)系統(tǒng)要求,即本系統(tǒng)具有信息的錄入,顯示,查找,刪除,從文件中讀入數(shù)據(jù)、循環(huán)寫入數(shù)據(jù)、結(jié)束程序等功能,先設計出詳細的系統(tǒng)流程圖,然后將源代碼輸入程序,進行編譯調(diào)試即可。 程序總體分九個項目:輸入記錄、顯示記錄、按房間號排序并顯示、按學號排序并
3、顯示、插入一條記錄并按學號排序并顯示、按姓名查找、刪除一條記錄、查找并顯示一個記錄、從文件中讀入數(shù)據(jù)、循環(huán)寫入數(shù)據(jù)以及結(jié)束程序。五、詳細設計:1、系統(tǒng)流程圖如圖5-1所示開始輸出界面選擇操作選擇1選擇2選擇3選擇4選擇5選擇6選擇7選擇8選擇9選擇0輸入記錄是是顯示記錄否否否否否否否否否退出系統(tǒng)結(jié)束按床位排序顯示按學號排序顯示是是是是插入一個記錄查找刪除記錄查找顯示記錄從文件輸入寫入文件保存是是是是否圖5-1 系統(tǒng)流程圖2、根據(jù)流程圖,將程序源代碼輸入到編譯環(huán)境中,按照提示選擇進行記錄的輸入,輸入一個數(shù)據(jù)后提示是否繼續(xù)輸入,直到結(jié)束程序為止。輸入主菜單如下:輸出("tt學生宿舍管理系
4、統(tǒng)n"); 輸出("tt§ 1. 輸入記錄 §n");輸出("tt§ 2. 顯示記錄 §n");輸出("tt§ 4. 按學號排序并顯示 §n");輸出("tt§ 5. 插入一條記錄按學號排序并顯示 §n");輸出("tt§ 6. 按姓名查找,刪除一條記錄 §n");輸出("tt§ 7 查找并顯示一個記錄 §n");輸出("tt§
5、 8. 從文件中讀入數(shù)據(jù) §n");輸出("tt§ 9. 循環(huán)寫入數(shù)據(jù) §n");輸出("tt§ 0. 結(jié)束程序 §n");輸出("ttn");輸出("tt請選擇您要運行的選項按(0-9):");將程序編譯生成“學生宿舍管理系統(tǒng).exe”。運行該文件如圖5-2所示。圖5-2 輸出界面圖輸入記錄采用循環(huán)輸入while(sign!='n'&&sign!='N') 輸出("tt房間號:"); 輸
6、入("tt%s"&,roomn+i.roomnum);輸出("tt床位號:");輸入("tt%s",&roomn+i.bednum);輸出("tt學號:");輸入("tt%s",&roomn+i.num);輸出("tt姓名:");輸入("tt%s",&roomn+);gets(x); /*清除多余的輸入*/輸出("tt是否繼續(xù)輸入?(Y/N)");輸入("tt%c",&am
7、p;sign); i+;返回(n+i);按照提示選擇“1”進行記錄的輸入如圖5-3所示:圖5-3 輸入記錄顯示圖 按房間號排序采用冒泡排序法。 int i,j,*p,*q,s; 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) 比較(t,roomj+1.roomnum);比較(roomj+1.roomnum,roomj.roomnum);比較(roomj.roomnum,t);比較(t,roomj+1.bednum);比較(ro
8、omj+1.bednum,roomj.bednum);比較(roomj.bednum,t);比較(t,roomj+1.num);比較(roomj+1.num,roomj.num);比較(roomj.num,t);比較(t,roomj+1.name);比較(roomj+1.name,);比較(,t);連續(xù)輸入多組數(shù)據(jù)后,按“n”結(jié)束輸入,提示按任意鍵繼續(xù),按任意鍵后選擇“2”進行記錄的顯示如圖5-4所示。圖5-4 按房間號排序并顯示圖按學號排序采用冒泡排序法比較(t,roomj+1.bednum);比較(roomj+1.bednum,roomj.bednu
9、m);比較(roomj.bednum,t);比較(t,roomj+1.num);比較(roomj+1.num,roomj.num);比較(roomj.num,t);比較(t,roomj+1.name);比較(roomj+1.name,);比較(,t);顯示后提示按任意鍵繼續(xù),選擇“4”進行按學號排序并顯示,如圖5-5所示。圖5-5 按學號排序顯示圖插入記錄采用交互式輸入:輸出("tt輸入他(她)的姓名:"); 輸入("tt%s",&s);while(strcmp(,s)!=0&&
10、amp;i<n) i+; 如果(i=n)輸出("tt對不起沒找到該學生!n"); return;輸出("tt他(她)的房間號:%sn",roomi.roomnum); 輸出("tt他(她)的床位號:%sn",roomi.bednum);輸出("tt他(她)的學號:%sn",roomi.num);顯示后提示按任意鍵繼續(xù),選擇“5”按提示步驟插入一條記錄,如圖5-6所示。圖5-6 插入一條記錄圖六、系統(tǒng)測試將源代碼輸入至編譯環(huán)境中,將程序編譯連接后生成“學生宿舍管理系統(tǒng).exe”運行該文件,則顯示主菜單:1、輸入
11、記錄2、顯示記錄3、按房間號排序并顯示4、按學號排序并顯示5、插入一條記錄并按學號排序顯示6、按姓名查找,刪除一條記錄7、查找并顯示一個記錄8、從文件中讀入數(shù)據(jù)9、循環(huán)寫入數(shù)據(jù)0、結(jié)束程序請選擇您要運行的選項按(0-9):按照提示選擇“1”進行記錄的輸入,則在主菜單下顯示:輸入記錄房間號:101床位號:1學號:21姓名:xiaoning是否繼續(xù)輸入?(Y/N)-按N結(jié)束,按任意鍵后選擇“2”進行記錄的顯示,則在主菜單下顯示:房間號 床位號 學號 姓名101 1 21 xiaoning314 2 12 xiaozhang203 2 32 xiaoli417 5 41 xiaowang請按任意鍵繼
12、續(xù)選擇“5”插入一條記錄,則在主菜單下顯示:學生房間號:513學生床位號:4學生學號:52學生姓名:xiaoguan插入記錄成功!房間號 床位號 學號 姓名101 1 21 xiaoning314 2 12 xiaozhang203 2 32 xiaoli417 5 41 xiaowang513 4 52 xiaoguan請按任意鍵繼續(xù)七、結(jié)論這次課程設計我做的還不是很完善,因為功能不是很多,如果以后有機會完善的話,應該對管理員和用戶登錄時做進一步完善。學生的信息還不夠完整,如學生的宿舍長,系別,一些費用以及學生的成績等待相關詳細信息。如果使次系統(tǒng)再詳細些,需添加更多的管理員以及管理員權限,還
13、有學生的更多信息,如果有必要的話,添加一些有關教師的信息,以及教師登錄的界面。在這次課程設計的過程中,我們體會到要想開發(fā)一個系統(tǒng)軟件,不僅需要相當?shù)膶I(yè)技術知識,還要有嚴謹縝密的思維能力。只有思想上清晰了,編程才有意義,否則就是白費力氣。同時還要善于捕獲細小的方面,因為那往往是這個程序的致命因素。這次課程設計培養(yǎng)了我的細心和耐性,更樹立了一種科學的態(tài)度。附錄:源代碼#include<stdio.h> /*引用庫函數(shù)*/#include<stdlib.h>#include<ctype.h>#include<string.h>typedef stru
14、ct /*定義結(jié)構體數(shù)組*/char roomnum4; /*房間號*/char bednum2; /*床位號*/char num10; /*學號*/char name20; /*姓名*/Student;Student room11000; /*結(jié)構體數(shù)組變量*/int menu_select() /*菜單函數(shù)*/char c;dosystem("cls"); /*運行前清屏*/printf("tt學生宿舍管理系統(tǒng)n"); /*菜單選擇*/printf("tt§ 1. 輸入記錄 §n");printf("
15、tt§ 2. 顯示記錄 §n");printf("tt§ 4. 按學號排序并顯示 §n");printf("tt§ 5. 插入一條記錄按學號排序并顯示 §n");printf("tt§ 6. 按姓名查找,刪除一條記錄 §n");printf("tt§ 7 查找并顯示一個記錄 §n");printf("tt§ 8. 從文件中讀入數(shù)據(jù) §n");printf("
16、tt§ 9. 循環(huán)寫入數(shù)據(jù) §n");printf("tt§ 0. 結(jié)束程序 §n");printf("ttn");printf("tt請選擇您要運行的選項按(0-9):");c=getchar(); /*讀入選擇*/while(c<'0'|c>'9');return(c-'0'); /*返回選擇*/int Input(Student room,int n) /*輸入若干條記錄*/int i=0;char sign,x10;
17、/*x10為清除多余的數(shù)據(jù)所用*/while(sign!='n'&&sign!='N') /*判斷*/printf("tt房間號:"); /*交互輸入*/scanf("tt%s"&,roomn+i.roomnum);printf("tt床位號:");scanf("tt%s",&roomn+i.bednum);printf("tt學號:");scanf("tt%s",&roomn+i.num);printf
18、("tt姓名:");scanf("tt%s",&roomn+);gets(x); /*清除多余的輸入*/printf("tt是否繼續(xù)輸入?(Y/N)");scanf("tt%c",&sign); /*輸入判斷*/i+;return(n+i);void Display(Student room,int n) /*顯示所有記錄*/int i;printf("tt-n"); /*格式頭*/printf("tt房間號 床位號 學號 姓名 n");print
19、f("tt-n");for(i=1;i<n+1;i+) /*循環(huán)輸入*/printf("tt%-10s%-10s%-10s%-20sn",roomi-1.roomnum,roomi-1.bednum,roomi-1.num,);if(i>1&&i%10=0) /*每十個暫停*/printf("tt-n");/*格式*/printf("tt");system("pause");printf("tt-n"); printf(&q
20、uot;tt");system("pause");void Sort_by_num(Student room,int n) /*按學號排序*/int i,j,*p,*q,s;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.bednum);strcpy(roomj+1.bednum,roomj.bednum);strcpy(roomj.bednum,t);strcpy(t,roomj+
21、1.num);strcpy(roomj+1.num,roomj.num);strcpy(roomj.num,t);strcpy(t,roomj+1.name);strcpy(roomj+1.name,);strcpy(,t);void Sort_by_roomnum(Student room,int n) /*按房間號排序*/int i,j,*p,*q,s;char t10;for(i=0;i<n-1;i+) /*冒泡法排序*/for(j=0;j<n-1-i;j+)if(strcmp(roomj.roomnum,roomj+1.roomnum
22、)>0)strcpy(t,roomj+1.roomnum);strcpy(roomj+1.roomnum,roomj.roomnum);strcpy(roomj.roomnum,t);strcpy(t,roomj+1.bednum);strcpy(roomj+1.bednum,roomj.bednum);strcpy(roomj.bednum,t);strcpy(t,roomj+1.num);strcpy(roomj+1.num,roomj.num);strcpy(roomj.num,t);strcpy(t,roomj+1.name);strcpy(roomj+1.name,roomj.
23、name);strcpy(,t);int Insert_a_record(Student room,int n) /*插入一條記錄*/char x100; /*清除多余輸入所用*/printf("tt學生房間號:"); /*交互式輸入*/scanf("tt%s",&roomn.roomnum);printf("tt學生床位號:");scanf("tt%s",&roomn.bednum);printf("tt學生學號:");scanf("tt%s&qu
24、ot;,&roomn.num);printf("tt學生姓名:");scanf("tt%s",&);gets(x);n+;Sort_by_num(room,n); /*調(diào)用排序函數(shù)*/printf("tt插入記錄成功!n"); /*返回成功信息*/return(n);int Delete_a_record(Student room,int n) /*按姓名查找,刪除一條記錄*/char s20;int i=0,j;printf("tt輸入他(她)的姓名:"); /*交互式問尋*/
25、scanf("%s",s);while(strcmp(,s)!=0&&i<n) i+; /*查找判斷*/if(i=n)printf("tt對不起沒找到該學生!n"); /*返回失敗信息*/return(n);for(j=i;j<n-1;j+) /*刪除操作*/strcpy(roomj.roomnum,roomj+1.roomnum);strcpy(roomj.bednum,roomj+1.bednum); strcpy(roomj.num,roomj+1.num);strcpy(,roo
26、mj+1.name);printf("tt刪除記錄成功!n"); /*返回成功信息*/return(n-1);void Query_a_record(Student room,int n) /*查找并顯示一個記錄*/char s20;int i=0;printf("tt輸入他(她)的姓名:"); /*交互式輸入*/scanf("tt%s",&s);while(strcmp(,s)!=0&&i<n) i+; /*查找判斷*/if(i=n)printf("tt對不起沒找到該學生!
27、n"); /*輸入失敗信息*/return;printf("tt他(她)的房間號:%sn",roomi.roomnum); /*輸出該學生信息*/printf("tt他(她)的床位號:%sn",roomi.bednum);printf("tt他(她)的學號:%sn",roomi.num);int AddfromText(Student room,int n) /*從文件中讀入數(shù)據(jù)*/int i=0,num;FILE *fp; /*定義文件指針*/char filename20; /*定義文件名*/printf("t
28、t輸入文件名:");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) /*循環(huán)讀入數(shù)據(jù)*/ fscanf(fp,&q
29、uot;%s%s%s%s",roomn+i.roomnum,roomn+i.bednum,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; /*定義文件名*/p
30、rintf("tt循環(huán)寫入數(shù)據(jù)n"); /*輸入文件名*/printf("tt輸入文件名:");scanf("tt%s",&filename);if(fp=fopen(filename,"w")=NULL) /*打開文件*/printf("tt無法打開該文件n");system("pause");return;fprintf(fp,"%dn",n); /*循環(huán)寫入數(shù)據(jù)*/while(i<n)fprintf(fp,"%-10s%-10
31、s%-10s%-10sn",roomi.roomnum,roomi.bednum,roomi.num,);i+;fclose(fp); /*關閉文件*/printf("寫入成功!n"); /*返回成功信息*/void main() /*主函數(shù)*/int n=0;for(;)switch(menu_select() /*選擇判斷*/ case 1:printf("tt輸入記錄n"); /*輸入若干條記錄*/n=Input(room1,n);break; case 2: printf("tt顯示記錄n"); /*顯示所有記錄*/ Display(room1,n); break; case 3: printf("tt按房間號排序并顯示n"); Sort_by_roomnum(room1,n);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年住宅小區(qū)自動化系統(tǒng)施工合同模板
- 2025年婦科用藥項目立項申請報告
- 2025年勞務服務合同標準化范本
- 2025年醫(yī)事人員勞動合同樣式
- 2025年婚姻財產(chǎn)協(xié)議書范例及標準格式
- 2025年獵頭項目提案報告
- 2025年二級渠道策劃銷售代理合同書
- 2025年人才交流策劃共識協(xié)議
- 2025年企業(yè)股東間投資協(xié)議合同示例
- 2025年分公司經(jīng)濟責任合同
- SB/T 10977-2013倉儲作業(yè)規(guī)范
- GB/T 854-1988單耳止動墊圈
- GB/T 2520-2017冷軋電鍍錫鋼板及鋼帶
- 化工裝置安全試車工作規(guī)范附件解讀教材課件
- 【QC成果】提高地下室抗浮錨桿一次驗收合格率
- 中建精裝修施工工藝工法標準(做法詳細值得收藏)
- 篆刻學ppt精品課件
- 中厚板軋制規(guī)程
- 貴州煤炭資源有償使用意見
- 智慧教育 云平臺建設方案
- 模具試模通知單
評論
0/150
提交評論