排队叫号系统(带源程序)

排队叫号系统(带源程序)

ID:47476970

大小:226.30 KB

页数:14页

时间:2020-01-11

排队叫号系统(带源程序)_第1页
排队叫号系统(带源程序)_第2页
排队叫号系统(带源程序)_第3页
排队叫号系统(带源程序)_第4页
排队叫号系统(带源程序)_第5页
资源描述:

《排队叫号系统(带源程序)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、课程设计的主要内容题目描述:利用队列模拟一个排队叫号系统。功能要求及说明:(1)系统采用菜单方式操作,要求实现如下功能:(2)叫号排队:用户叫号时将该用户信息(用户名)入队,并打印用户排队序号、等待人数。(3)业务处理:工作人员处理完前一业务后,从队列头中获取一个用户出队并呼叫该用户(终端打印输出)。(4)队列信息浏览:工作人员可随时查看队列中目前未处理的所有业务信息。(5)采用模块化设计。二、概要设计1、本程序包含两个模块(1)主函数模块:main(){定义及初始化;让用户控制程序,实现排队叫号功能.}(2)排队叫号系统单元模块:主函数

2、调用排队叫号系统单元模块.2、排队叫号的抽象数据类型定义:voidQueueInitiate(LQueue*Q)Q为结构体指针;操作结果:使队列初始化.intQueueNotEmpty(LQueueQ)判断队列是否为空;操作结果:若队列为空,返回0;不为空,则返回1.intQueueAppend(LQueue*Q,intx)Q为结构体指针,x传输用户的序号;操作结果:用户叫号时,使用户序号按顺序入队.intQueueDelete(LQueue*Q,int*d)*d传输队头元素;操作结果:处理对头元素,并释放头结点.voidDestroy(LQ

3、ueueQ)操作结果:用户用完程序退出时,摧毁队列,释放内存.四详细设计1、实现菜单函数voidmenu(){printf("****************************************************");printf("****************1.排队叫号**************************");printf("****************2.业务处理**************************");printf("****************3.队列信息浏览

4、**********************");printf("****************4.退出******************************");printf("****************************************************");}2、队列初始化函数voidQueueInitiate(LQueue*Q)/*队列初始化*/{Q->rear=NULL;/*尾指针为空*/Q->front=NULL;/*头指针为空*/}3、判断队列是否为空函数intQueueNotEmp

5、ty(LQueueQ)/*队列不能为空*/{if(NULL==Q.front)/*如果头指针为空,则返回0*/{return0;}else{return1;}}4、实现排队叫号函数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、实现业务处理函数intQueueDelete(LQueue*Q,int*d)/*业务处理*/{LQNode*p;if(Q->front==NULL){return0;}else{*d=Q->front->data;/*读取队头元素*/p=Q->front;Q->front=Q->front->next;/*头结点向后移动一个节点*/if(Q-

7、>front==NULL){Q->rear=NULL;}free(p);/*释放头结点*/return1;}}6、释放队列函数voidDestroy(LQueueQ)/*摧毁队列*/{LQNode*p,*p1;p=Q.front;/*p指针指向头结点*/while(p!=NULL){p1=p;p=p->next;free(p1);/*逐个释放队列的节点*/}整个程序的流程图如下:五调试分析1、该程序的关键就是弄清楚队列及链表的操作方法和原理。首先保证没有句法错误,其次要保证写的函数没有错误,能正常完成要求所需的功能,然后尽量完善各功能,使用户

8、用起来更方便。2、叫号时,输入不同的用户名,随时进行业务处理和队列信息浏览,查看相应功能是否正确。3、本实习作业采用循序渐进的策略,首先分别写好三个相应功能的函数,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。