当前位置: 首页 > news >正文

Qt项目实战:银行利息(贷款)计算器

目录

一.ui设计

二.初始化表单

三. 存款计算

四.贷款计算

五.效果

六.代码

1.h

2.cpp


一.ui设计

二.初始化表单

获取当前时间,并将开始日期设置为当前日期,将结束日期设置为当前日期加一年

三. 存款计算

1.从文本框获取当前资金、利率、定期期限和总年份等输入数据。

2.检查总年份是否是定期期限的整数倍,如果不是,则显示错误消息并聚焦到该输入框。

3.根据选中的存款类型(活期或定期)进行不同的计算:

4.活期:简单地按公式 moneyAll=moneyCurrent+(moneyCurrent×rate×years)moneyAll=moneyCurrent+(moneyCurrent×rate×years) 来计算最终金额。

5.定期:使用循环根据年数递增资金,每次都重新计算新的本金。

6.将结果显示在对应文本框中,并根据所选单选按钮将值复制到另一个文本框中。 如果两个文本框都有值,则计算它们之间的差额并显示。

四.贷款计算

1.获取开始和结束日期,并通过调用 daysTo() 方法计算两者之间相差多少天。

2.从文本框获取金额和利率,然后使用公式 result=money×rate×dayresult=money×rate×day 来计算结果。

3.将结果转换为字符串并显示在对应的输出文本框中,同时通过调试输出打印出天数以便开发者查看。

五.效果

六.代码

1.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;private slots:void initForm();void on_btnCalc_clicked();void on_btnCalc2_clicked();
};#endif // WIDGET_H

2.cpp

#pragma execution_character_set("utf-8")#include "widget.h"
#include "ui_widget.h"
#include "qmessagebox.h"
#include "qdebug.h"Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);this->initForm();
}Widget::~Widget()
{delete ui;
}void Widget::initForm()
{QDateTime now = QDateTime::currentDateTime();ui->dateStart->setDate(now.date());ui->dateEnd->setDate(now.date().addYears(1));
}void Widget::on_btnCalc_clicked()
{//当前多少钱int moneyCurrent = ui->txtMoneyCurrent->text().toInt();//利息float rate = ui->txtRate->text().toFloat();//定期期限int year = ui->cboxYear->currentText().left(1).toInt();//总年份 必须是定期期限的倍数int years = ui->txtYears->text().toInt();//最终多少钱int moneyAll = 0;if (years % year != 0) {ui->txtYears->setFocus();QMessageBox::critical(this, "错误", "总年份必须是期限的整数倍数!");return;}if (ui->cboxType->currentIndex() == 0) {//傻瓜场景 直接计算moneyAll = moneyCurrent + (moneyCurrent * rate * years);} else {//真实场景 复利计算int count = years / year;for (int i = 0; i < count; ++i) {moneyCurrent = moneyCurrent + (moneyCurrent * rate * year);}moneyAll = moneyCurrent;}//计算下来3年期定期存款30年总金额翻2番到最初本金3倍 100W本金3年期自动续期30年=321WQString value = QString::number(moneyAll);ui->txtMoneyAll->setText(value);//拷贝到其他地方if (ui->rbtn1->isChecked()) {ui->txtValue1->setText(value);} else {ui->txtValue2->setText(value);}//计算两种存款方式的差额 比如1年期存3年和3年期存3年QString value1 = ui->txtValue1->text().trimmed();QString value2 = ui->txtValue2->text().trimmed();if (!value1.isEmpty() && !value2.isEmpty()) {int value = qAbs(value1.toInt() - value2.toInt());ui->txtValue->setText(QString::number(value));}
}void Widget::on_btnCalc2_clicked()
{//计算天数QDateTime dateStart = ui->dateStart->dateTime();QDateTime dateEnd = ui->dateEnd->dateTime();int day = dateStart.daysTo(dateEnd);int money = ui->txtMoney2->text().toInt();float rate = ui->txtRate2->text().toFloat();int result = money * rate * day;ui->txtResult2->setText(QString::number(result));qDebug() << day;
}


http://www.mrgr.cn/news/65957.html

相关文章:

  • Shiro权限刷新
  • 使用WebStorm开发Vue3项目
  • 编写第一个 Appium 测试脚本:从安装到运行!
  • CasaOS香橙派安装HomeAssistant智能家居系统并实现远程管理家中智能设备
  • 【力扣热题100】[Java版] 刷题笔记-121. 买卖股票的最佳时机
  • 2-142【软件无线电原理与应用作业】基于matlab的圆形阵列的波束形成进行仿真
  • druid-multi-tenant-starter将系统改造成多租户系统如此简单
  • 企业邮箱后缀优化:提升邮件送达率的策略!
  • 三周精通FastAPI:32 探索如何使用pytest进行高效、全面的项目测试!
  • W55RP20-EVB-Pico评估板介绍
  • Android camera2
  • 全面提升小程序用户体验,让你的小程序一举夺目
  • 【Rust中的迭代器】
  • 植物神经紊乱不用怕,这些维生素来帮你!
  • OJ03:删除有序数组中的重复项
  • PHP电商供应链ERP管理系统小程序源码
  • SQL优化 - group by优化
  • 俄罗斯市场开发秘籍大公开
  • Vagrant使用教程:创建CentOS 8虚拟机
  • Ubuntu20.04两种安装及配置中文界面、输入法、换源、共享文件夹实现,及注意事项
  • 从0到1!手把手教你私域流量变现的5个必备技能
  • 使用实例讲解RTOS的内核结构、任务调动、资源管理、中断处理
  • 把握数字化新趋势,迎接生态架构新时代——The Open Group 2024生态系统架构·可持续发展年度大会参会指南
  • sql中判断一个字段是否包含一个数据的方法
  • 【从零开始的LeetCode-算法】3289. 数字小镇中的捣蛋鬼
  • 影视会员充值接口对接过程中都需要注意些什么?