- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 1
课程设计任务书
一、设计内容与要求
1、设计内容
1)、设计窗口,服务窗口;
2)、编写代码,实现各种算法,完成排队叫号问题;
二、设计说明
2.1问题描述与功能设计
1、问题描述
目前,在以银行营业大厅为代表的窗口业务,大量客户的拥挤排队已成为了这些企事业单位改善服务品质、提升企业形象的主要障碍。排队叫号系统的使用将成为改变这种情况的有力手段。排队系统完全模拟了人群排队的全过程,通过取票进队。排队等待、叫号服务等功能,很好的解决了客户在服务机构办理业务是所遇到的各种排队、拥挤和混乱现象,代替了人们站队的辛苦,把顾客等待的烦恼变成了一段难得的休闲时光,使客户拥有了一个自由的空间和一份美好的心情。
排队叫号软件的具体操作流程为:
4、顾客到窗口办理 休息区的顾客听到呼叫就到响应窗口进行一对一服务。3、营业员按钮呼叫 窗口操作员按“下一位”
4、顾客到窗口办理
休息区的顾客听到呼叫就到响应窗口进行一对一服务。
3、营业员按钮呼叫
窗口操作员按“下一位”,当前窗口就显示顾客排队号并语音呼叫“请XX到X号窗口”
2、顾客休息等待
取到排队号的顾客在休息区休息等待,注意大厅的提示信息
1、顾客取号
需要办理业务的顾客到取票机前取号,并获得打印出的排队号票
2、功能设计
1)使用数组以及C#接口和范型技术实现通用的队列功能;
2)编写算法,利用队列模拟银行排队系统;
3)利用多窗口分别模拟顾客取服务号、银行窗口服务顾客。
2.2算法与数据结构
在银行排队叫号软件中,首先要找到一种数据结构来存放顾客所得到的服务号,这些服务号表示客户的请求服务的先后顺序,也表示客户被服务的先后顺序。先来的客户被服务:
在这个程序中,主要运用了队列这种结构:
队列是一种特殊的线性表,是一种只允许在表的一端插入操作而在另一端进行删除操作的线性表。进行插入操作的表尾称为队尾(Rear),进行删除操作的头部称为对头(Front)。当队列中没有数据元素时称为空队列(Empty Queue)。队列通常记为Q=(a1,a2,…,an),a1为对头元素,an为队尾元素。这n个元素是按照a1,a2,…an的次序依次入队的,出队的顺序与入队顺序相同,a1第一个出队,an最后一个出队。队列的结构示意图如下:
出队 a1 a2 … an 入队
2、队列的特征:
队列的操作是按照“先进先出”或“后进后出” 的原则进行的。
队列的基本操作:
入队列操作:EnQueue(T elem);
出队列操作:DeQueue();
取队头元素:GetFront();
求队列的长度;GetLength();
判断队列是否为空:IsEmpty();
清空操作:Clear();
判断是否为满:IsFull();
在这个程序中用循环顺序队列;
当队尾指示器rear到达数组上限时,如果还有数据元素入队并且数组的第0个空间空闲时,队尾指示器rear指向数组的0端。队尾指示器rear的值不一定大于队头Front的值,并且队满和队空的条件是相同的,为rear==front;
2.3类定义(函数定义)
在这个程序中,定义了一下及几种类:
接口IQueue类:
将队列的基本操作定义在接口IQueue中,如左图所示:
Clear:清空操作,是队列为空;
DeQueue:出队列操作,将队头元素从队列中取出;
EnQueue:入队列操作,将值为elem的新数据元素添加到队尾;
GetFront:取队头元素,返回队头元素的值;
GetLength:求队列的长度,返回队列中数据元素的个数;
IsEmpty:判断队列是否为空,如果对列为控,返回true,否则返回false;
IsFull:判断是否为满,如果对列为满返回true,否则返回false;
接口IBankQueue类:
将银行队列的所有操作定义在里面:
GetCallnumber:获取服务号;
泛型类CSeqQueueT表示顺序队列:
(1)、字段
字段maxsize:表示循环队列的最大容量;
字段front:表示对头,范围是0~maxsize-1;
字段rear:表示队尾,范围也是0~maxsize-1;
字段data:表示数组用于存储循环顺序队列中的数据 元素;
(2)、属性
在类中并设置了队头属性(front)、队尾属性(rear)、容量属性(maxsize)、索引器属性(this);
(3)、方法
在这个类中有接口IQueue中的一切方法;
银行叫号顺序队列类CSeqBankQueue类:
该类实现IBankQueue接口中定义的全部行为,通过继承CS
文档评论(0)