资源描述:
《数据结构课程设计报告(1)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构课程设计报告(1)题目:银行业务模拟系统姓名:丘锋伟学号:2003040140224班级:计算机科学与技术03级(2)班指导老师:吴伟民完成日期:2005年6月26日一.需求分析1.银行营业初拥有资本为:TotalAmount(元),营业时间为:CloseTime(分钟),这两个模拟参数由测试用户设定.2.客户业务分为两种:第一种是申请从银行得到一笔资金,即取款或贷款;第二种是向银行投入一笔资金,即存款或还款.3.银行有两个服务窗口,相应地有两个队列.客户到达银行先排第一个队.处理每个客户业务时,如果属于第一种,且申请额超出银行现存资金总额而得不到满足时,则立刻
2、排入第二个队等候,直至满足时才离开银行;否则业务处理完后立刻离开银行.4.每接待完一个第一种业务的客户,则顺序检查和处理(如果可能)第二个队列中的客户,对能满足的申请者予以满足,不能满足者重新排到第二个队列的队尾.假设检查不需要时间,在此检查过程中,一旦银行资金总额少于或等于刚才第一个队列中最后一个客户(第二种业务)被接待前的数额,或者本次已将第二个队列检查或处理了一遍就停止检查,转而继续接待第一个队列的客户.5.任何时刻都只开一个窗口,营业时间结束时所有客户立即离开银行.二.概要设计1.设定有序事件链表的抽象数据类型定义:ADTEventList{数据对象:D={ai
3、
4、ai∈Event,i=1,2,···,n,n≥0}数据关系:R1={
5、ai-1,ai∈Event,ai-1<ai,i=2,3,···,n}基本操作:InitEVList(&EV) 操作结果:构造一个空的有序事件链表EV.EmptyEV(&EV)初始条件:有序事件链表EV已存在.操作结果:若EV为空,返回1;否则返回0.cmp(a,b) 初始条件:事件a和b已存在. 操作结果:若a先发生,返回1;若同时发生,返回0否则返回-1;OrderInsert(&EV,&en,cmp()) 初始条件:有序事件链表EV已存在,en为驱动事件. 操作结果:驱动事件按
6、时间有序插入事件链表中.DelFirstEV(&EV,&en)初始条件:有序事件链表EV已存在,en为驱动事件变量.操作结果:删除EV中的第一个结点并以en返回其值.}ADTEventList2.设定客户信息队列的抽象数据类型定义:ADTQueueList{数据对象:D={ai
7、ai∈QueueElem,i=1,2,···,n,n≥0}数据关系:R1={
8、ai-1,ai∈QueueElem,i=2,3,···,n}基本操作:InitQuList(&Queue)操作结果:构造一个空队列.EmptyQueue(&Queue)初始条件:队列已存在.操作结果:
9、若队列为空,返回1;否则返回0.GetHead(Queue,&customer)初始条件:队列已存在.操作结果:若队列不空,则以customer返回队头元素.EnQueue(&Queue,customer)初始条件:队列已存在.操作结果:新元素customer入队列.DelQueue(&Queue,&customer)初始条件:队列已存在.操作结果:队头元素出队列,并以customer返回其值.}ADTQueueList1.本程序包含三个模块①主程序模块:voidmain(){输出主界面;选择操作:进入业务模拟窗口/退出程序;进入业务模拟窗口:{输出业务模拟窗口;选择操
10、作:银行业务模拟/返回主界面/退出程序;银行业务模拟:{输入模拟参数;输出业务模拟结果窗口; }返回主界面:退出程序:}退出程序:}②客户到达事件处理模块――实现客户信息队列的抽象数据类型.③客户离开事件处理模块――实现有序事件链表的抽象数据类型.一.详细设计1.有序事件链表类型structEvent//驱动事件{intOccurtime;//事件发生时间intNType;//事件类型Event*next;};typedefEvent*EventList;voidInitEVList(EventList&EV);//事件初始化函数intEmptyEV(EventList
11、&EV);//判断有序链表是否为空intcmp(Eventa,Eventb);//事件发生时间比较函数VoidOrderInsert(EventList&EV,Event&en,int(*cmp)(Event,Event));//驱动事件按时间有序插入事件链表函数voidDelFirstEV(EventList&EV,Event&en);//取出并删除事件链表中的第一个结点2.客户信息队列类型structQueueElem//客户信息{intArrtime;//客户到达时间intDuration;//客户交易时间intAmount;//客