




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上1 設(shè)計目的 機(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ù)定?。?)查詢是否有等待信息,若有則提供最優(yōu)解決方案(等待時間盡量短),若無則顯示提示信息。.3 模塊劃分機(jī)房機(jī)位預(yù)約系統(tǒng)查詢機(jī)位預(yù)定機(jī)位退出預(yù)定查詢等待信息4 主要函數(shù)說明及其N-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.查詢某時間段機(jī)位狀態(tài)"); /*查詢某時間段機(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("選擇菜單號(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)的時間:");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 t
5、ime,i=0,x,y;FILE *fp; 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("&qu
6、ot;,"a")=NULL) printf("n無法打開文件!n"); exit(0); printf("nt請輸入你想要預(yù)定的機(jī)號,并且留下你的電話號碼!:n"); 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&
7、quot;);scanf("%d",&x);/*sumT-; / *預(yù)定后該時間段空機(jī)位數(shù)減1*/*computerTx=1; / *預(yù)定后該機(jī)狀態(tài)變?yōu)?*/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*
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無法打開文件!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請輸入你想要預(yù)定的機(jī)號,并且留下你的電話號碼!:n"); if(fp=fopen("","a")=NULL) printf("n無法打開文件!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)時的等待列表并提示輸入你的等待序號和聯(lián)系方式*/printf("再次輸入電腦的序號!n");scanf("%d",&y);sumT-; computerTy=1; printf("t好了,請等待我們的電話!n"); Menu(); else Menu();N4. 取消預(yù)定:void Cancel()int time,number;p
11、rintf("在(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); /* su
12、mT+; / *預(yù)定后該時間段空機(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è)計心得課程設(shè)計是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計算機(jī)應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握一些基本的軟件開發(fā)技術(shù)是十
15、分重要和必要的?;仡櫰鸫舜握n程設(shè)計,至今我仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實(shí)踐,在整整一個星期的日子里,可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,從而提高自己的實(shí)際動手能力和獨(dú)立思考的能力,這樣才能真正為體會和認(rèn)識它,才能寫出一個完整的程序代碼,才能使自己在過程中得到鍛煉和提高。在設(shè)計的過程中遇到問題,這畢竟獨(dú)立做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不
16、足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體的建立,指針的應(yīng)用等都不太熟練。通過這次課程設(shè)計,也使我對以前所學(xué)過的知識重新溫故和加強(qiáng)。程序設(shè)計過程有如解決一實(shí)際問題,從解決實(shí)際問題的角度,我們可以這樣來看:首先要了解這個問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;其次,從問題的要害入手,從前到后的解決問題的每個方面,即從輸入開始入手,著重考慮如何從輸入導(dǎo)出輸出,在這個過程中,可確定所需的變量、數(shù)組、函數(shù),然后確定處理過程算法;最后可得結(jié)論。通過這次課程設(shè)計,我深刻地體會到:<1>.細(xì)節(jié)決定成?。涸趯W(xué)習(xí)的過程中,要注意每一個細(xì)節(jié),要知道一個分
17、隔符或一個括號都會使整個程序出現(xiàn)錯誤。<2>.要熟練掌握一些經(jīng)典的結(jié)構(gòu)和方法,如選擇排序,遞歸,遞推等,在遇到問題是可直接應(yīng)用,快速解決問題。<3>.要熟悉一些標(biāo)準(zhǔn)數(shù)據(jù)庫,對一些可直接利用的函數(shù)就直接利用,沒必要重新定義。<4>.在設(shè)計過程中最好使程序模塊化,既便于閱讀,也可增加其移植性。<5>.熟能生巧。平時應(yīng)該多加訓(xùn)練,要知道,即使我們能完全看懂一個程序,但要讓你自己寫出一個時仍是很困難的。它要求你對每一個語句,每一個變量,每一個函數(shù),每一個模塊都充分的熟悉,要知道它們的作用,作用域等等。因此只有平時做的多了,到時候才會游刃有余。一個多禮拜中
18、,我有過山窮水盡的困惑;有過柳暗花明的驚喜;一個多禮拜的時間我經(jīng)歷了很多,也收獲了很多。與其說它是體力與腦力的作業(yè),不如說它是合作精神和毅力的考驗(yàn)。經(jīng)過這次課程設(shè)計,我不僅學(xué)到了很多知識和技能,更重要的是我學(xué)會了如何運(yùn)用所學(xué)知識去解決實(shí)際問題.附錄:#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è)某天某人查詢時機(jī)房各個時間段機(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.查詢某時間段機(jī)位狀態(tài)"); /*查詢某時間段機(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("選擇菜單號(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();/*時間查詢*/void Situation()int time;printf("輸在 (8-20)范圍內(nèi)的時間:");scanf("%d",&time);if(time<8|time>20)printf("t時間輸入錯誤!n");printf("輸入在 (8-20)范圍內(nèi)的時間:&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)時間范圍內(nèi)輸入你想要預(yù)定的時間:"); scanf("%d",&time); if(time<8|time>20) printf("t時間輸入錯誤!n"); printf("t在(8-20)時間范圍內(nèi)輸入你想要預(yù)定的
24、時間:"); scanf("%d",&time); detail(time); /*函數(shù)調(diào)用*/if(sumT>0) if(fp=fopen("","a")=NULL) printf("n無法打開文件!n"); exit(0); printf("nt請輸入你想要預(yù)定的機(jī)號,并且留下你的電話號碼!: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);/*向文本文檔添加一個結(jié)構(gòu)體單元*/printf("t再次輸入你想要預(yù)定的時間!n");scanf("%d",&x);/*sumT-; / *預(yù)定后該時間段空機(jī)位數(shù)減1*/*computerTx=1; / *預(yù)定后該機(jī)狀態(tài)變?yōu)?*/printf("t預(yù)訂成功!n");getchar();Menu();elseprintf("這是在這個時間段內(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最近的空閑時間是 %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無法打開文件!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請輸入您想預(yù)定的機(jī)號并留下您的聯(lián)系方式!:n"); if(fp=fopen("","a")=NULL) printf("n
28、無法打開文件!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)時的等待列表并提示輸入你的等待序號和聯(lián)系方式*/printf("再次輸入電腦的序號!n");scanf("%d",&y);sumT-; computerTy=1; printf(&quo
29、t;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*/*comput
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025金融機(jī)構(gòu)貸款合同書范本2
- 2025標(biāo)準(zhǔn)個人投資合伙企業(yè)合同樣本
- 2025地基加固錨桿施工合同
- 《2025甲乙雙方委托貸款借款合同協(xié)議》
- 礦山安全監(jiān)管與執(zhí)法考核試卷
- 2025福建省智能產(chǎn)業(yè)發(fā)展科技項(xiàng)目(課題)合同書
- 2025簡化農(nóng)業(yè)生產(chǎn)技術(shù)推廣項(xiàng)目合同模板
- 2025退休人員勞動合同模板
- 2025建筑工程合同管理法規(guī)詳解
- 2025電工勞務(wù)承包合同示范文本
- 教師專業(yè)發(fā)展制度教師專業(yè)發(fā)展的保障制度
- 學(xué)校德育管理體系
- XX文化產(chǎn)業(yè)投資公司二零二五年度股東退股及文化創(chuàng)意協(xié)議
- 青年博物館文創(chuàng)產(chǎn)品消費(fèi)研究:一個社會實(shí)踐分析視角
- 2025版學(xué)校學(xué)生食堂餐具清洗消毒服務(wù)合同2篇
- 跟著電影去旅游知到智慧樹章節(jié)測試課后答案2024年秋山東大學(xué)(威海)
- 《有機(jī)硅乳液防水劑》文本及編制說明
- 學(xué)?;饡馁Y金籌集與運(yùn)用策略
- 2021年高考物理試卷(江蘇)(解析卷)
- 調(diào)度室副主任安全生產(chǎn)職責(zé)模版(3篇)
- 2025年中電科太力通信科技限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
評論
0/150
提交評論