C++第四章4.7综合实例----个人银行账户管理程序
4.7.1类的设计
设计一个银行账户管理程序,我们要让这个程序拥有基本的账户功能:存款;取款;余额查询;利息的结算;账户的创建。为了实现这些功能,我们需要设计账户的各种属性以及函数:账号;密码;年利率;创建账户的日期;上一次变更账户的日期;余额;利息。
#通过record()函数记录账户资金的变动,所有的账户资金的改变都通过这个函数来实现。
#通过accumulation()函数来计算余额按天累加的和,accumulate用于计算每日的利息和
#通过deposit()函数存款,用record函数记录资金变动
#通过withdrew()函数存款,用record函数记录资金变动
4.7.2源程序及其说明
解:
#include <iostream>
#include <cmath>
#include <cstring>
using namespace std;
const double rate = 0.0030;
class SavingAccount {private:long int id;//账户double balance;//余额double rate;//年利率int lastDate;//最后变更余额日期double accumulation;//余额按日累加的和double accumulate(int date) const { return accumulation + balance * (date - lastDate); }; //静态成员函数,用于计算存款金额按日累积值
public:SavingAccount(int date,long int id, double rate);int getid() { return id; };double getbalance() { return balance; };double getRate() { return rate; };void show();void record(int date,double amount);void deposite(int date, double amount);void withdraw(int date, double amount);void settle(int date);//结算利息
};
SavingAccount::SavingAccount(int date,long int id, double rate) :id(id), balance(0), rate(rate), lastDate(date), accumulation(0) {}
void SavingAccount::show() {cout << "余额为" << balance << endl;
};
void SavingAccount::deposite(int date, double amount) {cout << "本次存款金额为" << amount << endl;
};
void SavingAccount::withdraw(int date, double amount) {if (getbalance() >=(-amount)) {cout << "本次取款金额为" << amount << endl;balance += amount;}else if(-amount>getbalance()){cout << "抱歉,您的余额不足" << endl;}
};
void SavingAccount::settle(int date) {double interest = accumulate(date) * rate / 365;if (interest != 0) {record(date, interest);}cout << "您的利息为" <<std::fixed << interest << endl;accumulation = 0;
};
void SavingAccount::record(int date, double amount) {accumulation = accumulate(date);lastDate = date;balance += amount;cout << date << "\t" << id <<"\t"<< "账户变动金额为" << amount << endl;
};int main() {int flag = 0;int date;int lastDate;long int id;string choice;char keywords[30] = { 0 }; char passwords[30] = {0};char* k = NULL; char* p = NULL;double amount;cout << "\t欢迎来到BOSS银行" << endl;if (flag == 0) {cout << "您尚未创建银行账户" << endl;cout << "正在创建银行账户" << endl;cout << "请输入您的账号" << endl;cin >> id;cout << "请设置您的密码" << endl;getchar();gets_s( keywords); k = keywords;cout << "请输入今天的日期a" << endl;cin >> date;cout << date << " " << id << " " << "is created" << endl;flag = 1;}cout << "请输入今天的日期b" << endl;cin >> lastDate;cout << "请输入账号" << endl;cin >> id;cout << "请输入密码,按任意键继续" << endl; getchar();gets_s(passwords);cout << "请选择您要办理的业务,输入Q退出1" << endl;cout << "A存款" << endl;cout << "B取款" << endl;cout << "C余额查询" << endl;cout << "D结算利息" << endl;cout << "E开通帐户" << endl;cin >> choice;SavingAccount s(date, id, rate);if (choice == "Q") {goto flag2;}else {do {if (choice == "A") {cout << "请输入您要存款的金额" << endl;cin >> amount;s.deposite(lastDate, amount);s.record(date, amount);s.show();}else if (choice == "B") {cout << "请输入您要取款的金额" << endl;cin >> amount;s.withdraw(lastDate, -amount);s.show();}else if (choice == "C") {cout << "您的余额是" << s.getbalance() << endl;}else if (choice == "D") {s.settle(lastDate);s.show();}else if (choice == "E") {cout << "您正在创建银行账户" << endl;cout << "请输入您的账号" << endl;cin >> id;cout << "请设置您的密码" << endl;cin >> keywords;cout << "请输入今天的日期" << endl;cin >> date;cout << date << " " << id << " " << "is created" << endl;flag = 1;}cout << "请输入您所需要办理的业务2" << endl;cout << "A存款" << endl;cout << "B取款" << endl;cout << "C余额查询" << endl;cout << "D结算利息" << endl;cout << "E开通帐户" << endl;cin >> choice;} while (choice != "Q");}flag2:return 0;
}
//这里面的程序虽然设置了密码,但是我也不知道怎么验证,因为我用strcmp函数验证的时候,不管怎么输入都比较不了,如何都不相等,我也不会哈哈哈,会的人麻烦指点一下
C++第四章4.7综合实例----个人银行账户管理程序相关推荐
- 【Java数据结构与算法】第四章 栈实现综合计算器
第四章 栈实现综合计算器 文章目录 第四章 栈实现综合计算器 一.栈 1.介绍 2.应用场景 3.思路 4.代码实现 二.综合计算器 v1.0 1.思路 2.代码实现 三.前缀.中缀和后缀表达式规则 ...
- 【无人机组装与调试】第四章 F450四轴装机实例-选择机型、需要的器材工具材料
[无人机组装与调试]系列课程全集: 第一章 概述 第二章 关于新西达30A电调说明书的问题 第三章 舵机安装与调整 第四章 F450四轴装机实例-选择机型.需要的器材工具材料 第五章 无人机遥控器 第 ...
- 【C++ 第七章 个人银行账户管理程序案例】
[第七章] 个人银行账户管理程序 案例实现 //account.cpp #include"account.h" #include<cmath> #include< ...
- 第四章-循环程序设计代码实例(C++蓝豹子)
文章目录 例4.2 例4.3 例4.4 break使用 例4.6 continue使用 三层for循环输出A.B.C的全排列 例4.8 例4.9 例4.10 例4.11 例4.12 例4.13 例4. ...
- C++ 个人银行账户管理 综合实例62.10_date
在网上找了很多例子,代码都不是循序渐进的,自己一点一点按章节把代码按照老师的要求都码好了,一点一点进步吧,因为一开始就去看别人整篇的代码实在很难,带给需要帮助的人,这是第六章第二个综合实例,加入Dat ...
- 贝叶斯统计 韦来生 课后题答案 第四章
第四章贝叶斯统计推断 5.设某银行为一位顾客服务时间(单位:min)服从指数分布Exp(λ),其中参数的先验分布是均值为0.2.标准差为1.0的伽玛分布.如今对20位顾客服务进行观测,测得平均服务时间 ...
- IT项目管理总结:第四章 项目综合管理
第四章 项目综合(Integration)管理 什么是项目综合管理 –它涉及在整个项目生命周期中协调所有其他项目管理的知识领域 –主要包括以下六个主要过程: A)制定项目章程(project char ...
- linux安全技术课程报告,综合实例一+linux平台WEB安全技术研究报告.doc
综合实例一linux平台WEB安全技术研究报告 摘 要: 根据网络安全的"木桶理论",网络安全是由若干"木板"元素的安全决定,因此本文就Linux平台下WEB服 ...
- 信息安全工程师学习笔记《第四章》
第四章 网络安全体系与网络安全模型 本章内容主要包括: 第一,讲述了网络安全体系的基本概念以及相关安全模型,主要包括机密性模型.完整性模型.信息流模型.信息保障模型.能力成熟度模型.纵深防御模型.分层 ...
- 高效能人士的七个习惯-第四章-阅读
第四章 习惯二:以终为始(一) --自我领导的原则 太多人成功之后,反而感到空虚:得到名利之后,却发现牺牲了更可贵的事物.因此,我们务必掌握真正重要的愿景,然后勇往直前坚持到底,使生活充满意义. 身外 ...
最新文章
- Java api 入门教程 之 JAVA的IO处理
- MHA二种高可用架构切换演练
- java B2B2C Springcloud电子商城系统-断路器(Hystrix)
- python实现自顶向下,自底向上
- 如何把文件模版上传到SAP数据库层.
- php 客户端上传图片,php上传图片客户端和服务器端实现方法
- 浅谈 RocketMQ、Kafka、Pulsar 的事务消息
- 使用TestBed测试具有依赖关系的Angular服务
- FreeSql (十五)查询数据
- 04-01 常见接口协议
- ActiveMQ笔记(二)
- ADC芯片CS1242用在电子秤单片机上面
- 每台计算机需要配置网关吗,怎么设置一台电脑作为网关
- linux lpte_PC并行口LPT的IO操作(基于WinIo)
- Hibernate报错 Cannot add foreign key constraint
- PhalApi+Gearman,接口MQ异步队列任务的完整开发教程
- 【图像去噪】基于最小二乘方滤波实现图像去噪含Matlab源码
- Ghost高级教程——克隆备份
- 国内DP厂家的相关资料信息
- Openface 入门