C語言課程設(shè)計:學(xué)生宿舍管理系統(tǒng)_第1頁
C語言課程設(shè)計:學(xué)生宿舍管理系統(tǒng)_第2頁
C語言課程設(shè)計:學(xué)生宿舍管理系統(tǒng)_第3頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、edefstruct/*定義結(jié)構(gòu)體數(shù)組*/(charroomnum4;/*房間號*/charbednum2;/*床位號*/charnum10;/*學(xué)號*/charname20;/*姓名*/Student;Studentroom11000;/*結(jié)構(gòu)體數(shù)組變量*/intmenu_select()/*菜單函數(shù)*/(charc;do(system(cls);/*運行前清屏*/printf(tt學(xué)生宿舍管理系統(tǒng)n);/*菜單選擇*/printf(tt1.$記錄以n”);printf(tt2.記錄以n”);printf(tt3.間號排序并顯示以n”);printf(tt4.號排序并顯示以n”);print

3、f(tt5.一條記錄按學(xué)號排序并顯示以n”);printf(tt6.奶名查找,刪除一條記錄以n”);printf(tt7查找并顯示一個記錄誦”);printf(tt8.件中讀入數(shù)據(jù)以n”);printf(tt9.寫入數(shù)據(jù)以n”);printf(tt0W程序以n”);printf(ttn);printf(tt請選擇您要運行的選項按(0-9):”);c=getchar();/*讀入選擇*/while(c9);return(c-O);/*返回選擇*/intInput(Studentroom,intn)/*輸入若干條記錄*/(inti=0;charsign,x10;/*x10為清除多余的數(shù)據(jù)所用*/w

4、hile(sign!=n&sign!=N)/*判斷*/(printf(tt房間號:);/*交互輸入*/scanf(tt%s&,roomn+i.roomnum);printf(tt床位號:);scanf(tt%s”,&roomn+i.bednum);printf(tt學(xué)號:);scanf(tt%s”,&roomn+i.num);printf(tt姓名:);scanf(tt%s”,&roomn+);gets(x);/*清除多余的輸入*/printf(tt是否繼續(xù)輸入?(Y/N)”);scanf(tt%c,&sign);/*輸入判斷*/i+;return(n+i);voidDisplay

5、(Studentroom,intn)/*顯示所有記錄*/(inti;printf(ttn);/*格式頭*/printf(-tt房間號床位號學(xué)號姓名n);printf(ttn);for(i=1;i1&i%10=0)/*每十個暫停*/(printf(ttn);/*格式*/printf(tt);system(pause);printf(ttn);printf(tt);system(pause);/*按學(xué)號排序*/voidSortbynum(Studentroom,intn)(inti,j,*p,*q,s;chart10;for(i=0;in-1;i+)/*冒泡法排序*/for(j=0;j0)(str

6、cpy(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,);strcpy(,t);voidSort_by_roomnum(Studentroom,intn)/*按房間號排序*/(inti,j,*p,*q,s;chart10;

7、for(i=0;in-1;i+)/*冒泡法排序*/for(j=0;j0)(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.na

8、me);strcpy(roomj+1.name,);strcpy(,t);/*插入一條記錄*/intInsert_a_record(Studentroom,intn)(charx100;/*清除多余輸入所用*/printf(tt學(xué)生房間號:);/*交互式輸入*/scanf(tt%s”,&roomn.roomnum);printf(tt學(xué)生床位號:);scanf(tt%s”,&roomn.bednum);printf(tt學(xué)生學(xué)號:);scanf(tt%s”,&roomn.num);printf(tt學(xué)生姓名:);scanf(tt%s”,&roomn.na

9、me);gets(x);n+;Sort_by_num(room,n);/*調(diào)用排序函數(shù)*/printf(tt插入記錄成功!n);/*返回成功信息*/return(n);intDelete_a_record(Studentroom,intn)/*按姓名查找,刪除一條記錄*/chars20;inti=0,j;printf(tt輸入他(她)的姓名:);/*交互式問尋*/scanf(%s,s);while(strcmp(,s)!=0&in)i+;/*查找判斷*/if(i=n)printf(tt對不起沒找到該學(xué)生!n);/*返回失敗信息*/return(n);for(j=i;jn-1

10、;j+)/*刪除操作*/strcpy(roomj.roomnum,roomj+1.roomnum);strcpy(roomj.bednum,roomj+1.bednum);strcpy(roomj.num,roomj+1.num);strcpy(,roomj+1.name);printf(tt刪除記錄成功!n);/*返回成功信息*/return(n-1);voidQuery_a_record(Studentroom,intn)(/*查找并顯示一個記錄*/chars20;inti=0;printf(tt輸入他(她)的姓名:);/*交互式輸入*/scanf(tt%s”,&s);

11、while(strcmp(,s)!=0&in)i+;/*查找判斷*/if(i=n)printf(tt對不起沒找到該學(xué)生!n);/*輸入失敗信息*/return;printf(tt他(她)的房間號:%sn”,roomi.roomnum);/*輸出該學(xué)生信息*/printf(tt他(她)的床位號:%sn,roomi.bednum);printf(tt他(她)的學(xué)號:%sn,roomi.num);intAddfromText(Studentroom,intn)/*從文件中讀入數(shù)據(jù)*/inti=0,num;FILE*fp;/*定義文件指針*/charfilename20;/*定義文

12、件名*/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(inum)/*循環(huán)讀入數(shù)據(jù)*/fscanf(fp,%s%s%s%s”,roomn+i.roomnum,roomn+i.bednum,roomn+i.num,roomn+);i+;n+=num;fclose(fp

13、);/*關(guān)閉文件*/printf(tt讀入成功!n);printf(tt);system(pause);return(n);voidWritetoText(Studentroom,intn)/*將所有記錄寫入文件*/inti=0;FILE*fp;/*定義文件指針*/charfilename100;/*定義文件名*/printf(-tt循環(huán)寫入數(shù)據(jù)n);/*輸入文件名*/printf(tt輸入文件名:);scanf(tt%s”,&filename);if(fp=fopen(filename,w)=NULL)/*打開文件*/printf(tt無法打開該文件n);system(pause);retu

14、rn;fprintf(fp,%dn,n);/*循環(huán)寫入數(shù)據(jù)*/while(i:fW技如項如選的*輸顯查您5擇按照提示選擇“1”進(jìn)行記錄的輸入(輸入一個數(shù)據(jù)后提示是否繼續(xù)輸入)如圖:房間號床位號學(xué)號姓名31CDocumentsandSetting5Administator桌面新建文件美學(xué)生律舍言理盤施exe10113142M32417G請按任意鍵繼續(xù)-21xiaQinin12xiozhang32xiaoli41xiAntjatng顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“3”進(jìn)行記錄的按床位號排序并顯示,如圖國CDocumentsand,ettingAdEnistMor桌面新建女件制學(xué)生宿舍管理奎

15、綻做己示名希暮運1234567890示顯一塵據(jù)并顯按刪個數(shù)序并錄,一入據(jù)雪|P排奎豆中入*行0捻心項選的顯并錄孱排條號一錄.1霜兮入娃找文環(huán)罷戛您錄柘選示-回日二璉并錄*33):排條-?示號一家顯一據(jù)技并顯核刪卜數(shù)項序并錄,一入據(jù)選示擠.W-2數(shù)的昱苦宿生豆中入學(xué)第記首I?一名莓董運序X-入姓找文環(huán)豐集,.膏成-1IIH;II-123456789.選房間號床位號學(xué)號姓名xiaoniingrxiao11xiaohangxianuang10112032314241?5請技任意健繼續(xù),顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“4”進(jìn)行記錄的按學(xué)號排序并顯示,如圖:CDocumentsandSettin

16、gsAdmini宿舍菅理至統(tǒng),exe顯一塵據(jù)并顯技刪卜數(shù)序并,一入據(jù)找示萎學(xué)家喜排奎S中入學(xué)行顯成記虧一名運并序入雷芋金找文環(huán)象旻序排*曹查您-.1123456789O選示顯并錄排條號一錄kr的示功9:*4房間號床位萬學(xué)號姓名10122031314241?5請技任意鍵繼續(xù).12213241xiaozhangxiaoningxiaollxianuang顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“5”按提示步驟插入一條記錄并顯示,如圖:19CA,DocumentsandSettingsAdrninistratorM宿舍骨理莖統(tǒng).exe示并#按刪個數(shù)序并錄二入據(jù)找示婆號排番豆中入JB1一名近家:5W學(xué)入

17、姓;5查您條間位號名錄一房善姓記施A-生生生注入基藝至亍插ia功:x成示顯并錄排條號一錄按序項排選號的學(xué):示9顯仲并房間號床位號學(xué)號姓名1012033144175131221324152xiaozhangxIaofningxiaoIlxianuangxiaafuan顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“6”按提示步驟刪除一條記錄,如果沒找到該學(xué)生顯示如圖:國CADocumentsandgettings_Admin2日0桌面新建女性夫字生宿舍管理拳場.exe理W舍宿生zJEl2S并錄8排條號一錄并顯搦娜卜數(shù)序并錄,一入據(jù)芋錄苦勺排善S中入旻行刪姓誤續(xù)記記間!r一名葺冒運,的染入一備學(xué)入姓找文環(huán)

18、壬輸顯查著結(jié)您思沒意擇名他起任1234567890選姓不;&;1234567890i也錄a心項條F.選一阪注的喙學(xué)-如果有該學(xué)生顯示如圖:國1CDocumentsandSettingsAdministrata生謹(jǐn)舍昔璋至統(tǒng).exeAs系理管含有并錄&房:排條T*示號一錄錄顯一據(jù)寤職-并顯按咿數(shù)項條ia-序并錄,一入據(jù)選一小-占的髯學(xué)錄USsx2SH?續(xù)記一名希寫程*運,的功繼A-爵學(xué)入姓找文環(huán)早WKg成槌擇名他記任123456789選姓入-yCiDocurrentsaridSettingsAdrninistrato宿舍管理親編舊xe于%紊rm-菅宿生學(xué)錄豆中入學(xué)行個姓苫p:2:續(xù)記:|p一名莓

19、董運一的間位n親夫入_雀學(xué)入姓找女環(huán)建要示也房床學(xué)鍵無置S您顯碩的的的意1F擇蓊*協(xié)也任123456789國*-遂找入翌知的按并錄孱排條號一錄示顯一塵據(jù)并顯按刪土數(shù)序并錄,一入據(jù)_VSA*7:T(0技*項選錄:x03的記名:2=1顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“8”按提示步驟查找原有記錄文件如果找不到則顯示如圖:ffi11cDocumentsand鈕胃昭升麗11卻5皿211面制建知昧?;蛉鐚W(xué)生宿舍管理毒琉田熾*_|口|x|虧無1F示#顯并錄*8蓉與:奉排條-?理示號一家嘉誓顯_|據(jù)*技-皆直技刪個數(shù)項-宿序并錄_入據(jù)選-生排序記找不該數(shù).的據(jù)學(xué)錄IU豆攵學(xué)彖e8*記記間三一名莓宣運入f文繼入一費學(xué)入姓找文環(huán)要嘗該鍵*輸顯查?您中件開意無履文打任會12345GPC09E1選文入如果有該文件則顯示如圖:EC:DocumentsandSettingsAdmiiinistratoeblig學(xué)三直盲莒理至浣.巳屹”始1.戶SL首rriJuIVJrL賽按刪個數(shù)序并錄,一入據(jù)芋家善節(jié)排著豆入至金US*記一名#:運入:、-示房學(xué)土姓枝乂外手要詰-t干輸顯查您中度意無禺文成任百1234S6PG09融選文K入接-頂饕請的據(jù)he42&=-輯將原有文件讀入程序。顯示后提示按任意鍵繼續(xù),按任意鍵后選擇“9”按提示步驟循環(huán)寫入記錄,如圖:X.呂ieUS藻統(tǒng)xttQICDo

溫馨提示

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

最新文檔

評論

0/150

提交評論