QT的第二个程序:技术经济学计算器

本文介绍了作者使用QT框架创建一个技术经济学计算器的过程,包括View部分的界面设计,Control部分的数据获取与处理,以及model部分的计算逻辑。计算器具有基本的计算功能,但缺少一些高级的经济计算功能如NPV、IRR等,作者计划后续补充。此外,还详细讲解了如何添加Logo到程序中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0、前言

技术经济学这门课是上学期开的,从一开始我就在怀疑,我一个学修拖拉机的,学这么复杂的经济学知识有啥用,直到发现这门课的计算量不小,如果用常规的科学计算器,算起来还是比较麻烦(你喜欢用复利系数表就当我没说),特别是有些题需要逆推的时候,然后我就用C++在VS里面写了一个没有交互界面,只用COUT和CIN所构成的简易计算器,一定程度缓解了按计算器的压力。在大致学习了QT后,决心用QT做一个简易的计算器,于是有了本文,需要注意的是,由于时间过去蛮久,加上第一版无交互界面的程序在学校电脑,所以QT构建的计算器,缺少NPV、NAV、IRR、线性插值等计算功能,返校后有空会二次更新。

计算器exe打包文件下载

完整工程代码下载

在这里插入图片描述

1、View部分

在这里插入图片描述
左下方为6个RadioButto所组成的ButtonGroup,并设置为互斥,objectName设置为(rb_1~rb_6)
输入框由lineEdit组成,输出框为textBrowser。

2、Control部分

2.1、获取单选框数据

这里直接使用“计算”按钮事件

 	 //检查哪个单选框被按下
     QString Type= this->ui->TypeGroup->checkedButton()->objectName();
     //再通过if进行判断选择的按钮
     if(Type=="rb_1")//P求F

2.2、获取lineEdit数据

因为输入的数据本身是str型,需要转换为可用于计算的类型

//获取输入值
     long double  A= this->ui->lineEdit_A->text().toFloat();
     long double  P =this->ui->lineEdit_P->text().toFloat();
     long double F =this->ui->lineEdit_F->text().toFloat();
     float i =this->ui->lineEdit_I->text().toFloat();
     i=i*0.01;
     int n =this->ui->lineEdit_N->text().toInt();

2.3、清屏&清除数据

//清空屏幕
void MainWindow::on_ClcButton_clicked()
{
     this->ui->textBrowser->clear();
}

//清除label中的数据
void MainWindow::on_ClcData_clicked()
{
    this->ui->lineEdit_P->clear();
    this->ui->lineEdit_F->clear();
    this->ui->lineEdit_I->clear();
    this->ui->lineEdit_N->clear();
     this->ui->lineEdit_A->clear();
    PCount=0;//自增自减计算使用
}

3、model部分

计算需要添加以下头文件
#include <QtCore/qmath.h>

3.1、计算

     if(Type=="rb_1")//P求F
     {
     //F=P*((1+i)^n)
         i=qPow((1+i),n);//指数计算
         F=P*i;
         QString res="已知P求F:周期n="+this->ui->lineEdit_N->text()+"  F=";//设定输出格式
        res+= QString::number(F,10,2);//将F转换为字符型,十进制,保留两位小数
         this->ui->textBrowser->append(res);//换行输出
     }

3.2、自增计算
该计算主要为了计算不同周期下的结果,可以自增和自减,通过定义一个全局变量

int PCount=0;

后对应的计算函数中,获取到输入的n周期值后

 int PCC=PCount+n;
  if(Type=="rb_1")//P求F
     {
         i=qPow((1+i),PCC);
         F=P*i;
         QString res="已知P求F:周期n="+QString::number(PCC,10)+"  F=";
        res+= QString::number(F,10,2);//将F转换为字符型,保留两位小数
         this->ui->textBrowser->append(res);//换行输出
     }

并在j计算程序函数的末尾添加

 PCount++

4、添加Logo

在这里插入图片描述
需要先将自己的logo转化为ico文件,可以使用在线转换
将ico文件放到工程文件下,并新建一个txt文本,改名为xxx.rc

再次编辑该rc文件,写入一下内容,并保存(app为ico图文件名)

IDI_ICON1 ICON DISCARDABLE "app.ico"  

随后在QT工程的pro文件中写入,刚刚编辑的xxx.rc(命名看自己心情)
在这里插入图片描述

在这里插入图片描述
完成后保存并编译该程序。

5、参考资料

Qt_Logo 应用程序图标设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值