




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上1 設(shè)計(jì)目的 機(jī)房機(jī)位預(yù)定系統(tǒng)2 任務(wù)概述 20臺(tái)機(jī)器,編號(hào)1到20,從早八點(diǎn)到晚八點(diǎn)。兩小時(shí)一個(gè)時(shí)間段,每次可預(yù)定一個(gè)時(shí)間段。功能要求:(1)系統(tǒng)以菜單方式工作(2)查詢,根據(jù)輸入時(shí)間,輸出機(jī)位信息。(3)機(jī)位預(yù)定,根據(jù)輸入的時(shí)間查詢是否有空機(jī)位,若有則預(yù)約,若無(wú)則提供最近的時(shí)間段,另:若用戶在非空時(shí)間上機(jī),則將用戶信息列入等待列表。(4)退出預(yù)定,根據(jù)輸入的時(shí)間,機(jī)器號(hào)撤銷(xiāo)該事件的預(yù)定!(5)查詢是否有等待信息,若有則提供最優(yōu)解決方案(等待時(shí)間盡量短),若無(wú)則顯示提示信息。.3 模塊劃分機(jī)房機(jī)位預(yù)約系統(tǒng)查詢機(jī)位預(yù)定機(jī)位退出預(yù)定查詢等待信息4 主要函數(shù)說(shuō)明及其N(xiāo)-S
2、圖1. 主函數(shù):int main()Menu(); /*當(dāng)前狀態(tài)函數(shù)*/void Menu() /*主界面*/int n,w;do puts("tt*機(jī)房機(jī)位預(yù)約系統(tǒng)*n"); puts("tt*菜單*n"); puts("ttt 1.查詢某時(shí)間段機(jī)位狀態(tài)"); /*查詢某時(shí)間段機(jī)位狀態(tài)*/ puts("ttt 2.預(yù)定空機(jī)位"); /*預(yù)定空機(jī)位*/ puts("ttt 3.取消預(yù)訂"); /*取消預(yù)訂*/ puts("ttt 4.查詢等待信息"); /*查詢等待信息*/
3、puts("ttt 5.退出"); /*退出*/ puts("tt*n"); printf("選擇菜單號(hào)(1-5):"); scanf("%d",&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);brea
4、k;getch();2. 機(jī)位查詢:void Situation()int time;printf("輸在 (8-20)范圍內(nèi)的時(shí)間:");scanf("%d",&time);if(time<8|time>20)printf("t時(shí)間輸入錯(cuò)誤!n");printf("輸入在 (8-20)范圍內(nèi)的時(shí)間:");scanf("%d",&time); detail(time); /*函數(shù)調(diào)用*/getchar();Menu();3. 機(jī)位預(yù)定:void Book()int t
5、ime,i=0,x,y;FILE *fp; char c; printf("在(8-20)時(shí)間范圍內(nèi)輸入你想要預(yù)定的時(shí)間:"); scanf("%d",&time); if(time<8|time>20) printf("t時(shí)間輸入錯(cuò)誤!n"); printf("t在(8-20)時(shí)間范圍內(nèi)輸入你想要預(yù)定的時(shí)間:"); scanf("%d",&time); detail(time); /*函數(shù)調(diào)用*/if(sumT>0) if(fp=fopen("&qu
6、ot;,"a")=NULL) printf("n無(wú)法打開(kāi)文件!n"); exit(0); printf("nt請(qǐng)輸入你想要預(yù)定的機(jī)號(hào),并且留下你的電話號(hào)碼!:n"); scanf("%s %s",waiti.number,waiti.telephonenumber);for(i=0;i<1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(fp);/*向文本文檔添加一個(gè)結(jié)構(gòu)體單元*/printf("t再次輸入你想要預(yù)定的時(shí)間!n&
7、quot;);scanf("%d",&x);/*sumT-; / *預(yù)定后該時(shí)間段空機(jī)位數(shù)減1*/*computerTx=1; / *預(yù)定后該機(jī)狀態(tài)變?yōu)?*/printf("t預(yù)訂成功!n");getchar();Menu();elseprintf("這是在這個(gè)時(shí)間段內(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*
8、i+8,2*i+10);break;printf("t你想要預(yù)定嗎:y/n");scanf("%s",&c);getchar();if(c='Y'|c='y') if(fp=fopen("","r")=NULL) printf("n無(wú)法打開(kāi)文件!n"); exit(0); else printf("waitlist: number telephonenumbern"); for(i=0;!feof(fp);i+) fscanf(fp,&
9、quot;%s %s",&waiti.number,&waiti.telephonenumber); fclose(fp); for(i=0;i<10;i+) prione(i); printf("nt請(qǐng)輸入你想要預(yù)定的機(jī)號(hào),并且留下你的電話號(hào)碼!:n"); if(fp=fopen("","a")=NULL) printf("n無(wú)法打開(kāi)文件!n"); exit(0); scanf("%s %s",waiti.number,waiti.telephonenumber
10、); for(i=0;i<1;i+) fwrite(&waiti,sizeof(struct waitlist),1,fp); fclose(fp); /*若等待,就用文件的方式列出當(dāng)時(shí)的等待列表并提示輸入你的等待序號(hào)和聯(lián)系方式*/printf("再次輸入電腦的序號(hào)!n");scanf("%d",&y);sumT-; computerTy=1; printf("t好了,請(qǐng)等待我們的電話!n"); Menu(); else Menu();N4. 取消預(yù)定:void Cancel()int time,number;p
11、rintf("在(8-20)時(shí)間范圍內(nèi)輸入你已經(jīng)預(yù)定的時(shí)間:");scanf("%d",&time); if(time<8|time>20) printf("t輸入時(shí)間錯(cuò)誤!n"); printf("t在(8-20)時(shí)間范圍內(nèi)輸入你已經(jīng)預(yù)定的時(shí)間:"); scanf("%d",&time); elseprintf("t輸入你預(yù)定的機(jī)號(hào) :");scanf("%d",&number);detail(time); /* su
12、mT+; / *預(yù)定后該時(shí)間段空機(jī)位數(shù)加1*/*computerTnumber=0; / *預(yù)定后該機(jī)狀態(tài)變?yōu)?*/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("tWrong tim
13、e!n"); printf("tInput time you want to search between(8-20):"); scanf("%d",&time);else; if(fp=fopen("","r")=NULL) printf("nCannot open file!n"); exit(0); else printf("waitlist: number telephonenumbern"); for(i=0;!feof(fp);i+) fscan
14、f(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é)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計(jì)算機(jī)應(yīng)用在生活中可以說(shuō)得是無(wú)處不在。因此作為二十一世紀(jì)的大學(xué)來(lái)說(shuō)掌握一些基本的軟件開(kāi)發(fā)技術(shù)是十
15、分重要和必要的?;仡櫰鸫舜握n程設(shè)計(jì),至今我仍感慨頗多,的確,自從拿到題目到完成整個(gè)編程,從理論到實(shí)踐,在整整一個(gè)星期的日子里,可以學(xué)到很多很多的的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力,這樣才能真正為體會(huì)和認(rèn)識(shí)它,才能寫(xiě)出一個(gè)完整的程序代碼,才能使自己在過(guò)程中得到鍛煉和提高。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,這畢竟獨(dú)立做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不
16、足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固,比如說(shuō)結(jié)構(gòu)體的建立,指針的應(yīng)用等都不太熟練。通過(guò)這次課程設(shè)計(jì),也使我對(duì)以前所學(xué)過(guò)的知識(shí)重新溫故和加強(qiáng)。程序設(shè)計(jì)過(guò)程有如解決一實(shí)際問(wèn)題,從解決實(shí)際問(wèn)題的角度,我們可以這樣來(lái)看:首先要了解這個(gè)問(wèn)題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;其次,從問(wèn)題的要害入手,從前到后的解決問(wèn)題的每個(gè)方面,即從輸入開(kāi)始入手,著重考慮如何從輸入導(dǎo)出輸出,在這個(gè)過(guò)程中,可確定所需的變量、數(shù)組、函數(shù),然后確定處理過(guò)程算法;最后可得結(jié)論。通過(guò)這次課程設(shè)計(jì),我深刻地體會(huì)到:<1>.細(xì)節(jié)決定成?。涸趯W(xué)習(xí)的過(guò)程中,要注意每一個(gè)細(xì)節(jié),要知道一個(gè)分
17、隔符或一個(gè)括號(hào)都會(huì)使整個(gè)程序出現(xiàn)錯(cuò)誤。<2>.要熟練掌握一些經(jīng)典的結(jié)構(gòu)和方法,如選擇排序,遞歸,遞推等,在遇到問(wèn)題是可直接應(yīng)用,快速解決問(wèn)題。<3>.要熟悉一些標(biāo)準(zhǔn)數(shù)據(jù)庫(kù),對(duì)一些可直接利用的函數(shù)就直接利用,沒(méi)必要重新定義。<4>.在設(shè)計(jì)過(guò)程中最好使程序模塊化,既便于閱讀,也可增加其移植性。<5>.熟能生巧。平時(shí)應(yīng)該多加訓(xùn)練,要知道,即使我們能完全看懂一個(gè)程序,但要讓你自己寫(xiě)出一個(gè)時(shí)仍是很困難的。它要求你對(duì)每一個(gè)語(yǔ)句,每一個(gè)變量,每一個(gè)函數(shù),每一個(gè)模塊都充分的熟悉,要知道它們的作用,作用域等等。因此只有平時(shí)做的多了,到時(shí)候才會(huì)游刃有余。一個(gè)多禮拜中
18、,我有過(guò)山窮水盡的困惑;有過(guò)柳暗花明的驚喜;一個(gè)多禮拜的時(shí)間我經(jīng)歷了很多,也收獲了很多。與其說(shuō)它是體力與腦力的作業(yè),不如說(shuō)它是合作精神和毅力的考驗(yàn)。經(jīng)過(guò)這次課程設(shè)計(jì),我不僅學(xué)到了很多知識(shí)和技能,更重要的是我學(xué)會(huì)了如何運(yùn)用所學(xué)知識(shí)去解決實(shí)際問(wèn)題.附錄:#include<>#include<>#include<>#define N 20#define T (time-8)/2int sum6=0;int computer620=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,
19、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è)某天某人查詢時(shí)機(jī)房各個(gè)時(shí)間段機(jī)位數(shù)情況*/void Menu(); void Situation();void Book();void Cancel();void SearchWaiting();void detail(int time)
20、;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;do puts("tt*機(jī)房機(jī)位預(yù)約系統(tǒng)*n"); puts("tt*菜單*n"); puts("ttt 1.查詢某時(shí)間段機(jī)位狀態(tài)"); /*查詢某時(shí)間段機(jī)位狀態(tài)*/ puts("ttt 2.預(yù)定空機(jī)
21、位"); /*預(yù)定空機(jī)位*/ puts("ttt 3.取消預(yù)訂"); /*取消預(yù)訂*/ puts("ttt 4.查詢等待信息"); /*查詢等待信息*/ puts("ttt 5.退出"); /*退出*/ puts("tt*n"); printf("選擇菜單號(hào)(1-5):"); scanf("%d",&n); if(n<1|n>5) w=1;getchar(); else w=0;while(w=1);switch(n)case 1:Situati
22、on();break;case 2:Book();break; case 3:Cancel();break;case 4:SearchWaiting();break;case 5:exit(0);break;getch();/*時(shí)間查詢*/void Situation()int time;printf("輸在 (8-20)范圍內(nèi)的時(shí)間:");scanf("%d",&time);if(time<8|time>20)printf("t時(shí)間輸入錯(cuò)誤!n");printf("輸入在 (8-20)范圍內(nèi)的時(shí)間:&q
23、uot;);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)時(shí)間范圍內(nèi)輸入你想要預(yù)定的時(shí)間:"); scanf("%d",&time); if(time<8|time>20) printf("t時(shí)間輸入錯(cuò)誤!n"); printf("t在(8-20)時(shí)間范圍內(nèi)輸入你想要預(yù)定的
24、時(shí)間:"); scanf("%d",&time); detail(time); /*函數(shù)調(diào)用*/if(sumT>0) if(fp=fopen("","a")=NULL) printf("n無(wú)法打開(kāi)文件!n"); exit(0); printf("nt請(qǐng)輸入你想要預(yù)定的機(jī)號(hào),并且留下你的電話號(hào)碼!:n"); scanf("%s %s",waiti.number,waiti.telephonenumber);for(i=0;i<1;i+) fwrit
25、e(&waiti,sizeof(struct waitlist),1,fp); fclose(fp);/*向文本文檔添加一個(gè)結(jié)構(gòu)體單元*/printf("t再次輸入你想要預(yù)定的時(shí)間!n");scanf("%d",&x);/*sumT-; / *預(yù)定后該時(shí)間段空機(jī)位數(shù)減1*/*computerTx=1; / *預(yù)定后該機(jī)狀態(tài)變?yōu)?*/printf("t預(yù)訂成功!n");getchar();Menu();elseprintf("這是在這個(gè)時(shí)間段內(nèi)未預(yù)定的電腦!n");for(i=T+1;i<6;i
26、+) time=9+2*i;detail(time); /*函數(shù)調(diào)用*/if(sumT>0)printf("t最近的空閑時(shí)間是 %d,%dn",2*i+8,2*i+10);break;printf("t你想要預(yù)定嗎:y/n");scanf("%s",&c);getchar();if(c='Y'|c='y') if(fp=fopen("","r")=NULL) printf("n無(wú)法打開(kāi)文件!n"); exit(0); else p
27、rintf("waitlist: number telephonenumbern"); for(i=0;!feof(fp);i+) fscanf(fp,"%s %s",&waiti.number,&waiti.telephonenumber); fclose(fp); for(i=0;i<10;i+) prione(i); printf("nt請(qǐng)輸入您想預(yù)定的機(jī)號(hào)并留下您的聯(lián)系方式!:n"); if(fp=fopen("","a")=NULL) printf("n
28、無(wú)法打開(kāi)文件!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); /*若等待,就用文件的方式列出當(dāng)時(shí)的等待列表并提示輸入你的等待序號(hào)和聯(lián)系方式*/printf("再次輸入電腦的序號(hào)!n");scanf("%d",&y);sumT-; computerTy=1; printf(&quo
29、t;t好了,請(qǐng)等待我們的電話!n"); Menu(); else Menu();/*取消預(yù)訂*/void Cancel()int time,number;printf("在(8-20)時(shí)間范圍內(nèi)輸入你已經(jīng)預(yù)定的時(shí)間:");scanf("%d",&time); if(time<8|time>20) printf("t輸入時(shí)間錯(cuò)誤!n"); printf("t在(8-20)時(shí)間范圍內(nèi)輸入你已經(jīng)預(yù)定的時(shí)間:"); scanf("%d",&time); elseprintf("t輸入你預(yù)定的機(jī)號(hào) :");scanf("%d",&number);detail(time); /* sumT+; / *預(yù)定后該時(shí)間段空機(jī)位數(shù)加1*/*comput
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘肅衛(wèi)生職業(yè)學(xué)院《臨床微生物學(xué)檢驗(yàn)技術(shù)1》2023-2024學(xué)年第一學(xué)期期末試卷
- 濱州醫(yī)學(xué)院《語(yǔ)言技巧訓(xùn)練臺(tái)詞》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年制造業(yè)3D打印大規(guī)模生產(chǎn)應(yīng)用中的智能制造與工業(yè)互聯(lián)網(wǎng)融合解決方案研究
- 小學(xué)游公園活動(dòng)方案
- 家庭聯(lián)盟活動(dòng)方案
- 宣講抗戰(zhàn)英雄活動(dòng)方案
- 小學(xué)午餐抽簽活動(dòng)方案
- 家裝公司聯(lián)合活動(dòng)方案
- 將開(kāi)展活動(dòng)方案
- 小學(xué)寫(xiě)信活動(dòng)方案
- 玻璃粉燒工藝
- 云計(jì)算和邊緣計(jì)算在工業(yè)互聯(lián)網(wǎng)中的融合
- 24年海南生物會(huì)考試卷
- 中南大學(xué)學(xué)科發(fā)展與規(guī)劃處
- 高危孕產(chǎn)婦管理課件培訓(xùn)
- 天一大聯(lián)考海南省2024屆高一物理第二學(xué)期期末考試試題含解析
- 夏季駕駛員安全培訓(xùn)
- 計(jì)量經(jīng)濟(jì)學(xué)論文eviews
- 《納稅籌劃(第7版)》課件 第7章 其他稅種的納稅籌劃
- 兒童被忽視量表(CNS)
- 閩教版小學(xué)英語(yǔ)四年級(jí)下冊(cè)總復(fù)習(xí)
評(píng)論
0/150
提交評(píng)論