版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 課程設(shè)計(論文)任務(wù)書</p><p> 軟件 學(xué) 院 軟件+ 信控 ?! I(yè) 1 班 </p><p> 一、課程設(shè)計(論文)題目 機房機位預(yù)約模擬系統(tǒng)的設(shè)計與實現(xiàn) </p><p> 二、課程設(shè)計(論文)工作自 2017 年 1 月 2
2、日起至 2017 年 1 月 6 日止。</p><p> 三、課程設(shè)計(論文) 地點: 南區(qū) 創(chuàng)新大樓東樓406 </p><p> 四、課程設(shè)計(論文)內(nèi)容要求:</p><p><b> 1.課程設(shè)計的目的</b></p><p> 《數(shù)據(jù)結(jié)構(gòu)
3、》課程設(shè)計是計算機科學(xué)與技術(shù)專業(yè)集中實踐性環(huán)節(jié)之一,是學(xué)習(xí)完</p><p> 《數(shù)據(jù)結(jié)構(gòu)》課程后進(jìn)行的一次全面的綜合練習(xí)。目的是要達(dá)到理論與實際應(yīng)用相結(jié)</p><p> 合,使學(xué)生能夠根據(jù)數(shù)據(jù)對象的特性,學(xué)會數(shù)據(jù)組織的方法,能把現(xiàn)實世界中的實際</p><p> 問題在計算機內(nèi)部表示出來,并培養(yǎng)良好的程序設(shè)計技能。</p><p>
4、 要求能從實際應(yīng)用問題出發(fā),合理地選擇數(shù)據(jù)結(jié)構(gòu),設(shè)計相應(yīng)的數(shù)據(jù)處理算法,</p><p> 并對算法進(jìn)行必要的分析;合理選擇編程工具,實現(xiàn)數(shù)據(jù)的物理結(jié)構(gòu)和相應(yīng)的數(shù)據(jù)處</p><p> 理算法;對算法進(jìn)行調(diào)試和測試,并對調(diào)試及測試結(jié)果進(jìn)行分析;針對數(shù)據(jù)結(jié)構(gòu)及算</p><p> 法的設(shè)計、調(diào)試及測試過程認(rèn)真寫出設(shè)計分析報告。</p><p
5、> 2.課程設(shè)計的要求及任務(wù)</p><p><b> ?。?)基本要求</b></p><p> 1)初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設(shè)計、程序編碼、調(diào)試等基本方法和技能。 </p><p> 2)要求從問題需求入手,完成系統(tǒng)的分析與設(shè)計,獨立完成系統(tǒng)的數(shù)據(jù)和功能分析,</p><p> 應(yīng)用《數(shù)據(jù)
6、結(jié)構(gòu)》知識,設(shè)計抽象數(shù)據(jù)類型、構(gòu)思算法、完成系統(tǒng)的設(shè)計。</p><p> 3)結(jié)合《數(shù)據(jù)結(jié)構(gòu)》理論知識,編寫程序求解指定問題,程序設(shè)計語言推薦使用C/C++,</p><p> 程序書寫規(guī)范,源程序需加必要的注釋。</p><p> 4)認(rèn)真完成系統(tǒng)的調(diào)試與測試工作,測試數(shù)據(jù)要完備,詳細(xì)記錄測試結(jié)果。</p><p> 5)規(guī)范撰寫
7、課程設(shè)計報告。</p><p> ?。?)課程設(shè)計論文撰寫要求</p><p> 1)按照書稿的規(guī)格撰寫打印課程設(shè)計論文;</p><p> 2)論文包括任務(wù)書、目錄、緒論、正文、總結(jié)、參考文獻(xiàn)、附錄等;</p><p> 3)正文中要有問題描述與分析、數(shù)據(jù)結(jié)構(gòu)的設(shè)計、算法的設(shè)計、算法的實現(xiàn)、調(diào)</p><p>
8、<b> 試分析與結(jié)果;</b></p><p> 4)課程設(shè)計論文裝訂按學(xué)校的統(tǒng)一要求完成</p><p><b> (3)課設(shè)考核</b></p><p><b> 1)考勤和態(tài)度; </b></p><p> 2)任務(wù)的難易程度及設(shè)計思路;</p>
9、<p> 3)編碼及調(diào)試能力;</p><p> 4)論文撰寫的水平、格式的規(guī)范性。</p><p> ?。?)課程設(shè)計進(jìn)度安排</p><p> 內(nèi)容 天數(shù) 地點</p><p> 構(gòu)思及收集資料 1 圖書館</p><p&g
10、t; 程序設(shè)計與調(diào)試 3 計算機房</p><p> 撰寫論文 1 圖書館</p><p> 具體任務(wù):20臺機器,從早8點到晚8點,每兩個小時一個時間段。實現(xiàn)如下功能:</p><p> (1)機位空閑查詢,查詢空閑機位;</p><p> ?。?)機位預(yù)定
11、,根據(jù)輸入的日期和時間段查詢是否有空機位,若有則預(yù)約,若無則提供最近時間段的空機信息。另外,如果用戶要求在非空時間上機,則將用戶信息插入該時間段的等待列表。</p><p> ?。?)退出預(yù)定,根據(jù)輸入的時間撤銷該時間的預(yù)定。</p><p> ?。?)查詢是否有等待信息,若有則按順序顯示聯(lián)系方式,若無則顯示提示信息。</p><p> 提高部分:利用外部.txt
12、文件同步記錄所有數(shù)據(jù)。</p><p> 學(xué)生簽名: </p><p> 2017年 1月 2 日</p><p> 課程設(shè)計(論文)評審意見</p><p> ?。?)考勤和態(tài)度 :優(yōu)(?。⒘迹ā。?、中(?。⒁话悖ā。⒉睿ā。?lt;/p><p> ?。?)任務(wù)難
13、易及設(shè)計思路?。簝?yōu)( )、良( )、中( )、一般(?。?、差(?。?lt;/p><p> (3)編碼及調(diào)試能力 :優(yōu)(?。?、良(?。?、中(?。⒁话悖ā。?、差(?。?lt;/p><p> ?。?)論文撰寫水平及規(guī)范性:優(yōu)(?。?、良(?。?、中( )、一般(?。⒉睿ā。?lt;/p><p> 評閱人: 職稱: 副教授 </p&g
14、t;<p> 年 月 日</p><p><b> 目 錄</b></p><p><b> 1. 緒論1</b></p><p> 1.1 設(shè)計題目1</p><p> 1.2 模塊劃分1</p><p> 2. 需求分析....
15、...................................................................................1</p><p><b> 3. 系統(tǒng)設(shè)計1</b></p><p> 3.1數(shù)據(jù)結(jié)構(gòu).......................................................
16、..........................................1</p><p> 3.2 系統(tǒng)包含的函數(shù)2</p><p><b> 4. 編碼實現(xiàn)2</b></p><p><b> 4.1主菜單3</b></p><p> 4.2機位查詢..........
17、........................................................................................4</p><p><b> 4.3機位預(yù)定4</b></p><p><b> 4.4取消預(yù)定7</b></p><p> 4.5查詢等
18、待信息8</p><p> 5. 調(diào)試及運行結(jié)果10</p><p> 6. 課程設(shè)計心得12</p><p><b> 參考文獻(xiàn)13</b></p><p><b> 附 錄14</b></p><p><b> 1.緒論</b&g
19、t;</p><p><b> 1.1 設(shè)計題目</b></p><p> 機房預(yù)約系統(tǒng)的設(shè)計與實現(xiàn)</p><p> 操作系統(tǒng):Windows</p><p> 軟件:Visual C++ 6.0軟件</p><p><b> 1.2 模塊劃分</b></
20、p><p><b> 2.需求分析</b></p><p> .建立一個比較完善的菜單系統(tǒng)保證可以滿足用戶的所有需求;</p><p> .利用二維數(shù)組和一維數(shù)組建立一個模擬數(shù)據(jù)庫,使查詢系統(tǒng)建立在數(shù)據(jù)庫上進(jìn)行查詢;</p><p> 將程序模塊化處理方便修改并且比較有條理,用函數(shù)來實現(xiàn)菜單的各種功能;</p&
21、gt;<p> 利用結(jié)構(gòu)體構(gòu)造所需的要的數(shù)組以及線性表,線性表采用順序儲存。</p><p><b> 3.系統(tǒng)設(shè)計</b></p><p><b> 3.1 數(shù)據(jù)結(jié)構(gòu)</b></p><p> 程序主要是用一維數(shù)組以及二維數(shù)組作為程序的樣本庫,用順序表順序儲存所有的信息,然后用文本轉(zhuǎn)換函數(shù)將其轉(zhuǎn)換成
22、文本文檔存儲。其中信息包括預(yù)定的機位、預(yù)定的時間段、以及預(yù)定所用的電話號碼。</p><p> 3.2 系統(tǒng)包含的函數(shù)</p><p> 主函數(shù)包含菜單,所以用while判斷語句來進(jìn)行處理。</p><p> 機位查詢函數(shù)調(diào)用了通用函數(shù)庫同時用if的判斷語句來處理查詢問題</p><p> 機位預(yù)訂函數(shù)調(diào)用了通用函數(shù)和之前建立的數(shù)組結(jié)
23、構(gòu)體,同時在這個函數(shù)中建立文本文檔的的數(shù)據(jù)庫用以儲存用戶想要儲存的信息</p><p><b> 4.編碼實現(xiàn)</b></p><p><b> 4.1 主函數(shù)</b></p><p> void Menu() /*主界面*/</p><p><b> {</
24、b></p><p><b> int n,w;</b></p><p><b> do</b></p><p><b> {</b></p><p> printf("\t\t\t\t機房機位預(yù)約系統(tǒng)\n");</p><
25、p> printf("\t\t\t\t菜單\n");</p><p> printf("\t\t\t 1.查詢某時間段機位狀態(tài)\n"); /*查詢某時間段機位狀態(tài)*/</p><p> printf("\t\t\t 2.預(yù)定空機位\n"); /*預(yù)定空機位*/</p><p> prin
26、tf("\t\t\t 3.取消預(yù)訂\n"); /*取消預(yù)訂*/</p><p> printf("\t\t\t 4.查詢等待信息\n"); /*查詢等待信息*/</p><p> printf("\t\t\t 5.退出\n"); /*退出*/</p><p> printf(&qu
27、ot;選擇菜單號(1-5):");</p><p> scanf("%d",&n); </p><p> if(n<1||n>5)</p><p> {w=1;getchar();}</p><p><b> else</b></p><p&g
28、t;<b> w=0;</b></p><p> }while(w==1);</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1:shijianchaxun();break;</p>
29、<p> case 2:yuding();break; </p><p> case 3:quxiaoyuding();break;</p><p> case 4:dengdaixinxi();break;</p><p> case 5:exit(0);break;</p><p><b> }</b
30、></p><p> getchar();</p><p><b> }</b></p><p><b> 4.2機位查詢</b></p><p><b> *時間查詢*/</b></p><p> void shijianchaxun(
31、)</p><p><b> {</b></p><p><b> int time;</b></p><p> prin/tf("輸在 (8-20)范圍內(nèi)的時間:");</p><p> scanf("%d",&time);</p>
32、;<p> if(time<8||time>20)</p><p> {printf("\t時間輸入錯誤!\n");</p><p> printf("輸入在 (8-20)范圍內(nèi)的時間:");</p><p> scanf("%d",&time);</p>
33、;<p><b> }</b></p><p> detail(time); /*函數(shù)調(diào)用*/</p><p> getchar();</p><p><b> Menu();</b></p><p><b> }</b><
34、;/p><p><b> 4.3機位預(yù)定</b></p><p><b> /*預(yù)定函數(shù)*/</b></p><p> void yuding()</p><p> {int time,i=0,x,y;</p><p><b> FILE *fp;</b
35、></p><p><b> char c;</b></p><p> printf("在(8-20)時間范圍內(nèi)輸入你想要預(yù)定的時間:");</p><p> scanf("%d",&time);</p><p> if(time<8||time>
36、20)</p><p><b> {</b></p><p> printf("\t時間輸入錯誤!\n");</p><p> printf("\t在(8-20)時間范圍內(nèi)輸入你想要預(yù)定的時間:");</p><p> scanf("%d",&t
37、ime);</p><p><b> }</b></p><p> detail(time); /*函數(shù)調(diào)用*/</p><p> if(sum[T]>0)</p><p> { if((fp=fopen("waitlist.txt","a&quo
38、t;))==NULL)</p><p><b> {</b></p><p> printf("\n無法打開文件!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p&
39、gt; printf("\n\t請輸入你想要預(yù)定的機號,并且留下你的電話號碼!:\n");</p><p> scanf("%s %s",wait[i].number,wait[i].telephonenumber);</p><p> for(i=0;i<1;i++)</p><p> fwrite(&
40、;wait[i],sizeof(struct waitlist),1,fp);</p><p> fclose(fp);/*向文本文檔添加一個結(jié)構(gòu)體單元*/</p><p> printf("\t再次輸入你想要預(yù)定的時間!\n");</p><p> scanf("%d",&x);</p><
41、p> if (time+x>20)</p><p> printf("\t預(yù)定時間錯誤請重新輸入\t\n");</p><p> sum[T]--; /*預(yù)定后該時間段空機位數(shù)減1*/</p><p> computer[T][x]=1; /*預(yù)定后該機狀態(tài)變?yōu)?*/</p><p>
42、 printf("\t預(yù)訂成功!\n");</p><p> getchar();</p><p><b> Menu();</b></p><p><b> }</b></p><p><b> else</b></p><p&
43、gt;<b> {</b></p><p> printf("這是在這個時間段內(nèi)未預(yù)定的電腦!\n");</p><p> for(i=T+1;i<6;i++)</p><p> { time=9+2*i;</p><p> detail(time); /*函數(shù)調(diào)用*/<
44、/p><p> if(sum[T]>0)</p><p> printf("\t最近的空閑時間是 %d,%d\n",2*i+8,2*i+10);break;</p><p><b> }</b></p><p> printf("\t你想要預(yù)定嗎?:y/n?");<
45、/p><p> scanf("%s",&c);</p><p> getchar();</p><p> if(c=='Y'||c=='y')</p><p><b> {</b></p><p> if((fp=fopen(&qu
46、ot;waitlist.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("\n無法打開文件!\n");</p><p><b> exit(0);</b></p><p><b&g
47、t; }</b></p><p><b> else</b></p><p> { printf("waitlist: number telephonenumber\n");</p><p> for(i=0;!feof(fp);i++)</p><p><b>
48、{</b></p><p> fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);</p><p><b> }</b></p><p> fclose(fp);</p><p><b>
49、 }</b></p><p> for(i=0;i<10;i++)</p><p> { prione(i);}</p><p> printf("\n\t請輸入您想預(yù)定的機號并留下您的聯(lián)系方式!:\n");</p><p> if((fp=fopen("waitlist.txt&quo
50、t;,"a"))==NULL)</p><p><b> {</b></p><p> printf("\n無法打開文件!\n");</p><p><b> exit(0);</b></p><p><b> }</b><
51、/p><p> scanf("%s %s",wait[i].number,wait[i].telephonenumber);</p><p> for(i=0;i<1;i++)</p><p> fwrite(&wait[i],sizeof(struct waitlist),1,fp);</p><p>
52、 fclose(fp); /*若等待,就用文件的方式列出當(dāng)時的等待列表并提示輸入你的等待序號和聯(lián)系方式*/</p><p> printf("再次輸入電腦的序號!\n");</p><p> scanf("%d",&y);</p><p> sum[T]--;
53、 </p><p> computer[T][y]=1; </p><p> printf("\t好了,請等待我們的電話!\n");</p><p><b> Menu();</b></p><p><b> }</b></p><p&g
54、t; else Menu();</p><p><b> }</b></p><p><b> }</b></p><p><b> 4.4取消預(yù)定</b></p><p><b> /*取消預(yù)訂*/</b></p><p&g
55、t; void quxiaoyuding()</p><p><b> {</b></p><p> int time,number;</p><p> printf("在(8-20)時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間:");</p><p> scanf("%d",&
56、;time); </p><p> if(time<8||time>20)</p><p><b> {</b></p><p> printf("\t輸入時間錯誤!\n");</p><p> printf("\t在(8-20)時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間:"
57、;);</p><p> scanf("%d",&time);</p><p><b> }</b></p><p><b> else</b></p><p> {printf("\t輸入你預(yù)定的機號 :");</p><
58、p> scanf("%d",&number);}</p><p> detail(time);</p><p> sum[T]++; /*預(yù)定后該時間段空機位數(shù)加1*/</p><p> computer[T][number]=0; /*預(yù)定后該機狀態(tài)變?yōu)?*/</p><p> prin
59、tf("\t取消成功!\n");</p><p> getchar();</p><p><b> Menu();</b></p><p><b> }</b></p><p><b> 4.5查詢等待信息</b></p><p&
60、gt; /*查看等待信息*/</p><p> void dengdaixinxi()</p><p><b> {</b></p><p> int time,i;</p><p><b> FILE *fp;</b></p><p> printf("
61、;\t在(8-20)之間輸入您要搜索的時間:");</p><p> scanf("%d",&time);</p><p> if(time<8||time>20)</p><p><b> {</b></p><p> printf("\t時間輸入錯誤
62、!\n");</p><p> printf("\t在(8-20)之間輸入您要搜索的時間:");</p><p> scanf("%d",&time);</p><p><b> }</b></p><p><b> else</b>
63、</p><p><b> ;</b></p><p> if((fp=fopen("waitlist.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("\nCannot open f
64、ile!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p> { printf("waitlist: number telephonen
65、umber\n");</p><p> for(i=0;!feof(fp);i++)</p><p><b> {</b></p><p> fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);</p><
66、p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> for(i=0;i<10;i++)</p><p> { prione(i);}</p><p><b> Menu(
67、);</b></p><p><b> }</b></p><p> 5.調(diào)試以及運行結(jié)果</p><p><b> 5.1運行結(jié)果</b></p><p><b> 5.1.1主菜單</b></p><p><b> 5
68、.1.2預(yù)定機位</b></p><p><b> 5.1.3取消預(yù)定</b></p><p> 5.1.4 查詢等待機位</p><p><b> 6.課程設(shè)計心得</b></p><p> 課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要
69、環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,當(dāng)今計算機應(yīng)用在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握一些基本的軟件開發(fā)技術(shù)是十分重要和必要的。</p><p> 回顧起此次課程設(shè)計,至今我仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,在整整一個星期的日子里,可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)
70、到過的知識。</p><p> 程序設(shè)計過程有如解決一實際問題,從解決實際問題的角度,我們可以這樣來看:首先要了解這個問題的基本要求,即輸入、輸出、完成從輸入到輸出的要求是什么;其次,從問題的要害入手,從前到后的解決問題的每個方面,即從輸入開始入手,著重考慮如何從輸入導(dǎo)出輸出,在這個過程中,可確定所需的變量、數(shù)組、函數(shù),然后確定處理過程--算法;最后可得結(jié)論。</p><p> 熟能生
71、巧。平時應(yīng)該多加訓(xùn)練,要知道,即使我們能完全看懂一個程序,但要讓你自己寫出一個時仍是很困難的。它要求你對每一個語句,每一個變量,每一個函數(shù),每一個模塊都充分的熟悉,要知道它們的作用,作用域等等。因此只有平時做的多了,到時候才會游刃有余。</p><p> 一個多禮拜中,我有過山窮水盡的困惑;有過柳暗花明的驚喜;一個多禮拜的時間我經(jīng)歷了很多,也收獲了很多。與其說它是體力與腦力的作業(yè),不如說它是合作精神和毅力的考驗
72、。經(jīng)過這次課程設(shè)計,我不僅學(xué)到了很多知識和技能,更重要的是我學(xué)會了如何運用所學(xué)知識去解決實際問題.</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]. 北京:清華大學(xué)出版社, 2007.</p><p> [2] 譚浩強 《C語言程序設(shè)計(第二版)》[M].北京:清華大學(xué)出
73、版社2008</p><p> [3] 譚浩強 《C語言程序設(shè)計(第三版)》[M].北京:清華大學(xué)出版社 2014</p><p> [4] 姜仲秋主編 C語言程序設(shè)計,南京大學(xué)出版社 2001</p><p> [5] 譚浩強 《C語言程序設(shè)計教程(第四版)》[M].北京:清華大學(xué)出版社2014</p><p><b>
74、附 錄</b></p><p><b> 源代碼</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<string.h></p><p>
75、; #define N 20</p><p> #define T (time-8)/2</p><p> int sum[6]={0};</p><p> int computer[6][20]={</p><p> {1,0,1,0,1,1,0,0,0,0,0,0,1,1,1,1,0,1,1,1},</p>&l
76、t;p> {1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1},</p><p> {1,1,0,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,1,1},</p><p> {1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1},</p><p> {1,1,0,1,1,1,0,0
77、,0,0,0,0,1,1,0,1,1,1,1,0},</p><p> {1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1}</p><p> };/*該數(shù)組表示假設(shè)某天某人查詢時機房各個時間段機位數(shù)情況*/</p><p> void Menu(); </p><p> void shiji
78、anchaxun();</p><p> void yuding();</p><p> void quxiaoyuding();</p><p> void dengdaixinxi();</p><p> void detail(int time);</p><p> void prione(int i)
79、;</p><p> struct waitlist /*等待列表*/</p><p><b> {</b></p><p> char number[3];</p><p> char telephonenumber[11]; </p><p> } wait[N
80、];</p><p> void printone(int i);</p><p> void main()</p><p><b> {</b></p><p> Menu(); /*當(dāng)前狀態(tài)函數(shù)*/</p><p><b> }</b></p>
81、;<p> void Menu() /*主界面*/</p><p><b> {</b></p><p><b> int n,w;</b></p><p><b> do</b></p><p><b> {</b>
82、;</p><p> printf("\t\t\t\t機房機位預(yù)約系統(tǒng)\n");</p><p> printf("\t\t\t\t菜單\n");</p><p> printf("\t\t\t 1.查詢某時間段機位狀態(tài)\n"); /*查詢某時間段機位狀態(tài)*/</p><p>
83、; printf("\t\t\t 2.預(yù)定空機位\n"); /*預(yù)定空機位*/</p><p> printf("\t\t\t 3.取消預(yù)訂\n"); /*取消預(yù)訂*/</p><p> printf("\t\t\t 4.查詢等待信息\n"); /*查詢等待信息*/</p><p>
84、 printf("\t\t\t 5.退出\n"); /*退出*/</p><p> printf("選擇菜單號(1-5):");</p><p> scanf("%d",&n); </p><p> if(n<1||n>5)</p><p> {w
85、=1;getchar();}</p><p><b> else</b></p><p><b> w=0;</b></p><p> }while(w==1);</p><p><b> switch(n)</b></p><p><b&
86、gt; {</b></p><p> case 1:shijianchaxun();break;</p><p> case 2:yuding();break; </p><p> case 3:quxiaoyuding();break;</p><p> case 4:dengdaixinxi();break;<
87、/p><p> case 5:exit(0);break;</p><p><b> }</b></p><p> getchar();</p><p><b> }</b></p><p><b> /*時間查詢*/</b></p>
88、<p> void shijianchaxun()</p><p><b> {</b></p><p><b> int time;</b></p><p> printf("輸在 (8-20)范圍內(nèi)的時間:");</p><p> scanf("
89、;%d",&time);</p><p> if(time<8||time>20)</p><p> {printf("\t時間輸入錯誤!\n");</p><p> printf("輸入在 (8-20)范圍內(nèi)的時間:");</p><p> scanf("
90、;%d",&time);</p><p><b> }</b></p><p> detail(time); /*函數(shù)調(diào)用*/</p><p> getchar();</p><p><b> Menu();</b></p><
91、p><b> }</b></p><p><b> /*預(yù)定函數(shù)*/</b></p><p> void yuding()</p><p> {int time,i=0,x,y;</p><p><b> FILE *fp;</b></p><
92、;p><b> char c;</b></p><p> printf("在(8-20)時間范圍內(nèi)輸入你想要預(yù)定的時間:");</p><p> scanf("%d",&time);</p><p> if(time<8||time>20)</p><
93、p><b> {</b></p><p> printf("\t時間輸入錯誤!\n");</p><p> printf("\t在(8-20)時間范圍內(nèi)輸入你想要預(yù)定的時間:");</p><p> scanf("%d",&time);</p>&l
94、t;p><b> }</b></p><p> detail(time); /*函數(shù)調(diào)用*/</p><p> if(sum[T]>0)</p><p> { if((fp=fopen("waitlist.txt","a"))==NULL)</p&g
95、t;<p><b> {</b></p><p> printf("\n無法打開文件!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> printf("\
96、n\t請輸入你想要預(yù)定的機號,并且留下你的電話號碼!:\n");</p><p> scanf("%s %s",wait[i].number,wait[i].telephonenumber);</p><p> for(i=0;i<1;i++)</p><p> fwrite(&wait[i],sizeof(str
97、uct waitlist),1,fp);</p><p> fclose(fp);/*向文本文檔添加一個結(jié)構(gòu)體單元*/</p><p> printf("\t再次輸入你想要預(yù)定的時間!\n");</p><p> scanf("%d",&x);</p><p> if (time+x&g
98、t;20)</p><p> printf("\t預(yù)定時間錯誤請重新輸入\t\n");</p><p> sum[T]--; /*預(yù)定后該時間段空機位數(shù)減1*/</p><p> computer[T][x]=1; /*預(yù)定后該機狀態(tài)變?yōu)?*/</p><p> printf("\t預(yù)訂成
99、功!\n");</p><p> getchar();</p><p><b> Menu();</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {<
100、/b></p><p> printf("這是在這個時間段內(nèi)未預(yù)定的電腦!\n");</p><p> for(i=T+1;i<6;i++)</p><p> { time=9+2*i;</p><p> detail(time); /*函數(shù)調(diào)用*/</p><p>
101、if(sum[T]>0)</p><p> printf("\t最近的空閑時間是 %d,%d\n",2*i+8,2*i+10);break;</p><p><b> }</b></p><p> printf("\t你想要預(yù)定嗎?:y/n?");</p><p>
102、scanf("%s",&c);</p><p> getchar();</p><p> if(c=='Y'||c=='y')</p><p><b> {</b></p><p> if((fp=fopen("waitlist.txt&quo
103、t;,"r"))==NULL)</p><p><b> {</b></p><p> printf("\n無法打開文件!\n");</p><p><b> exit(0);</b></p><p><b> }</b><
104、/p><p><b> else</b></p><p> { printf("waitlist: number telephonenumber\n");</p><p> for(i=0;!feof(fp);i++)</p><p><b> {</b></p&g
105、t;<p> fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p&
106、gt;<p> for(i=0;i<10;i++)</p><p> { prione(i);}</p><p> printf("\n\t請輸入您想預(yù)定的機號并留下您的聯(lián)系方式!:\n");</p><p> if((fp=fopen("waitlist.txt","a"))=
107、=NULL)</p><p><b> {</b></p><p> printf("\n無法打開文件!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p>
108、scanf("%s %s",wait[i].number,wait[i].telephonenumber);</p><p> for(i=0;i<1;i++)</p><p> fwrite(&wait[i],sizeof(struct waitlist),1,fp);</p><p> fclose(fp);
109、 /*若等待,就用文件的方式列出當(dāng)時的等待列表并提示輸入你的等待序號和聯(lián)系方式*/</p><p> printf("再次輸入電腦的序號!\n");</p><p> scanf("%d",&y);</p><p> sum[T]--; </p>
110、<p> computer[T][y]=1; </p><p> printf("\t好了,請等待我們的電話!\n");</p><p><b> Menu();</b></p><p><b> }</b></p><p> else Menu();<
111、;/p><p><b> }</b></p><p><b> }</b></p><p><b> /*取消預(yù)訂*/</b></p><p> void quxiaoyuding()</p><p><b> {</b>&l
112、t;/p><p> int time,number;</p><p> printf("在(8-20)時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間:");</p><p> scanf("%d",&time); </p><p> if(time<8||time>20)</p>
113、<p><b> {</b></p><p> printf("\t輸入時間錯誤!\n");</p><p> printf("\t在(8-20)時間范圍內(nèi)輸入你已經(jīng)預(yù)定的時間:");</p><p> scanf("%d",&time);</p>
114、<p><b> }</b></p><p><b> else</b></p><p> {printf("\t輸入你預(yù)定的機號 :");</p><p> scanf("%d",&number);}</p><p> det
115、ail(time);</p><p> sum[T]++; /*預(yù)定后該時間段空機位數(shù)加1*/</p><p> computer[T][number]=0; /*預(yù)定后該機狀態(tài)變?yōu)?*/</p><p> printf("\t取消成功!\n");</p><p> getchar();</p>
116、;<p><b> Menu();</b></p><p><b> }</b></p><p> /*查看等待信息*/</p><p> void dengdaixinxi()</p><p><b> {</b></p><p&g
117、t; int time,i;</p><p><b> FILE *fp;</b></p><p> printf("\t在(8-20)之間輸入您要搜索的時間:");</p><p> scanf("%d",&time);</p><p> if(time<
118、8||time>20)</p><p><b> {</b></p><p> printf("\t時間輸入錯誤!\n");</p><p> printf("\t在(8-20)之間輸入您要搜索的時間:");</p><p> scanf("%d"
119、,&time);</p><p><b> }</b></p><p><b> else</b></p><p><b> ;</b></p><p> if((fp=fopen("waitlist.txt","r"))
120、==NULL)</p><p><b> {</b></p><p> printf("\nCannot open file!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p>
121、<p><b> else</b></p><p> { printf("waitlist: number telephonenumber\n");</p><p> for(i=0;!feof(fp);i++)</p><p><b> {</b></p><
122、p> fscanf(fp,"%s %s",&wait[i].number,&wait[i].telephonenumber);</p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><
123、;p> for(i=0;i<10;i++)</p><p> { prione(i);}</p><p><b> Menu();</b></p><p><b> }</b></p><p><b> /*公共函數(shù)*/ </b></p>&
124、lt;p> void detail(int time) /*此函數(shù)功能是實現(xiàn)查找每個時間段空機位總數(shù)和空機位號*/</p><p><b> { </b></p><p> int i,j=0,k,s=0;</p><p> int v[30];</p><p> for(i=0;
125、i<20;i++)</p><p><b> {</b></p><p> if(computer[T][i]==0)</p><p><b> { s++;</b></p><p><b> v[j++]=i;</b></p><p>
126、;<b> }</b></p><p><b> }</b></p><p><b> sum[T]=s;</b></p><p> printf("\t目前空置的電腦:%d\n",sum[T]);</p><p> for(k=0;k<j;
127、k++)</p><p> printf("\t空置的電腦是:%d\n",v[k]);</p><p><b> }</b></p><p> void prione(int i) /*此函數(shù)功能是實現(xiàn)輸出等待列表到屏幕*/</p><p><b> {<
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計報告—機房機位預(yù)約模擬系統(tǒng)
- 課程設(shè)計---機房收費設(shè)計報告
- c語言課程設(shè)計報告——機房管理系統(tǒng)
- 機房收費管理系統(tǒng)課程設(shè)計
- 計算機機房管理系統(tǒng)課程設(shè)計報告
- 機房學(xué)生上機管理系統(tǒng)課程設(shè)計
- 《實驗室預(yù)約管理信息系統(tǒng)》課程設(shè)計報告
- 電信機房課程設(shè)計
- 大型數(shù)據(jù)庫課程設(shè)計報告——機房管理系統(tǒng)
- (c語言)機房收費管理系統(tǒng)課程設(shè)計
- (c語言)機房收費管理系統(tǒng)課程設(shè)計
- (c語言)機房收費管理系統(tǒng)課程設(shè)計
- 制冷機房課程設(shè)計--冷凍機房設(shè)計
- c語言課程設(shè)計--機房機位預(yù)定系統(tǒng)
- 機房監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)課程設(shè)計
- 機房管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 制冷機房課程設(shè)計----工藝?yán)鋬鏊到y(tǒng)設(shè)計
- 學(xué)校機房管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 計件系統(tǒng)設(shè)計 課程設(shè)計報告
- 課程設(shè)計-機房管理系統(tǒng)的開發(fā)與應(yīng)用
評論
0/150
提交評論