Qt+C++桌面计算器源码
程序示例精选
Qt+C++桌面计算器源码
如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助!
前言
这篇博客针对<<Qt+C++桌面计算器源码>>编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
文章目录
一、所需工具软件
二、使用步骤
1. 引入库
2. 主要代码
3. 运行结果
三、在线协助
一、所需工具软件
1. VS, Qt
2. C++
二、使用步骤
1.引入库
代码如下(示例):
#include <QDebug>
#include <iostream>
#include <cmath>
#include <QChar>
#include <QDialog>
#include <QFile>
2.主要代码
代码如下(示例):
void MainWindow::Calc_Suffix()
{for(int i=0;i<out.size();i++){bool is_Num =true;out[i].toDouble(&is_Num);if(is_Num)//如果是数字,直接入栈{s2.push(out[i].toDouble(&is_Num));}else if(out[i]=='s'||out[i]=='c'||out[i]=='t'||out[i]=='^'){double x=s2.pop();if(out[i]=='s')x=sin(x);else if(out[i]=='c')x=cos(x);else if(out[i]=='t')x=tan(x);else if(out[i]=='l')x=log(x);else if(out[i]=='^'){int y=x;x=s2.pop();int z=x;for(int j=1;j<y;j++)x=x*z;}s2.push(x);}else if(out[i]=="+"||out[i]=="-"||out[i]=="*"||out[i]=="/")//如果是运算符,弹栈两次,并进行运算,运算后,结果入栈{double x=s2.pop();double y=s2.pop();if(out[i]=="+"){s2.push(y+x);}else if(out[i]=="-"){s2.push(y-x);}else if(out[i]=="*"){s2.push(y*x);}else if(out[i]=="/"){s2.push(y/x);}}}result = s2.pop();qDebug()<<result;
}void MainWindow::m_init()
{ba.clear();out.clear();
}void MainWindow::on_pushButton_clicked()
{in=ui->lineEdit->text();//获取表达式getChar();getSuffix();Calc_Suffix();ui->lineEdit->clear();//清空文本编辑框ui->lineEdit->setText(QString("%1%2").arg('=').arg(result));//显示结果m_init();
}void MainWindow::on_pushButton_2_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(0));
}void MainWindow::on_pushButton_3_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(1));
}void MainWindow::on_pushButton_4_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(2));
}void MainWindow::on_pushButton_5_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(3));
}void MainWindow::on_pushButton_6_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(4));
}void MainWindow::on_pushButton_7_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(5));
}void MainWindow::on_pushButton_8_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(6));
}void MainWindow::on_pushButton_9_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(7));
}void MainWindow::on_pushButton_10_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(8));
}void MainWindow::on_pushButton_11_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(9));
}void MainWindow::on_pushButton_12_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("+"));
}void MainWindow::on_pushButton_13_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("-"));
}void MainWindow::on_pushButton_14_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("*"));
}void MainWindow::on_pushButton_15_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("/"));
}void MainWindow::on_pushButton_20_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("."));
}void MainWindow::on_pushButton_18_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("("));
}void MainWindow::on_pushButton_19_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg(")"));
}void MainWindow::on_pushButton_16_clicked()
{//清空所有内容,并初始化ui->lineEdit->clear();m_init();
}void MainWindow::on_pushButton_17_clicked()
{//退格删除一个字符ui->lineEdit->backspace();
}void MainWindow::on_pushButton_21_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("sin"));
}void MainWindow::on_pushButton_22_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("cos"));
}void MainWindow::on_pushButton_23_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("tan"));
}void MainWindow::on_pushButton_24_clicked()//最小公倍数,c_mul
{QString str=ui->lineEdit->text();QString l1="0",l2="0";QByteArray yue = str.toLatin1();bool hasSpace = false;QString c_div="1";int max_yue;for(int i=0;i<yue.size();i++){char x=yue[i];if(x=='.')hasSpace=true;else if(x!='.'&&hasSpace)l2+=QString(x);elsel1+=QString(x);}int s1=l1.toInt(nullptr,10);int s2=l2.toInt(nullptr,10);int max;if(s1>s2)max=s1;elsemax=s2;for(int j=2;j<max;j++){if(s1 % j==0&&s2%j==0){max_yue=j;}}int z=s1*s2/max_yue;QString c_mul=QString::number(z);ui->lineEdit->setText(c_mul);
}void MainWindow::on_pushButton_25_clicked()//公约数,两个数以小数点分格
{QString str=ui->lineEdit->text();QString l1="0",l2="0";QByteArray yue = str.toLatin1();bool hasSpace = false;QString c_div="1";for(int i=0;i<yue.size();i++){char x=yue[i];if(x=='.')hasSpace=true;else if(x!='.'&&hasSpace)l2+=QString(x);elsel1+=QString(x);}int s1=l1.toInt(nullptr,10);int s2=l2.toInt(nullptr,10);int max;if(s1>s2)max=s1;elsemax=s2;for(int j=2;j<max;j++){if(s1 % j==0&&s2%j==0){c_div+="*";c_div+=QString::number(j);}}ui->lineEdit->setText(c_div);
}void MainWindow::on_pushButton_26_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("^"));
}void MainWindow::on_pushButton_27_clicked()
{QString str=ui->lineEdit->text();ui->lineEdit->setText(QString("%1%2").arg(str).arg("log"));
}
3.参数定义
代码如下(示例):
if __name__ == '__main__':parser = argparse.ArgumentParser()parser.add_argument('--weights', nargs='+', type=str, default='yolov5_best_road_crack_recog.pt', help='model.pt path(s)')parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')parser.add_argument('--conf-thres', type=float, default=0.25, help='object confidence threshold')parser.add_argument('--iou-thres', type=float, default=0.45, help='IOU threshold for NMS')parser.add_argument('--view-img', action='store_true', help='display results')parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')parser.add_argument('--classes', nargs='+', type=int, default='0', help='filter by class: --class 0, or --class 0 2 3')parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')parser.add_argument('--augment', action='store_true', help='augmented inference')parser.add_argument('--update', action='store_true', help='update all models')parser.add_argument('--project', default='runs/detect', help='save results to project/name')parser.add_argument('--name', default='exp', help='save results to project/name')parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')opt = parser.parse_args()
3.运行结果如下
三、在线协助:
如需安装运行环境或远程调试,见文章底部个人 QQ 名片,由专业技术人员远程协助!
1)远程安装运行环境,代码调试
2)Qt, C++, Python入门指导
3)界面美化
4)软件制作
当前文章连接:https://blog.csdn.net/alicema1111/article/details/132608892
博主推荐文章:python人脸识别统计人数qt窗体-CSDN博客
博主推荐文章:Python Yolov5火焰烟雾识别源码分享-CSDN博客
Python OpenCV识别行人入口进出人数统计_python识别人数-CSDN博客
个人博客主页:alicema1111的博客_CSDN博客-Python,C++,网页领域博主
博主所有文章点这里:alicema1111的博客_CSDN博客-Python,C++,网页领域博主
相关文章:

Qt+C++桌面计算器源码
程序示例精选 QtC桌面计算器源码 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对<<QtC桌面计算器源码>>编写代码,代码整洁,规则,易读。 学习与…...

kubesphere安装Maven+JDK17 流水线打包
kubesphere 3.4.0版本,默认支持的jav版本是8和11,不支持17 。需要我们自己定义JenKins Agent 。方法如下: 一、构建镜像 1、我们需要从Jenkins Agent的github仓库拉取master最新源码,最新源码里已经支持jdk17了。 git clone ht…...

百度搜索清理大量低质量网站
我是卢松松,点点上面的头像,欢迎关注我哦! 据部分站长爆料:百度大规模删低质量网站的百度资源站长平台权限,很多网站都被删除了百度站长资源平台后台权限,以前在百度后台添加的网站大量被删除!…...

WPF数据模板
样式提供了基本的格式化能力,但它们不能消除到目前为止看到的列表的最重要的局限性:不管如何修改ListBoxItem,它都只是ListBoxItem,而不是功能更强大的元素组合。并且因为每个ListBoxItem只支持单个绑定字段,所以不可能…...

浙江绿农环境:将废弃矿山变耕地,为生态文明贡献力量
近年来,随着可持续发展理念在中国乃至全球的日益普及,浙江绿农生态环境有限公司以其独特的创新和实践,成为了绿色发展的典范,在奋进新时代、建设新天堂的背景下,绿农环境在杭州市固废治理行业迈出坚实的步伐࿰…...

HTML/CSS盒子模型
盒子:页面中的所有的元素(标签),都可以看做一个盒子,由盒子将页面中的元素包含在一个矩形区域内,通过盒子的视角更加方便的进行页面布局 盒子模型的组成: 内容区域(contentÿ…...

《Java面向对象程序设计》学习笔记——CSV文件的读写与处理
笔记汇总:《Java面向对象程序设计》学习笔记 笔记记录的不是非常详实,如果有补充的建议或纠错,请踊跃评论留言!!! 什么是CSV文件 CSV文件的定义 CSV 是英文 comma-separated values 的缩写࿰…...

opencv 案例05-基于二值图像分析(简单缺陷检测)
缺陷检测,分为两个部分,一个部分是提取指定的轮廓,第二个部分通过对比实现划痕检测与缺角检测。本次主要搞定第一部分,学会观察图像与提取图像ROI对象轮廓外接矩形与轮廓。 下面是基于二值图像分析的大致流程 读取图像将图像转换…...

Elasticsearch入门介绍
应用场景 1 它提供了强大的搜索功能,可以实现类似百度、谷歌等搜索。 2 可以搜索日志或者交易数据,用来分析商业趋势、搜集日志、分析系统瓶颈或者运行发展等等 3 可以提供预警功能(持续的查询分析某个数据,如果超过一定的值&a…...

QML Book 学习基础3(动画)
目录 主要动画元素 例子: 非线性动画 分组动画 Qt 动画是一种在 Qt 框架下创建交互式和引人入胜的图形用户界面的方法,我们可以认为是对某个基础元素的多个设置 主要动画元素 PropertyAnimation-属性值变化时的动画 NumberA…...

Lesson4-3:OpenCV图像特征提取与描述---SIFT/SURF算法
学习目标 理解 S I F T / S U R F SIFT/SURF SIFT/SURF算法的原理,能够使用 S I F T / S U R F SIFT/SURF SIFT/SURF进行关键点的检测 SIFT/SURF算法 1.1 SIFT原理 前面两节我们介绍了 H a r r i s Harris Harris和 S h i − T o m a s i Shi-Tomasi Shi−Tomasi…...

语言基础篇9——Python流程控制
流程控制 顺序结构、条件结构、循环结构,顺序结构由自上而下的语句构成,条件结构由if、match-case构成,循环结构由for、while构成。 if语句 flag 1 if flag 1:print("A") elif flag 2:print("B") else:print("…...

MATLAB算法实战应用案例精讲-【概念篇】构建数据指标方法(补充篇)
目录 前言 几个高频面试题目 指标与标签的区别 几个相关概念 数据域 业务过程...

【pyqt5界面化工具开发-12】QtDesigner图形化界面设计
目录 0x00 前言 一、启动程序 二、基础的使用 三、保存布局文件 四、加载UI文件 0x00 前言 关于QtDesigner工具的配置等步骤(网上链接也比较多) 下列链接非本人的(如果使用pip 在命令行安装过pyqt5以及tools,那么就可以跳过…...

CXL.mem S2M Message 释义
🔥点击查看精选 CXL 系列文章🔥 🔥点击进入【芯片设计验证】社区,查看更多精彩内容🔥 📢 声明: 🥭 作者主页:【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN,…...

设计模式—外观模式(Facade)
目录 一、什么是外观模式? 二、外观模式具有什么优点吗? 三、外观模式具有什么缺点呢? 四、什么时候使用外观模式? 五、代码展示 ①、股民炒股代码 ②、投资基金代码 ③外观模式 思维导图 一、什么是外观模式?…...

Stack Overflow开发者调查发布:AI将如何协助DevOps
Stack Overflow 发布了开创性的2023年度开发人员调查报告 [1]。报告对 90,000 多名开发人员进行了调查,全面展示了当前软件开发人员的体验。接下来,本文将重点介绍几项重要发现,即重要编程语言和工具偏好、人工智能在开发工作流程中的应用以及…...

去掉鼠标系列之二:Sublime Text快捷键使用指南
系列之二,Sublime Text。 Sublime Text 是我们常用的文本工具,常常要沉浸如其中使用,而不希望被鼠标打扰,所以也记录一下。 学会下面这些快捷键,基本上就不需要移动鼠标啦。 1,CtrlK,CtrlV …...

docker-compose安装node-exporter, prometheus, grafana
基础 exporter提供监控数据 prometheus拉取监控数据 grafana可视化监控数据 准备 全部操作在/root/mypromethus中执行 node_exporter docker-compose -f node-exporter.yaml up -d # web访问,查看node_exporter采集到的数据 http://192.168.1.102:9101/metrics…...

企业架构LNMP学习笔记10
1、Nginx版本,在实际的业务场景中,需要使用软件新版本的功能、特性。就需要对原有软件进行升级或重装系统。 Nginx的版本需要升级迭代。那么如何进行升级呢?线上服务器如何升级,我们选择稳定版本。 从nginx的1.14版本升级到ngin…...

[国产MCU]-W801开发实例-I2C控制器
I2C控制器 文章目录 I2C控制器1、I2C控制器介绍2、I2C驱动API2、I2C简单使用示例1、I2C控制器介绍 I2C总线是一种简单、双向二线同步串口总线。I2C总线设备之间通信只需两根线即可完成设备之间的数据传输。 I2C总线设备分为主机和从机,这取决于数据传输方向。I2C总线上的主机…...

植物根系基因组与数据分析
1.背景 这段内容主要是关于植物对干旱胁迫的反应,并介绍了生活在植物体内外以及根际的真菌和细菌的作用。然而,目前对这些真菌和细菌的稳定性了解甚少。作者通过调查微生物群落组成和微生物相关性的方法,对农业系统中真菌和细菌对干旱的抗性…...

2.3 数据模型
思维导图: 前言: 我的理解: 这段话介绍了概念模型和数据模型之间的关系,以及数据模型的定义和重要性。具体解读如下: 1. **概念模型**:它是一种描述现实世界数据关系的抽象模型,不依赖于任何…...

RT-Thread 中断管理学习(一)
中断管理 什么是中断?简单的解释就是系统正在处理某一个正常事件,忽然被另一个需要马上处理的紧急事件打断,系统转而处理这个紧急事件,待处理完毕,再恢复运行刚才被打断的事件。生活中,我们经常会遇到这样…...

学习周报9.3
文章目录 前言文献阅读一摘要挑战基于时间序列的 GAN 分类 文献阅读二摘要介绍提出的模型:时间序列GAN (TimeGAN) 代码学习总结 前言 本周阅读两篇文献,文献一是一篇时序生成方面的综述,主要了解基于时间序列 的GAN主要分类以及时间序列GAN方面面临的一…...

win10 查看指定进程名的端口号
在 Windows 10 的任务管理器中也可以查看端口号。请按下面的步骤操作: 打开任务管理器,可以通过按下快捷键 CtrlShiftEsc 或者右键点击任务栏后选择任务管理器来打开。点击“性能”选项卡,然后点击左侧的“打开资源监视器”。在资源监视器中…...

函数的递归调用
1、什么是函数的递归调用? 其实说白了就是在函数的内部再调用函数自己本身 function fun(){fun() } 2、用递归解决问题的条件 (1)一个问题是可以分解成子问题,子问题的解决办法与最原始的问题解决方法相同 (2&…...

李宏毅机器学习笔记:RNN循环神经网络
RNN 一、RNN1、场景引入2、如何将一个单词表示成一个向量3种典型的RNN网络结构 二、LSTMLSTM和普通NN、RNN区别 三、 RNN的训练RNN与auto encoder和decoder 四、RNN和结构学习的区别 一、RNN 1、场景引入 例如情景补充的情况,根据词汇预测该词汇所属的类别。这个时…...

基于JavaWeb和mysql实现校园订餐前后台管理系统(源码+数据库)
一、项目简介 本项目是一套基于JavaWeb和mysql实现网上书城前后端管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都…...

CNN 01(CNN简介)
一、卷积神经网络的发展 convolutional neural network 在计算机视觉领域,通常要做的就是指用机器程序替代人眼对目标图像进行识别等。那么神经网络也好还是卷积神经网络其实都是上个世纪就有的算法,只是近些年来电脑的计算能力已非当年的那种计算水平…...