资源描述:
《银行业务模拟系统课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、石家庄经济学院本科生课程设计报告书 题 目银行业务模拟系统姓 名 郑小波学 号 410109030211学 院 信息工程学院 专 业 计算机 指导教师 张友华完成日期:2012-7-4银行业务模拟系统1需求分析1.1问题描述:客户业务分为两种。第一种是申请从银行得到一笔资金,即取款或借款。第二种是向银行投入一笔资金,即存款或还款。银行有两个服务窗口,相应的有两个队列。客户到达银行后先排第一个队。处理每个客户业务时,如果属于第一种,且申请额超出银行现存资金总额而得不到满足,则立即排入第二队等候,直至满足时才离开
2、银行,否则业务处理完后立即离开银行。每接待完一个第二种业务的客户,则顺序检查和处理(如果可能)第二个队列的客户,对能满足的申请者予以满足,不能满足者重新排到第二个队列的队尾。注意,在此检查过程中,一旦银行资金总额少于或等于刚才第一个队列中最后一个客户(第二种业务)被接待之前的数额,或者本次已将第二个队列检查或处理了一遍,就停止检查(因为此时已不可能还有能满足者)转而继续接待第一个队列的客户。任何时刻都只开一个窗口。假设检查不需要时间。营业时间结束时所有客户立即离开银行。写一个上述银行业务的事件驱动模拟系统,通过模拟方法求出
3、客户在银行内逗留的平均时间。1.2系统的输入输出:输入:1、银行的初始存款Total2、银行的营业时间3、最大到达时间间隔arrivetime4、最大交易时间dealtime,5、到达时间和每个客户要办理的款额随机产生。输出:1、顾客在银行内平均逗留时间。2、下班时银行剩余的资金总额。1.3系统的测试用例:①输入:一天营业开始时银行拥有的款额为10000(元),营业时间为600(分钟),最大达到时间间隔20,最大交易时间5。(到达事件的间隔时间很长,而客户的交易时间很短。)客户逗留时间,到达时间,客户存取款金额由程序随机产
4、生。客户序号事件类型时间处理金额1到达9:1340001离开9:1740002到达9:1720002离开9:2120003到达9:23-15003离开9:25-15004到达9:30100004离开9:35100005到达9:36-30005离开9:38-3000说明:正数代表存款金额,负数代表取款金额。②输出:一天内客户的数目为5,下班时银行剩余资金总额为21500,顾客在银行内平均逗留时间为3.4。2概要设计本题用队列的抽象数据类型登录排队等候办理业务的顾客情况。队列中的每个元素包括顾客进们的时刻和办理业务所需时间。1
5、、队列的抽象数据类型定义为ADTQueue{数据对象:D={ai
6、ai∈ElemSet,i=1,2,…,n,n≥0}数据关系:R={
7、ai-1,ai∈D,i=1,2,…,n}基本操作: Initqueue0211(linkqueue&a) 操作结果:构造一个空队列a puch0211(queue&q,intd) 初始条件:队列q已存在 操作结果:在队尾插入一个元素e pop0211(queue&q)初始条件:队列q已存在 操作结果:获取队列的队头service*
8、front0211(queue&q)初始条件:队列q已存在 操作结果:返回队首元素service*back0211(queue&q)初始条件:队列q已存在 操作结果:返回队尾元素service*searchAndDel0211(queue&q)初始条件:队列q已存在 操作结果:在队里寻找可处理元素}ADTQueue2、自定义函数:voidputMoney0211()操作结果:处理存款事件voidgetMoney0211()操作结果:处理取款事件voidarrive0211()初始条件:初始化操作完毕
9、操作结果:处理客户到达事件voidfindAndDeal0211()操作结果:寻找可处理客户事件3、主函数设计voidmain(){输出主界面;选择操作:进入银行业务模拟系统/退出程序;While(进入银行业务模拟窗口){OpenForDay();进行初始化操作;输出格式控制;{银行业务模拟:while(有要处理的事件时)//有事件可处理{DeQueue1();//队列1出队列,并用en返回值if(客户到达)CustomerArrived();//处理客户到达事件elseCustomerDeparture();//处理客户
10、离开事件}计算出客户的平均逗留时间并输出}返回主界面:选择操作:继续进行业务模拟/退出程序;If(选择的是退出)退出程序;}}3详细设计提示:根据概要设计,给出数据的存储表示(存储结构),完成相关算法的设计。存储结构:1、线性表结构体typedefstruct{intarrivetime;//到达时间i