《面向对象的程序设计》大作业
《 面 向 对 象 的 程 序 设 计 》
大 作 业
题目:
房贷计算器设计
2020 年 6 月
1
《面向对象的程序设计》大作业
目录
1 设计内容及要求....................................................................................3
2 对应用程序的要求................................................................................3
3 设计思路................................................................................................3
3.1 思路.............................................................................................. 3
3.2 类的设计......................................................................................4
3.2.1 商业贷款与公积金贷款的等额本息............................... 4
3.2.2 商业贷款与公积金贷款的等额本金............................... 4
3.2.3 组合型贷款的等额本息....................................................5
3.2.4 组合型贷款的等额本金....................................................6
4 算法设计................................................................................................6
4.1 商业贷款与公积金贷款..............................................................6
4.2 组合型贷款..................................................................................8
5 界面设计................................................................................................9
5.1 开始.............................................................................................. 9
5.2 选择贷款类型..............................................................................9
5.3 输入信息....................................................................................10
5.4 显示计算结果............................................................................ 11
6 运行结果的分析..................................................................................13
7 调试过程..............................................................................................20
8 心得与体会..........................................................................................23
2
《面向对象的程序设计》大作业
1 设计内容及要求
很多人在购买房子时,需要提前去估计各种贷款的利息,以便设计更为合理的
贷款方式。本次大作业要求完成一个房贷计算器的设计,具体要求如下:
○1 请使用 QT 或者其他类似的界面库设计人机交互界面,要求界面友好,方便
使用。
○2 请自行调研房贷的相关知识,并根据调研情况进行程序设计。
○3 程序设计时必须使用面向对象的思想进行设计,使用 C++编程。
○4 实现功能需要包括商业贷款、公积金贷款和组合贷款的利息计算三种功能。
2 对应用程序的要求
○1 采用面向对象的思想设计程序
○2 采用 C++语言进行设计
○3 注意人机友好性
(a)对用户输入,给出足够的提示信息。
(b)程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而
中断执行。对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不
合法的输入值给出出错信息,指出错误类型,等待重新输入
(c)对删除数据应给出警告,以便用户确认删除操作
(d)对界面进行美化
3 设计思路
3.1 思路:
通过自行调研相关知识发现,三种贷款方式中,商业贷款与公积金贷款类似,
可以在一起设计。组合型贷款在计算时需要综合前两种贷款方式。考虑到不同还款
3
《面向对象的程序设计》大作业
方式对应的算法不同,所以设计在不同的类中。
3.2 类的设计
3.2.1 商业贷款与公积金贷款的等额本息
(文件:commercial1.h/cpp)
A. 公有成员
(1)计算及显示结果的函数
void calculate(double unit_price, double area, int period, float percentage1);
(2)传递参数的函数 void pass();
(3)传参数的中间接收数据 float
B.私有成员
unit_price, area, percentage1; int period;
rate1=0.0405/12;
double
rate2=0.0475/12;
double
rate3=0.0275/12;
double
rate4=0.0325/12;
double
sumprice;
double
double payment;
double
totalloans;
double monthsupply;
sumpaybacks;
double
double
sumrates;
int month;
//月利率 1
// 月利率 2
//月利率 3
// 月利率 4
// 总价
// 首付
// 贷款总额
//月供
//还款总额
// 支付总利息
// 还款月数
具体实现部分可查看 commercial1.cpp 文件
3.2.2 商业贷款与公积金贷款的等额本金
(文件:commercial2.h/cpp)
A.公有成员
4
《面向对象的程序设计》大作业
(1)计算及显示结果的函数
void calculate(double unit_price, double area, int period, float percentage1);
(2)传递参数的函数 void pass();
(3)传参数的中间接收数据 float unit_price, area, percentage1; int period;
B.私有成员
rate1=0.0405/12;
double
rate2=0.0475/12;
double
rate3=0.0275/12;
double
rate4=0.0325/12;
double
double
sumprice;
double payment;
totalloans;
double
double
fmonthsupply;
smonthsupply;
double
cha;
double
double
sumpaybacks;
double
sumrates;
int month;
//月利率 1
// 月利率 2
//月利率 3
// 月利率 4
// 总价
// 首付
// 贷款总额
//首月月供
//次月月供
// 每月递减
//还款总额
// 支付总利息
// 还款月数
具体实现部分可查看 commercial2.cpp 文件
3.2.3 组合型贷款的等额本息
(文件 combine1.h/cpp)
A.公有成员
(1)传递参数的函数 void pass()
(2) 计算及显示结果的函数 void calculate(double Loan1,double
Loan2,intperiod);
(3)传参数的中间接收数据 double Loan1, Loan2; int period;
B.私有成员
double
rate1=0.0275/12;
//利率 1
5
《面向对象的程序设计》大作业
rate2=0.0325/12;
totalloans;
double
double
double monthsupply;
double
sumpaybacks;
double
sumrates;
int month;
//利率 2
// 贷款总额
//月供
//还款总额
// 支付总利息
// 还款月数
具体实现部分可查看 combine1.cpp 文件
3.2.4 组合型贷款的等额本金
(文件 combine2.h/cpp)
A.公有成员
(1)传递参数的函数 void pass();
(2) 计算及显示结果的函数 void calculate(double Loan1,double
Loan2,intperiod);
(3)传参数的中间接收数据 double Loan1, Loan2; int period;
B.私有成员
rate1=0.0275/12;
rate2=0.0325/12;
totalloans;
double
double
double
double monthsupply;
sumpaybacks;
double
double
sumrates;
int month;
//利率 1
//利率 2
// 贷款总额
//月供
//还款总额
// 支付总利息
// 还款月数
具体实现部分可查看 combine2.cpp 文件
4 算法设计
4.1 商业贷款与公积金贷款
6
《面向对象的程序设计》大作业
○1 首先由用户输入相应信息:房屋单价 price、房屋面积 space、贷款成数
percentage、贷款年数 year。根据贷款年数得到相应的贷款利率。再调用 pass 函数
传递用户输入的信息,最后调用相应的计算函数 commercial1(commercial2)计算结果
并且显示。
○2 流程图:
7
《面向对象的程序设计》大作业
4.2 组合型贷款
○1 首先由用户输入商业贷款额 loan1 和公积金贷款额 loan2 以及贷款年数
years。根据贷款年数得到相应的贷款利率。再调用 pass 函数传递用户输入的信息,
最后调用相应的计算函数 combine1(combine2)计算结果并且显示。
○2 流程图:
8