2020年(金融保险)银行家算法

上传人:精****库 文档编号:136427937 上传时间:2020-06-28 格式:DOC 页数:12 大小:1,007.61KB
返回 下载 相关 举报
2020年(金融保险)银行家算法_第1页
第1页 / 共12页
2020年(金融保险)银行家算法_第2页
第2页 / 共12页
2020年(金融保险)银行家算法_第3页
第3页 / 共12页
2020年(金融保险)银行家算法_第4页
第4页 / 共12页
2020年(金融保险)银行家算法_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《2020年(金融保险)银行家算法》由会员分享,可在线阅读,更多相关《2020年(金融保险)银行家算法(12页珍藏版)》请在金锄头文库上搜索。

1、(金融保险)银行家算法一 需求分析n 银行模拟系统要求模拟银行壹天0closetime的营业情况,业务总共分为俩类。存款和取款。开始银行拥有壹定数量的总额total供运行。程序运行输出银行在处理业务后的事件表。包括时间,存款数量,取款数量,银行余額,等待情况。n 程序输入的形式是按以下顺序输入到屏幕中,只需按照提示操作即可:银行总余額银行运行时间-交易时间上、下界-事件时间上、下界-客户存取金额n 程序输出的形式是按照时间顺序输出银行运行期间的事件表n 程序的功能是模拟显示银行在整个营业阶段的运行状况二 概要设计本程序中用到的抽象数据类型有伪随机数类random,队列类bankqueue,客户

2、类client伪随机数类random的定义如下:classrandompublic:random();/空构造函数random(unsignedshortinitialSeed);/带参构造unsignedshortrandomInterger();/种子seed产生函数doublerabdomDouble();/双精度数产生函数doublebetween(doublelow,doublehigh);/范围随机数产生函数(double型)intbetween(intlow,inthigh);/范围随机数产生函数(int型)private:unsignedshortseed;客户类client的

3、定义如下:classClientpublic:intnum;intmoney;Client*next;intDealingtime;intCasetime;客户队列bankqueue定义如下:classbankqueuepublic:intn;bankqueue();/构造bankqueue();/析构voidenqueue(Client*c);/进队列Client*dequeue();/出队列intisEmpty();/判断空否voiddeleteALLValues();/删除所有元素private:Client*front,*tail;本程序利用队列结果储存客户信息:三 详细设计随机数类实

4、现:l 随机数类构造种子=时钟;l 返回短整数的函数乘数=33339;加数=759812;种子=(乘数*种子+加数)%31637687;返回种子;l 在low和high之间产生整型随机数调用返回短整数的函数+low;银行节点和队列类实现:l 银行队列构造函数前指针=0;尾指针=0;长度=0;l 析构函数;进队列函数(银行节点指针)节点指针数据复制到新节点指针数据如果队列空前指针=0;尾指针=0尾指针=0;长度+1;出队列新建指针P头指针向前走查见队列是否为空返回指针Pl 判断队列是否为空返回头指针是否为0;删除所有元素长度,尾指针置0;从队列里弹出节点且删除四 调试分析 银行模拟系统调试过程中

5、遇到的问题:由于要运用到文件输入输出流,无法访问Bank类的私有数据,故将大部分程序写入Main函数中经验和体会等:从写完代码到调试成功,最后不断的改进和完善,不仅巩固了类定义和实现,仍极大的挑战了我们编程能力。五 用户使用说明 银行模拟系统在程序运行时会依次显示-欢迎使用银行模拟系统,请按提示输入-请输入银行最初存款总额:请输入银行营业时间:输入客户交易时间的上、下界,且以逗号分隔开:请输入事件之间时间间隔的上、下界,且以逗号分隔开:请按顺序输入客户存取款的数额(取款负在金额前增加“-”,存款直接输入金额即可,且以空格区分)输入0模拟结束:只需按照提示输入数据即可得到结果六 测试数据 银行模

6、拟系统:l 正确的测试数据:输入数据:0600100,120,1100200-300200y100006000020,120,1-10000-110000-5000060000-7000-80000-9000010000000n输出:-欢迎使用银行模拟系统,请按提示输入-请输入银行最初存款总额:请输入银行营业时间:输入客户交易时间的上、下界,且以逗号分隔开:请输入事件之间时间间隔的上、下界,且以逗号分隔开:请按顺序输入客户存取款的数额(取款负在金额前增加“-”,存款直接输入金额即可,且以空格区分)输入0模拟结束:第1个客户,从营业开始的第0分钟,来到银行,想要存取款100当前银行余額为¥0第1

7、个客户,从营业开始的第0分钟,向银行存款$100当前银行余額为¥100第1个客户,从营业开始的第53分钟,离开银行当前银行余額为¥100当下检查第二队列第2个客户,从营业开始的第65分钟,来到银行,想要存取款200当前银行余額为¥100第2个客户,从营业开始的第65分钟,向银行存款$200当前银行余額为¥300第2个客户,从营业开始的第72分钟,离开银行当前银行余額为¥300当下检查第二队列第3个客户,从营业开始的第79分钟,来到银行,想要存取款-300当前银行余額为¥300第3个客户,从营业开始的第79分钟,向银行存款$-300当前银行余額为¥0第3个客户,从营业开始的第148分钟,离开银行

8、当前银行余額为¥0当下检查第二队列第4个客户,从营业开始的第155分钟,来到银行,想要存取款20当前银行余額为¥0第4个客户,从营业开始的第155分钟,向银行存款$20当前银行余額为¥20第4个客户,从营业开始的第230分钟,离开银行当前银行余額为¥20当下检查第二队列广播:走过路过不要错过,存钱取钱安全方便又实惠是否需要对次日继续模拟(Y/N):请输入银行最初存款总额:请输入银行营业时间:输入客户交易时间的上、下界,且以逗号分隔开:请输入事件之间时间间隔的上、下界,且以逗号分隔开:请按顺序输入客户存取款的数额(取款负在金额前增加“-”,存款直接输入金额即可,且以空格区分)输入0模拟结束:第1

9、个客户,从营业开始的第0分钟,来到银行,想要存取款-10000当前银行余額为¥10000第1个客户,从营业开始的第0分钟,向银行存款$-10000当前银行余額为¥0第1个客户,从营业开始的第13分钟,离开银行当前银行余額为¥0当下检查第二队列第2个客户,从营业开始的第25分钟,来到银行,想要存取款-1当前银行余額为¥0银行总额不足,第2个客户转入第二队列等待当前银行余額为¥0第3个客户,从营业开始的第32分钟,来到银行,想要存取款10000当前银行余額为¥0第3个客户,从营业开始的第32分钟,向银行存款$10000当前银行余額为¥10000第3个客户,从营业开始的第41分钟,离开银行当前银行余

10、額为¥10000当下检查第二队列在第3个客户后,从营业开始的第57分钟,有第二队列客户从银行取款-1离开第4个客户,从营业开始的第57分钟,来到银行,想要存取款-50000当前银行余額为¥9999银行总额不足,第4个客户转入第二队列等待当前银行余額为¥9999第5个客户,从营业开始的第72分钟,来到银行,想要存取款60000当前银行余額为¥9999第5个客户,从营业开始的第72分钟,向银行存款$60000当前银行余額为¥69999第5个客户,从营业开始的第84分钟,离开银行当前银行余額为¥69999当下检查第二队列在第5个客户后,从营业开始的第111分钟,有第二队列客户从银行取款-50000离

11、开第6个客户,从营业开始的第111分钟,来到银行,想要存取款-7000当前银行余額为¥19999第6个客户从银行取款¥-7000当前银行余額为¥12999第6个客户,从营业开始的第113分钟,离开银行当前银行余額为¥12999第7个客户,从营业开始的第126分钟,来到银行,想要存取款-80000当前银行余額为¥12999银行总额不足,第7个客户转入第二队列等待当前银行余額为¥12999第8个客户,从营业开始的第130分钟,来到银行,想要存取款-90000当前银行余額为¥12999银行总额不足,第8个客户转入第二队列等待当前银行余額为¥12999第9个客户,从营业开始的第148分钟,来到银行,想要存取款1000000当前银行余額为¥12999第9个客户,从营业开始的第148分钟,向银行存款$1000000当前银行余額为¥1012999第9个客户,从营业开始的第155分钟,离开银行当前银行余額为¥1012999当下检查第二队列在第9个客户后,从营业开始的第171分钟,有第二队列客户从银行取款-80000离开在第9个客户后,从营业开始的第178分钟,有第二队列客户从银行取款-90000离开广播:走过路过不要错过,存钱取钱安全方便又实惠是否需要对次日继续模拟(Y/N):七 源程序见附件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号