1 Star 0 Fork 0

Fan yq / Mortgage-calculator

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

-

房贷计算器 一、 需求分析

  1. 系统目标 参照房天下的房贷计算器,自主设计一款房贷计算器(MortgageCalculator)。 (1) 采用面向对象的思想设计程序 (2) 采用C++语言进行设计 (3) 注意人机友好性 a) 对用户输入,给出足够的提示信息。 b) 程序具有一定的健壮性,不会因为用户的输入错误引起程序运行错误而中断执行。对输入值的类型、大小范围、字符串的长度等,进行正确性检查,对不合法的输入值给出出错信息,指出错误类型,等待重新输入 c) 对删除数据应给出警告,以便用户确认删除操作。 d) 对界面进行美化 我设计的房贷计算器的主要实现功能为在商业贷款、公积金贷款及组合型贷款条件下,实现等额本息还款法的房款总额、贷款总额、还款总额、总支付利息、首期付款、贷款月数和月均还款,等额本金还款法的房款总额、贷款总额、还款总额、总支付利息、首期付款、贷款月数、首月还款和每月换款递减数。 房天下链接:https://newhouse.fang.com/house/tools.htm 个人房贷计算器 github链接:https://github.com/Ledger-cs/Mortgage-calculator
  2. 主体功能 (1) 计算商业贷款、公积金贷款和组合贷款的利息 (2) 人性化设计
  3. 开发环境 Windows10操作系统,visual studio 2019,QT 二、 系统详细设计
  4. 设计ui界面

主要通过lineEdit、Combo Box、Plain Text Edit、Push Button、Text Browser等控件来实现。 2. 各按钮和编辑框等对象的属性 对象 对应变量名称 标题或说明 下拉框 ComboBox 商业贷款 下拉框 公积金贷款 下拉框 组合型贷款 下拉框 ComboBox_2 根据面积、单价计算 下拉框 根据房贷总额计算 下拉框 ComboBox_3 按揭成数 下拉框 ComboBox_4 按揭年数 下拉框 ComboBox_5 等额本息 下拉框 等额本金 行编辑 LineEdit 房屋单价 行编辑 LineEdit_2 房屋面积 行编辑 LineEdit_3 商业贷款总额 行编辑 LineEdit_4 公积金贷款总额 行编辑 LineEdit_5 商业贷款利率 行编辑 LineEdit_6 公积金贷款利率

  1. 设计思想 该房贷计算器设计了一个mortgage类,包含了xi()、jin()、reset()等函数,并重载了+号运算符实现两个类对象的相加。xi()实现等额本息计算的功能,jin()则实现了等额本金计算的功能,reset()实现了重置变量值的功能。

类的设计图 及其函数如下

根据对房贷计算器的理解设计为先判断贷款类型,再根据贷款类型进一步判断,由于商业贷款和公积金贷款的高度相似,当贷款类型为商业贷款或公积金贷款时,再判断贷款方式根据不同贷款方式,读入对应数据,计算相关数据,最后判断还款方式并根据还款方式计算并输出结果。若贷款类型为组合型贷款,则只需要输入对应数据,计算相关数据,再根据所选择还款方式计算并输出结果。主要设计流程图如下

三、 数据分析 由于商业贷款和公积金 贷款的高度相似,在此将商业贷款和公积金贷款的数据测试归为一类,组合型贷款另成一类。

  1. 商业贷款和公积金贷款 (1) 根据单价、面积计算 单价34000元/平米,面积220平米,等额本息还款 变量 房天下 Mine 房天下 Mine 利率 4.75 3.25 按揭成数 8 8 按揭年数 25 25 首付 1496000 1496000 1496000 1496000 月供 34116 34116 29161 29161 贷款总额 5984000 5984000 5984000 5984000 利息 4250747 4250747 2764301 2764301 还款总额 10234747 10234747 8748301 8748301 还款月数 300 300 300 300

利率 4.75 4.75 按揭成数 8 5 按揭年数 25 25 首付 1496000 1496000 3740000 3740000 月供 34116 34116 21322 21322 贷款总额 5984000 5984000 3740000 3740000 利息 4250747 4250747 2656717 2656717 还款总额 10234747 10234747 6396717 6396717 还款月数 300 300 300 300

利率 4.75 4.75 按揭成数 8 8 按揭年数 25 15 首付 1496000 1496000 1496000 1496000 月供 34116 34116 46545 46545 贷款总额 5984000 5984000 5984000 5984000 利息 4250747 4250747 2394183 2394183 还款总额 10234747 10234747 8378183 8378183 还款月数 300 300 180 180

通过两两数据对比,可见结果并没有偏差 接下来看几组随机数据在本息条件下的情况 单价12345元/平米,面积180平米,7成,20年,4.25% 单价23125.26元/平米,面积200平米,5成,20年,2.25% 单价42413.54元/平米,面积120.8平米,6成,20年,3.56% 单价20000元/平米,面积200平米,8成,25年,4.75% 单价25555元/平米,面积155平米,3成,10年,5.86% 首付 月供 贷款总额 利息 还款总额 还款月数 房天下 666630 9632 1555470 756212 2311682 240 Mine 666630 9632 1555470 756212 2311682 240

房天下 2312526 11974 2312526 561342 2873868 240 Mine 2312526 11974 2312526 561342 2873868 240

房天下 2049422 17924 3074133 1227545 4301678 240 Mine 2049422 17924 3074133 1227545 4301679 240

房天下 800000 18244 3200000 2273127 5473127 300 Mine 800000 18244 3200000 2273127 5473127 300

房天下 2772717 13109 1188307 384804 1573112 120 Mine 2772718 13109 1188308 384804 1573111 120

接下来看看在等额本金情况下的几组数据

单价12345元/平米,面积180平米,7成,20年,4.25% 单价23125.26元/平米,面积200平米,5成,10年,2.25% 单价42413.54元/平米,面积120.8平米,6成,25年,3.56% 首付 首月月供 每月递减 贷款总额 利息 还款总额 还款月数 房天下 666630 11989 23 1555470 663829 2219299 240 Mine 666630 11990 23 1555470 663829 2219299 240

房天下 2312526 23606 36 2312526 262327 2574853 120 Mine 2312526 23607 36 2312526 262327 2574853 120

房天下 2049422 19366 30 3074133 1372549 4446682 300 Mine 2049422 19367 30 3074133 1372549 4446682 300

(2) 根据房贷总额计算 如下4组数据,分别计算在等额本息和等额本金情况下的结果数据 200W,25年,4.75% 131.45W,10年,5.20% 123W,15年,4.25% 80.56W,20年,3.25% 本息情况 月供 贷款总额 利息 还款总额 还款月数 房天下 12924 2000000 1101873 3101873 240 Mine 12924 2000000 1101873 3101873 240

房天下 14071 1314500 374040 1688540 120 Mine 14071 1314500 374040 1688540 120

房天下 9253 1230000 435544 1665544 180 Mine 9253 1230000 435544 1665544 180

房天下 4569 805600 291039 1096639 240 Mine 4569 805600 291039 1096639 240

本金情况下 月供 每月递减 贷款总额 利息 还款总额 还款月数 房天下 16249 33 2000000 953958 2953958 240 Mine 16250 33 2000000 953958 2953958 240

房天下 16650 47 1314500 344618 1659118 120 Mine 16651 47 1314500 344618 1659118 120

房天下 11189 24 1230000 394241 1624241 180 Mine 11190 24 1230000 394241 1624241 180

房天下 5538 9 805600 262911 1068511 240 Mine 5538 9 805600 262911 1068511 240

  1. 组合型贷款 由于组合型贷款相当于做两次的根据贷款总额计算结果相加,实际上约莫等同于上面的根据贷款总额计算
  2. 数据分析 显而易见,绝大部分结果数据都是准确的,少数几个偏差一元,这是由于系统内部取整函数的特性所造成的,但由于程序设计时采用双精度浮点型double类型进行运算,所以实际上对整体结果无影响。但由于测试数据所限,并不能百分比跟你说所有数据肯定都能运算准确,我想这个没人能保证。举程序中对利率的计算,为了计算我们需要将利率缩小1200倍,如果我们在数据中直接采用/号运算符除1200,我们显然可以发现在/运算中他会将 结果 x/1200的余数直接省略掉,这对精度时比较伤的,所以我采用先/12再/100这样可以进一步提高算法的精度,但是也还是有所偏差。所以就目前而言,该程序的结果在其double类型的数据范围下其正确性还是有保证的。而在程序的时间复杂度上,由于使用了pow函数,再看程序整体的设计,显然时间复杂度为O(logN)。 四、 调试过程

第一次进行编译时出现了如上的错误,我去百度进行查询,得到如下两种情况均可以导致

还有一个BUG ,在进行第一次数据测试的时候由于lineEdit输入了小数,结果出现nan,经过多方面排查最后发现在链接lineEdit时使用了toInt连接整数型数据无法读入浮点型数据,而当使用toDouble链接lineEdit时可以读入整数型数据和浮点型数据。 五、 心得体会 四月中旬就发布了,但直到五月中旬左右才开始设计,程序整体很简单,明白等额本息,等额本金的计算公式,根据读入的数据可直接进行调用设计的计算公式的函数进行对结果的运算并输出。主要还是在于采用QT或其他平台进行界面的设计,接触新东西时,可能有人会觉得有点难,但其实这和我们刚开始学习C语言时差不多,无非就是新学QT编程语言(我采用的QT进行界面设计),将所编写程序转化一下罢了。在这次QT编程中我体会到了QT的魅力,但由于临近期末,学业繁重,未能好好深入了解一下QT,其实这个房贷计算器,在深入理解QT后还可以进行大改变,比如设计动态ui界面,小键盘,输出界面栏的收缩等等。再者,对于利率,其实很多人都不会去了解吧,硬要让人输入利率有点“强人所难”,关于这一点我想以后学习数据库时,可以进一步完善。

空文件

简介

暂无描述 展开 收起
Makefile 等 4 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/fanyq/Mortgage-calculator.git
git@gitee.com:fanyq/Mortgage-calculator.git
fanyq
Mortgage-calculator
Mortgage-calculator
master

搜索帮助