排隊(duì)叫號(hào)系統(tǒng)(帶源程序)

排隊(duì)叫號(hào)系統(tǒng)(帶源程序)

ID:1825853

大?。?26.30 KB

頁(yè)數(shù):14頁(yè)

時(shí)間:2017-11-13

排隊(duì)叫號(hào)系統(tǒng)(帶源程序)_第1頁(yè)
排隊(duì)叫號(hào)系統(tǒng)(帶源程序)_第2頁(yè)
排隊(duì)叫號(hào)系統(tǒng)(帶源程序)_第3頁(yè)
排隊(duì)叫號(hào)系統(tǒng)(帶源程序)_第4頁(yè)
排隊(duì)叫號(hào)系統(tǒng)(帶源程序)_第5頁(yè)
資源描述:

《排隊(duì)叫號(hào)系統(tǒng)(帶源程序)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、一、課程設(shè)計(jì)的主要內(nèi)容題目描述:利用隊(duì)列模擬一個(gè)排隊(duì)叫號(hào)系統(tǒng)。功能要求及說(shuō)明:(1)系統(tǒng)采用菜單方式操作,要求實(shí)現(xiàn)如下功能:(2)叫號(hào)排隊(duì):用戶叫號(hào)時(shí)將該用戶信息(用戶名)入隊(duì),并打印用戶排隊(duì)序號(hào)、等待人數(shù)。(3)業(yè)務(wù)處理:工作人員處理完前一業(yè)務(wù)后,從隊(duì)列頭中獲取一個(gè)用戶出隊(duì)并呼叫該用戶(終端打印輸出)。(4)隊(duì)列信息瀏覽:工作人員可隨時(shí)查看隊(duì)列中目前未處理的所有業(yè)務(wù)信息。(5)采用模塊化設(shè)計(jì)。二、概要設(shè)計(jì)1、本程序包含兩個(gè)模塊(1)主函數(shù)模塊:main(){定義及初始化;讓用戶控制程序,實(shí)現(xiàn)排隊(duì)叫號(hào)功能.}(2)排隊(duì)叫號(hào)系統(tǒng)單元模塊:主函數(shù)調(diào)用

2、排隊(duì)叫號(hào)系統(tǒng)單元模塊.2、排隊(duì)叫號(hào)的抽象數(shù)據(jù)類型定義:voidQueueInitiate(LQueue*Q)Q為結(jié)構(gòu)體指針;操作結(jié)果:使隊(duì)列初始化.intQueueNotEmpty(LQueueQ)判斷隊(duì)列是否為空;操作結(jié)果:若隊(duì)列為空,返回0;不為空,則返回1.intQueueAppend(LQueue*Q,intx)Q為結(jié)構(gòu)體指針,x傳輸用戶的序號(hào);操作結(jié)果:用戶叫號(hào)時(shí),使用戶序號(hào)按順序入隊(duì).intQueueDelete(LQueue*Q,int*d)*d傳輸隊(duì)頭元素;操作結(jié)果:處理對(duì)頭元素,并釋放頭結(jié)點(diǎn).voidDestroy(LQueue

3、Q)操作結(jié)果:用戶用完程序退出時(shí),摧毀隊(duì)列,釋放內(nèi)存.四詳細(xì)設(shè)計(jì)1、實(shí)現(xiàn)菜單函數(shù)voidmenu(){printf("****************************************************");printf("****************1.排隊(duì)叫號(hào)**************************");printf("****************2.業(yè)務(wù)處理**************************");printf("****************3.隊(duì)列信息瀏覽******

4、****************");printf("****************4.退出******************************");printf("****************************************************");}2、隊(duì)列初始化函數(shù)voidQueueInitiate(LQueue*Q)/*隊(duì)列初始化*/{Q->rear=NULL;/*尾指針為空*/Q->front=NULL;/*頭指針為空*/}3、判斷隊(duì)列是否為空函數(shù)intQueueNotEmpty(LQueu

5、eQ)/*隊(duì)列不能為空*/{if(NULL==Q.front)/*如果頭指針為空,則返回0*/{return0;}else{return1;}}4、實(shí)現(xiàn)排隊(duì)叫號(hào)函數(shù)intQueueAppend(LQueue*Q,intx)/*元素入隊(duì)*/{LQNode*p;/*p指針指向入隊(duì)元素*/if((p=(LQNode*)malloc(sizeof(LQNode)))==NULL)/*申請(qǐng)入隊(duì)元素空間*/{return0;}p->data=x;p->next=NULL;if(Q->rear!=NULL)/*隊(duì)尾不為空則將入隊(duì)元素插至隊(duì)尾后*/{Q->rea

6、r->next=p;}Q->rear=p;/*隊(duì)尾為空則隊(duì)尾指向入隊(duì)元素*/if(Q->front==NULL){Q->front=p;/*隊(duì)頭指向入隊(duì)元素*/}return1;}5、實(shí)現(xiàn)業(yè)務(wù)處理函數(shù)intQueueDelete(LQueue*Q,int*d)/*業(yè)務(wù)處理*/{LQNode*p;if(Q->front==NULL){return0;}else{*d=Q->front->data;/*讀取隊(duì)頭元素*/p=Q->front;Q->front=Q->front->next;/*頭結(jié)點(diǎn)向后移動(dòng)一個(gè)節(jié)點(diǎn)*/if(Q->front==NULL

7、){Q->rear=NULL;}free(p);/*釋放頭結(jié)點(diǎn)*/return1;}}6、釋放隊(duì)列函數(shù)voidDestroy(LQueueQ)/*摧毀隊(duì)列*/{LQNode*p,*p1;p=Q.front;/*p指針指向頭結(jié)點(diǎn)*/while(p!=NULL){p1=p;p=p->next;free(p1);/*逐個(gè)釋放隊(duì)列的節(jié)點(diǎn)*/}整個(gè)程序的流程圖如下:五調(diào)試分析1、該程序的關(guān)鍵就是弄清楚隊(duì)列及鏈表的操作方法和原理。首先保證沒(méi)有句法錯(cuò)誤,其次要保證寫(xiě)的函數(shù)沒(méi)有錯(cuò)誤,能正常完成要求所需的功能,然后盡量完善各功能,使用戶用起來(lái)更方便。2、叫號(hào)時(shí),輸

8、入不同的用戶名,隨時(shí)進(jìn)行業(yè)務(wù)處理和隊(duì)列信息瀏覽,查看相應(yīng)功能是否正確。3、本實(shí)習(xí)作業(yè)采用循序漸進(jìn)的策略,首先分別寫(xiě)好三個(gè)相應(yīng)功能的函數(shù),

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。