版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、攻坚实验三银行业务队列简单模拟一、实验目的熟练掌握队列的基本操作,理解队列的应用。二、实验内容设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处 理速度是B窗口的2倍-即当A窗口处理完2个顾客时,B窗口处理完一个顾 客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑 顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客 优先输出。三、实验要求输入说明:输入为一行正整数,其中第1个数字N(N=1000)为顾客总 数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶 数的顾客则去B窗口。数字间以空格分隔。输出说明:按业务处理完
2、成的顺序输出顾客的编号。数字间以空格分隔, 但最后一个编号后不能有多余的空格。3.测试用例:序号输入输出说明18 2 1 3 9 4 11 13 151 3 2 9 11 4 13 15正常测试,A窗口人多28 2 1 3 9 4 11 12 161 3 2 9 11 4 12 16正常测试,B窗口人多31 66最小N41000个顾客的随机序列略最大N四、实验分析(1)问题分析首先需要针对A和B业务设计两个循环队列,分别处理两类业务请求;然后 根据输入序列整数的奇偶性将各个整数分配到这两个队列中。另外,需要设计针 对两个队列处理过程的流程,这是一个循环。在循环中,先从A队列中输出两个 元素,然
3、后再从B队列中输出一个元素。当发现某一个队列中的元素为空时,输 出另一个队列中的所有元素。(2)实现要点采用统一的循环队列函数处理两个队列的操作:注意对队列满、空情况的判断。五、主要仪器及耗材计算机及VC6软件六、实验参考代码#include#define maxsize 1000#define ERROR -1 typedef struct int customermaxsize;int rear;int front;Queue;void initqueue(Queue *ptrQ)/初 始化空队列 ptrQ-rear=ptrQ-front=0;int IsemptyQ(Queue *ptr
4、Q)/判 断队列是否为空 int flag;if(ptrQ-front=ptrQ-rear)flag=1;elseflag=0;return flag;ptrQ-rear=(ptrQ-rear+1)%maxsize;ptrQ-customerptrQ-rear=e;void addQ(Queue *ptrQ,int e)/将兀素 e 插入到队列 ptrQ 中if(ptrQ-rear+1)%maxsize=ptrQ-front)printf(队列满!”);return;ptrQ-rear=(ptrQ-rear+1)%maxsize;ptrQ-customerptrQ-rear=e;int del
5、eteQ(Queue *ptrQ)/从队列中删除队头并返回if(ptrQ-front=ptrQ-rear)printf(队列空!”); return ERROR;elseptrQ-front=(ptrQ-front+1)%maxsize;return ptrQ-customerptrQ-front;int main()int N,i,cur,flag;Queue A,B;/初始化两个队列initqueue(&A);initqueue(&B);scanf(%d”,&N);for(i=0;iN;i+)/根据整数的奇偶性,将每个整数插入相应的队列中 scanf(%d”,&cur);if(cur%2)
6、addQ(&A,cur);elseaddQ(&B,cur);flag=0;/标记第1个顾客尚未输出 while(!IsemptyQ(&A) & !IsemptyQ(&B) if(!flag)/第 一个顾客输出后无空格printf(%d”,deleteQ(&A);flag=1;elseprintf(%d”,deleteQ(&A);if(!IsemptyQ(&A) printf(%d”,deleteQ(&A); printf(%d”,deleteQ(&B);while(!IsemptyQ(&A)/A 队列不空,B 队列空if(!flag)/第 一个顾客输出后无空格printf(%d”,delete
7、Q(&A);flag=1;elseprintf(%d”,deleteQ(&A);while(!IsemptyQ(&B)/B 队列不空,A 队列空if(!flag)/第 一个顾客输出后无空格printf(%d”,deleteQ(&B);flag=1;elseprintf(%d”,deleteQ(&B);printf(n);return 0;七、实验注意事项应分析源程序,并注意运行结果是否为预期结果。注意大小写及英文字符(ASCII码)八、思考题1.本题只是个简单的模拟,实际银行的业务处理会更加复杂,队列的使用是 很有必要的。对于本题,可以再进一步思考以下问题:本题的顾客请求序列是程序运行时输入的
8、,能不能使用C语言提供的随 机函数(rand(),srand()等)生成符合某种要求的随机序列进行顾客请求的随机 模拟?如果将A队列和B队列的处理速度比NA:NB(本题NA=2,NB=1)作为变量在 程序运行时作为参数输入,该如何修改代码?#include#define maxsize 1000#define ERROR -1typedef struct(int customermaxsize;int rear;int front;Queue;void initqueue(Queue *ptrQ)/初始化空队列(ptrQ-rear=ptrQ-front=0;int IsemptyQ(Queue
9、 *ptrQ,int e)/判断队列是否为空(int flag;if(ptrQ-front=ptrQ-rear)flag=1;elseflag=0;return flag;ptrQ-rear=(ptrQ-rear+1)%maxsize;ptrQ-customerptrQ-rear=e;void addQ(Queue *ptrQ,int e)/将元素 e 插入到队列 ptrQ 中(if(ptrQ-rear+1)%maxsize=ptrQ-front)(printf(队列满!);return;ptrQ-rear=(ptrQ-rear+1)%maxsize;ptrQ-customerptrQ-rea
10、r=e;int deleteQ(Queue *ptrQ)/从队列中删除队头并返回(if(ptrQ-front=ptrQ-rear)printf(队列空!);return ERROR;else(ptrQ-front=(ptrQ-front+1)%maxsize;return ptrQ-customerptrQ-front;int main()(int N,i,cur,flag;Queue A,B;初始化两个队列initqueue(&A);initqueue(&B);scanf(d,&N);for(i=0;iN;i+)/根据整数的奇偶性,将每个整数插入相应的队列中(scanf(d,&cur);if
11、(cur%2)addQ(&A,cur);elseaddQ(&B,cur);flag=0;/标记第1个顾客尚未输出while(!IsemptyQ(&A,int () & !IsemptyQ(&B,int()(if(!flag)/第一个顾客输出后无空格(printf( %d”,deleteQ(&A);flag=1;elseprintf(d,deleteQ(&A);if(!IsemptyQ(&A,int () printf( %d”,deleteQ(&A);printf( %d”,deleteQ(&B);while(!IsemptyQ(&A,int ()/A 队列不空,B 队列空(if(!flag)/第一个顾客输出后无空格(printf( %d”,deleteQ(&A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京航空航天大学金城学院《欧美文学史》2023-2024学年第一学期期末试卷
- 南昌工程学院《道家与道教哲学》2023-2024学年第一学期期末试卷
- 牡丹江师范学院《播音主持语音与发声》2023-2024学年第一学期期末试卷
- 中医保健知识培训课件
- 绵阳职业技术学院《数据组织与管理》2023-2024学年第一学期期末试卷
- 绵阳飞行职业学院《心理学基础》2023-2024学年第一学期期末试卷
- 绵阳城市学院《电子商务理论与实践》2023-2024学年第一学期期末试卷
- 满洲里俄语职业学院《产品设计系统设计》2023-2024学年第一学期期末试卷
- 闽北职业技术学院《数据挖掘与数据分析》2023-2024学年第一学期期末试卷
- 吕梁职业技术学院《朝鲜语会话(2)》2023-2024学年第一学期期末试卷
- 产品共同研发合作协议范本5篇
- 风水学的基础知识培训
- 2024年6月高考地理真题完全解读(安徽省)
- 吸入疗法在呼吸康复应用中的中国专家共识2022版
- 1-35kV电缆技术参数表
- 信息科技课程标准测(2022版)考试题库及答案
- 施工组织设计方案针对性、完整性
- 2002版干部履历表(贵州省)
- DL∕T 1909-2018 -48V电力通信直流电源系统技术规范
- 2024年服装制版师(高级)职业鉴定考试复习题库(含答案)
- 门诊部缩短就诊等候时间PDCA案例-课件
评论
0/150
提交评论