|
|
|
@ -3,8 +3,7 @@
|
|
|
|
|
2023.6.18
|
|
|
|
|
刘彩月,刘梦琦,金雨佳,赵亚璇
|
|
|
|
|
|
|
|
|
|
摘要:本项目针对模拟银行的业务运行并计算一天中客户在银行逗留的平均时间问题,实现了 功能。为了有效地存储和处理何种数据,采用了何种数据结构。为了解决什么问题,采用了什么算法,算法效率如何。针对其他特定需求做了哪些工作。项目的整体效果如何,有何亮点和创新。
|
|
|
|
|
|
|
|
|
|
摘要:针对银行营业的工作记录和计算一天中客户在银行的逗留时间的问题。实现了模拟客户排队,窗口,管理客户,队列的功能。为了有效的存储和处理客户(客户到达,客户离开)采用有序表,其主要操作是插入和删除事件,用一个单链表表示。为了有效存储和处理窗口( 客户到达时间,离开时间)采用了队列。为了解决客户找到最短等待队列,使用了排序和插入算法,为了解决客户离开事件,使用了删除算法。删除和插入的算法效率为O(n)。针对银行开门,关门,营业窗口数目,客户到达时间,采用人机交互。完成了保存银行营业的工作记录,储存客户的到达时间和离开时间;显示出在某一天整个银行系统中客户在银行逗留的平均时间。
|
|
|
|
|
任务分工及完成情况:
|
|
|
|
|
|
|
|
|
|
|任务|设计|开发|测试|文档|
|
|
|
|
@ -25,12 +24,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 1.1问题描述
|
|
|
|
|
问题描述和具体要求。
|
|
|
|
|
|
|
|
|
|
银行有n个窗口对外接待客户,从早晨银行开门起不断有客户进入银行。由于每个窗口在某时刻只能接待一个客户,因此在客户人多时需分别在各个窗口前排队。对于刚进入银行的客户,如果某个窗口的营业员正在空闲,则可上前办理业务;反之,若n个窗口均有客户正在办理业务,新来的客户便会排在人数最少的队伍后面。
|
|
|
|
|
设计一个银行业务模拟系统,模拟银行的业务运行并计算一天中客户在银行逗留的平均时间。通过人机互交的方式设定程序所需要的参数:银行的开门时间和关门时间,营业窗口数目。客户的到达时间可通过人机互交,文件导入或随机产生的方式输入。保存银行营业的工作记录,储存客户的到达时间和离开时间。显示出在某一天整个银行系统中客户在银行逗留的平均时间。要求系统运行正常,功能完整;数据结构使用得当,算法有较高的效率;代码规范,可读性高,结构清晰,具有一定的健壮性,可靠性和可维护性。
|
|
|
|
|
|
|
|
|
|
## 1.2可行性分析
|
|
|
|
|
明确解决问题的关键,核心数据结构,核心算法等。
|
|
|
|
|
运用了单链表和队列,运用了排序,插入和删除的算法。
|
|
|
|
|
确定解决问题的总体思路和方案。
|
|
|
|
|
客户排队的过程是一个按照到达时间先到先接受服务的过程,这一过程可以通过队列实现。n个不同的窗口对应n个队列,队列中每一个元素对应一个客户。算法中处理的事件有两类:一类是客户到来事件,另一类是客户离开事件。客户到来事件发生的时刻随客户到来自然形成,客户到来后,使用排序算法找到最短的等待队列,将客户插入队列;客户离开事件发生的时刻由银行窗口为其办理业务的完成时间决定,业务办理完成后,客户从等待队列中出队,窗口为下一个客户(如果存在的话)服务。
|
|
|
|
|
本项目涉及的对象主要包括客户、银行窗口,可以设计两个数据结构实现客户和窗口的功能。此外,管理客户、队列的功能可以单独实现(类似银行进门处的接待员,引导客户在哪里排队)。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 1.3 需求分析
|
|
|
|
|