银行家算法简要概述_第1页
银行家算法简要概述_第2页
银行家算法简要概述_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、andom,队歹U类 bankqueue,客户类public:带参构造种子 seed 产生函数random();/ 空构造函数random(unsigned short initialSeed);/ unsigned short randomInterger();/double rabdomDouble();/ 双精度数产生函数double between(double low ,double high);/ 范围随机数产生函数 (double 型)int between(int low,int high);/范围随机数产生函数( int 型)private:unsigned short se

3、ed;客户类 client 的定义如下:class Clientpublic:int num;int money;Client *next;int Dealingtime;int Casetime;客户队歹 bankqueue 定义如下 : class bankqueuepublic:int n;ban kqueue();构造ba nkqueue();析构void en queue(Clie nt * c);进队列Clie nt* dequeue。;/出队列int isEmpty();判断空否void deleteALLValues();删除所有元素private:Clie nt *fron

4、t,*tail;本程序利用队列结果储存客户信息从q1中逐个弹出客户信 息,进行交易,并显示结 果随机类产生客户信息储 存与q1队列里时间到或者所以业务已经完成就退 出。删除q1, q2保存的信息。详细设计随机数类实现: 随机数类构造种子=时钟;返回短整数的函数乘数=33339;力口数=759812;种子=(乘数*种子+加数)31637687; 返回种子;在low和high之间产生整型随机数调用 返回短整数的函数 +low ;银行节点和队列类实现:银行队列构造函数前指针 =0;尾指针 =0;长度 =0;析构函数 ;进队列函数 ( 银行节点指针 )节点指针数据复制到新节点指针数据如果队列空前指针

5、=0;尾指针 =0尾指针 =0;长度 +1;出队列新建指针 P头指针向前走查看队列是否为空返回指针 P判断队列是否为空返回 头指针是否为 0;删除所有元素长度,尾指针置 0;从队列里弹出节点并删除四 调试分析? 银行模拟系统调试过程中遇到的问题 :由于要运用到文件输入输出流,无法访问 Bank 类的私有数据,故将大部分程 序写入 Main 函数中经验和体会等:从写完代码到调试成功, 最后不断的改进和完善, 不仅巩固了类定义和实现, 还极大的挑战了我们编程能力。五 用户使用说明? 银行模拟系统 在程序运行时会依次显示 欢迎使用银行模拟系统 ,请按提示输入 请输入银行最初存款总额 : 请输入银行营

6、业时间 :输入客户交易时间的上、下界 ,并以逗号分隔开: 请输入事件之间时间间隔的上、下界,并以逗号分隔开:请按顺序输入客户存取款的数额(取款负在金额前增加“ -”,存款直接输入金额即可,并以空格区分) 输入 0 模拟结束 :只需按照提示输入数据即可得到结果六 测试数据 ? 银行模拟系统: 正确的测试数据:输入数据:0 600 100,1 20,1 100 200 -300 20 0 y10000 60000 20,1 20,1 -10000 -1 10000 -50000 60000 -7000 -80000 -90000 1000000 0 n 输出: 欢迎使用银行模拟系统 ,请按提示输入

7、 请输入银行最初存款总额 : 请输入银行营业时间 :输入客户交易时间的上、下界,并以逗号分隔开:请输入事件之间时间间隔的上、下界,并以逗号分隔开:请按顺序输入客户存取款的数额(取款负在金额前增加“ -”,存款直接输入金额即可,并以空格区分) 输入 0 模拟结束 :第 1 个客户 ,从营业开始的第 0 分钟,来到银行 , 想要存取款 100当前银行余額为Y 0第 1 个客户 ,从营业开始的第 0 分钟,向银行存款 $100当前银行余額为Y 100第 1 个客户 ,从营业开始的第 53 分钟,离开银行当前银行余額为Y 100现在检查第二队列第 2 个客户 ,从营业开始的第 65 分钟,来到银行 ,

8、想要存取款 200当前银行余額为Y 100第 2 个客户 ,从营业开始的第65 分钟,向银行存款 $200当前银行余額为Y 300第 2 个客户 ,从营业开始的第72 分钟,离开银行当前银行余額为Y 300现在检查第二队列第 3 个客户 ,从营业开始的第 79 分钟,来到银行 ,想要存取款 -300当前银行余額为Y 300第 3 个客户 ,从营业开始的第当前银行余額为Y 079 分钟,向银行存款 $-300第 3 个客户 ,从营业开始的第 148 分钟,离开银行当前银行余額为Y 0现在检查第二队列第 4 个客户 ,从营业开始的第 155 分钟,来到银行 ,想要存取款 20当前银行余額为Y 0第

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

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

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

12、9现在检查第二队列-50000 离开在第 5个客户后 ,从营业开始的第 111 分钟,有第二队列客户从银行取款第 6 个客户 ,从营业开始的第 111 分钟,来到银行 ,想要存取款 -7000当前银行余額为Y 19999第6个客户从银行取款Y -7000当前银行余額为Y 12999第 6 个客户 ,从营业开始的第 113 分钟,离开银行当前银行余額为Y 12999第 7 个客户 ,从营业开始的第 126 分钟,来到银行 ,想要存取款 -80000当前银行余額为Y 12999银行总额不足,第 7 个客户转入第二队列等待当前银行余額为Y 12999第 8 个客户 ,从营业开始的第 130 分钟,来到银行 ,想要存取款 -90000当前银行余額为Y 12999银行总额不足,第 8 个客户转入第二队列等待当前银行余額为Y 12999第 9 个客户 ,从营业开始的第 148 分钟,来到银行 ,想要存取款 1000000当前银行余額为Y 12999第 9 个客户 ,从营业开始的第 148 分钟,向银行存款 $1000000当前银行余額为Y 1012

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论