




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1 設(shè)計(jì)目的機(jī)房機(jī)位預(yù)定系統(tǒng)2 任務(wù)概述20臺機(jī)器,編號 1到 20,從早八點(diǎn)到晚八點(diǎn)。兩小時一個時間段,每次可預(yù)定一個 時間段。功能要求:(1)系統(tǒng)以菜單方式工作( 2)查詢,根據(jù)輸入時間,輸出機(jī)位信息。 (3)機(jī)位預(yù)定,根據(jù)輸入的時間查詢是否有空機(jī)位,若有則預(yù)約,若無則提供最近的時間 段,另:若用戶在非空時間上機(jī),則將用戶信息列入等待列表。(4)退出預(yù)定,根據(jù)輸入的時間,機(jī)器號撤銷該事件的預(yù)定?。?5 )查詢是否有等待信息,若有則提供最優(yōu)解決方案(等待時間盡量短),若無則顯示提示信息。3 模塊劃分4 主要函數(shù)說明及其 N-S 圖1. 主函數(shù) :int main()Menu(); /* 當(dāng)前
2、狀態(tài)函數(shù) */void Menu() /* 主界面 */int n,w;doputs("tt*機(jī)房機(jī)位預(yù)約系統(tǒng)puts("tt*n");puts("ttt 1.puts("ttt 2.puts("ttt 3.puts("ttt 4.puts("ttt 5.查詢某時間段機(jī)位狀態(tài) "); /* 查詢某時間段機(jī)位狀態(tài) */ 預(yù)定空機(jī)位 "); /* 預(yù)定空機(jī)位 */ 取消預(yù)訂 "); /* 取消預(yù)訂 */查詢等待信息 "); /* 查詢等待信息 */退出 "); /* 退
3、出*/puts("tt*n");printf(" 選擇菜單號 (1-5):");scanf("%d",&n);if(n<1|n>5)w=1;getchar();elsew=0;while(w=1);switch(n)case 1:Situation();break;case 2:Book();break;case 3:Cancel();break;case 4:SearchWaiting();break;case 5:exit(0);break;getch();2. 機(jī)位查詢 : void Situation()
4、int time;printf(" 輸在 (8-20) 范圍內(nèi)的時間 :"); scanf("%d",&time);if(time<8|time>20)printf("t 時間輸入錯誤 !n");printf(" 輸入在 (8-20) 范圍內(nèi)的時間 :"); scanf("%d",&time);detail(time); /* 函數(shù)調(diào)用 */ getchar();Menu();3. 機(jī)位預(yù)定 :void Book()int time,i=0,x,y;FILE *fp;
5、char c;printf(" 在 (8-20) 時間范圍內(nèi)輸入你想要預(yù)定的時間 :");scanf("%d",&time);if(time<8|time>20)printf("t 時間輸入錯誤 !n");printf("t在 (8-20) 時間范圍內(nèi)輸入你想要預(yù)定的時間 :");scanf("%d",&time);detail(time); /* 函數(shù)調(diào)用 */if(sumT>0) if(fp=fopen("","a")
6、=NULL)printf("n 無法打開文件 !n");exit(0);!:n");printf("nt 請輸入你想要預(yù)定的機(jī)號,并且留下你的電話號碼scanf("%s %s",waiti.number,waiti.telephonenumber);for(i=0;i<1;i+)fwrite(&waiti,sizeof(struct waitlist),1,fp);fclose(fp);/* 向文本文檔添加一個結(jié)構(gòu)體單元 */printf("t 再次輸入你想要預(yù)定的時間 !n");scanf(&quo
7、t;%d",&x);/*sumT-; / * 預(yù)定后該時間段空機(jī)位數(shù)減 1*/*computerTx=1; / * 預(yù)定后該機(jī)狀態(tài)變?yōu)?1*/printf("t 預(yù)訂成功 !n");getchar();Menu();elseprintf(" 這是在這個時間段內(nèi)未預(yù)定的電腦 !n");for(i=T+1;i<6;i+) time=9+2*i;detail(time); /* 函數(shù)調(diào)用 */if(sumT>0)printf("tThe latest free time is %d,%dn",2*i+8,2*i
8、+10);break;printf("t 你想要預(yù)定嗎 :y/n");scanf("%s",&c);getchar();if(c='Y'|c='y')if(fp=fopen("","r")=NULL)printf("n 無法打開文件 !n");exit(0);else printf("waitlist : number telephonenumbern"); for(i=0;!feof(fp);i+)fscanf(fp,"%s
9、 %s",&waiti.number,&waiti.telephonenumber);fclose(fp); for(i=0;i<10;i+) prione(i);printf("nt 請輸入你想要預(yù)定的機(jī)號,并且留下你的電話號碼 !:n"); if(fp=fopen("","a")=NULL)printf("n 無法打開文件 !n");exit(0);scanf("%s %s",waiti.number,waiti.telephonenumber);for(i=
10、0;i<1;i+)fwrite(&waiti,sizeof(struct waitlist),1,fp);fclose(fp); /*若等待, 就用文件的方式列出當(dāng)時的等待列表并提示輸入你的等待序號和聯(lián)系方式 */printf(" 再次輸入電腦的序號 !n");scanf("%d",&y);sumT-;computerTy=1;printf("t好了 , 請等待我們的電話 !n");Menu();else Menu();4. 取消預(yù)定 :void Cancel()int time,number;printf(&q
11、uot; 在 (8-20) 時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間 :"); scanf("%d",&time);if(time<8|time>20) N printf("t 輸入時間錯誤 !n");printf("t在 (8-20) 時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間 :");scanf("%d",&time);elseprintf("t 輸入你預(yù)定的機(jī)號 :");scanf("%d",&number);detail(time);/* su
12、mT+; / *預(yù)定后該時間段空機(jī)位數(shù)加 1*/*computerTnumber=0; / * 預(yù)定后該機(jī)狀態(tài)變?yōu)?0*/printf("t 取消成功 !n");getchar();Menu();5. 查詢等待信息 :void SearchWaiting()int time,i;FILE *fp;printf("tInput time you want to search between(8-20):"); scanf("%d",&time);if(time<8|time>20)printf("tWron
13、g time!n");printf("tInput time you want to search between(8-20):"); scanf("%d",&time);elseif(fp=fopen("","r")=NULL) printf("nCannot open file!n"); exit(0);else printf("waitlist : number telephonenumbern"); for(i=0;!feof(fp);i+)fsca
14、nf(fp,"%s %s",&waiti.number,&waiti.telephonenumber); fclose(fp);for(i=0;i<10;i+) prione(i); Menu();5 程序運(yùn)行數(shù)據(jù)及其結(jié)果1. 主菜單 :2. 機(jī)位查詢 :3. 機(jī)位預(yù)定 :4. 查詢等待信息 :6 課程設(shè)計(jì)心得課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識, 發(fā)現(xiàn), 提出,分析和解決實(shí)際問題 ,鍛煉實(shí)踐能力的重要環(huán)節(jié) , 是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程 . 隨著科學(xué)技術(shù)發(fā)展的日新日 異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說得是無處不在。 因此作為二十一世紀(jì)的大學(xué)
15、來說掌握一 些基本的軟件開發(fā)技術(shù)是十分重要和必要的。回顧起此次課程設(shè)計(jì),至今我仍感慨頗多,的確,自從拿到題目到完成整個編程,從理 論到實(shí)踐, 在整整一個星期的日子里, 可以學(xué)到很多很多的的東西, 同時不僅可以鞏固了以 前所學(xué)過的知識, 而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。 通過這次課程設(shè)計(jì)使我懂 得了理論與實(shí)際相結(jié)合是很重要的, 只有理論知識是遠(yuǎn)遠(yuǎn)不夠的, 只有把所學(xué)的理論知識與 實(shí)踐相結(jié)合起來, 從理論中得出結(jié)論, 從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力, 這 樣才能真正為體會和認(rèn)識它, 才能寫出一個完整的程序代碼, 才能使自己在過程中得到鍛煉 和提高。在設(shè)計(jì)的過程中遇到問題,這畢
16、竟獨(dú)立做的,難免會遇到過各種各樣的問題,同時 在設(shè)計(jì)的過程中發(fā)現(xiàn)了自己的不足之處, 對以前所學(xué)過的知識理解得不夠深刻, 掌握得不夠 牢固,比如說結(jié)構(gòu)體的建立 , 指針的應(yīng)用等都不太熟練。通過這次課程設(shè)計(jì),也使我對以前 所學(xué)過的知識重新溫故和加強(qiáng)。程序設(shè)計(jì)過程有如解決一實(shí)際問題, 從解決實(shí)際問題的角度, 我們可以這樣來看: 首先 要了解這個問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么 ; 其次,從問 題的要害入手, 從前到后的解決問題的每個方面, 即從輸入開始入手, 著重考慮如何從輸入 導(dǎo)出輸出,在這個過程中,可確定所需的變量、數(shù)組、函數(shù),然后確定處理過程算法; 最后可得結(jié)論。通過
17、這次課程設(shè)計(jì),我深刻地體會到:<1>. 細(xì)節(jié)決定成?。?在學(xué)習(xí)的過程中, 要注意每一個細(xì)節(jié), 要知道一個分隔符或一個括 號都會使整個程序出現(xiàn)錯誤。<2>. 要熟練掌握一些經(jīng)典的結(jié)構(gòu)和方法,如選擇排序,遞歸,遞推等,在遇到問題是可 直接應(yīng)用,快速解決問題。<3>. 要熟悉一些標(biāo)準(zhǔn)數(shù)據(jù)庫,對一些可直接利用的函數(shù)就直接利用,沒必要重新定義。<4>. 在設(shè)計(jì)過程中最好使程序模塊化,既便于閱讀,也可增加其移植性。<5>. 熟能生巧。平時應(yīng)該多加訓(xùn)練,要知道,即使我們能完全看懂一個程序,但要讓你 自己寫出一個時仍是很困難的。它要求你對每一個語句,
18、每一個變量,每一個函數(shù),每一個 模塊都充分的熟悉,要知道它們的作用,作用域等等。因此只有平時做的多了,到時候才會 游刃有余。一個多禮拜中 , 我有過山窮水盡的困惑;有過柳暗花明的驚喜;一個多禮拜的時間我經(jīng) 歷了很多, 也收獲了很多。 與其說它是體力與腦力的作業(yè), 不如說它是合作精神和毅力的考 驗(yàn)。經(jīng)過這次課程設(shè)計(jì),我不僅學(xué)到了很多知識和技能 , 更重要的是我學(xué)會了如何運(yùn)用所學(xué) 知識去解決實(shí)際問題 .附錄:#include<>#include<>#include<>#define N 20#define T (time-8)/2int sum6=0;int c
19、omputer620=1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1;/* 該數(shù)組表示假設(shè)某天某人查詢時機(jī) 房各個時間段機(jī)位數(shù)情況 */void Menu();voi
20、d Situation();void Book();void Cancel();void SearchWaiting();void detail(int time);void prione(int i);struct waitlist /* 等待列表 */char number3;char telephonenumber11; waitN;void printone(int i);int main()Menu(); /* 當(dāng)前狀態(tài)函數(shù) */void Menu() /* 主界面 */int n,w;doputs("tt*n");puts("tt*機(jī)房機(jī)位預(yù)約系統(tǒng)*n
21、");puts("tt*菜單*n");puts("ttt 1.查詢某時間段機(jī)位狀態(tài) "); /* 查詢某時間段機(jī)位狀態(tài)*/puts("ttt 2.預(yù)定空機(jī)位 "); /* 預(yù)定空機(jī)位 */puts("ttt 3.取消預(yù)訂 ");/* 取消預(yù)訂 */puts("ttt 4.查詢等待信息"); /* 查詢等待信息 */puts("ttt 5.退出 "); /*退出*/printf(" 選擇菜單號 (1-5):");scanf("%d&quo
22、t;,&n);if(n<1|n>5)w=1;getchar(); else w=0;while(w=1);switch(n)case 1:Situation();break;case 2:Book();break;case 3:Cancel();break;case 4:SearchWaiting();break;case 5:exit(0);break;getch();/* 時間查詢 */void Situation()int time;printf(" 輸在 (8-20) 范圍內(nèi)的時間 :"); scanf("%d",&t
23、ime);if(time<8|time>20) printf("t 時間輸入錯誤 !n"); printf(" 輸入在 (8-20) 范圍內(nèi)的時間 :"); scanf("%d",&time); detail(time); /* 函數(shù)調(diào)用 */ getchar();Menu();/* 預(yù)定函數(shù) */ void Book() int time,i=0,x,y;FILE *fp;char c;printf(" 在 (8-20) 時間范圍內(nèi)輸入你想要預(yù)定的時間 :"); scanf("%d&
24、quot;,&time);if(time<8|time>20)printf("t 時間輸入錯誤 !n");printf("t在 (8-20) 時間范圍內(nèi)輸入你想要預(yù)定的時間 :");scanf("%d",&time);detail(time); /* 函數(shù)調(diào)用 */ if(sumT>0) if(fp=fopen("","a")=NULL)printf("n 無法打開文件 !n");exit(0);!:n");printf("
25、;nt 請輸入你想要預(yù)定的機(jī)號,并且留下你的電話號碼scanf("%s %s",waiti.number,waiti.telephonenumber);for(i=0;i<1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(fp);/* 向文本文檔添加一個結(jié)構(gòu)體單元 */ printf("t 再次輸入你想要預(yù)定的時間 !n"); scanf("%d",&x);/*sumT-; / * 預(yù)定后該時間段空機(jī)位數(shù)減 1*/ /*computerTx=1;
26、/ * 預(yù)定后該機(jī)狀態(tài)變?yōu)?1*/ printf("t 預(yù)訂成功 !n");getchar();Menu();elseprintf(" 這是在這個時間段內(nèi)未預(yù)定的電腦 !n");for(i=T+1;i<6;i+) time=9+2*i;detail(time); /* 函數(shù)調(diào)用 */if(sumT>0)printf("t 最近的空閑時間是 %d,%dn",2*i+8,2*i+10);break;printf("t 你想要預(yù)定嗎 :y/n");scanf("%s",&c);ge
27、tchar();if(c='Y'|c='y')if(fp=fopen("","r")=NULL)printf("n 無法打開文件 !n");exit(0);else printf("waitlist : number telephonenumbern"); for(i=0;!feof(fp);i+)fscanf(fp,"%s %s",&waiti.number,&waiti.telephonenumber);fclose(fp);for(i=0;i
28、<10;i+) prione(i);printf("nt 請輸入您想預(yù)定的機(jī)號并留下您的聯(lián)系方式 !:n"); if(fp=fopen("","a")=NULL)printf("n 無法打開文件 !n");exit(0);scanf("%s %s",waiti.number,waiti.telephonenumber); for(i=0;i<1;i+)fwrite(&waiti,sizeof(struct waitlist),1,fp);fclose(fp); /*若等待,
29、就用文件的方式列出當(dāng)時的等待列表并提示輸入你的等待序號和聯(lián)系方式 */printf(" 再次輸入電腦的序號 !n");scanf("%d",&y);sumT-;computerTy=1;printf("t好了 , 請等待我們的電話 !n");Menu();else Menu();/* 取消預(yù)訂 */void Cancel()int time,number;printf(" 在 (8-20) 時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間 :");scanf("%d",&time);if(time<8|time>20)printf("t 輸入時間錯誤 !n");printf("t 在 (8-20) 時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間 :"); scanf("%d",&time);elseprintf("t 輸入你預(yù)定的機(jī)號 :");scanf("%d",&number);detail(time);/* sumT+; / * 預(yù)定后該時間段空機(jī)位數(shù)加 1*/
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社團(tuán)領(lǐng)導(dǎo)者的素質(zhì)培養(yǎng)計(jì)劃
- 合肥鼎材科技有限公司光阻車間光刻膠生產(chǎn)線技術(shù)改造項(xiàng)目環(huán)評報告書
- 《基礎(chǔ)化學(xué)分析實(shí)驗(yàn)化學(xué)》課程教學(xué)大綱
- 城鄉(xiāng)水務(wù)體化改革方案計(jì)劃
- 提高學(xué)生情緒管理能力的策略計(jì)劃
- 提升前臺文員對公司產(chǎn)品與服務(wù)的了解計(jì)劃
- 人教版小學(xué)五年級語文下冊2024-2025學(xué)年度第二學(xué)期第二單元質(zhì)量檢測試卷
- 耳鼻喉科醫(yī)生個人年度工作計(jì)劃
- 企業(yè)知識產(chǎn)權(quán)文化建設(shè)
- MOOCs的興起對傳統(tǒng)教育模式的影響研究
- 各元素特征X射線能量表
- 課堂觀察記錄與分析(高中數(shù)學(xué)-周渚華)
- 第九章單細(xì)胞蛋白質(zhì)飼料
- 肖申克的救贖的英語ppt
- 安裝超載限制器方案
- 《石灰吟》教學(xué)設(shè)計(jì)(課堂實(shí)錄)
- 架子工實(shí)操比賽方案(共19頁)
- X62W銑床主軸機(jī)械加工工藝規(guī)程及鉆床夾具設(shè)計(jì)
- (完整版)粉筆數(shù)量關(guān)系聽課筆記(整理版)
- 人教版七年級數(shù)學(xué)下冊:7.1.2平面直角坐標(biāo)系ppt課件
- 工程建設(shè)項(xiàng)目招投標(biāo)投訴書(僅供參考)
評論
0/150
提交評論