




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
攻坚实验三 银行业务队列简单模拟一、 实验目的熟练掌握队列的基本操作,理解队列的应用。二、 实验内容设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍-即当A窗口处理完2个顾客时,B窗口处理完一个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。三、 实验要求 1. 输入说明:输入为一行正整数,其中第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队列中输出两个元素,然后再从B队列中输出一个元素。当发现某一个队列中的元素为空时,输出另一个队列中的所有元素。(2)实现要点采用统一的循环队列函数处理两个队列的操作:注意对队列满、空情况的判断。五、 主要仪器及耗材计算机及VC6软件六、 实验参考代码#include#define maxsize 1000#define ERROR -1typedef structint customermaxsize;int rear;int front;Queue;void initqueue(Queue *ptrQ)/初始化空队列ptrQ-rear=ptrQ-front=0;int IsemptyQ(Queue *ptrQ)/判断队列是否为空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 deleteQ(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)addQ(&A,cur);else addQ(&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,deleteQ(&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;七、 实验注意事项1.应分析源程序,并注意运行结果是否为预期结果。2.注意大小写及英文字符(ASCII码)八、 思考题1.本题只是个简单的模拟,实际银行的业务处理会更加复杂,队列的使用是很有必要的。对于本题,可以再进一步思考以下问题:(1)本题的顾客请求序列是程序运行时输入的,能不能使用C语言提供的随机函数(rand(),srand()等)生成符合某种要求的随机序列进行顾客请求的随机模拟?(2)如果将A队列和B队列的处理速度比NA:NB(本题NA=2,NB=1)作为变量在程序运行时作为参数输入,该如何修改代码?#include#define maxsize 1000#define ERROR -1typedef structint customermaxsize;int rear;int front;Queue;void initqueue(Queue *ptrQ)/初始化空队列ptrQ-rear=ptrQ-front=0;int IsemptyQ(Queue *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-rear=e;int deleteQ(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)addQ(&A,cur);else addQ(&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,delete
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国家用装饰用木制品项目创业计划书
- 中国辣椒种植项目创业计划书
- 中国口腔护理用品项目创业计划书
- 中国计算机断层成像项目创业计划书
- 2025租房合同协议书样本
- 中国脑机接口项目创业计划书
- 中国肛门袋项目创业计划书
- 政工程建设施工合同书
- 乐清保安考试题及答案
- 德化红旗瓷厂历史风貌区保护提升工程二期可行性研究报告
- 2025-2030中国倒装芯片球栅阵列行业市场现状供需分析及投资评估规划分析研究报告
- 机动车环检试题及答案
- 罗曼蛋鸡饲养管理手册
- 2025年山西华阳新材料科技集团有限公司招聘笔试参考题库含答案解析
- 2025年中考语文文言文古诗词默写(含答案)
- 2025年上半年民航医学中心(民航总医院)招聘应届毕业生64人重点基础提升(共500题)附带答案详解-1
- 《复杂系统理论》课件
- 河北省部分校2024-2025学年九年级下学期开学测试历史试题(含答案)
- 校企合作员工培训协议
- 民族团结主题班会
- 长郡教育集团2025届中考生物适应性模拟试题含解析
评论
0/150
提交评论