数据结构课设:银行排队系统模拟

数据结构课设:银行排队系统模拟假设某银行有n个窗口对外接待客户,从早晨银行9点开门起到5点关门,不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。(提示:参考c++ primer plus中相关章节或者软件工程专业课表中的飞机场模拟)
请用c语言给出源代码 谢谢大神

用优先级队列来模拟整个过程,每个客户都需要有到达、离开两次入队操作。

建立一个大小为n的数组,来记录每个窗口(接下来的)的空闲时间,初始化全部赋值为0。
这里我们假设有1、2两个窗口,T(1)=T(2)=0
建立一个(按时间的)优先级队列,初始化为空。
假设银行0时开业,下面举例来说明:
第一个客人于1分钟到达,假设这个客人办理业务需要的时间为10分钟(一般模拟过程中,这个时间是在某个范围内随机生成的)。为该用户分配一个空闲窗口1,同时T(1)=11。此时需要入队:
------------------------

------------------------

第二个客人于3分钟时到达,假设这个客人办理业务需要的时间为5分钟。由于T(2)==0<3,说明在这位客人到达时第2号窗口是闲的,那么让他去2号窗口,同时T(2)=3+5=8。然后入队:
-------------------------------------------------
->
-------------------------------------------------

第三个客人于4分钟时到达,假设这个客人办理业务需要的时间为6分钟。此时T(1)=11>4,T(2)=8>4,两个窗口都是忙碌的。但由于T(2)<T(3),我们认为2号窗口相对来说轻松一些,让他去2号窗口排队,同时T(2)=T(2)+6=14。然后入队:
--------------------------------------------------------------------------
->->
---------------------------------------------------------------------------
……
整个过程持续下去,一直到关门时间为止。

上面的示例在队列中只记录了离开时间,实际上还可以记录到达时间、在哪个窗口办理等等信息,这样只需要将这个优先级队列依次执行出队操作,就能统计出平均业务受理时间、平均等待时间、哪个窗口工作量多少.
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-05-17
兄弟,你认为这么复杂会有人给你编吗?追问

那咋办

追答

自己编或者花钱找人编

数据结构课设:银行排队系统模拟
这里我们假设有1、2两个窗口,T(1)=T(2)=0 建立一个(按时间的)优先级队列,初始化为空。假设银行0时开业,下面举例来说明:第一个客人于1分钟到达,假设这个客人办理业务需要的时间为10分钟(一般模拟过程中,这个时间是在某个范围内随机生成的)。为该用户分配一个空闲窗口1,同时T(1)=11。...

银行预约排队系统(数据结构问题)
预约排队系统第三小组:孙鹏飞——问题分析朱思敏——结构算法周华毅——代码实现问题分析:(孙鹏飞)排队系统的背景:预约排队问题在我们的现实生活中广泛存在,大到如银行排队叫号系统、医院门诊挂号系统、火车票预售订购系统等,小到餐饮消费、交通出行、购物付款等。也许你会想这些问题十分简单,不就是...

有道编程题,模拟银行排队取号办理业务,每个人办理业务时间随机,柜台...
这个如果是在Windows下用可视化编程话,那是极其容易的,在dos可以模拟这个过程,算法如下:1、数据结构 柜台:①处理状态,忙还是闲还是休息 ②正在处理的顾客号 ③开始处理的时间 顾客:①顾客编号 ②办理业务需要的时间 ③处理状态,等待或正在处理 2、程序流程 程序开始 创建柜台对列(柜台数组);创建...

c++模拟银行叫号系统
需要用到"队列(先进先出)"数据结构.类中需要静态变量"等待人数,假定为wait"(静态变量的意义在于每个对象都知道还有多少人在排队,生成对象时记录wait,就知道自己前面有多少人),每生成一个排队对象,插入队列,wait+=1,每处理一个对象的业务,取队列数据,wait-=1;

课程设计题目,多线程编程:医院门诊模拟,想用java实现,求大神指点_百度...
写一个或n个线程,模拟病人,排队办理业务,往上面的队列中添加数据。当达到队列的最大容积,阻塞,等待生产者线程取数据。阻塞:makerLock.wait();\/\/虚拟机会出让线程挂起,其实就是操作系统,保存当前线程在cpu上的运行状态。再出让线程正在使用的cpu资源,占用的内存不会释放。往队列插入数据的时候,...

谁能用C#设计一个银行排队叫号系统,简单的就行。需要程序文件和源代码...
程序很简单,说白了就是对一个数据表(排队号)进行操作啊,客户取号生成排队号(当然可按业务分类取号,如:公司业务、个人业务等),柜台叫号时将当前号置为无效,并取下一个号。熟手半天搞定了。

浅谈Java队列-queue
在探讨Java队列中的"queue"时,我们首先关注的是其使用场景,比如银行排队的案例。队列是一种线性数据结构,遵循先进先出(FIFO)原则,适用于需要先处理先到需求的场景。为了更直观地理解队列的实现,我们可以使用数组来模拟队列。数组中,队列的最大容量由maxSize决定。队列的前后端分别由front和rear两个...

用c语言编写医院排队看病系统,急啊!!!求大神!!
\/\/链队类型void SeeDoctor(){ int sel,flag=1; QuType *qu=(QuType*)malloc(sizeof(QuType)); queuetype quik=0; initlqueue(qu);\/\/创建空队 while (flag==1) \/\/循环执行 { printf("1:排队 2:就诊 3:查看排队 4.不再排队,余下依次就诊 5:下班 请选择:"); scanf...

计算机专业课题?
三十六、食堂、医院、银行或大型超市中排队系统的模拟 三十七、自己已有的课题 三十八、基于文本的本体类属学习方法研究 三十九、基于概念词学习本体类属关系的方法研究 四十、基于数据源自动提取词语 *** 的方法研究 四十一、领域专业术语中概念 *** 的形成 四十二、领域知识中概念关系研究 四十三、本体评价...

求 数据结构课程设计-停车场管理
2.3.3 数据结构 由于停车场只有一个大门,当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,先进停车场的后退出,后进车场的先退出,符合栈的“后进先出,先进后出”的操作特点,因此,可以用一个栈来模拟停车场。而当停车场满后,继续来到的其它车辆只能停在便道上,根据便道停车的特点,先排队的...

相似回答