C語言課程設(shè)計(jì)方案:學(xué)生宿舍管理系統(tǒng)[]_第1頁
C語言課程設(shè)計(jì)方案:學(xué)生宿舍管理系統(tǒng)[]_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余22頁可下載查看

下載本文檔

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

文檔簡介

1、學(xué)生宿舍管理系統(tǒng)1. 課程設(shè)計(jì)的目的進(jìn)一步掌握和利用C語言進(jìn)行程設(shè)計(jì)的能力,理解和運(yùn)用結(jié)構(gòu)化程設(shè)計(jì)的思想和方 法,熟練掌握條件語句、循環(huán)、數(shù)組、函數(shù)操作,初步掌握開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本 方法,學(xué)會高度一個(gè)較長程序的基本方法和利用流程圖或N-S圖表示算法,將本課程所學(xué)的知識合理地運(yùn)用于實(shí)踐當(dāng)中。了解一些書上沒有的函數(shù)及使用方法。2. 設(shè)計(jì)方案論證2.1設(shè)計(jì)思路利用數(shù)組對宿舍的記錄進(jìn)行循環(huán)輸入輸出,利用冒泡法記錄進(jìn)行排序,利用循環(huán)查找 數(shù)組中某個(gè)數(shù)據(jù),對其進(jìn)行顯示,刪除,讀入和寫入文檔等操作。2.2流程圖#in clude#in cludetypedef struct/*定義結(jié)構(gòu)體數(shù)組 */c

2、har c。printf(tt 請選擇您要運(yùn)行的選項(xiàng)按(0-9):)。printf(tt 學(xué)生宿舍管理系統(tǒng)n)。prin tf(tt1.輸入記錄n)。prin tf(tt2.顯示記錄 n)。prin tf(tt3.按房間號排序并顯示n)。 prin tf(tt4.按學(xué)號排序并顯示n)。prin tf(tt5.插入一條記錄按學(xué)號排序并顯示n。prin tf(tt6.按姓名查找刪除一條記錄n)。prin tf(tt7 查找并顯示一個(gè)記錄n)。 prin tf(tt8.從文件中讀入數(shù)據(jù)n)。prin tf(tt9.循環(huán)寫入數(shù)據(jù)n)。prin tf(tt0.結(jié)束程序n)。/*運(yùn)行前清屏*/printf

3、(tt n)。/*菜單選擇*/char roomnum4。char bednum2。char num10。char name20。Student。Student /*房間號*/*床位號*/*學(xué)號*/*姓名*/*結(jié)構(gòu)體數(shù)組變量*/函數(shù)*/dosystem(cls)。int i=0。while(sign!=n&sign!=N)/* 判斷 */c=getchar()。while(c9)。return(c-O)。int In put(Stude nt room,i nt/*讀入選擇*/*返回選擇*/*輸入若干條記錄*/char sign,x10。/*x10為清除多余的

4、數(shù)據(jù)所用*/printf(tt 房間號:)。/*交互輸入*/sea nf(tt%s &,room n+i.roo mnum)。printf(tt 床位號:)。scan f(tt%s, &room n+i.bed num)。printf(tt 學(xué)號:)。scan f(tt%s,&room n+i. num)。printf(tt 姓名:)。scan f(tt%s, &room n+i. name)。gets(x)。/*清除多余的輸入*/printf(tt 是否繼續(xù)輸入?(Y/N)。scanf(tt%c,&sign)。/* 輸入判斷 */i+。return(n

5、+i)。void Display(Student room,int n)/*顯示所有記錄 */ int i。printf(tt- n)。/* 格式頭 */printf(tt 房間號 床位號 學(xué)號 姓名n)。printf(tt- n)。for(i=1。i1 &i%10=0)/*每十個(gè)暫停 */printf(tt- n)。/* 格式 */printf(tt)。system(pause)。printf(tt- n)。printf(tt)。system(pause)。void Sort_by_num(Student room,int n) /* 按學(xué)號排序 */ int i,j,*p,*q,s

6、。char t10。for(i=0oin-1。i+)/* 冒泡法排序 */for(j=0oj0)strcpy(t,roomj+1.bednum)。strcpy(roomj+1.bed num, roomj.bed num)。strcpy(roomj.bednum,t)。strcpy(t,roomj+1.num)。strcpy(roomj+1. nu m,roomj. num)。strcpy(roomj.num,t)。strcpy(t,roomj+1.name)。strcpy(roomj+1. name,roomj. name)。strcpy(,t)。void Sort_by

7、_roomnum(Student room,int n) /* 按房間號排序 */int i,j,*p,*q,s。char t10。for(i=0oin-1。i+)/* 冒泡法排序 */for(j=0。j0)strcpy(t,roomj+1.roo mnum)。strcpy(roomj+1.roo mnu m,roomj.roo mnum)。strcpy(roomj.roomnum,t)。strcpy(t,roomj+1.bednum)。strcpy(roomj+1.bed nu m,roomj.bed num)。strcpy(roomj.bednum,t)。strcpy(t,roomj+1.

8、num)。strcpy(roomj+1. nu m,roomj. num)。strcpy(roomj.num,t)。strcpy(t,roomj+1.name)。strcpy(roomj+1. name,roomj. name)。 strcpy(,t)。int Insert_a_record(Student room,int n)/* 插入一條記錄 */char x100。/*清除多余輸入所用*/printf(tt 學(xué)生房間號:)。/*交互式輸入*/sca nf(tt%s,&room n.roo mnum)。printf(tt 學(xué)生床位號:)。scan f(tt%s

9、,&room n.bed num)。printf(tt 學(xué)生學(xué)號:)。scan f(tt%s,&room n.n um)。printf(tt 學(xué)生姓名:)。scan f(tt%s,&room n. name)。gets(x)。n+。return(n)。char i=0,j。printf(tt 輸入他(她)的姓名:)。scanf(%s,s)。while(strcmp(,s)!=O&in) i+。/* 查找判斷 */if(i=n)printf(tt 對不起沒找到該學(xué)生!n)。/*返回失敗信息*/return(n)。Sort_by_

10、num(room,n)。/*調(diào)用排序函數(shù)*/printf(tt 插入記錄成功!n)。/*返回成功信息*/int Delete_a_record(Stude nt room,i ntn)/*按姓名查找,刪除一條記錄 */*交互式問尋*/for(j=i。jn-1。j+)/* 刪除操作 */strcpy(roomj.roo mnu m,roomj+1.roo mnum)。strcpy(roomj.bed nu m,roomj+1.bed num)。strcpy(roomj. nu m,roomj+1. num)。strcpy(,roomj+1.name)。printf(tt)。s

11、ystem(pause)。return(n)。fscanf(fp,%d,&num)。/*讀入總記錄量*/printf(tt 刪除記錄成功!n”)。/*返回成功信息*/return(n-1)。void Query_a_record(Stude nt room,i ntn)/*查找并顯示一個(gè)記錄*/char i=0。printf (tt 輸入他(她)的姓名:) 。/*交互式輸入*/scanf(tt%s,&s)。while(strcmp(roomi. name,s)!=0&in) i+/*查找判斷*/if(i=n)printf(tt對不起沒找到/*輸入失敗信息

12、*/return。printf(tt他(她)的房間號:%sn,roomi.roomnum)。/*輸出該學(xué)生信息*/printf(tt他(她)的床位號:%sn,roomi.bednum)。printf(tt他(她)的學(xué)號:%sn,roomi.num)。int AddfromText(Stude nt room,i ntn)/*從文件中讀入數(shù)據(jù)*/int i=0,num。FILE*fp。/*定義文件指針*/char filename20。/*定義文件名*/printf(tt 輸入文件名:)。scanf(tt%s,&filename)。/*輸入文件名*/if(fp=fope n(filena

13、me,rb)=NULL)/* 打開文件*/printf(tt 無法打開該文件n)。/*打開失敗信息*/while(inum)/*循環(huán)讀入數(shù)據(jù)*/fsca nf(fp,%s%s%s%s,room n+i.roo mnu m,room n+i.bed nu m,room n+i. nu m,room n+i. name)。i+。n+=num。fclose(fp)o/* 關(guān)閉文件 */printf(tt 讀入成功!n”)。printf(tt)osystem(pause)。return(n)。void WritetoText(Stude nt room,i nt n)/* 將所有記錄寫入文件 */in

14、t i=0oFILE *fpo/*定義文件指針*/char filename100。/* 定義文件名 */printf(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:f*5按項(xiàng)的示據(jù)并顯按刪個(gè)數(shù)序并鞏,一入據(jù)找喬窮一! 萬一名韋爲(wèi)*運(yùn)一育天姓找文環(huán)娶要遙讀查住按照提示選擇“1”進(jìn)

15、行記錄的輸入(輸入一個(gè)數(shù)據(jù)后提示是否繼續(xù)輸入)如圖:2”進(jìn)行顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“3”進(jìn)行記錄的按床位號排序并顯示,女口圖:121123241xiaomingrxiaozhan$ xiaolixiantjang10131-1203417請按任意犍繼續(xù)-房間號 床位號 學(xué)號 姓名層|CDocuments and EettingATniinistator卓面苗權(quán)丈:件夾學(xué)主宿舍營理莖統(tǒng)心E示名韋量運(yùn)12345678900知項(xiàng)選示顯養(yǎng)據(jù)并顯按刪行教序并錄,一入據(jù)書|P排畬顯申入T行並并錄排條號一錄.1農(nóng)呼人堆找丈壞至裳您馬問號 床位號 學(xué)號 姓名顯示后提示按任意鍵繼續(xù),按任意鍵后選

16、擇“4”進(jìn)行記錄的按學(xué)號排序并顯示,如圖: II X理S舍宿生學(xué)錄顯中入T羣*記看冇一運(yùn)序x-iA姓找文環(huán)至聶.喬成;并錄*33):排條*-?示號一錄=i(9錄Hi七項(xiàng)條;. 選一:M生-的-H CrDocurnents and SettingsAdministratoiiBii初協(xié)任無丄0*-選找人的煽綱按示顯一忑據(jù)并顯按刪卩數(shù)序并器*1入據(jù)* 7:-?顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“8”按提示步驟查找原有記錄文件如果找不 到則顯示如圖:ffi11cDocuments and血也口護(hù)駄16沛朮貳011面新建文件耒。牝旳學(xué)主宿舍管理至齡砂電*-5J2:奈排條-?理示號一錄i育顯_|據(jù)按

17、宵畫技刪個(gè)數(shù)如項(xiàng)-宿序并_入揖天選-注排序記tt-s*.的ffi學(xué)錄IU顯煲殳誓e8責(zé)記記一名茸暑*運(yùn)入文繼入一霄學(xué)入姓找文環(huán) M*妥豊該犍天輸顯查?*您中件開意帀文打任12345 & 7C09 *選文入如果有該文件則顯示如圖:國CiDocumerits and SettinasAdministrato- 口f.SL才呂rri Ju IVR心養(yǎng)按刪個(gè)數(shù)序并錄,一入據(jù)李錄萬P 排審豆計(jì)入$震US養(yǎng)記一名#:eww運(yùn)入:*z- i=t背輸顯查您中罵意天.罪文成任1234-567890*選文人入按的據(jù)he將原有文件讀入程序。顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“9”按提示步驟循環(huán)寫入記錄,

18、如圖:示顯并錄排條號一錄QI CDocuments and $ettingsAdministrator.eb舍管理系統(tǒng).exeCXM&OOCKOfxooMwcxxcoxooxoilK一鄧並一盂+據(jù)并顯枝刪個(gè)數(shù)序并議-一入據(jù)找示彖TUS顯中入T行記圖冇83*gl:SI霄學(xué)入姓找文環(huán)妥數(shù)數(shù)名J豐查您入入畫意.擇與寫文成任12345G7S9 0*選壞環(huán)人入按顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“0”結(jié)束程序,如圖:QIDocuments and EettingATrninistator桌面新建文件夬學(xué)主宿舍昔理薫統(tǒng)啟XE_ n x學(xué)生宿舍管理系統(tǒng) $1-他世垂1 2顯下記錄81花并曇示11 4-按學(xué)有排序并盛疋首| 5,蓮人_曇己錄按半號港歷并顯示 | 氣按姓名吉找*刪除一條狂錄1 7查找并顯示一林己錄8.滅文侔中険入數(shù)據(jù)I 9.循環(huán)寫入數(shù)16S 0-結(jié)東程序丄*盤*余*黃女*荽請選捷您要運(yùn)行的選項(xiàng)按-乎 =0堂尊皐雖鏈萼鎏好運(yùn),毎見!* 14. 設(shè)計(jì)體會通過這次課程設(shè)計(jì)使我了解到我有很多的不足,在程序調(diào)試的時(shí)候常常會因?yàn)閹讉€(gè)錯(cuò) 誤而弄得心煩,這說明我對知識的掌握還不夠牢,在程序設(shè)計(jì)的過程中也暴露出了我的諸 多弊端,借這次課程設(shè)計(jì)的機(jī)會我會認(rèn)真的加以改正,為以后的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。5. 參考文獻(xiàn)1 Herbert Schi

溫馨提示

  • 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

提交評論