資源描述:
《排隊叫號系統(tǒng)(帶源程序)》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、一、課程設計的主要內(nèi)容題目描述:利用隊列模擬一個排隊叫號系統(tǒng)。功能要求及說明:(1)系統(tǒng)采用菜單方式操作,要求實現(xiàn)如下功能:(2)叫號排隊:用戶叫號時將該用戶信息(用戶名)入隊,并打印用戶排隊序號、等待人數(shù)。(3)業(yè)務處理:工作人員處理完前一業(yè)務后,從隊列頭中獲取一個用戶出隊并呼叫該用戶(終端打印輸出)。(4)隊列信息瀏覽:工作人員可隨時查看隊列中目前未處理的所有業(yè)務信息。(5)采用模塊化設計。二、概要設計1、本程序包含兩個模塊(1)主函數(shù)模塊:main(){定義及初始化;讓用戶控制程序,實現(xiàn)排隊叫號功能.}(2)排隊叫號系統(tǒng)單元模塊:主函數(shù)
2、調(diào)用排隊叫號系統(tǒng)單元模塊.2、排隊叫號的抽象數(shù)據(jù)類型定義:voidQueueInitiate(LQueue*Q)Q為結構體指針;操作結果:使隊列初始化.intQueueNotEmpty(LQueueQ)判斷隊列是否為空;操作結果:若隊列為空,返回0;不為空,則返回1.intQueueAppend(LQueue*Q,intx)Q為結構體指針,x傳輸用戶的序號;操作結果:用戶叫號時,使用戶序號按順序入隊.intQueueDelete(LQueue*Q,int*d)*d傳輸隊頭元素;操作結果:處理對頭元素,并釋放頭結點.voidDestroy(LQ
3、ueueQ)操作結果:用戶用完程序退出時,摧毀隊列,釋放內(nèi)存.四詳細設計1、實現(xiàn)菜單函數(shù)voidmenu(){printf("****************************************************");printf("****************1.排隊叫號**************************");printf("****************2.業(yè)務處理**************************");printf("****************3.隊列信息瀏覽
4、**********************");printf("****************4.退出******************************");printf("****************************************************");}2、隊列初始化函數(shù)voidQueueInitiate(LQueue*Q)/*隊列初始化*/{Q->rear=NULL;/*尾指針為空*/Q->front=NULL;/*頭指針為空*/}3、判斷隊列是否為空函數(shù)intQueueNotEmp
5、ty(LQueueQ)/*隊列不能為空*/{if(NULL==Q.front)/*如果頭指針為空,則返回0*/{return0;}else{return1;}}4、實現(xiàn)排隊叫號函數(shù)intQueueAppend(LQueue*Q,intx)/*元素入隊*/{LQNode*p;/*p指針指向入隊元素*/if((p=(LQNode*)malloc(sizeof(LQNode)))==NULL)/*申請入隊元素空間*/{return0;}p->data=x;p->next=NULL;if(Q->rear!=NULL)/*隊尾不為空則將入隊元素插至隊尾
6、后*/{Q->rear->next=p;}Q->rear=p;/*隊尾為空則隊尾指向入隊元素*/if(Q->front==NULL){Q->front=p;/*隊頭指向入隊元素*/}return1;}5、實現(xiàn)業(yè)務處理函數(shù)intQueueDelete(LQueue*Q,int*d)/*業(yè)務處理*/{LQNode*p;if(Q->front==NULL){return0;}else{*d=Q->front->data;/*讀取隊頭元素*/p=Q->front;Q->front=Q->front->next;/*頭結點向后移動一個節(jié)點*/if(Q-
7、>front==NULL){Q->rear=NULL;}free(p);/*釋放頭結點*/return1;}}6、釋放隊列函數(shù)voidDestroy(LQueueQ)/*摧毀隊列*/{LQNode*p,*p1;p=Q.front;/*p指針指向頭結點*/while(p!=NULL){p1=p;p=p->next;free(p1);/*逐個釋放隊列的節(jié)點*/}整個程序的流程圖如下:五調(diào)試分析1、該程序的關鍵就是弄清楚隊列及鏈表的操作方法和原理。首先保證沒有句法錯誤,其次要保證寫的函數(shù)沒有錯誤,能正常完成要求所需的功能,然后盡量完善各功能,使用戶
8、用起來更方便。2、叫號時,輸入不同的用戶名,隨時進行業(yè)務處理和隊列信息瀏覽,查看相應功能是否正確。3、本實習作業(yè)采用循序漸進的策略,首先分別寫好三個相應功能的函數(shù),