当前位置 : 主页 > 编程语言 > c语言 >

【内附源码和文档】基于C++实现房贷计算器的设计

来源:互联网 收集:自由互联 发布时间:2023-09-03
1.题目要求及分析 本次大作业的要求是完成一个房贷计算器的设计,实现商业贷款、公积金贷款和组合贷款的利息计算三种功能。并且使用 Qt 或其他的界面库设计人机交互界面,要求界

1.题目要求及分析

本次大作业的要求是完成一个房贷计算器的设计,实现商业贷款、公积金贷款和组合贷款的利息计算三种功能。并且使用 Qt 或其他的界面库设计人机交互界面,要求界面友好方便使用。并且必须使用面向对象的思想进行设计,使用 C++ 编程。

通过对题目的理解和分析,为了在实际开展时有清晰的方向,并能提高学习的效率,我将要求分为了以下几个步骤:

  • 学习房贷计算的相关知识,了解不同贷款的区别,通过调研我发现在贷款计算方式上分为等额本金和等额本息两种,所以也要学习不同方式的就算方法;
  • 掌握了房贷相关的基本知识后,理清思路用面向对象的思想设计程序,将琐碎的问题系统化分类,进行程序的设计,即完成基础实现代码,检验程序的可运行性;
  • 学习 Qt 的相关知识,掌握界面设计的方法,其中包含界面和控件的设计和使用;
  • 用所学的 Qt 知识布局界面,再将实现代码根据 Qt 中函数的设计修改,以达到在自己设计的界面中可以实现计算器的正常运行;
  • 多次调试和优化自己的设计,尤其注意人机友好型,使程序具有一定的健壮性,不会因为用户的输入错误而引起程序的运行失败。

2.代码设计思路

通过对房贷相关知识的调研,我基本了解了商业贷款、公积金贷款以及组合贷款三者的区别和联系。并且通过搜索网页上所提供的房贷计算器,我发现对于贷款的计算方式也分为两种:等额本金和等额本息。并且这将作为在设计时的重点和难点,我也在这方面上投入了较多的时间学习。

对于整个房贷计算器来说,我将它们分为两大类:商业贷款和公积金贷款为一类(称为 Shang 类),组合型贷款单独为一类(称为 Mix 类)。这样分类的依据是:前者的计算思路一致,唯一的不同点仅在于二者的贷款利率不同;后者是综合了商业贷款和公积金贷款,所以在 Shang 类设计完成后,只需将两者结合,构造出新的 Mix 类即可,可以使设计更为简单(流程图见图 1-1)。

(一)商业贷款、公积金贷款类

对于商业贷款、公积金贷款统一写为 Shang 类,它们的计算方式也分为两种:按面积单价来计算和按贷款总额来计算。所以 Shang 类的构造函数设计了重载函数来实现,一个的参数是用户输入的面积单价、总面积、按揭成数、年数和年利率;另一个的参数是单款额、贷款年数和年利率。其目的都是得到总价(all(仅用于面积单价时))、贷款总额(total)、按揭月数(month)、首月月供(firstmonth)、和利息(lixi)。

得到相关数据之后,设计了成员函数 Cal1()和 Cal2()来完成计算,利用等额本金、等额本息的计算方式得到每月还款额、总利息。下面介绍计算方法:

  • 等额本金:
  • 每月还款额 = 每月还款本金 + 每月还款利息;
  • 每月还款本金 = 贷款总额/贷款月数;
  • 每月还款利息 = 贷款本金余额 * 贷款月利率;
  • 总利息 = (还款月数 +1)贷款总额月利率/2;
  • 等额本息:
  • 每月应还款额 = 贷款本金月利率(1+ 月利率)^ 还款月数/((1+ 月利率)^ 还款月数-1);
  • 总还款额 = 每月还款额 * 月数;

计算得出结果后,由于不同方式的贷款输出的形式也不同,所以设计了四种不同的输出方式,即为 Show i()函数。具体的设计见流程图 1-2。

【内附源码和文档】基于C++实现房贷计算器的设计_Qt

图 1-1 总流程图

【内附源码和文档】基于C++实现房贷计算器的设计_构造函数_02

图 1-2 商业贷款&公积金贷款

(二)组合型贷款类

由于商业贷款、公积金贷款类已经在计算方面实现了代码的正确性,所以在组合型贷款类内可以继续使用上一类中的计算方式。因此在组合型类的私有成员里定义了两个 Shang 类对象分别为商业贷款的对象和公积金的对象,因此在 Mix 的构造函数里只需初始化列表,给这两个对象赋对应的值即可。这样在 Mix 的计算函数 Calculate()中只需分别调用 Cal1()和 Cal2(),再将结果相加即组合型贷款额。由于输出形式与前面的不同,因此又定义了两个 Show i()函数来输出结果。具体的设计见流程图 1-3。

【内附源码和文档】基于C++实现房贷计算器的设计_流程图_03

图 1-3 组合型贷款

完整的源码和详细的文档,上传到了 【WRITE-BUG数字空间】,需要的请自取:https://www.writebug.com/code/0c7a33b7-c792-11ed-a5a9-6479f0e5e323/#

上一篇:Win32 Service的简单封装
下一篇:没有了
网友评论