C++贷款类(等额本金,等额本息)
C++贷款类(等额本⾦,等额本息)
懂的都懂:
三个头⽂件
三个cpp⽂件
⼀个报错类
⼀个主函数cpp⽂件
贷款类
DaiKuan.h
#pragma once
#include<cstdlib>
#include<iostream>
#include<iomanip>
#include<string>
#include<fstream>
#include<sstream>
#include<cmath>
using namespace std;
class DaiKuan
{
public:
DaiKuan();
DaiKuan(double xdaiKuanZongE,double xnianLiLv=0,int xhuanKuanYueShu=0); void init(double xdaiKuanZongE,double xnianLiLv =0,int xhuanKuanYueShu =0); virtual void compute()=0;
virtual void print()=0;
virtual ostream&tostream(ostream& out, DaiKuan *d)=0;
virtual ostream& operator<<(ostream& out)=0;
friend ostream& operator<<(ostream& out,DaiKuan *d);
void setDaiKuanZongE(double xdaiKuanZongE);
void setNianLiLv(double xnianLiLv);
void setHuanKuanYueShu(int xhuanKuanYueShu);
void setZongLiXi(double xZongLiXi);
void setYueZongE(double*xyueZongE);
void setYueLiXi(double*xyueLiXi);
void setDaiKuanShengYu(double*xdaiKuanShengYu);
void setYueBenJin(double*xyueBenJin);
void setType(int mode);
double getDaiKuanZongE();
double getNianLiLv();
int getHuanKuanYueShu();
double*getYueZongE();
double*getYueLiXi();
double*getDaiKuanShengYu();
double*getYueBenJin();
double getZongLiXi();
int getType();
private:
int type;
改个有意义的号id
double daiKuanZongE;/*借款⾦额 */科学养羊
double nianLiLv;/*银⾏利率 */
int huanKuanYueShu;/*还款⽉数 */
double*yueZongE;/*⽉总额 */
比心陪玩
double*yueLiXi;/*⽉利息 */
double*daiKuanShengYu;/*贷款剩余*/
double*yueBenJin;/*⽉本⾦ */
double zongLiXi;/*总利息 */
};
DaiKuan.cpp
#include"DaiKuan.h"
DaiKuan::DaiKuan(){
}
/*⽆参数构造函数*/
DaiKuan::DaiKuan(double xdaiKuanZongE,double xnianLiLv,int xhuanKuanYueShu) {
daiKuanZongE=xdaiKuanZongE;
nianLiLv=xnianLiLv;
huanKuanYueShu=xhuanKuanYueShu;
}/*构造函数*/
void DaiKuan::init(double xdaiKuanZongE,double xnianLiLv,int xhuanKuanYueShu)
{
daiKuanZongE = xdaiKuanZongE;
nianLiLv = xnianLiLv;
huanKuanYueShu = xhuanKuanYueShu;
}
void DaiKuan::setType(int mode){ type = mode;};
void DaiKuan::setDaiKuanZongE(double xdaiKuanZongE){ daiKuanZongE = xdaiKuanZongE;};/*设置贷款总数*/ void DaiKuan::setNianLiLv(double xnianLiLv){ nianLiLv = xnianLiLv;};/*设置年利率*/
void DaiKuan::setHuanKuanYueShu(int xhuanKuanYueShu){ huanKuanYueShu = xhuanKuanYueShu;};/*设置还款⽉数*/ void DaiKuan::setZongLiXi(double xzongLiXi){ zongLiXi = xzongLiXi;};
void DaiKuan::setYueZongE(double*xyueZongE){ yueZongE = xyueZongE;};
void DaiKuan::setYueLiXi(double*xyueLiXi){ yueLiXi = xyueLiXi;};
void DaiKuan::setDaiKuanShengYu(double*xdaiKuanShengYu){ daiKuanShengYu = xdaiKuanShengYu;};
void DaiKuan::setYueBenJin(double*xyueBenJin){ yueBenJin = xyueBenJin;};
int DaiKuan::getType(){return(type);};
int DaiKuan::getHuanKuanYueShu(){return(huanKuanYueShu);};/*返回还款⽉数*/
double DaiKuan::getNianLiLv(){return(nianLiLv);};/*返回年利率*/
double DaiKuan::getDaiKuanZongE(){return(daiKuanZongE);};/*返回贷款总数*/
double* DaiKuan::getYueZongE(){return(yueZongE);};/*返回⽉总额*/
double* DaiKuan::getYueLiXi(){return(yueLiXi);};/*返回⽉利息*/
double* DaiKuan::getDaiKuanShengYu(){return(daiKuanShengYu);};/*返回贷款剩余*/
double* DaiKuan::getYueBenJin(){return(yueBenJin);};/*返回⽉本⾦*/
double DaiKuan::getZongLiXi(){return(zongLiXi);};/*返回总利息*/
ostream& operator<<(ostream& out, DaiKuan *d){
int mode = d->getType();
if(mode ==0){
double*temp_yueZongE = d->getYueZongE();
double*temp_yueBenJin = d->getYueBenJin();
double*temp_yueLiXi = d->getYueLiXi();
double*temp_daiKuanShengYu = d->getDaiKuanShengYu();
out << endl;
out <<setw(6)<<setfill(' ')<<"⽉份"
<<setw(15)<<setfill(' ')<<"总额"
<<setw(12)<<setfill(' ')<<"利息"<< endl;
out <<"---------------------------------"<< endl;
for(int i =0; i < d->getHuanKuanYueShu(); i++)
{
out <<setw(4)<<setfill(' ')<< i +1<<" | "
<<setw(12)<<setfill(' ')<< temp_yueZongE[i]<<" | "
<<setw(10)<<setfill(' ')<< temp_yueLiXi[i]<< endl;
}
return out;
}
else{
double*temp_yueZongE = d->getYueZongE();
double*temp_yueBenJin = d->getYueBenJin();
double*temp_yueLiXi = d->getYueLiXi();
double*temp_daiKuanShengYu = d->getDaiKuanShengYu();
out << endl
<<setw(6)<<setfill(' ')<<"⽉份"
<<setw(15)<<setfill(' ')<<"剩余贷款"
<<setw(15)<<setfill(' ')<<"当⽉利息"
<<setw(15)<<setfill(' ')<<"当⽉还款"
<<setw(15)<<setfill(' ')<<"当⽉归还本⾦"<< endl
<<"------------------------------------------------------------------"<< endl;
for(int i =0; i <(int)d->getHuanKuanYueShu(); i++)
{
out <<setw(4)<<setfill(' ')<< i +1<<" | "<<
setw(12)<<setfill(' ')<< temp_daiKuanShengYu[i]<<" | "<<
setw(12)<<setfill(' ')<< temp_yueLiXi[i]<<" | "<<
setw(12)<<setfill(' ')<< temp_yueZongE[0]<<" | "<<
setw(12)<<setfill(' ')<< temp_yueBenJin[i]<<" | "<< endl;
}
return out;
}
}
等额本⾦类:
DengEBenJin.h
#include"DaiKuan.h"
class DengEBenJin :virtual public DaiKuan {
public:
DengEBenJin();
DengEBenJin(double xdaiKuanZongE,double xnianLiLv =0,int xhuanKuanYueShu =0);
ostream&tostream(ostream& out,DaiKuan *d);
ostream& operator<<(ostream& out);
void compute();
void print();
};
DengEBenJin.cpp
#include"DengEBenJin.h"
using namespace std;
DengEBenJin::DengEBenJin(double xdaiKuanZongE,double xnianLiLv,int xhuanKuanYueShu){ init(xdaiKuanZongE,xnianLiLv,xhuanKuanYueShu);
}
DengEBenJin::DengEBenJin(){}
ostream& DengEBenJin::tostream(ostream& out,DaiKuan *d){
double*temp_yueZongE = d->getYueZongE();
double*temp_yueBenJin = d->getYueBenJin();
double*temp_yueLiXi = d->getYueLiXi();
double*temp_daiKuanShengYu = d->getDaiKuanShengYu();
out << endl;
out <<setw(6)<<setfill(' ')<<"⽉份"
<<setw(15)<<setfill(' ')<<"总额"
<<setw(12)<<setfill(' ')<<"利息"<< endl;
out <<"---------------------------------"<< endl;
for(int i =0; i < d->getHuanKuanYueShu(); i++)
{
out <<setw(4)<<setfill(' ')<< i +1<<" | "
<<setw(12)<<setfill(' ')<< temp_yueZongE[i]<<" | "
<<setw(10)<<setfill(' ')<< temp_yueLiXi[i]<< endl;
}
return out;
}
ostream& DengEBenJin::operator<<(ostream& out){
double*temp_yueZongE = this->getYueZongE();
double*temp_yueBenJin = this->getYueBenJin();
double*temp_yueLiXi = this->getYueLiXi();
郑爽整容了吗double*temp_daiKuanShengYu = this->getDaiKuanShengYu();
out << endl;
out <<setw(6)<<setfill(' ')<<"⽉份"
<<setw(15)<<setfill(' ')<<"总额"
<<setw(12)<<setfill(' ')<<"利息"<< endl;
out <<"---------------------------------"<< endl;诸葛亮吊孝歇后语
for(int i =0; i < this->getHuanKuanYueShu(); i++)
{
{
out <<setw(4)<<setfill(' ')<< i +1<<" | "
<<setw(12)<<setfill(' ')<< temp_yueZongE[i]<<" | "
<<setw(10)<<setfill(' ')<< temp_yueLiXi[i]<< endl;
}
return out;
}
void DengEBenJin::compute()
{
/*计算*/上海正规的装修公司
double*temp_yueZongE =(double*)malloc(sizeof(double)*getHuanKuanYueShu());
double*temp_yueBenJin =(double*)malloc(sizeof(double)*getHuanKuanYueShu());
double*temp_yueLiXi =(double*)malloc(sizeof(double)*getHuanKuanYueShu());
double*temp_daiKuanShengYu =(double*)malloc(sizeof(double)*getHuanKuanYueShu());
double money_left =getDaiKuanZongE();
setZongLiXi(0);
temp_yueBenJin[0]=getDaiKuanZongE()/getHuanKuanYueShu();
for(int i =0; i <getHuanKuanYueShu(); i++)
{
money_left -= temp_yueBenJin[0];
temp_daiKuanShengYu[i]= money_left;
setZongLiXi(getZongLiXi()+(getDaiKuanZongE()-getDaiKuanZongE()/getHuanKuanYueShu()* i)*getNianLiLv()/12);
temp_yueZongE[i]= temp_yueBenJin[0]+(getDaiKuanZongE()-getDaiKuanZongE()/getHuanKuanYueShu()* i)*getNianLiLv()/12;  temp_yueLiXi[i]=(getDaiKuanZongE()-getDaiKuanZongE()/getHuanKuanYueShu()* i)*getNianLiLv()/12;
}
setYueZongE(temp_yueZongE);
setYueLiXi(temp_yueLiXi);
setDaiKuanShengYu(temp_daiKuanShengYu);
setYueBenJin(temp_yueBenJin);
}
void DengEBenJin::print()
{
double*temp_yueZongE =getYueZongE();
double*temp_yueBenJin =getYueBenJin();
double*temp_yueLiXi =getYueLiXi();
double*temp_daiKuanShengYu =getDaiKuanShengYu();
/*输出*/
cout << endl;
cout <<setw(6)<<setfill(' ')<<"⽉份"
<<setw(15)<<setfill(' ')<<"总额"
<<setw(12)<<setfill(' ')<<"利息"<< endl;
cout <<"---------------------------------"<< endl;
for(int i =0; i <getHuanKuanYueShu(); i++)
{
cout <<setw(4)<<setfill(' ')<< i +1<<" | "
<<setw(12)<<setfill(' ')<< temp_yueZongE[i]<<" | "
<<setw(10)<<setfill(' ')<< temp_yueLiXi[i]<< endl;
}
}
等额本息类:
DengEBenXi.h

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。