首页 > 编程语言 >基于C++实现房贷计算器的设计

基于C++实现房贷计算器的设计

时间:2023-05-22 10:06:18浏览次数:34  
标签:等额 房贷 月数 计算器 商业贷款 C++ 设计 贷款 界面

访问【WRITE-BUG数字空间】_[内附完整源码和文档]

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

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);
  • 总还款额 = 每月还款额 * 月数;

基于C++实现房贷计算器的设计_Qt

基于C++实现房贷计算器的设计_面向对象_02

基于C++实现房贷计算器的设计_界面库_03

基于C++实现房贷计算器的设计_界面库_04

标签:等额,房贷,月数,计算器,商业贷款,C++,设计,贷款,界面
From: https://blog.51cto.com/u_16075443/6320860

相关文章

  • c++宏
    _Pragmaonce操作符#pragma是一条预处理指令,简单的说他是用来向编译器传达语言标注以外的一些信息例如我们在头文件中定义了如下语句#pragmaonce则表示该指令会指示编译器该头文件只会被编译一次(保证头文件只被include一次)而c++11中定义了与#pragma功能相同的操作符_Pgram......
  • C++ 测试框架 GoogleTest 初学者入门篇 甲
    *以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/BS_u9A4EY50y4vDDuxkCAQ开发者虽然主要负责工程里的开发任务,但是每个开发完毕的功能都是需要开发者自测通过的,所以经常会听到开发者提起单元测试的话题。那么今天我就带大伙......
  • 【重学C++】02 脱离指针陷阱:深入浅出 C++ 智能指针
    文章首发【重学C++】02脱离指针陷阱:深入浅出C++智能指针前言大家好,今天是【重学C++】系列的第二讲,我们来聊聊C++的智能指针。为什么需要智能指针在上一讲《01C++如何进行内存资源管理》中,提到了对于堆上的内存资源,需要我们手动分配和释放。管理这些资源是个技术活,一不小......
  • 详解C++STL—函数对象
    1、函数对象1.1、函数对象概念概念:重载函数调用()操作符的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数1.2、函数对象的使用特点:函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值函数对象超......
  • 为什么只有Python可以爬虫,C++可以吗?
    Python(英国发音:/ˈpaɪθən/;美国发音:/ˈpaɪθɑːn/),是一种广泛使用的解释型、面向对象、动态数据类型的高级程序设计语言。Python支持多种编程范型,包括结构化、过程式、反射式、面向对象和函数式编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个......
  • c++打卡第三十二天
    以点类Point及平面图形类Plane为基础设计圆类Circle一、问题描述以点类Point及平面图形类Plane为基类公有派生圆类Circle,main(void)函数完成对其的测试。Point类结构说明:Point类的数据成员包括:①私有数据成员:X坐标x(double型),Y坐标y(double型)。Point类成员函数包括:①有参构造......
  • C/C++程序设计课设题[2023-05-20]
    C/C++程序设计课设题[2023-05-20]ATM仿真系统-薛景背单词-叶水仙-理科实验班电信优惠套餐推荐系统的设计与实现-朱立华-通信工程多媒体文件管理及检索系统-刘林峰-广播电视工程公交路线自动化选择系统实现-张勤-测控技术与仪器基于朋友圈的商品推荐-汪云云-自动化基于数据......
  • vscode c++链接mongo数据库的操作随笔
     1、需要先下载安装各种软件及依赖1)c++链接mongo数据库需要涉及到这几个库,而且版本直接有范围boostcmakelibbsonmingwmongo-copensslgccmongocxx  2、vscode安装,用vscode的好处就是会省事情很多1)下载安装vscode2022版本2)也可以用vscode进行安装上面的各种类库......
  • 【重学C++】01| C++ 如何进行内存资源管理?
    文章首发【重学C++】01|C++如何进行内存资源管理?前言大家好,我是只讲技术干货的会玩code,今天是【重学C++】的第一讲,我们来学习下C++的内存管理。与java、golang等自带垃圾回收机制的语言不同,C++并不会自动回收内存。我们必须手动管理堆上内存分配和释放,这往往会导致内存泄漏......
  • C++中动态和静态库(dll) 使用(转)
    目录:1.lib与dll介绍2.动态库的生成与使用3.静态库的生成与使用 1.首先介绍下静态库(静态链接库,.lib文件),动态库*(动态链接库,.dll文件)的概念,两者都是代码共享的方式.静态链接:静态链接是指在编译的时候就把模块的内容加载进来一起编译,这样编出来的exe文件包含了模块......