一、设计一个Bank类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等
Bank类包括私有数据成员账号number,rest(账户余额)和成功操作的交易记录string records(或者char records)。每一条记录包含的信息有:交易时间(精确到秒)、交易类型(存钱和取钱) 和交易金额
Bank类有一个构造函数(设置账号和初始余额)和三个成员函数
bankin(double m)(处理存入账),bankout( double m)处理取出账)和
disp(Bank b)(输出明细账)自己设计main函数使用该类
#include<iostream>
#include<time.h>
#include<string>
using namespace std;
class Bank
{
private:
long number;
double rest;
string records[50];
int N;
public:
Bank(long number, double rest)
{
this->number = number;
this->rest = rest;
this->N = 0;
}
void Bankin(double m)
{
this->rest += m;
time_t now = time(0);
char x[30];
ctime_s(x, sizeof(x), &now);
this->records[N++] = (string)"交易时间为:" +x + (string)"交易类型为:存钱 " + (string)"交易金额为:" + to_string(m);
}
void Bankout(double m)
{
if (m > this->rest)
{
cout << "余额不足" << endl;
return;
}
this->rest -= m;
time_t now = time(0);
char x[30];
ctime_s(x, sizeof(x), &now);
this->records[N++] = (string)"交易时间为:" + x + (string)"交易类型为:取钱 " + (string)"交易金额为:" + to_string(m);
}
friend void disp(Bank& b);
};
void disp(Bank& b)
{
cout <<b.number<<"账户剩余余额为:" << b.rest << endl;
cout << "该账户共有" << b.N << "条交易记录" << endl;
for (int i = 0; i < b.N; i++)
{
cout << b.records[i] << endl;
}
}
int main() {
Bank a(12215, 10000);
a.Bankin(5000);
a.Bankout(12000);
disp(a);
return 0;
}
Bank类实验中我觉得难点是如何获得操作时间,一开始用的ctime,可是编译器报错提示不安全,百度查询后改为ctime_s后得以解决,但此时却多了几个参数。