还剩2页未读,继续阅读
文本内容:
数据结构课程设计报告题目银行营业模拟演示系统班级班姓名朱吉学号完成日期0003201040310207
一、需求分析用队列来模拟演示银行中客户排的队当客户进入银行后,会排到最短的队列;而当排队的过程中,如CQueue果某条队明显短了,排在较长队列的客户就会转到最短的队列在程序中,用随机数发生函数来产生客户进入银行的时间,此时,检测各队列的长度,将客户放入最短的队列;同时,检查是否有某个队列的长度特别短,如果有的话,将最长的队列中的客户转到最短的队列中,而这个转移的客户由产生随机数来模拟程序界面如下列图所示
二、概要设计程序中主要用到了两种数据结构队列和链表队列数据类型的定义
1.队列节点类class CQNodefriendclass CQueue;private:CCustomer Customer;CQNode*Next;public:CQNode;CQNode const CCustomer CUST0MER,CQNode*NEXT=NULL;CQNode;队列类class CQueueprivate:CQNode*QHead;CQNode*QTail;int Length;public:CQueue;CQueue const CQueue Q;^CQueue;voi denqueue constCCustomer CUSTOMER;CCustomer dequeue;CCustomer front;CCustomer getconst int POS const;bool removeconst intPOS;void clear;void sortconst SORTMETHODMethod,const boolResetld=false;int sizeconst;bool isEmptyconst;int searchconstCCustomerCUSTOMER const;CQueue operator=constCQueueQ;CCustomer operator[]const intPOS;双向链表数据类型的定义
2.链表节点类template classType classDNode friendclass DLinkListType;private:Type Data;DNODE*Next;DNODE*Prior;public:DNodevoid:Data,NextNULL,PriorNULL;DNode const Type myData,DNODE PRIOR=NULL,DNODE*NEXT=NULL;DNode constDNODE femyNode;DNode;void setconst TypefemyData;Type getvoid;DNODE ftoperalor二cons IDNODE AmyNode;DNODE feoperator=const TypemyData;链表类ttdefine DLTNKDLinkListTypetemplate classType classDLinkListprivate:int Length;int CurPos;DNODE*Head;DNODE*Tail;DNODE*CurP;void GoToconst int Pos;public:DLinkListvoid;DLinkListconst DLINKList;DLinkList;void insertconst Type Data;bool insertconstType Data,const int Pos;void insertconstDNODE Node;bool insertconstDNODENode,const intPos;bool remove;bool removeconst intPos;void clearvoid;int searchconstType Data,const intPos=1;bool setDataconstType Data;bool setDataconstTypeData,const intPos;Type getDatavoid;Type getDataconst intPos;bool golleadvoid;bool goTailvoid;bool goNextconst intLen=1;bool goPriorconstintLen=1;bool moveToconstintPos;int positionvoid;int sizevoid;bool isEmptyvoid;bool islnconstTypeData;DLINK feoperator=const DLINKList;DLINK operator+const DLTNKList;DLINK operator+=const DLINKList;Type operator[]constintPos;
三、详细设计:程序主要分为界面设计和数据结构设计两局部,而数据结构主要的设计对象是队列,队列是该程序设计的重点由于源代码太长,限于篇幅,在此省略了源代码,程序的详细设计可以参看源文件
四、调试分析由于队列本身就是线性表,而线性表是几种数据结构中最简单的结构,所以对于队列的调试十分简单,并没有遇到困难而本程序是一个演示程序,所以对于演示以及动画的调试花了相当多的时间程序用了两个组件Timer来实现队列调整和动画,由于使用的是多线程,所以两个的工作不是同步的,这里就要考虑数据操作Timer Timer的同步问题,因此这也是调试中的一个难点另外,由于演示区的空间有限,所以当队列较多时,需要提供上下滚动的功能,这在程序的实现过程中也是一个困难之处
五、课设感想写程序是一种乐趣,特别是当我看到别人在用我的程序时,我会感到无比的喜悦而数据结构是任何程序的基础,没有数据结构的支持,就没有程序的存在,至少说不会存在有价值的程序这个学期,我写了好多程序,如八皇后问题、迷宫问题、赫夫曼编码文本加密程序,还有这个课程设计——银行营业模拟演示系统,虽然都是很简单的数据结构,但是如果没有线性表、队列、二叉树等数据结构的支撑,我想是写不出这些程序的另一方面,在学习数据结构的同时,我也学会了使用应该说已经掌握了很多程序设计中的高级技巧,我想这也是数据C++Builder,结构这门课的功绩有了数据结构的知识,再加上程序设计技术,这对以后对计算机技术的深入学习应该会有很大的帮助的
六、附录源程序文件清单:。
个人认证
优秀文档
获得点赞 0