- 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)