设计一个Bank类,实现银行某账号的资金往来账目管理

设计一个Bank类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等 Bank类包括私有数据成员账号numberrest(账户余额)和成功操作的交易记录string records[50](或者char records[50][100])。每一条记录包含的信息有:交易时间(精确到秒)、交易类型(存钱和取钱)和交易金额,Bank类有一个构造函数(设置账号和初始余额)和三个成员函数bankin(double m)(处理存入账)bankout( double m)处理取出账)disp(Bank b) (输出明细账)

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
#include<ctime>
using namespace std;
int i = 0;

class Bank {
private:
	struct tm* p[50];
	time_t now = time(0);
	int number;
	double rest;
	string records[50];
	double arr[50];

public:
	Bank(int num,double re) {
		number = num;
		rest = re;
	}
	void bankin(double m) {
		p[i] = localtime(&now);
		rest += m;
		arr[i] = m;
		records[i++] ="存入";
	}
	void bankout(double m) {
		p[i] = localtime(&now);
		arr[i] ;
		rest -= m;
		arr[i] = m;
		records[i++] = "取出";
	}
	void disp(Bank b) {
		int j = 0;
		cout << "账号:" << number << endl;
		cout << "账户余额:" << rest << endl;
			for(;j < i; j++)
			{
				cout << "交易记录:" << endl;
				cout << records[j]<<" " << arr[j]<<" ";
				printf("%d/%d/%d %02d:%02d:%02d\n", 1900 + p[j]->tm_year, 1 + p[j]->tm_mon, p[j]->tm_mday, p[j]->tm_hour, p[j]->tm_min, p[j]->tm_sec);
		}

	}
};

int main()
{
	Bank s1(10001,0.0);
	s1.bankin(800.0);
	s1.bankout(300.0);
	s1.disp(s1);
	return 0;
}

其中最主要的就是时间的获取和时间数据的存储。

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Bank 类的实现,包括建账号、存入、取出和输出明细账等功能: ```cpp #include <iostream> #include <string> #include <ctime> using namespace std; class Bank { public: // 构造函数 Bank() : top(nullptr), date(time(nullptr)), money(0), rest(0), sum(0) {} // 存入账 void bankin(double amount) { money = amount; rest += amount; sum += amount; cout << "存入" << amount << "元,余额为" << rest << "元" << endl; addRecord(); } // 取出账 void bankout(double amount) { money = -amount; rest -= amount; sum -= amount; cout << "取出" << amount << "元,余额为" << rest << "元" << endl; addRecord(); } // 输出明细账 void disp() { cout << "账号明细:" << endl; cout << "日期\t\t金额\t余额" << endl; for (auto p = top; p != nullptr; p = p->next) { cout << p->date << "\t" << p->money << "\t" << p->rest << endl; } cout << "累计余额:" << sum << endl; } private: struct Record { time_t date; double money; double rest; Record* next; Record(time_t _date, double _money, double _rest, Record* _next = nullptr) : date(_date), money(_money), rest(_rest), next(_next) {} }; Record* top; // 当前账指针 time_t date; // 日期 double money; // 金额 double rest; // 余额 double sum; // 累计余额 // 添加记录 void addRecord() { auto p = new Record(date, money, rest, top); top = p; } }; int main() { Bank bank; bank.bankin(1000); bank.bankin(2000); bank.bankout(500); bank.bankin(3000); bank.bankout(1000); bank.disp(); return 0; } ``` 在这个实现中,Bank 类包含了一个内部类 Record,用于记录每一笔资金往来的日期、金额和余额。Bank 类的成员变量包括当前账指针 top、日期 date、金额 money、余额 rest 和累计余额 sum。Bank 类提供了三个成员函数 bankin()、bankout() 和 disp(),用于存入、取出和输出明细账。 在存入或取出账时,Bank 类会记录当前的日期、金额和余额,并将记录添加到链表中。在输出明细账时,Bank 类会遍历整个链表并输出每一笔资金往来的日期、金额和余额,以及累计余额。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值