1、 1 课程设计任务书 一、设计内容与要求 1、设计内容 1) 、设计窗口,服务窗口; 2) 、编写代码,实现各种算法,完成排队叫号问题; 二、设计说明 2.1 问题描述与功能设计 1、问题描述 目前,在以银行营业大厅为代表的窗口业务,大量客户的拥挤排队已成为了 这些企事业单位改善服务品质、提升企业形象的主要障碍。排队叫号系统的使用 将成为改变这种情况的有力手段。排队系统完全模拟了人群排队的全过程,通过 取票进队。排队等待、叫号服务等功能,很好的解决了客户在服务机构办理业务 是所遇到的各种排队、拥挤和混乱现象,代替了人们站队的辛苦,把顾客等待的 烦恼变成了一段难得的休闲时光, 使客户拥有了一个自
2、由的空间和一份美好的心 情。 排队叫号软件的具体操作流程为: 2、功能设计 1)使用数组以及 C#接口和范型技术实现通用的队列功能; 2)编写算法,利用队列模拟银行排队系统; 3)利用多窗口分别模拟顾客取服务号、银行窗口服务顾客。 1、顾客取 号 需 要 办 理 业 务 的 顾 客 到 取 票 机 前 取 号,并获得 打 印 出 的 排队号票 2、顾客休息 等待 取 到 排 队号的顾客 在休息区休 息等待, 注意 大厅的提示 信息 4、顾客到 窗口办理 休息 区 的 顾 客 听 到 呼 叫 就 到 响 应 窗 口 进 行 一 对一服务。 3、 营业员按钮呼 叫 窗口操作员 按“下一位” ,当
3、前窗口就显示顾 客排队号并语音 呼叫“请 XX 到 X 号窗口” 2 2.2 算法与数据结构 在银行排队叫号软件中,首先要找到一种数据结构来存放顾客所得到的服务号, 这些服务号表示客户的请求服务的先后顺序,也表示客户被服务的先后顺序。先 来的客户被服务: 在这个程序中,主要运用了队列这种结构: 1、队列是一种特殊的线性表,是一种只允许在表的一端插入操作而在另一端进 行删除操作的线性表。进行插入操作的表尾称为队尾(Rear) ,进行删除操作 的头部称为对头(Front) 。当队列中没有数据元素时称为空队列(Empty Queue)。队列通常记为 Q=(a1,a2,an),a1 为对头元素,an
4、为队尾元素。 这 n 个元素是按照 a1,a2,an 的次序依次入队的, 出队的顺序与入队顺序相 同,a1 第一个出队,an 最后一个出队。队列的结构示意图如下: 出队 a1 a2 an 入队 2、队列的特征: 队列的操作是按照“先进先出”或“后进后出” 的原则进行的。 3、队列的基本操作: (1) 入队列操作:EnQueue(T elem) ; (2) 出队列操作:DeQueue() ; (3) 取队头元素:GetFront() ; (4) 求队列的长度;GetLength() ; (5) 判断队列是否为空:IsEmpty() ; (6) 清空操作:Clear() ; (7) 判断是否为满:IsFull() ; 在这个程序中用循环顺序队列; 当队尾指示器 rear 到达数组 上限时,如果还有数据元素入 队并且数组的第0个空间空闲 时,队尾指示器 rear 指向数 组的 0 端。队尾指示器 rear 的 值 不 一 定 大 于 队 头 Front 的值,并且队满和队空的条件是相同的,为 rear=front; 2.3 类定义(函数定义) 在这个程序中,定义