01_设计一个Bank类,银行某账号的资金往来账管理

题目

设计一个Bank类,实现银行某账号的资金往来账管理,包括建账号、存入、取出等。Bank类包括私有数据成员top(当前指针)、date(日期)、money(金额)、rest(余额)和sum(累计余额)。另有一个构造函数和3个成员函数bankin()(处理存入账)、bankout()(处理取出账)和disp( )(出明细账)。

【知识点】:2.2  2.3
【参考分】:25分
【难易度】:B


题目理解:

8月20日
  • 怎么实现出入账记录?从题目知,认为使用指针、链表(其实,一点也不懂链表相关内容)可以实现。结果,认为自己做不了

2017-08-20

  • 建账号-->实例化

  • 存入-->bankin()

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值