版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 軟件學(xué)院課程設(shè)計(jì)報(bào)告</p><p><b> —— 網(wǎng)吧管理系統(tǒng)</b></p><p> 年級(jí)班級(jí): </p><p> 專業(yè)方向: </p><p> 學(xué) 號(hào): </p><p> 姓 名:
2、 </p><p> 指導(dǎo)老師: </p><p><b> 二零一零年六月</b></p><p><b> 一、問(wèn)題描述</b></p><p> 本程序是一個(gè)網(wǎng)吧管理程序,首先選擇界面選擇需要的服務(wù),包括查詢空機(jī)位,預(yù)訂與取消機(jī)位,用戶可通過(guò)屏幕提示,查詢自己的信
3、息,包括打印預(yù)訂單,等候單,以及打印用戶列表。操作簡(jiǎn)潔,較易掌握。 </p><p><b> 二、基本要求</b></p><p><b> 1、軟件要求</b></p><p> Windows XP、Windows Vista、Windows7 64位系統(tǒng)。使用VC++6.0</p><p
4、><b> 2、硬件要求</b></p><p> CPU:CORE I5 2.14GHZ 內(nèi)存:4G</p><p><b> 三、需求分析</b></p><p><b> 1、功能需求 </b></p><p> 實(shí)現(xiàn)對(duì)網(wǎng)吧機(jī)位的預(yù)定,查詢,取消預(yù)訂,以及
5、打印預(yù)訂與候選單。</p><p><b> 2、性能需求</b></p><p> 根據(jù)系統(tǒng)提示選擇查詢以及預(yù)定的時(shí)間段 </p><p><b> 四、測(cè)試數(shù)據(jù)</b></p><p> 查詢時(shí)間:2010-06-23 時(shí)間段:1</p><p> 機(jī)位預(yù)訂:
6、2010-06-23 時(shí)間段:1 預(yù)訂者姓名:楊驥 預(yù)訂者電話:123</p><p><b> 打印預(yù)訂單;</b></p><p> 輸出:預(yù)定日期:2010-06-23</p><p> 預(yù)定時(shí)間:08:00</p><p><b> 聯(lián)系電話:123</b></p>&
7、lt;p><b> 五.疑難解答</b></p><p> 六. 心得體會(huì)與研究方向</p><p> 通過(guò)對(duì)C語(yǔ)言的學(xué)習(xí),了解C語(yǔ)言的基本知識(shí),運(yùn)用C語(yǔ)言可以解決許多實(shí)際問(wèn)題,尤其是在信息管理方面,C語(yǔ)言作為一門高級(jí)和計(jì)算機(jī)編程語(yǔ)言,有其強(qiáng)大的功能。同時(shí)我也知道了我們隨時(shí)都要培養(yǎng)自己的動(dòng)手能力,只有這樣,才能更好的適應(yīng)這個(gè)日新月異的飛速發(fā)展的社會(huì)。<
8、;/p><p> 在系統(tǒng)的時(shí)候發(fā)現(xiàn)自己的能力還是有限,要想學(xué)好C語(yǔ)言,并且靈活應(yīng)用還是需要下苦功夫的,在接下來(lái)的暑假中我會(huì)經(jīng)常上機(jī)實(shí)踐,做到熟練掌握C語(yǔ)言中的精華。</p><p> 數(shù)據(jù)結(jié)構(gòu)是C語(yǔ)言的基礎(chǔ),希望能在把編程練習(xí)好之后,繼續(xù)深入學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),并結(jié)合C語(yǔ)言來(lái)繼續(xù)進(jìn)一步提高編程能力。</p><p><b> 七. 程序源代碼</b>
9、;</p><p> #include <stdio.h></p><p> #include <string.h></p><p> #include <stdlib.h></p><p> #define N 1 /* 計(jì)算機(jī)總臺(tái)數(shù),可以根據(jù)實(shí)際需要改動(dòng) */</p>
10、<p> #define P 11 /* 定義輸入的日期字符數(shù)組,其格式為2009-12-23,共11位(包含\0),無(wú)需改動(dòng) */</p><p> #define T 12 /* 手機(jī)號(hào)碼長(zhǎng)度,共12位(包含\0) */</p><p> #define S 13 /* 表示時(shí)間段的輸出長(zhǎng)度,如8:00--10:00,共占13
11、位 */</p><p> /* 數(shù)據(jù)結(jié)構(gòu)的定義 */</p><p> /* 計(jì)算機(jī)類(關(guān)于類,有點(diǎn)OOP的的意味,在這里可以理解為相關(guān)數(shù)據(jù)在內(nèi)存中的表現(xiàn)形式) */</p><p> struct Computer{</p><p> int no; /* 計(jì)算機(jī)編號(hào),個(gè)人感覺(jué)在這里沒(méi)多大用處
12、 */</p><p> int isOrder; /* 是否被預(yù)定,0表示未預(yù)定,1表示已預(yù)定 */</p><p><b> };</b></p><p><b> /* 用戶類 */</b></p><p> struct User{</p><
13、;p> char name[P]; /* 用戶姓名 */</p><p> char tel[T]; /* 用戶聯(lián)系方式 */</p><p> struct User *next; /* User類型指針 */</p><p><b> };</b></p>
14、<p> /* 預(yù)訂信息類 */</p><p> struct OrderInfo{</p><p> char date[P]; /* 日期 */</p><p> int time; /* 時(shí)間段 */</p><p> struct User *user;
15、 /* User類型指針,指向一個(gè)User類型節(jié)點(diǎn) */</p><p> struct OrderInfo * next;</p><p><b> };</b></p><p> /* 重命名結(jié)構(gòu)體 */</p><p> typedef struct Computer Computer;</p
16、><p> typedef struct OrderInfo OrderInfo;</p><p> typedef struct User User;</p><p> /* 定義相關(guān)全局變量 */</p><p> static Computer computers[N]; /* 表示20臺(tái)計(jì)算機(jī)
17、的數(shù)組 */</p><p> static OrderInfo orderList; /* 預(yù)訂單,以鏈表表示 */</p><p> static OrderInfo waitList; /* 等候單 */</p><p> static User userList
18、; /* 用戶列表 */</p><p> static OrderInfo *orderHead = &orderList; /* 指向預(yù)訂單頭結(jié)點(diǎn)的指針 */</p><p> static OrderInfo *waitHead = &waitList; /* 指向等候單頭結(jié)
19、點(diǎn)的指針 */</p><p> static User *userHead = &userList; /* 指向用戶列表頭結(jié)點(diǎn)的指針 */</p><p> static OrderInfo *orderCurrent = &orderList; /* 指向預(yù)訂單隊(duì)尾的指針,初始指向頭結(jié)點(diǎn) */</p><
20、;p> static OrderInfo *waitCurrent = &waitList; /* 指向等候單隊(duì)尾的指針,初始指向頭結(jié)點(diǎn) */</p><p> static User *userCurrent = &userList; /* 指向用戶列表隊(duì)尾的指針,初始指向頭結(jié)點(diǎn) */</p><p> static cha
21、r str[S] = "\0";</p><p> /* 函數(shù)聲明 */</p><p> void init(); /* 系統(tǒng)初始化,相關(guān)全局變量的初始化 */</p><p> void mainMenu();
22、 /* 主菜單中的選項(xiàng)邏輯處理 */</p><p> int select(char date[],int time); /* 通過(guò)日期和時(shí)間段進(jìn)行查詢,返回繁忙的計(jì)算機(jī)的數(shù)目 */</p><p> voi
23、d order (char date[],int time); /* 處理預(yù)定信息 */</p><p> void printInfo(char date[],int time,int *used,int *wait); /* 通過(guò)日期和時(shí)間段打印出相關(guān)預(yù)訂單和等候單的信息,并以指針形式返回預(yù)定數(shù)目和等
24、候數(shù)目 */</p><p> void deleteFromOrderList(char date[],int time,int n); /* 從預(yù)訂單中刪除相關(guān)條目,并將等候單中第一個(gè)用戶自動(dòng)添加到預(yù)訂單中 */</p><p> void deleteFormWaitList(char date[],int time,int n);
25、 /* 從等候單中刪除相關(guān)條目 */</p><p> void cancel(char date[],int time); /* 通過(guò)日期和訂單號(hào)刪除相關(guān)條目 */</p><p> int getDate(char date[],int i);
26、 /* 獲得日期的輸入,并進(jìn)行相關(guān)判斷操作 */</p><p> int isBusy(int count); /* 判斷是否滿員 */</p><p> char* showTime(int time);
27、 /* 輸出相應(yīng)時(shí)間段 */</p><p> void showMenu(); /* 顯示主菜單選項(xiàng) */</p><p> int getFreeTime(char date[], int time);
28、 /* 通過(guò)日期和時(shí)間段獲得當(dāng)前是否滿員,1表示未滿 */</p><p> void insertIntoList(int i,char date[],int time,char name[],char tel[]); /* 向鏈表中插入數(shù)據(jù) */</p><p> /* 程序入口點(diǎn) */</p&g
29、t;<p> void main(){</p><p><b> init();</b></p><p> mainMenu();</p><p><b> }</b></p><p> /* 系統(tǒng)初始化(全局變量的初始化) */</p><p>
30、void init(){</p><p><b> int i;</b></p><p> for(i = 0; i < N; i++){</p><p> computers[i].no = i;</p><p> computers[i].isOrder = 0;</p><p>
31、;<b> }</b></p><p> strcpy(orderList.date,"");</p><p> orderList.time = 0;</p><p> orderList.user = NULL;</p><p> orderList.next = NULL;</p
32、><p> strcpy(waitList.date,"");</p><p> waitList.time = -1;</p><p> waitList.user = NULL;</p><p> waitList.next = NULL;</p><p><b> }</
33、b></p><p> /* 顯示主菜單選項(xiàng) */</p><p> void showMenu()</p><p><b> {</b></p><p> printf("**********歡迎使用網(wǎng)吧管理系統(tǒng)**********\n");</p><p>
34、 printf("\n");</p><p> printf(" 1.查詢\n");</p><p> printf(" 2.機(jī)位預(yù)定\n");</p><p> printf(" 3.取消預(yù)定\n");</p>
35、<p> printf(" 4.退出系統(tǒng)\n");</p><p> /* 調(diào)試功能,以下三項(xiàng)是做測(cè)試時(shí)使用的,可以根據(jù)實(shí)際需要增刪 */</p><p> /* ****************************************************** */</p><p> printf(
36、" 5.打印預(yù)訂單\n");</p><p> printf(" 6.打印等候單\n");</p><p> printf(" 7.打印用戶列表\n");</p><p> /* **********************************
37、*********************/</p><p> printf("\n");</p><p> printf("請(qǐng)輸入您的選擇: ");</p><p> printf("\n");</p><p><b> }</b></p&g
38、t;<p> /* 輸出相應(yīng)時(shí)間段 */</p><p> char *showTime(int time)</p><p><b> {</b></p><p> switch(time)</p><p><b> {</b></p><p> c
39、ase 1: strcpy(str,"08:00--10:00"); break;</p><p> case 2: strcpy(str,"10:00--12:00"); break;</p><p> case 3: strcpy(str,"12:00--14:00"); break;</p><p&g
40、t; case 4: strcpy(str,"14:00--16:00"); break;</p><p> case 5: strcpy(str,"16:00--18:00"); break;</p><p> case 6: strcpy(str,"18:00--20:00"); break;</p>&l
41、t;p><b> }</b></p><p> return str;</p><p><b> }</b></p><p> /* 主菜單邏輯處理 */</p><p> void mainMenu()</p><p><b> {</b&
42、gt;</p><p> int choice = 0; /* 選項(xiàng) */</p><p> char date[P],ch;</p><p> int time = -1; /* 時(shí)間段初始化為-1 */</p><p> int i,result;
43、 /* result表示輸入時(shí)間數(shù)據(jù)是否滿足相關(guān)要求 */</p><p> /* 若要開(kāi)啟調(diào)試功能,以下注釋也應(yīng)去掉 */</p><p> /* ************************************************************************* */</p><p> OrderInfo *orderT
44、emp;</p><p> OrderInfo *waitTemp;</p><p> User *userTemp;</p><p> /* **************************************************************************/</p><p> showMenu();
45、 /* 顯示相關(guān)選項(xiàng) */</p><p> do{ /* 需要循環(huán)判斷,知道輸入4(退出)時(shí)才結(jié)束程序 */</p><p> scanf("%d",&choice);</p><p> switch(choice)</p>
46、<p><b> {</b></p><p> case 1 : /* 查詢 */</p><p> /*這條語(yǔ)句主要是由于在getDate()函數(shù)中將會(huì)捕獲到在主菜單中選擇相應(yīng)功能后的那個(gè)回車,</p><p> 此時(shí)選擇1,然后回車,它將捕獲到這個(gè)回車,造成不必要的麻煩*/</p
47、><p> ch = getchar(); </p><p> printf("請(qǐng)輸入日期,格式y(tǒng)yyy-mm-dd(如:2009-12-22):\n");</p><p> result = getDate(date,P);</p><p> while(result != 1)
48、 /* 判斷是否滿足相應(yīng)輸入要求 */</p><p><b> {</b></p><p> result = getDate(date,P);</p><p><b> }</b></p><p> printf("請(qǐng)選擇時(shí)間段:\n");</p&
49、gt;<p> for(i = 1; i <= 6; i++)</p><p><b> {</b></p><p> printf("%d. %s\n",i,showTime(i)); /* showTime(),打印相關(guān)的時(shí)間段信息 */</p><p><b> }
50、</b></p><p> scanf("%d",&time);</p><p> while(time <1 || time > 6) /* 同樣是進(jìn)行輸入校驗(yàn) */</p><p><b> {</b></p><p>
51、 printf("對(duì)不起,您輸入的參數(shù)有誤,請(qǐng)核對(duì)后重新輸入!\n\n");</p><p> scanf("%d",&time);</p><p><b> }</b></p><p> isBusy(select(date,time)); /* is
52、Busy()判斷是否滿員 */</p><p> system("pause"); /* system("pause")-->暫停DOS窗口輸出 */</p><p><b> break;</b></p><p><b> ca
53、se 2 :</b></p><p> ch = getchar();</p><p> printf("請(qǐng)輸入日期,格式y(tǒng)yyy-mm-dd(如:2009-12-22):\n");</p><p> result = getDate(date,P);</p><p> while(result !=
54、1)</p><p><b> {</b></p><p> result = getDate(date,P);</p><p><b> }</b></p><p> printf("請(qǐng)選擇時(shí)間段:\n");</p><p> for(i =
55、1; i <= 6; i++)</p><p><b> {</b></p><p> printf("%d. %s\n",i,showTime(i));</p><p><b> }</b></p><p> scanf("%d",&
56、time);</p><p> while(time <1 || time > 6)</p><p><b> {</b></p><p> printf("對(duì)不起,您輸入的參數(shù)有誤,請(qǐng)核對(duì)后重新輸入!\n\n");</p><p> scanf("%d",&a
57、mp;time);</p><p><b> }</b></p><p> order(date,time); /* 調(diào)用預(yù)定相關(guān)邏輯處理函數(shù) */</p><p> system("pause");</p><p><b> break
58、;</b></p><p><b> case 3 :</b></p><p> ch = getchar();</p><p> printf("請(qǐng)輸入日期,格式y(tǒng)yyy-mm-dd(如:2009-12-22):\n");</p><p> result = getDate(da
59、te,P);</p><p> while(result != 1)</p><p><b> {</b></p><p> result = getDate(date,P);</p><p><b> }</b></p><p> printf("請(qǐng)選擇
60、時(shí)間段:\n");</p><p> for(i = 1; i <= 6; i++)</p><p><b> {</b></p><p> printf("%d. %s\n",i,showTime(i));</p><p><b> }</b><
61、/p><p> scanf("%d",&time);</p><p> while(time <1 || time > 6)</p><p><b> {</b></p><p> printf("對(duì)不起,您輸入的參數(shù)有誤,請(qǐng)核對(duì)后重新輸入!\n\n");&
62、lt;/p><p> scanf("%d",&time);</p><p><b> }</b></p><p> cancel(date,time); /* 調(diào)用取消預(yù)定相關(guān)邏輯處理 */</p><p> system("paus
63、e");</p><p><b> break;</b></p><p><b> case 4 :</b></p><p> printf("歡迎下次繼續(xù)使用!\n");</p><p> exit(0);
64、 /* 退出程序 */</p><p><b> break;</b></p><p> /* 調(diào)試功能,以下部分是前面提到的調(diào)試時(shí)使用,可以按照需要選擇增刪此部分,這兩部分應(yīng)同時(shí)開(kāi)啟或關(guān)閉,以免引起不必要的麻煩 */</p><p> /* ********************************************
65、******************************************************************** */</p><p><b> case 5 :</b></p><p> if(orderCurrent == orderHead)</p><p><b> {</b><
66、/p><p> printf("暫無(wú)相關(guān)信息\n");</p><p> printf("\n\n");</p><p><b> }else</b></p><p><b> {</b></p><p> orderTemp =
67、 orderHead->next;</p><p> while(orderTemp != NULL){</p><p> printf("預(yù)定日期: %s\n",orderTemp->date);</p><p> printf("預(yù)定時(shí)間: %s\n",showTime(orderTemp->t
68、ime));</p><p> printf("預(yù)定者 : %s\n",orderTemp->user->name);</p><p> printf("聯(lián)系方式: %s\n",orderTemp->user->tel);</p><p> printf("\n\n");
69、</p><p> if( orderTemp->next != NULL)</p><p><b> {</b></p><p> orderTemp = orderTemp->next;</p><p><b> }else</b></p><p>&
70、lt;b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>
71、 system("pause");</p><p><b> break;</b></p><p><b> case 6 :</b></p><p> if(waitHead->next == NULL)</p><p><b> {</b>
72、</p><p> printf("暫無(wú)相關(guān)信息\n");</p><p> printf("\n\n");</p><p><b> }else</b></p><p><b> {</b></p><p> waitTem
73、p = waitHead->next;</p><p> while(waitTemp != NULL){</p><p> printf("預(yù)定日期: %s\n",waitTemp->date);</p><p> printf("預(yù)定時(shí)間: %s\n",showTime(waitTemp->ti
74、me));</p><p> printf("預(yù)定者 : %s\n",waitTemp->user->name);</p><p> printf("聯(lián)系方式: %s\n",waitTemp->user->tel);</p><p> printf("\n\n");<
75、;/p><p> if(waitTemp->next != NULL)</p><p><b> {</b></p><p> waitTemp = waitTemp->next;</p><p><b> }else</b></p><p><b>
76、; {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> system
77、("pause");</p><p><b> break;</b></p><p><b> case 7 :</b></p><p> if(userCurrent == userHead)</p><p><b> {</b></p>
78、;<p> printf("暫無(wú)相關(guān)信息\n");</p><p> printf("\n\n");</p><p><b> }else</b></p><p><b> {</b></p><p> userTemp = userH
79、ead->next;</p><p> while(userTemp != NULL){</p><p> printf("聯(lián)系人姓名: %s\n",userTemp->name);</p><p> printf("聯(lián)系人電話: %s\n",userTemp->tel);</p>&
80、lt;p> printf("\n\n");</p><p> if(userTemp->next != NULL)</p><p><b> {</b></p><p> userTemp = userTemp->next;</p><p><b> }else&
81、lt;/b></p><p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }&
82、lt;/b></p><p> system("pause");</p><p><b> break;</b></p><p> /******************************************************************************************
83、****************/</p><p> default : printf("對(duì)不起,您輸入的參數(shù)有誤,請(qǐng)核對(duì)后重新輸入!\n\n\n");system("pause");</p><p><b> }</b></p><p> system("cls");
84、 /* system("cls")-->清空當(dāng)前DOS窗口中的內(nèi)容 */</p><p> showMenu();</p><p> }while(choice != '4'); /* 除非輸入4,否則將不會(huì)結(jié)束循環(huán) */</p><p><b> }
85、</b></p><p> /* 獲得日期的輸入,并進(jìn)行相關(guān)判斷操作,其中i表示需要輸入的字符串長(zhǎng)度,如2009-12-23,這個(gè)字符串就是11位的(包含\0) */</p><p> /* 以下相關(guān)代碼是進(jìn)行輸入校驗(yàn)的 */</p><p> int getDate(char date[],int i)</p><p>&
86、lt;b> {</b></p><p> char *p = date,ch;</p><p> int m = 0 , result = 0 ,j; /* result表示輸入是否合法,1表示合法 */</p><p> while(m <= i)</p><p><b>
87、{</b></p><p> ch = getchar();</p><p> if(ch != '\n')</p><p><b> {</b></p><p> if(ch >='0' && ch <= '9' || ch
88、== '-') /* 輸入的字符只能為'0'到'9'以及'-' */</p><p><b> {</b></p><p> *p++ = ch;</p><p><b> m++;</b></p><p><
89、b> }else</b></p><p><b> {</b></p><p> *p = '\0';</p><p><b> break;</b></p><p><b> }</b></p><p>&l
90、t;b> }else</b></p><p><b> {</b></p><p><b> *p ='\0';</b></p><p><b> break;</b></p><p><b> }</b><
91、;/p><p><b> }</b></p><p> *p++ = '\0';</p><p><b> m++;</b></p><p> if(m == i) /* 判斷長(zhǎng)度是否符合輸入要求 */</p>
92、<p><b> {</b></p><p> result = 1;</p><p><b> }</b></p><p> for(j = 0; j < P; j++) /* 判斷是否僅僅只有date[4]和date[7]為'-',以此來(lái)判斷格式是否
93、為yyyy-mm-dd */</p><p><b> {</b></p><p> if(j == 4 || j == 7)</p><p><b> {</b></p><p><b> continue;</b></p><p><b
94、> }</b></p><p> if(date[j] == '-')</p><p><b> {</b></p><p> result = 0;</p><p><b> break;</b></p><p><b>
95、; }</b></p><p><b> }</b></p><p> return result;</p><p><b> }</b></p><p> /* 查詢某時(shí)間段是否滿員,返回已預(yù)定的機(jī)位數(shù) */</p><p> int select(
96、char date[],int time){</p><p> OrderInfo *temp = orderHead; /* 臨時(shí)性存儲(chǔ)頭結(jié)點(diǎn) */</p><p> int count = 0; /* 存儲(chǔ)該時(shí)間段預(yù)定人數(shù) */</p><p><b> do{</b><
97、;/p><p> /* 遍歷orderList,獲得相同時(shí)間段的預(yù)定信息,統(tǒng)計(jì)20臺(tái)機(jī)器中正在使用多少臺(tái) */</p><p> if(strcmp(temp->date,date) == 0 && temp->time == time)</p><p><b> {</b></p><p>
98、;<b> count++;</b></p><p><b> }</b></p><p> if(temp->next != NULL) /* 若為空,表示已到鏈表末尾,直接跳出循環(huán) */</p><p><b> {</b></p><p&g
99、t; temp = temp->next;</p><p><b> }else</b></p><p><b> {</b></p><p><b> break;</b></p><p><b> }</b></p>&l
100、t;p> }while(temp != NULL);</p><p> return count;</p><p><b> }</b></p><p> /* 判斷是否滿員 */</p><p> int isBusy(int count)</p><p><b>
101、{</b></p><p> int result = 0; /* 該變量作為返回值,指示該時(shí)間段是否滿員,1表示已滿,0表示空閑 */</p><p> /* 若使用數(shù)目大于20臺(tái),則提示無(wú)空閑機(jī)位,否則打印出空閑機(jī)位 */</p><p> if(count >= N)</p><p><
102、;b> {</b></p><p> printf("對(duì)不起,暫無(wú)空閑機(jī)位\n\n");</p><p> result = 1;</p><p><b> }else</b></p><p><b> {</b></p><p&g
103、t; printf("恭喜您,還剩%d個(gè)機(jī)位\n\n",N - count);</p><p><b> }</b></p><p> return result; /* 該返回值表示是否滿員 */</p><p><b> }</b></p><p&g
104、t; /* 通過(guò)日期和時(shí)間段獲得當(dāng)前是否滿員,1表示未滿 */</p><p> int getFreeTime(char date[], int time)</p><p><b> {</b></p><p> int result = 0;</p><p> int count = select(date
105、,time);</p><p> if(count < N)</p><p><b> {</b></p><p> result = 1;</p><p><b> }</b></p><p> return result;</p><p
106、><b> }</b></p><p> /* 預(yù)定邏輯處理,首先判斷是否滿員,可以調(diào)用select函數(shù) */</p><p> void order (char date[],int time)</p><p><b> {</b></p><p> int result;<
107、/p><p> char name[P];</p><p> char tel[T];</p><p> system("cls");</p><p> printf("**********歡迎使用網(wǎng)吧管理系統(tǒng)**********\n\n");</p><p> print
108、f("您查詢的時(shí)間段是: %s %s\n\n",date,showTime(time));</p><p> result = isBusy(select(date,time));</p><p> if(result == 0) /* 未滿 */</p><p><b> {</b>
109、;</p><p><b> int ch;</b></p><p> printf("是否開(kāi)始預(yù)定?\n");</p><p> printf("1.是\n");</p><p> printf("2.否\n");</p><p&g
110、t; printf("3.返回主菜單\n");</p><p> scanf("%d",&ch);</p><p> while(ch != 1 && ch != 2 && ch != 3) /* 同樣是輸入校驗(yàn) */</p><p><b> {
111、</b></p><p> printf("對(duì)不起,您輸入的參數(shù)有誤,請(qǐng)核對(duì)后重新輸入!\n\n\n");</p><p> scanf("%d",&ch);</p><p><b> }</b></p><p> if(ch == 1)</p&g
112、t;<p><b> {</b></p><p> system("cls");</p><p> printf("**********歡迎使用網(wǎng)吧管理系統(tǒng)**********\n\n");</p><p> printf("您預(yù)定的時(shí)間段是: %s %s\n\n&q
113、uot;,date,showTime(time));</p><p> /* 輸入相關(guān)聯(lián)系人的信息 */</p><p> printf("請(qǐng)輸入預(yù)訂者信息\n");</p><p> printf("預(yù)訂者姓名: ");</p><p> scanf("%s",nam
114、e);</p><p> printf("預(yù)訂者電話: ");</p><p> scanf("%s",tel);</p><p> /*向預(yù)定表中插入數(shù)據(jù)*/</p><p> insertIntoList(1,date,time,name,tel); /* 向鏈表中插入數(shù)
115、據(jù) */</p><p><b> /* 選擇否 */</b></p><p> }else if(ch == 2)</p><p><b> {</b></p><p> system("cls");</p><p> mainMenu();&
116、lt;/p><p> /* 選擇回到主菜單 */</p><p> }else if(ch == 3)</p><p><b> {</b></p><p> system("cls");</p><p> mainMenu();</p><p>
117、<b> }</b></p><p> /* 當(dāng)是滿員的情況 */</p><p><b> }else</b></p><p><b> {</b></p><p> int ch, temp = 0 , t, isFree = 0,p;</p>&l
118、t;p> int chTemp;</p><p> printf("預(yù)定最近機(jī)位,排隊(duì)等候還是返回?\n");</p><p> printf("1.預(yù)定最近機(jī)位\n");</p><p> printf("2.排隊(duì)等候\n");</p><p> printf(&q
119、uot;3.返回主菜單\n");</p><p> scanf("%d",&ch);</p><p> while(ch != 1 && ch != 2 && ch != 3){</p><p> printf("對(duì)不起,您輸入的參數(shù)有誤,請(qǐng)核對(duì)后重新輸入!\n\n\n"
120、);</p><p> scanf("%d",&ch);</p><p><b> }</b></p><p> /* 這里實(shí)現(xiàn)的功能是獲得最近的空閑時(shí)間,最近時(shí)間可能是上一個(gè)時(shí)間段,也可能是下一個(gè)時(shí)間段 */</p><p> /* isFree = 1 時(shí),表示還有空閑,isFre
121、e = 0 時(shí),表示當(dāng)天已經(jīng)全部滿員 */</p><p> if(ch == 1){</p><p> for(t = 1; t < 6; t++)</p><p><b> {</b></p><p> if(time + t <= 6)</p><p><b>
122、 {</b></p><p> p = time + t;</p><p> isFree = getFreeTime(date,p);</p><p><b> }</b></p><p> if(isFree == 1)</p><p><b> {</
123、b></p><p><b> break;</b></p><p><b> }</b></p><p> if(time - t >= 1)</p><p><b> {</b></p><p> p = time - t;&l
124、t;/p><p> isFree = getFreeTime(date,p);</p><p><b> }</b></p><p> if(isFree == 1)</p><p><b> {</b></p><p><b> break;</b&g
125、t;</p><p><b> }</b></p><p><b> }</b></p><p> if(isFree == 0) /* 全部滿員的情況 */</p><p><b> {</b></p><p> printf(
126、"對(duì)不起,當(dāng)天各時(shí)段已經(jīng)全部滿員,是否排隊(duì)等候?\n");</p><p> printf("1. 是\n");</p><p> printf("2. 否\n");</p><p> scanf("%d",&chTemp);</p><p>
127、 while(chTemp != 1 && chTemp != 2) /* 同樣是輸入校驗(yàn) */</p><p><b> {</b></p><p> printf("對(duì)不起,輸入?yún)?shù)有誤.\n");</p><p> scanf("%d",&chTemp);
128、</p><p><b> }</b></p><p> if(chTemp == 1)</p><p><b> {</b></p><p> /* 輸入相關(guān)聯(lián)系人的信息 */</p><p> printf("請(qǐng)輸入預(yù)訂者信息\n");<
129、;/p><p> printf("預(yù)訂者姓名: ");</p><p> scanf("%s",name);</p><p> printf("預(yù)訂者電話: ");</p><p> scanf("%s",tel);</p><
130、p> /*向等候表中插入數(shù)據(jù)*/</p><p> insertIntoList(2,date,time,name,tel); /* 向鏈表中插入數(shù)據(jù) */</p><p><b> }</b></p><p> else if(chTemp == 2)</p><p><b>
131、{</b></p><p> system("cls");</p><p> mainMenu();</p><p><b> }</b></p><p><b> }else</b></p><p><b> {</
132、b></p><p> printf("當(dāng)前日期是: %s\n",date);</p><p> printf("最近空閑的時(shí)間段是: %s\n",showTime(p));</p><p> printf("是否預(yù)定?\n");</p><p> printf(&
133、quot;1. 是\n");</p><p> printf("2. 否\n");</p><p> scanf("%d",&temp);</p><p> while(temp != 1 && temp != 2)</p><p><b> {&
134、lt;/b></p><p> scanf("%d",&temp);</p><p><b> }</b></p><p> if(temp == 1)</p><p><b> {</b></p><p> /* 輸入相關(guān)聯(lián)系人的
135、信息 */</p><p> printf("請(qǐng)輸入預(yù)訂者信息\n");</p><p> printf("預(yù)訂者姓名: ");</p><p> scanf("%s",name);</p><p> printf("預(yù)訂者電話: ");<
136、;/p><p> scanf("%s",tel);</p><p> /*向預(yù)定表中插入數(shù)據(jù)*/</p><p> insertIntoList(1,date,p,name,tel);</p><p><b> }else</b></p><p><b> {&
137、lt;/b></p><p> system("cls");</p><p> mainMenu();</p><p><b> }</b></p><p><b> }</b></p><p> /* 這是選擇排隊(duì)等候的情況 */<
138、/p><p> }else if(ch == 2)</p><p><b> {</b></p><p> /* 輸入相關(guān)聯(lián)系人的信息 */</p><p> printf("請(qǐng)輸入預(yù)訂者信息\n");</p><p> printf("預(yù)訂者姓名: &q
139、uot;);</p><p> scanf("%s",name);</p><p> printf("預(yù)訂者電話: ");</p><p> scanf("%s",tel);</p><p> insertIntoList(2,date,time,name,tel);&
140、lt;/p><p> /* 返回主菜單的情況 */</p><p> }else if(ch == 3)</p><p><b> {</b></p><p> system("cls");</p><p> mainMenu();</p><p>
141、;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /* 通過(guò)日期和時(shí)間段打印出相關(guān)預(yù)訂單和等候單的信息,并以指針形式返回預(yù)定數(shù)目和等候數(shù)目 */</p><p> void printInfo(cha
142、r date[],int time,int *used,int *wait)</p><p><b> {</b></p><p> OrderInfo *orderTemp = orderHead; /* 臨時(shí)性存儲(chǔ)頭結(jié)點(diǎn) */</p><p> OrderInfo *waitTemp = waitHead; /*
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- net課程設(shè)計(jì)報(bào)告--網(wǎng)吧管理系統(tǒng)的開(kāi)發(fā)
- 軟件工程課程設(shè)計(jì)報(bào)告(網(wǎng)吧會(huì)員管理系統(tǒng))
- 軟件工程課程設(shè)計(jì)報(bào)告(網(wǎng)吧會(huì)員管理系統(tǒng))
- c++課程設(shè)計(jì)---網(wǎng)吧管理系統(tǒng)的設(shè)計(jì)
- 網(wǎng)吧規(guī)劃設(shè)計(jì)方案課程設(shè)計(jì)報(bào)告書(shū)
- 網(wǎng)吧規(guī)劃設(shè)計(jì)方案課程設(shè)計(jì)報(bào)告書(shū)
- 倉(cāng)庫(kù)管理系統(tǒng)--課程設(shè)計(jì)報(bào)告報(bào)告
- 宿舍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 倉(cāng)儲(chǔ)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--倉(cāng)庫(kù)管理系統(tǒng)
- 學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 房屋管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 教務(wù)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 賓館管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 《學(xué)生管理系統(tǒng)》課程設(shè)計(jì)報(bào)告
- 教務(wù)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 物資管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 酒店管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 教務(wù)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 車票管理系統(tǒng)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論