贷款计算器

1. 等额本金

当月还款 = (当前未还总额)*(月化利率) + (固定每月还款本金)

例如,借款12万元,分12期还,年化利率为6%(月化利率为0.5%)那么固定每月还款本金为1万元,利息为:

2. 等额本息

每月还款金额固定,设为A;总借款额设为M,月化利率设为x,期数为p,那么有公式:

将a_1带入到a_2,a_2带入到a_3,逐项带入,最后a_p为:

3. 代码

3.1 头文件

//
// Created by HF on 2019/3/3.
//#ifndef TEST_LOANCALCULATION_H
#define TEST_LOANCALCULATION_Hclass LoanCalculation {public:/*** 计算贷款每期需还多少* @param amount 贷款总额(万元)* @param period 期数,以月为单位* @param annualizedInterestRate 年化利率(%)* @param type 1表示等额本金,2表示等额本息*/void calculate(double amount, int period, double annualizedInterestRate, int type);private:void calEquPrincipal(double amount, int period, double monthlyInterestRate);void calEquPrincipalAndInterest(double amount, int period, double monthlyInterestRate);
};#endif //TEST_LOANCALCULATION_H

3.2 源文件

//
// Created by HF on 2019/3/3.
//
#include <iostream>
#include <string>#include "LoanCalculation.h"using namespace std;void LoanCalculation::calculate(double amount, int period, double annualizedInterestRate, int type) {if (period <= 0) {cout<<"期数需要大于0!"<<endl;return ;}amount *= 10000;double monthlyInterestRate = annualizedInterestRate / 1200;if (type == 1) {calEquPrincipal(amount, period, monthlyInterestRate);}else if (type == 2) {calEquPrincipalAndInterest(amount, period, monthlyInterestRate);}return ;
}void LoanCalculation::calEquPrincipal(double amount, int period, double monthlyInterestRate) {double perioidPrincipal = amount / period;double interest = amount * monthlyInterestRate;double descInterest = perioidPrincipal * monthlyInterestRate;double sumInterest = 0.0;for (int i = 0; i < period; ++i) {cout<< "第" + to_string(i+1) + "个月需还: " + to_string(perioidPrincipal + interest) + " 元"<< endl;sumInterest += interest;interest -= descInterest;}cout<<"总利息: " +to_string(sumInterest) + " 元"<<endl;return ;
}void LoanCalculation::calEquPrincipalAndInterest(double amount, int period, double monthlyInterestRate) {double x1 = pow((1+monthlyInterestRate), period);double x2 = (x1-1)/monthlyInterestRate;double res = amount*x1/x2;cout<<"每个月需还: " + to_string(res)<<endl;double sumInterest = res*period-amount;cout<<"总利息: " +to_string(sumInterest) + " 元"<<endl;return ;
}

3.3 使用

#include <iostream>
#include "LoanCalculation.h"using namespace std;int main() {double amount;int period;double annualizedInterestRate;int type;cout<<"请输入贷款总额(万元), 期数(月数),年化利率(%)"<<endl;cin>>amount>>period>>annualizedInterestRate;LoanCalculation loanCalculation;cout<<"等额本金:"<<endl;loanCalculation.calculate(amount, period, annualizedInterestRate, 1);cout<<endl<<"等额本息:"<<endl;loanCalculation.calculate(amount, period, annualizedInterestRate, 2);return 0;
}

3.4 输出结果

12 12 6
等额本金:
第1个月需还: 10600.000000 元
第2个月需还: 10550.000000 元
第3个月需还: 10500.000000 元
第4个月需还: 10450.000000 元
第5个月需还: 10400.000000 元
第6个月需还: 10350.000000 元
第7个月需还: 10300.000000 元
第8个月需还: 10250.000000 元
第9个月需还: 10200.000000 元
第10个月需还: 10150.000000 元
第11个月需还: 10100.000000 元
第12个月需还: 10050.000000 元
总利息: 3900.000000 元等额本息:
每个月需还: 10327.971565
总利息: 3935.658778 元

贷款计算器的简单实现(C++)相关推荐

  1. 作业2:简答题、编程实践(简单计算器)、思考题

    文章目录 作业2:简答题.编程实践(简单计算器).思考题 1.简答题 2. 编程实践,小游戏 简单计算器 3.思考题 作业2:简答题.编程实践(简单计算器).思考题 1.简答题 解释 游戏对象(Gam ...

  2. 3D游戏设计读书笔记二

    3D游戏设计读书笔记二 一.简答题 • 解释 游戏对象(GameObjects) 和 资源(Assets)的区别与联系.   GameObjects是一个具体的实例,Assets是包括诸多游戏素材的资 ...

  3. 基于Unity设计的井字棋小游戏

    资源下载地址:https://download.csdn.net/download/sheziqiong/86871335 资源下载地址:https://download.csdn.net/downl ...

  4. 3D游戏 第三次作业

    3D游戏 第二次作业 1.简答题 解释游戏对象 (GameObject) 和 资源 (Assets) 的区别与联系 游戏对象(GameObject) 游戏程序空间中的事物,可能是Empty.2D.3D ...

  5. Unity3d课后练习(二)

    文章目录 1. 简答题 2. 编程实践,小游戏 3. 思考题[选做] 1. 简答题 · 解释游戏对象(GameObjects) 和 资源(Assets)的区别与联系. 游戏对象(GameObject) ...

  6. 02-离散仿真引擎基础

    Homework02 简答题 1. 解释游戏对象(GameObjects)和资源(Assets)的区别与联系 区别:游戏对象是具有一定属性与功能的类的实体化,对应为Unity中具有对应职能与属性的组件 ...

  7. Java Swing写简单计算器以及拓展贷款计算器(等额本息和等额本金计算可以单独拿出来用)

    1. 简单计算器 纯手写 package com.jisuanqi;import com.sun.xml.internal.ws.util.StringUtils;import javax.swing ...

  8. 用C#编写简易贷款计算器

    c#编写简易贷款计算器 开始学习c# 今年大二开设的课程是c#程序设计,才开始学习c#,这个面向对象的语言.感觉有些地方和c语言差不多,但是还是稍微有点不习惯. 题目:编写贷款计算器,根据给出的贷款数 ...

  9. 如何用excel建立一个简单的收支表

    创建一个excel文件,输入一些固定的条目,如"日期","明细","费用"和"金额". 在D4行输入=IF(A4< ...

最新文章

  1. 图解Transformer(完整版)!
  2. -mkdir 创建目录 Usage:hdfs dfs -mkdir [-p] < paths> 选项:-p 很像Unix mkdir -p,沿路径创建父目录。
  3. JSONObject和JSONArray(json-lib-2.4)的基本用法
  4. iOS开发-ViewController的生命周期和切换
  5. MATLAB从入门到精通-Matlab R2020b中的新标记符号(New-marker-symbols)
  6. SPOJ COT Count on a tree 主席树
  7. 为什么诸多顶级期刊论文中的观点也不靠谱?
  8. 在数组中查找第k个最大元素_查找数组中每个元素的最近最大邻居
  9. 【OpenCV 例程200篇】02. 图像的保存(cv2.imwrite)
  10. hdu 2669 Romantic
  11. IntelliJ IDEA中Spring Boot项目自定义Banner
  12. PS去除图片中文字的方法详细图文教程
  13. HTML中绑定点击事件的方式
  14. linux 网桥防火墙,linux透明防火墙(网桥形式).doc
  15. 计算机视觉课程设计:基于SSD、Dlib多进程目标检测的对比研究
  16. 查看并彻底清除掉流氓软件、弹窗广告
  17. SAP中分配和分摊的区别
  18. 华为NE40路由器手册
  19. session共享的另外一篇博客.好文章
  20. Uber 公司推出的 GoLang 编程规范

热门文章

  1. 人类能否驾驭浩瀚宇宙?
  2. 小企业应收账款管理存在的问题及对策
  3. 【MOT】目标追踪DeepSORT与ByteTrack
  4. ubuntu使用教程与常用命令
  5. 前端 地图增加边框线_地图省份边框设置borderWidth之后粗细不一致的问题...
  6. 【软件测试学习】软件测试的过程
  7. SSM框架在线拍卖系统项目
  8. 安卓手机删除文件后的恢复方法
  9. 数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(下)
  10. Conda环境搭建以及激活