数据结构银行排队系统实验报告

数据结构银行排队系统实验报告

ID:39858608

大小:703.80 KB

页数:10页

时间:2019-07-13

数据结构银行排队系统实验报告_第1页
数据结构银行排队系统实验报告_第2页
数据结构银行排队系统实验报告_第3页
数据结构银行排队系统实验报告_第4页
数据结构银行排队系统实验报告_第5页
资源描述:

《数据结构银行排队系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Assignment1:ADTApplicationsTask2133490***实验过程:在这个实验程序中,我认为,难点在于如何运用队列储存顾客等候情况、银行窗口如何设置实现显示当前顾客序号以及数据的统计和打印。题目描述中,有两个模拟版本,分别是单队列与多队列。由于个人能力的原因,我选择实现程序的版本一。在类的设计上,我和舍友****进行了讨论,最后我的想法是设置两个类,分别是Customer类与Bank类。其中Customer类包括private的数据如下:private:intID;//顾客顺序号intenterTime;//顾客进入时间intstartTime;/

2、/顾客开始被服务的时间intserveTime;//(随机生成的)顾客服务时长而Customer类中包括的函数是public的,包括以上所有数据的get与set,以及clear函数。程序的运行主要通过Bank类来实现。public的数据设置如下:private:inttimeCounter;//计数循环次数,每次循环为一个时间单位inttotalWaitingTime;//被服务顾客的总等待时间inttotalServeNum;//被服务的顾客数inttotalNum;//总顾客数intserveNum[5];//五个窗口各自处理的顾客数vectors

3、erving;//存储当前五个窗口的顾客信息vectorwt;//被服务的顾客的等待时间集合queuewaiting;//等待队列构造函数设置如下:Bank(){timeCounter=0;totalWaitingTime=0;totalServeNum=0;totalNum=0;Customerc;serving.assign(5,c);//每个窗口都初始化空的顾客for(inti=0;i<5;i++)serveNum[i]=0;}通过设置Bank来得到程序的模拟结果。在利用五个窗口储存顾客信息的时候,原本想用的是数组形式,但数组进行插入和

4、删除数据的时候很不方便,因此,利用了STL中的vector,并借助vector的部分方法轻松完成把当前等待队伍的队头顾客pop到第一个窗口的操作。1Assignment1:ADTApplications而对于每个窗口服务的顾客数,只要最简单的数组来存就可以了。另外,还设置了一个vector来记录所有接受了服务的顾客的等待时间,方便最后数据的打印。下面是Bank类中函数的设计。模拟主要通过成员函数work调用其他成员函数来实现。voidwork(){for(timeCounter=0;timeCounter

5、(timeCounter

6、eep(300);//每0.3秒进行一次实时信息打印}statistic();}在实验中,一次循环就是一次时间单位。为了方便用户阅读模拟数据,因此设置每0.3秒挂起程序一次,从而实现每0.3秒刷新一次数据。其中调用的函数serve()与print()的作用分别是模拟窗口服务以及打印实时数据。而最后的statistic则是打印最终的统计信息。具体内容如下。voidserve(){for(inti=0;i<5;i++){if(timeCounter>=serving[i].getStartTime()+serving[i].getServeTime())//说明第i个窗口是空

7、的{if(waiting.size()!=0)//若等待队列非空,则队列第一个用户到i窗口{Customerc=waiting.front();c.setStartTime(timeCounter);2Assignment1:ADTApplicationsserving[i]=c;waiting.pop();totalServeNum++;//总服务人数+1serveNum[i]++;//第i个窗口的服务人数+1totalWaitingTime+=timeCounter-c.getEnterTime();//计算总等待时间wt

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

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

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