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