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++,网页领域博主

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/62162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VUE 开发知识个人记录

以下内容是本人在开发过程中实际验证过的一些固定写法&#xff0c;记录下来&#xff0c;方便自己后续开发过程中直接拷贝粘贴。 1、div 设置宽度自适应文本内容&#xff1a;设置 div 节点的 class 为下面 auto-adjust-text-width .auto-adjust-text-width {display: inline-b…

微签京瓷合作,亮相2023办公行业博览会

武汉&#xff0c;2023年8月8日至8月10日&#xff0c;2023中国现代办公行业年会暨中国智能办公行业博览会在武汉光谷科技会展中心盛大开幕。在这场行业盛会上&#xff0c;微签与京瓷合作打造的OA数字化管理系统重磅亮相&#xff0c;向广大消费者展示了微签在办公设备领域的转型升…

ASP.NET Core 8 的运行环境 Environment

开发流程一般有3个阶段&#xff1a; 开发 Development测试 Stage正式 Production 运行时环境变量可以用于根据不同的开发阶段运行不同的逻辑&#xff0c;比如在开发阶段的某些功能或保密信息不暴露在正式上线的代码中。 在Visual Stduio创建的模板代码中是否为开发环境Envir…

积分商城小程序如何精细化运营

随着移动互联网的发展&#xff0c;积分商城小程序成为了企业私域营销的重要组成部分。通过积分商城&#xff0c;企业可以激励用户参与、增加用户粘性&#xff0c;实现更好的用户互动和忠诚度提升。然而&#xff0c;要取得成功&#xff0c;积分商城小程序需要经过精细化的运营。…

最简单 实现 Element-ui el-table的懒加载表格数据 el-table懒加载请求数据 element-ui 懒加载

最简单 实现 Element-ui el-table的懒加载表格数据 el-table懒加载请求数据 element-ui 懒加载 1、效果图2、代码 1、效果图 2、代码 <template> <el-table :data"tableData" style"width: 100%" expand-change"expandChange"><…

TS 入门

TS 入门 interface 约束作用数组的声明方式函数的定义联合类型、交叉类型、断言类型类的方面 interface 约束作用 数组的声明方式 函数的定义 联合类型、交叉类型、断言类型 类的方面 这是代码的地址&#xff1a; 代码的地址

解释 Git 的基本概念和使用方式(InsCode AI 创作助手)

Git 是一种分布式版本控制系统&#xff0c;它允许多个用户协同工作并对项目进行版本控制。下面是 Git 的基本概念和使用方式&#xff1a; 基本概念&#xff1a; 仓库&#xff08;Repository&#xff09;&#xff1a;存储代码和版本历史记录的地方。 提交&#xff08;Commit&a…

【阿里云OSS】golang实现 添加文件到OSS | OSS批量删除bucket下指定的文件夹以及内部的文件

一、上传文件到阿里云OSS 1、前提 我们需要将文件上传到本地的服务器内 2、OSS代码实现 package commonimport ("fmt""gitee.com/ctra/ctra-go-common.git/constant""github.com/aliyun/alibaba-cloud-sdk-go/services/sts""github.com/a…

云上办公系统项目

云上办公系统项目 1、云上办公系统1.1、介绍1.2、核心技术1.3、开发环境说明1.4、产品展示后台前台 1.5、 个人总结 2、后端环境搭建2.1、建库建表2.2、创建Maven项目pom文件guigu-oa-parentcommoncommon-utilservice-utilmodelservice-oa 配置数据源、服务器端口号application…

【实验六】组合逻辑电路的设计

【实验内容】 【实验报告】

C++中使用 do…while 循环

C中使用 do…while 循环 在有些情况&#xff08;如程序清单 6.8 所示的情况&#xff09;下&#xff0c;您需要将代码放在循环中&#xff0c;并确保它们至少执行一次。此时 do…while 循环可派上用场。 do…while 循环的语法如下&#xff1a; do {StatementBlock; // executed…

C++ 文件和流

iostream 标准库提供了 cin 和 cout 方法&#xff0c;用于从标准输入读取流和向标准输出写入流。而从文件中读取流或向文件写入流&#xff0c;需要用到fstream标准库。在 C 中进行文件处理时&#xff0c;须在源代码文件中包含头文件 <iostream> 和 <fstream>。fstr…

一米全网邮箱采集软件

全球数据实时获取&#xff0c;精准挖掘客户信息&#xff0c;国内外各大搜索引擎全网采集邮箱电话等信息&#xff0c;可通过自定义网站深度挖掘客户信息&#xff0c;邮箱可一键验证有效性&#xff0c;软件操作简单&#xff0c;支持一键去重导出&#xff0c;是挖掘客户的必备软件…

讲讲几道关于 TCP/UDP 通信的面试题

TCP &#xff08;1&#xff09;TCP 的 accept 发生在三次握手的哪个阶段&#xff1f; 如下图connect和accept的关系&#xff1a; accept过程发生在三次握手之后&#xff0c;三次握手完成后&#xff0c;客户端和服务器就建立了tcp连接并可以进行数据交互了。这时可以调用accep…

数据库(二) Oracle篇

Oracle SQL常用函数 概述 SQL函数有单行函数和多行函数,其区别为&#xff1a; 单行&#xff1a;输入一行,返回一行,如字符、数字、转换、通用函数等多行&#xff1a;输入多行,返回一行,也称为分组函数、组函数、聚合函数,且多行函数会自动滤空 单行函数 字符函数 CONCAT(…

JavaScript 编写更好的条件语句

在任何编程语言中&#xff0c;代码需要根据不同的条件在给定的输入中做不同的决定和执行相应的动作。 例如&#xff0c;在一个游戏中&#xff0c;如果玩家生命点为0&#xff0c;游戏结束。在天气应用中&#xff0c;如果在早上被查看&#xff0c;显示一个日出图片&#xff0c;如…

400电话号码怎么开通

开通400电话是企业提供客户服务的重要步骤。下面是一些步骤和注意事项&#xff0c;帮助您顺利开通400电话。 第一步&#xff1a;选择400电话服务提供商 选择一家可靠的400电话服务提供商非常重要。您可以通过搜索引擎、咨询行业内人士或者参考其他企业的经验来选择合适的服务提…

【LeetCode75】第四十题 最大层内元素和

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 这道题和LeetCode75的上一题大同小异&#xff0c;都是要我们对二叉树进行层序遍历。 那具体如何层序遍历我再上一题也详细介绍过了&#…

尚硅谷SpringMVC (1-4)

一、SpringMVC简介 1、什么是MVC MVC 是一种软件架构的思想&#xff0c;将软件按照模型、视图、控制器来划分 M &#xff1a; Model &#xff0c;模型层&#xff0c;指工程中的 JavaBean &#xff0c;作用是处理数据 JavaBean 分为两类&#xff1a; 一类称为实体类Bean&am…

Linux配置ADSL链接

在Linux中配置ADSL链接&#xff0c;可以按照以下步骤进行&#xff1a; 安装rp-pppoeconf工具&#xff0c;这个工具可以通过终端窗口使用。运行命令“rp-pppoeconf”来配置ADSL链接。终端窗口会显示一个向导模式&#xff0c;用于配置ADSL链接。输入用户名和密码。这些信息是用来…