您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > C#银行排队叫号系统课程设计报告
《软件设计基础-C#》课程设计报告设计名称:银行排队叫号系统姓名:学号:专业班级:学院:设计时间:设计地点:指导教师评语:指导教师签字:年月日成绩:《软件设计基础-C#》课程设计报告第2页,共22页目录1.课程设计目的··············································································32.课程设计任务与要求·····································································33.课程设计说明书···········································································44.课程设计成果··············································································95.程序调试过程·············································································116.设计问题的不足和改进方案···························································117.课程设计心得············································································128.附录························································································139.参考文献··················································································22《软件设计基础-C#》课程设计报告第3页,共22页1.课程设计目的《软件设计基础-C#》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C#的知识点,又接近工程实际需要。目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C#这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。2.课程设计任务与要求:要求:本次课程设计利用《软件设计基础-C#》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。要求:1、对系统进行功能需求分析2、设计合理的数据结构和系统框架3、界面设计美观、清楚、合理4、编程简练,程序功能齐全,能正确运行5、具有一定的创新性6、说明书、流程图要清楚7、课题完成后必须按要求提交课程设计报告任务:通过这次课程设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择应用算法的设计及其实现等方面加深课程基本内容的理解。同时,在程设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练《软件设计基础-C#》课程设计报告第4页,共22页3.课程设计说明书⑴功能描述1,顾客取号,需要办理业务的顾客到取票机前取号,并获得打印出的排队号。2、顾客休息等待,取到排队号的顾客在休息区休息等待,注意大厅的提示信息。3、营业员按钮呼叫,窗口操作员按“下一位”,当前窗口就显示顾客排队号并语音呼叫“请XX到X号窗口”4、顾客到窗口办理,休息区的顾客到呼叫就到响应窗口进行一对一服务。⑵排队叫号软件的具体操作流程为:⑷代码实现详细说明各功能模块的实现过程,所用到的算法、技巧等。1、在这个程序中,主要运用了队列这种结构:队列是一种特殊的线性表,是一种只允许在表的一端插入操作而在另一端进行删除操作的线性表。进行插入操作的表尾称为队尾(Rear),进行删除操作的头部称为对(Front)。当队列中没有数据元素时称为空队列(EmptyQueue)。队列通常记为Q=(a1,a2,…,an),a1为对头元素,an为队尾元素。这n个元素是按照a1,a2,…an的次序依次入队的,出队的顺序与入队顺序相同,a1第一个出队,an最后一个出队。队列的结构示意图如下:出队a1a2…an入队2、队列的特征:队列的操作是按照“先进先出”或“后进后出”的原则进行的。3、队列的基本操作:(1)入队列操作:EnQueue(Telem);(2)出队列操作:DeQueue();(3)取队头元素:GetFront();(4)求队列的长度;GetLength();(5)判断队列是否为空:IsEmpty();(6)清空操作:Clear();1、顾客取号需要办理业务的顾客到取票机前取号,并获得打印出的2、顾客休息等待取到排队号的顾客在休息区休息等待,注意大厅的提示信息3、营业员按钮呼叫窗口操作员按“下一位”,当前窗口就显示顾客排队号并语音呼叫“请XX到X号窗口”4、顾客到窗口办理休息区的顾客听到呼叫就到响应窗口进行一对一服务《软件设计基础-C#》课程设计报告第5页,共22页(7)判断是否为满: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:表示循环队列的最大容量;《软件设计基础-C#》课程设计报告第6页,共22页字段front:表示对头,范围是0~maxsize-1;字段rear:表示队尾,范围也是0~maxsize-1;字段data:表示数组用于存储循环顺序队列中的数据元素;(2)、属性在类中并设置了队头属性(front)、队尾属性(rear)、容量属性(maxsize)、索引器属性(this);(3)、方法在这个类中有接口IQueue中的一切方法;银行叫号顺序队列类CSeqBankQueue类:该类实现IBankQueue接口中定义的全部行为,通过继承CSeqQueueT将已实现的全部行为继承过来;此外,设置了一个新来顾客的服务号属性Callnumber;通过方法GetCallnumber()获得服务号;《软件设计基础-C#》课程设计报告第7页,共22页Form1类:Form1继承了系统中的Form类;在Form1中使用了button、label、textBox等控件;使用了button_Click方法实现取号行为;Form2类:Form2也继承了系统中的Form类;在Form2中也使用了button、label、textBox等控件;使用了button_Click方法实现叫号行为;Form3类:Form3也继承了系统中的Form类;在Form2中也使用了button、label、textBox等控件;《软件设计基础-C#》课程设计报告第8页,共22页使用了button_Click方法实现叫号行为;Form4类:Form4也继承了系统中的Form类;在Form2中也使用了button、label、textBox等控件;使用了button_Click方法实现叫号行为;服务窗口ServiceWindow类:服务队列的属性BankQ;作为线程的方法Service();主程序Main()方法;《软件设计基础-C#》课程设计报告第9页,共22页4.课程设计成果:《软件设计基础-C#》课程设计报告第10页,共22页《软件设计基础-C#》课程设计报告第11页,共22页5.程序调试过程:按下F5进行调试,出现错误.有时把”.”写成“,”,忘记“;”,或少写“}”,最后调试成功。6.设计问题的不足和改进方案由于时间紧,设计不是很合理,触屏取号应该更方便。《软件设计基础-C#》课程设计报告第12页,共22页7.课程设计心得:我们认为,在这学期的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。在整个过程中,应该注意以下几点:①要求利用面向对象的方法以及队列数据结构来完成系统的设计;②.在设计的过程中,建立清晰的类层次;③在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;④要运用面向对象的机制来实现系统功能。通过对完成这次课程设计,加深了对队列这种数据结构的理解,掌握了队列数据结构极其算法;此外也能够更加熟练的使用button。Label。textBox等控件《软件设计基础-C#》课程设计报告第13页,共22页8.附录源代码IQueue接口代码:usingSystem;namespaceQueueDs{interfaceIQueueT{voidEnQueue(Telem);//入队列操作TDeQueue();//出队列操作TGetFront();//取对头元素intGetLength();//求队列的长度boolIsEmpty();//判断队列是否为空voidClear();//清空队列boolIsFull();//判断是否为满,在顺序队列中实现该算法,在链式队列中代码实现为空}}IBankQueue接口代码:usingSystem;namespaceQueueDs{interfaceIBankQueue:IQueueint{intGetCallnumber();//获得服务号码}}顺序队列代码:usingSystem;namespaceQueueDs{publicclassCSeqQueueT:IQueueT{privateintmaxsize;//循环顺序队列的容量privateT[]data;//数组,用于存储循环顺序队列中的数据元素privateintfront;//指示最近一个己经离开队列的元素所占的位置privateintrear;//指示最近一个进行入队列的元素的位置//索引器publicTthis[intindex]{get{returndata[index];《软件设计基础-C#》课程设计报告第14页,共22页}set{data[index]=value;}}//容量属性publicintMaxsize{get{returnmaxsize;}set{maxsize=value;}}//队头指示器属性publicintFront{get{returnfront;}set{front=value;}}//队尾指示器属性publicintRear{get{returnrear;}set{rear=value;}}//初始化队列publicCSeqQueue(){}publicCSeqQueue(intsize){《软件设计基础
本文标题:C#银行排队叫号系统课程设计报告
链接地址:https://www.777doc.com/doc-3931170 .html