【C++ 第五章 个人银行账户管理程序案例】
【第五章】 个人银行账户管理程序 案例实现
//5_11.cpp#include"account.h"#include<iostream>
#include"account.cpp"
using namespace std;int main(){//建立几个账户SavingsAccount sa0(1, 21325302, 0.015);SavingsAccount sa1(1, 58320212, 0.015);//几笔账目sa0.deposit(5, 5000);sa1.deposit(25, 10000);sa0.deposit(45, 5500);sa1.withdraw(60, 4000);//开户后第90天到了银行的计息日,结算所有账户的年息sa0.settle(90);sa1.settle(90);//输出各个账户信息sa0.show(); cout << endl;sa1.show(); cout << endl;cout << "Total:" << SavingsAccount::getTotal() << endl;return 0;}
1 // account.cpp : Defines the entry point for the console application. 2 3 4 5 #ifndef _ACCOUNT_H_ 6 7 #define _ACCOUNT_H_ 8 9 class SavingsAccount //储蓄账户类 10 11 { 12 13 private: 14 15 int id; //账号 16 17 double balance; //余额 18 19 double rate; //存款的年利率 20 21 int lastDate; //上次变更余额的日期 22 23 double accumulation; //余额按日累加之和 24 25 static double total; //所有账户的总金额 26 27 //记录一笔账,date为日期,desc为说明 28 29 void record(int date, double amount); 30 31 //获得到指定日期为止的存款金额按日累积值 32 33 double accumulate(int date) const 34 35 { 36 37 return accumulation + balance*(date - lastDate); 38 39 } 40 41 public: 42 43 //构造函数 44 45 SavingsAccount(int date, int id, double rate); 46 47 int getId() const { return id; } 48 49 double getBalance() const { return balance; } 50 51 double getRate() const { return rate; } 52 53 static double getTotal() { return total; } 54 55 void deposit(int date, double amount); //存入现金 56 57 void withdraw(int date, double amount); //取出现金 58 59 //结算利息,每年1月1日调用一次该函数 60 61 void settle(int date); 62 63 //显示账户信息 64 65 void show() const; 66 67 }; 68 69 #endif//_ACCOUNT_H_
1 //account.cpp 2 3 #include"account.h" 4 5 #include<cmath> 6 7 #include<iostream> 8 9 using namespace std; 10 11 double SavingsAccount::total = 0; 12 13 //SavingsAccount类相关成员函数的实现 14 15 SavingsAccount::SavingsAccount(int date, int id, double rate) 16 17 : id(id), balance(0), rate(rate), lastDate(date), accumulation(0) 18 19 { 20 21 cout << date << "\t#" << id << " is created" << endl; 22 23 } 24 25 void SavingsAccount::record(int date, double amount) 26 27 { 28 29 accumulation = accumulate(date); 30 31 lastDate = date; 32 33 amount = floor(amount * 100 + 0.5) / 100; //保留小数点后两位 34 35 balance += amount; 36 37 total += amount; 38 39 cout << date << "\t#" << id << "\t" << amount << "\t" << balance << endl; 40 41 } 42 43 void SavingsAccount::deposit(int date, double amount) 44 45 { 46 47 record(date, amount); 48 49 } 50 51 void SavingsAccount::withdraw(int date, double amount) 52 53 { 54 55 if (amount>getBalance()) 56 57 cout << "Error:not enough money" << endl; 58 59 else 60 61 record(date, -amount); 62 63 } 64 65 void SavingsAccount::settle(int date) 66 67 { 68 69 double interest = accumulate(date)*rate / 365; //计算年息 70 71 if (interest != 0) 72 73 record(date, interest); 74 75 accumulation = 0; 76 77 } 78 79 void SavingsAccount::show() const 80 81 { 82 83 cout << "#" << id << "\tBalance:" << balance; 84 85 }
ps:
配套教材:郑莉《c++程序设计语言》
课程:学堂在线《c++程序设计语言》
转载于:https://www.cnblogs.com/cswangchen/p/7645085.html
【C++ 第五章 个人银行账户管理程序案例】相关推荐
- 【C++ 第七章 个人银行账户管理程序案例】
[第七章] 个人银行账户管理程序 案例实现 //account.cpp #include"account.h" #include<cmath> #include< ...
- 第五章:银行往来及资金清算业务的核算
第五章:银行往来及资金清算业务的核算 第一节.概述 主要解决央行和商业银行间.各个商业银行间.各个商业银行内部清算业务. 1.银行往来资金清算 同一银行各个部门不同系统之间进行资金往来. 商业银行间经 ...
- 个人银行账户管理程序
这个程序是一个银行账户管理的程序,是用C++来实现程序功能的,该程序包含六个文件,其中有date.h头文件 是日期类的头文件,date.cpp是日期类的实现文件,accumulator.h是按日将数值 ...
- shell银行账户管理程序_如何在德国设立银行账户?德国银行卡比较和解析
什么是Current Account? 通过Expatrio在线办理的自保金账户是一个特殊的,有限制条款的冻结账户,不能作为储蓄和消费账户使用.因此您需要设立一个欧元往来账户(current acco ...
- shell银行账户管理程序_德国邮政 Postbank 银行 开户 中文 参考教程
精 选 众家 » 生活点滴 » 德国邮政 Postbank 银行 开户 中文 参考教程 德国邮政 Postbank 银行 开户 中文 参考教程 2014-07-29 2518 次阅读 德国邮政银行Po ...
- 个人银行账户管理程序(C++语言程序设计第4版)
银行作业分享,欢迎批评指正.到第12章. 文章目录 Array.h accumulator.h date.h account.h account.cpp date.cpp main.cpp comma ...
- C++转Java个人银行账户管理程序
4.9 1.private,public等在Java里面需要单独写在每一个成员前面 java private int id; private void record(int date, double ...
- C#实验报告 类与对象的访问性:银行账户存取款、新建账户、查询余额
实验4 C#程序的流程控制 一.实验目的 (1)理解面向对象的概念,掌握C#定义类和创建对象的方法 (2)区分类的不同数据成员,包括常量.字段和属性的定义方法,并学会控制其访问性 (3)掌握类的方法成 ...
- 美国银行账户里的美元(目前大概每月有五六万),有什么更好的办法转到国内的人民币账户上?
有一个比较好的办法可以解决,只需要注册一个Payoneer派安盈账户,个人就可以注册,免费的.注册成功后,会自动获得一个美元账户,可以将你的美国银行账户里的美元转账到这个账户里面.等到账以后,就可以直 ...
- 【MyBatis】第五课 银行账户管理系统网站开发
概念 本文是根据Jsp以及Servlet课程,结合MyBatis框架的综合运用,开发一个小项目网站,使用MVC+三层架构的项目搭建方式来编写本文文章. 1.数据库的创建 本文使用MySQL数据搭建数据 ...
最新文章
- 9.C++弱引用智能指针weak_ptr的用处
- 按我的理解string似乎不是字面值类型,但为什么《c++ primer》习题7.55答案说Data类是集合类呢?
- JAVA基础_修饰符
- 解决在sample文件夹里面写代码,在测试的时候因为virtual原因,make编译报错
- python计算时间装饰器_使用python装饰器计算函数运行时间的实例
- 基于linux运行指的什么意思,基于Linux的Windows非常有意义
- 【C++笔记】函数(笔记)
- [笔记] 最大权闭合子图最大流最小割相关笔记
- Dijkstra算法,起点到当前点的最短距离及路径 C++实现
- linux输入法变成乱码,Linux ibus输入法五笔打字的时候出现乱码框框的解决方案
- ae运动模糊插件安装教程_AEPR运动模糊插件(RSMB) REVisionFX ReelSmart Motion Blur Pro v4.2.3...
- 网格模型obj文件及其纹理解析
- ArcGis 10.2运行提示“未授权”的解决方法
- AutoJs学习-悬浮单任务计时器
- 白盒测试之测试覆盖率浅析
- USB Network Gate SDK Crack,构建USB Network Gate的技术
- 【小程序从0到1】网络数据请求——request合法域名|GET|POST|跨域?Ajax?
- linux下打开windows txt文件中文乱码问题
- 什么是 Web 服务器(server)
- 轻松学习JavaScript十一:JavaScript基本类型(包含类型转换)和引用类型