银行家算法简要概述.docVIP

  • 4
  • 0
  • 约4.31千字
  • 约 7页
  • 2021-11-04 发布于北京
  • 举报
精品资料/word可编辑 精品资料/word可编辑 PAGE / NUMPAGES 精品资料/word可编辑 需求分析 银行模拟系统要求模拟银行一天0~closetime的营业情况,业务总共分为两类。存款与取款。开始银行拥有一定数量的总额total供运行。程序运行输出银行在处理业务后的事件表。包括时间,存款数量,取款数量,银行余額,等待情况。 程序输入的形式是按以下顺序输入到屏幕中,只需按照提示操作即可: 银行总余額 –银行运行时间-交易时间上、下界-事件时间上、下界-客户存取金额 程序输出的形式是按照时间顺序输出银行运行期间的事件表 程序的功能是模拟显示银行在整个营业阶段的运行状况 概要设计 本程序中用到的抽象数据类型有伪随机数类random,队列类bankqueue,客户类client 伪随机数类random的定义如下: class random { public: random();//空构造函数 random(unsigned short initialSeed);//带参构造 unsigned short randomInterger();//种子seed产生函数 double rabdomDouble();//双精度数产生函数 double between(double low ,double high);//范围随机数产生函数(double型) int between(int low,int high);//范围随机数产生函数(int型) private: unsigned short seed; }; 客户类client的定义如下: class Client { public: int num; int money; Client *next; int Dealingtime; int Casetime; }; 客户队列bankqueue定义如下: class bankqueue { public: int n; bankqueue();//构造 ~bankqueue();//析构 void enqueue(Client * c);//进队列 Client* dequeue();//出队列 int isEmpty();//判断空否 void deleteALLValues();//删除所有元素 private: Client *front,*tail; }; 本程序利用队列结果储存客户信息: 按提示输入初始化银行系统客户信息随机类产生客户信息储存与q1队列里 按提示输入初始化银行系统客户信息 随机类产生客户信息储存与q1队列里 从q1中逐个弹出客户信息,进行交易,并显示结果 不能满足的客户保存在q2中等待处理 时间到或者所以业务已经完成就退出。删除q1,q2保存的信息。 详细设计 随机数类实现: 随机数类构造 { 种子=时钟; } 返回短整数的函数 { 乘数=33339; 加数=759812; 种子=(乘数*种子+加数) 返回种子; } 在low和high之间产生整型随机数 { 调用 返回短整数的函数+low; } 银行节点和队列类实现: 银行队列构造函数 { 前指针=0; 尾指针=0; 长度=0; } 析构函数{}; 进队列函数(银行节点指针) { 节点指针数据复制到新节点指针数据 如果队列空 { 前指针=0; 尾指针=0 } 尾指针=0; 长度+1; } 出队列 { 新建指针P 头指针向前走 查看队列是否为空 返回指针P } 判断队列是否为空 { 返回 头指针是否为0; } 删除所有元素 { 长度,尾指针置0; 从队列里弹出节点并删除 } 调试分析 银行模拟系统 调试过程中遇到的问题: 由于要运用到文件输入输出流,无法访问Bank类的私有数据,故将大部分程序写入Main函数中 经验和体会等: 从写完代码到调试成功,最后不断的改进和完善,不仅巩固了类定义和实现,还极大的挑战了我们编程能力。 用户使用说明 银行模拟系统 在程序运行时会依次显示 欢迎使用银行模拟系统,请按提示输入 请输入银行最初存款总额: 请输入银行营业时间: 输入客户

文档评论(0)

1亿VIP精品文档

相关文档