C银行叫系统课程设计方案 .docx

上传人:Che****ry 文档编号:13053612 上传时间:2022-04-27 格式:DOCX 页数:18 大小:352.64KB
返回 下载 相关 举报
C银行叫系统课程设计方案 .docx_第1页
第1页 / 共18页
C银行叫系统课程设计方案 .docx_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《C银行叫系统课程设计方案 .docx》由会员分享,可在线阅读,更多相关《C银行叫系统课程设计方案 .docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品名师归纳总结1、设计内容课程设计任务书一、设计内容与要求可编辑资料 - - - 欢迎下载精品名师归纳总结1) 、设计窗口,服务窗口。2) 、编写代码,实现各种算法,完成排队叫号问题。二、设计说明2.1 问题描述与功能设计1、问题描述目前,在以银行营业大厅为代表的窗口业务,大量客户的拥挤排队已成为了这些企事业单位改善服务品质、提升企业形象的主要障碍。排队叫号系统的使用将成为转变这种情形的有力手段。排队系统完全模拟了人群排队的全过程,通过取票进队。排队等待、叫号服务等功能,很好的解决了客户在服务机构办理业务是所遇到的各种排队、拥挤和纷乱现象,代替了人们站队的辛苦,把顾客等待的苦恼变成了一段难得

2、的休闲时间,使客户拥有了一个自由的空间和一份美好的心情。排队叫号软件的具体操作流程为:1 、顾客取2、顾客休息3 、营业员按钮4 、顾客到号等待呼叫窗口办理需 要 办取 到 排 队窗口操作员按休息区的理业务的号 的 顾 客 在“下一位”,当顾客听到顾客到取休 息 区 休 息前窗口就显示顾呼叫就到票机前取等 待 , 注 意客排队号并语音响应窗口号,并获大 厅 的 提 示呼叫“请XX到进行一对得的打排印队出号信息X 号窗口”一服务。2、功能设计1) 使用数组以及 C#接口和范型技术实现通用的队列功能。2) 编写算法,利用队列模拟银行排队系统。3) 利用多窗口分别模拟顾客取服务号、银行窗口服务顾客。

3、2.2 算法与数据结构在银行排队叫号软件中,第一要找到一种数据结构来存放顾客所得到的服务 号,这些服务号表示客户的请求服务的先后次序,也表示客户被服务的先后次序。先来的客户被服务:在这个程序中,主要运用了队列这种结构:1、队列是一种特殊的线性表,是一种只答应在表的一端插入操作而在另一端进可编辑资料 - - - 欢迎下载精品名师归纳总结行删除操作的线性表。进行插入操作的表尾称为队尾(Rear),进行删除操作的头部称为对头( Front )。当队列中没有数据元素时称为空队列Empty Queue。队列通常记为 Q=(a1,a2, ,an ),a1为对头元素, an 为队尾元素。这 n 个元素是依据

4、 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()。在

5、这个程序中用循环次序队列。可编辑资料 - - - 欢迎下载精品名师归纳总结在这个程序中,定义了一下及几种类: 接口 IQueue类:当队尾指示器 rear到达数组上限时,假如仍有数据元素 入队并且数组的第0 个空间闲暇时,队尾指示器 rear指向数组的 0 端。队尾指示器rear的值不 确定大于 队头Front的值,并且队满和队空的 条 件 是 相 同 的 , 为rear=front。2.3 类 定 义 ( 函 数 定义)可编辑资料 - - - 欢迎下载精品名师归纳总结将队列的基本操作定义在接口IQueue 中,如左 图所示:Clear:清空操作,是队列为空。DeQueue:出队列操作,将队头

6、元素从队列中取出。EnQueue:入队列操作,将值为 elem 的新数据元 素添加到队尾。GetFront:取队头元素,返回队头元素的值。 GetLength:求队列的长度,返回队列中数据元 素的个数。IsEmpty : 判定队列 是否为 空, 假如对 列 为控 ,可编辑资料 - - - 欢迎下载精品名师归纳总结返回 true,否就返回 false。IsFull:判定是否为满,假如对列为满返回true,否就返回 false。接口 IBankQueue类:将银行队列的全部操作定义在里面:GetCallnumber:猎取服务号。泛型类 CSeqQueue表示次序队列:(1)、字段字段 maxsiz

7、e:表示循环队列的最大容量。字段 front:表示对头,范畴是 0maxsize-1。字段 rear:表示队尾,范畴也是 0maxsize-1。字 段data : 表 示 数 组 用 于 存 储 循 环 顺 序 队 列 中 的 数 据元素。(2) )、属性在 类 中 并 设 置 了 队 头 属 性 ( front ) 、 队 尾 属 性 ( rear ) 、 容 量 属 性( maxsize)、索引器属性( this)。(3) )、方法在这个类中有接口 IQueue中的一切方法。银 行叫 号 顺序 队 列 类CSeqBankQueue类:该类实现 IBankQueue 接口中定义的全部行为,通

8、过继承 CSeqQueue将已实现的全部行为继承过来。此外,设置了一个新来顾客的服务号属性Callnumber。通过方法 GetCallnumber()获得服务号。可编辑资料 - - - 欢迎下载精品名师归纳总结Form1 类:Form1 继承了系统中的 Form 类。在 Form1 中使用了 button、label、textBox 等控件。 使用了 button_Click 方法实现取号行为。Form2 类:Form2 也继承了系统中的Form类。在 Form2 中也使用了button、label、textBox 等控件。使用了 button_Click 方法实现叫号行为。Form3 类:

9、Form3 也继承 了系统 中的Form 类。在 Form2 中也使用了 button、label、textBox等控件。使用了 button_Click 方法实现叫号行为。Form4 类:Form4 也继承 了系统 中的Form 类。在 Form2 中也使用了button、label、textBox 等控件。使用了 button_Click 方法实现叫号行为。可编辑资料 - - - 欢迎下载精品名师归纳总结()。服 务 窗 口 ServiceWindow类:服务队列的属性 BankQ。 作 为线 程 的 方 法 Service可编辑资料 - - - 欢迎下载精品名师归纳总结主程序 Main

10、()方法。2.4 界面设计可编辑资料 - - - 欢迎下载精品名师归纳总结在这个程序中,总共设计了四个界面,一个取号界面,三个服务窗口界面:如以下图:1、取号窗口:在取号窗口中,有了三个 label 控件,设置了“中国银行”、“欢迎你”、“请点击取号”字样,使用 button 控件设置了取号按钮,用了 textBox 控件用于显示所取到的排队号码。2、服务窗口一号服务窗口可编辑资料 - - - 欢迎下载精品名师归纳总结二号服务窗口三号服务窗口在服务窗口中用了两个label 控件设置了“中国银行”、“X 号服务窗口”字样,用了 button 控件设置了“下一个”按钮,用textBox 显示“请

11、X 号到 X 号服务窗口”。2.5 编码namespace银行排队叫号系统publicpartialclassForm1 :FormIBankQueue bankQueue= newCSeqBankQueue100 。/ 新建一个队列。CSeqQueue q1 =newCSeqQueue100 。intCallnumber 。/ 号码。publicForm1InitializeComponent。可编辑资料 - - - 欢迎下载精品名师归纳总结Form2 f1 =newForm2 this .q1 。/ 实例话 Form。 Form3 f2 =newForm3 this .q1 。Form4

12、f3 =newForm4 this .q1 。f1.Show。/ 使几个窗口同时显示。f2.Show。f3.Show。privatevoidbutton1_Clickobjectsender,EventArgs eif.bankQueue.IsFullCallnumber = bankQueue.GetCallnumber。textBox1.Text = 你的号码是: + Callnumber + 号, + 你前面仍有 + bankQueue.GetLength + 位,请耐心等待 . 。bankQueue .EnQueueCallnumber 。/ 所取得的号码进队。q1.EnQueueCa

13、llnumber。elseConsole .WriteLine 现在业务繁忙,请稍后再来! 。Console .WriteLine 。namespace银行排队叫号系统publicpartialclassForm3 :FormCSeqQueue _q1 =newCSeqQueu100 。publicForm3 CSeqQueue q1/构造函数,应用 Form1所建立的队列。InitializeComponent。this ._q1 = q1。privatevoidbutton1_Clickobjectsender,EventArgs eif._q1.IsEmpty可编辑资料 - - - 欢迎

14、下载精品名师归纳总结elsetextBox1.Text = 请 + _q1.DeQueue + 号到二号窗口! 。可编辑资料 - - - 欢迎下载精品名师归纳总结MessageBox.Show 现在没有客人! 。可编辑资料 - - - 欢迎下载精品名师归纳总结2.6 测试代码编写完成后,执行调试-开头执行,看是否能成功生成,如能的话,点击取号看服务窗口是否按要求运作。如不能的话,依据所供应的错误提示,一步步 的调试,直到成功生成为止。下图为取到八号,且六号正在被服务时各显示器 上的显示:三、总结在整个过程中,应当留意以下几点:1. 要求利用面对对象的方法以及队列数据结构来完成系统的设计。2.

15、在设计的过程中,建立清晰的类层次。3. 在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法。4. 要运用面对对象的机制来实现系统功能。通过对完成这次课程设计,加深了对队列这种数据结构可编辑资料 - - - 欢迎下载精品名师归纳总结的懂得,把握了队列数据结构极其算法。此外也能够更加娴熟的使用button。Label。textBox 等控件。参考文献雷军环、邓文达、刘震编著数据结构( C#语言版)钱哨、李挥剑、李继哲编著C#WinForm 实践开发教程郑宇军编著 C#面对对象程序设计附录:源代码IQueue 接口代码:using System 。namespace QueueDsinte

16、rfaceIQueuevoid EnQueueT elem 。 / 入队列操作T DeQueue。 / 出队列操作T GetFront。 / 取对头元素intGetLength。 / 求队列的长度bool IsEmpty。 / 判定队列是否为空void Clear。 / 清空队列bool IsFull。/ 判定是否为满,在次序队列中实现该算法,在链式队列中代码实现为空IBankQueue 接口代码: using System 。namespace QueueDsinterfaceIBankQueue: IQueueintGetCallnumber。/ 获得服务号码次序队列代码: using S

17、ystem 。namespace QueueDspublicclassCSeqQueue: IQueueprivateintmaxsize 。 / 循环次序队列的容量privateT data。 / 数组,用于储备循环次序队列中的数据元素privateintfront。 / 指示最近一个己经离开队列的元素所占的位置privateintrear。 / 指示最近一个进行入队列的元素的位置/ 索引器可编辑资料 - - - 欢迎下载精品名师归纳总结publicTthis intindexgetreturndataindex。可编辑资料 - - - 欢迎下载精品名师归纳总结setdataindex =v

18、alue 。可编辑资料 - - - 欢迎下载精品名师归纳总结/ 容量属性publicintMaxsizegetreturnmaxsize 。可编辑资料 - - - 欢迎下载精品名师归纳总结setmaxsize =value 。可编辑资料 - - - 欢迎下载精品名师归纳总结/ 队头指示器属性publicintFrontgetreturnfront。可编辑资料 - - - 欢迎下载精品名师归纳总结setfront =value 。可编辑资料 - - - 欢迎下载精品名师归纳总结/ 队尾指示器属性publicintReargetreturnrear。set可编辑资料 - - - 欢迎下载精品名师归

19、纳总结rear =value 。/ 初始化队列publicCSeqQueue publicCSeqQueueintsizedata =new Tsize。maxsize = size。 front = rear = -1。/ 入队操作publicvoidEnQueueT elemifIsFullConsole .WriteLineQueue is full 。return。rear=rear + 1 % maxsize。 。datarear = elem。/ 出队操作publicT DeQueueifIsEmptyConsole .WriteLineQueue is empty 。return

20、defaultT 。front = front + 1 % maxsize。returndatafront。/ 猎取队头数据元素publicT GetFrontifIsEmptyConsole .WriteLineQueue is empty. 。returndefaultT 。returndatafront+1%maxsize。/ 求循环次序队列的长度可编辑资料 - - - 欢迎下载精品名师归纳总结publicintGetLengthreturnrear - front + maxsize % maxsize。/ 判定循环次序队列是否为满publicboolIsFulliffront = -

21、1 & rear = maxsize - 1 | rear + 1 % maxsize = frontreturntrue。elsereturnfalse。/ 清空循环次序队列publicvoidClearfront = rear = -1。/ 判定循环次序队列是否为空publicboolIsEmptyiffront = rearreturntrue。elsereturnfalse。银行次序队列代码:using System 。using System.Threading。namespace QueueDs/ 银行叫号次序队列类class CSeqBankQueue: CSeqQueue, I

22、BankQueueprivateintcallnumber。/ 记录系统自动产生的新来顾客的服务号可编辑资料 - - - 欢迎下载精品名师归纳总结/ 叫号属性publicintCallnumbergetreturncallnumber。可编辑资料 - - - 欢迎下载精品名师归纳总结setcallnumber =value 。可编辑资料 - - - 欢迎下载精品名师归纳总结publicCSeqBankQueue publicCSeqBankQueueintsize:basesize/ 获得服务号码publicintGetCallnumberifIsEmpty & callnumber = 0

23、callnumber = 1。elsecallnumber+。returncallnumber。/ 服务窗口类class ServiceWindowIBankQueue bankQ。publicIBankQueue BankQgetreturnbankQ。可编辑资料 - - - 欢迎下载精品名师归纳总结setbankQ =value 。可编辑资料 - - - 欢迎下载精品名师归纳总结publicvoidServicewhile true Thread .Sleep10000。可编辑资料 - - - 欢迎下载精品名师归纳总结if.bankQ.IsEmptyConsole .WriteLine。l

24、ockbankQConsole .WriteLine 请0 号到 1 号窗口. , bankQ.DeQueue,Thread .CurrentThread.Name。Form1 代码using System 。using System.Collections.Generic。using System.ComponentModel 。using System.Data 。using System.Drawing 。using System.Linq。using System.Text。using System.Windows.Forms 。using QueueDs。namespace银行排队叫

25、号系统publicpartialclassForm1 :FormIBankQueue bankQueue= newCSeqBankQueue100 。CSeqQueue q1 = newCSeqQueue100 。 int Callnumber 。public Form1InitializeComponent。Form2 f1 =newForm2 this .q1 。Form3 f2 =newForm3 this .q1 。Form4 f3 =newForm4 this .q1 。f1.Show。f2.Show。f3.Show。privatevoidbutton1_Clickobjectsen

26、der,EventArgs eif.bankQueue.IsFullCallnumber = bankQueue.GetCallnumber。可编辑资料 - - - 欢迎下载精品名师归纳总结textBox1.Text = 你的号码是: + Callnumber + 号, + 你前面仍有 + bankQueue.GetLength + 位,请耐心等待 . 。bankQueue .EnQueueCallnumber 。q1.EnQueueCallnumber。elseConsole .WriteLine 现在业务繁忙,请稍后再来! 。Console .WriteLine 。privatevoidF

27、orm1_Load objectsender,EventArgs eForm2 的代码:using System 。using System.Collections.Generic。using System.ComponentModel 。using System.Data 。using System.Drawing 。using System.Linq。using System.Text。using System.Windows.Forms 。using QueueDs。namespace银行排队叫号系统publicpartialclassForm2 :FormCSeqQueue _q1 =

28、newCSeqQueu100 。publicForm2 CSeqQueue q1InitializeComponent。this ._q1=q1 。privatevoidbutton1_Clickobjectsender,EventArgs eif._q1.IsEmpty 可编辑资料 - - - 欢迎下载精品名师归纳总结elsetextBox1.Text = 请 +_q1.DeQueue+ 号到一号窗口 。可编辑资料 - - - 欢迎下载精品名师归纳总结MessageBox.Show 现在没有客人 . 。privatevoidForm2_Load objectsender,EventArgs

29、e可编辑资料 - - - 欢迎下载精品名师归纳总结Form3 代码:using System 。using System.Collections.Generic。using System.ComponentModel 。using System.Data 。using System.Drawing 。using System.Linq。using System.Text。using System.Windows.Forms 。using QueueDs。namespace银行排队叫号系统publicpartialclassForm3 :FormCSeqQueue _q1 =newCSeqQue

30、u100 。publicForm3 CSeqQueue q1InitializeComponent。this ._q1 = q1。privatevoidbutton1_Clickobjectsender,EventArgs eif._q1.IsEmpty可编辑资料 - - - 欢迎下载精品名师归纳总结elsetextBox1.Text = 请 + _q1.DeQueue + 号到二号窗口! 。可编辑资料 - - - 欢迎下载精品名师归纳总结MessageBox.Show 现在没有客人! 。privatevoidForm3_Load objectsender,EventArgs eForm4 代

31、码:using System 。using System.Collections.Generic。using System.ComponentModel 。可编辑资料 - - - 欢迎下载精品名师归纳总结using System.Data 。using System.Drawing 。using System.Linq。using System.Text。using System.Windows.Forms 。using QueueDs。namespace银行排队叫号系统publicpartialclassForm4 :FormCSeqQueue _q1= newCSeqQueue100 。p

32、ublicForm4 CSeqQueue q1 InitializeComponent。this ._q1 =q1 。privatevoidbutton1_Clickobjectsender,EventArgs eif ._q1 .IsEmpty 可编辑资料 - - - 欢迎下载精品名师归纳总结elsetextBox1 .Text = 请 +_q1 .DeQueue + 号到三号窗口! 。可编辑资料 - - - 欢迎下载精品名师归纳总结MessageBox .Show 现在没有客人! 。privatevoidForm4_Load objectsender,EventArgs e主程序代码:us

33、ing System 。using System.Collections.Generic。using System.Linq。using System.Windows.Forms 。namespace银行排队叫号系统staticclassProgram/应用程序的主入口点。/可编辑资料 - - - 欢迎下载精品名师归纳总结STAThread staticvoidMainApplication.EnableVisualStyles。Application.SetCompatibleTextRenderingDefaultfalse 。Application.Run newForm1 。可编辑资料 - - - 欢迎下载

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁