银行家算法50671.docx
《银行家算法50671.docx》由会员分享,可在线阅读,更多相关《银行家算法50671.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Evaluation Warning: The document was created with Spire.Doc for .NET.一 需求分析n 银行模拟系统要求模拟银行一天0closetime的营业情况,业务总共分为两类。存款与取款。开始银行拥有一定数量的总额total供运行。程序运行输出银行在处理业务后的事件表。包括时间,存款数量,取款数量,银行余額,等待情况。n 程序输入的形式式是按以下顺顺序输入到屏屏幕中,只需需按照提示操操作即可:银行总余額 银行运行行时间-交交易时间上、下下界-事件时间上、下界界-客户存存取金额n 程序输出的形式式是按照时间间顺序输出银银行运行期间间的事件表
2、n 程序的功能是模模拟显示银行行在整个营业业阶段的运行行状况二 概要设计本程序中用到的的抽象数据类类型有伪随机机数类ranndom,队队列类bannkqueuue,客户类类cliennt伪随机数类raandom的的定义如下:class rrandommpublic:randomm();/空构造函数数randomm(unsiigned shortt inittialSeeed);/带参构造造unsignned sshort randoomInteerger();/种种子seedd产生函数doublee rabddomDouuble();/双精精度数产生函函数doublee betwween(dd
3、oublee loww ,douuble hhigh);/范围随随机数产生函函数(douuble型)int beetweenn(int low,iint hiigh);/范围随机机数产生函数数(int型型)privatee:unsignned shhort sseed;客户类clieent的定义义如下:class CClientt public:int nuum;int mooney;Clientt *nexxt;int Deealinggtime;int Caasetimme;客户队列bannkqueuue定义如下下:class bbankquueuepublic:int n;bankquu
4、eue();/构造造bankqqueue();/析析构void eenqueuue(Cliient * c);/进队列Clientt* deqqueue();/出出队列int issEmptyy();/判断空否void ddeleteeALLVaalues();/删删除所有元素素privatee:Clientt *froont,*ttail;本程序利用队列列结果储存客客户信息: 按提示输入初始化银行系统客户信息随机类产生客户信息储存与q1队列里从q1中逐个弹出客户信息,进行交易,并显示结果不能满足的客户保存在q2中等待处理时间到或者所以业务已经完成就退出。删除q1,q2保存的信息。 三 详细设
5、计随机数类实现:l 随机数类构造种子=时钟;l 返回短整数的函函数乘数=333339;加数=7599812;种子=(乘数数*种子+加数)%3116376887;返回种子;l 在low和hiigh之间产产生整型随机机数调用 返回短短整数的函数数+low; 银行节点点和队列类实实现:l 银行队列构造函函数前指针=0;尾指针=0;长度=0;l 析构函数;进队列函数(银银行节点指针针)节点指针数据据复制到新节节点指针数据据如果队列空前指针=00; 尾指针针=0尾指针=0;长度+1;出队列新建指针P头指针向前走走查看队列是否为为空返回指针Pl 判断队列是否为为空返回 头指针针是否为0;删除所有元素长度,
6、尾指针置置0;从队列里弹出出节点并删除除四 调试分析 银行模拟系统调试过程中遇到到的问题:由于要运用到文文件输入输出出流,无法访访问Bankk类的私有数数据,故将大大部分程序写写入Mainn函数中经验和体会等:从写完代码到调调试成功,最最后不断的改改进和完善,不不仅巩固了类类定义和实现现,还极大的的挑战了我们们编程能力。五 用户使用说明 银行模拟系统在程序运行时会会依次显示-欢迎使用银银行模拟系统统,请按提示示输入-请输入银行最初初存款总额:请输入银行营业业时间:输入客户交易时时间的上、下下界,并以逗逗号分隔开:请输入事件之间间时间间隔的的上、下界,并以逗号分分隔开:请按顺序输入客客户存取款的
7、的数额(取款负在金额额前增加“-”,存款直接接输入金额即即可,并以空空格区分)输入0模拟结束束:只需按照提示输输入数据即可可得到结果六 测试数据 银行模拟系统:l 正确的测试数据据:输入数据:0 600 1100,1 20,1 100 2200 -3300 200 0 y10000 660000 20,1 20,1 -100000 -1 100000 -500000 600000 -7000 -800000 -900000 110000000 0 nn输出:-欢迎使用银银行模拟系统统,请按提示示输入-请输入银行最初初存款总额:请输入银行营业业时间:输入客户交易时时间的上、下下界,并以逗逗号分隔
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行家 算法 50671
限制150内