QT计算器实例分析
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,本篇内容主要讲解"QT计算器实例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"QT计算器实例分析"吧!后缀表达式是如何进行计算的呢?这时就需要比那里后
千家信息网最后更新 2025年11月15日QT计算器实例分析
本篇内容主要讲解"QT计算器实例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"QT计算器实例分析"吧!
后缀表达式是如何进行计算的呢?这时就需要比那里后缀表达式中的数字和运算符了。
如果当前元素为运算符:1. 从栈中弹出右操作数;2. 从栈中弹出左操作数;3. 根据符号进行运算;4. 将运算结果压入栈中。当遍历结束时,再将栈中的唯一数字为运算结果。
用伪码描述出来就是:
我们在这块得考虑到数学运算中的除法(除0)的情况,若是浮点运算,则应避免代码中直接与 0 做相等比较。
具体到代码就是:
QString QCalculatorDec::calculate(QQueue
{
QString ret = "Error";
QStack
while( !exp.isEmpty() ) { QString e = exp.dequeue(); if( isNumber(e) ) { stack.push(e); } else if( isOperator(e) ) { QString rp = !stack.isEmpty() ? stack.pop() : ""; QString lp = !stack.isEmpty() ? stack.pop() : ""; QString result = calculate(lp, e, rp); if( result != "Error" ) { stack.push(result); } else { break; } } else { break; } } if( exp.isEmpty() && (stack.size() == 1) && isNumber(stack.top()) ) { ret = stack.pop(); } return ret;}其中具体做四则运算的代码是:QString QCalculatorDec::calculate(QString l, QString op, QString r){ QString ret = "Error"; if( isNumber(l) && isNumber(r) ) { double lp = l.toDouble(); double rp = r.toDouble(); if( op == "+" ) { ret.sprintf("%f", lp + rp); } else if( op == "-" ) { ret.sprintf("%f", lp - rp); } else if( op == "*" ) { ret.sprintf("%f", lp * rp); } else if( op == "/" ) { const double p = 0.000000001; if( (-p < rp) && (rp < p) ) { ret = "Error"; } else { ret.sprintf("%f", lp / rp); } } else { ret = "Error"; } } return ret;}那么我们就把逻辑相关的功能放在expression函数中:
我们在主函数中运行 (3 - 8) * (2 - 6) 这个表达式,结果如下:
到此,相信大家对"QT计算器实例分析"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
运算
实例
实例分析
计算器
分析
代码
结果
表达式
内容
函数
后缀
就是
操作数
数字
运算符
学习
实用
更深
四则运算
元素
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
先学web还是数据库
中国现在的网络安全吗
易思网络技术有限公司
软件开发师求职简历
首都网络安全日答案
浙江交友软件开发哪家实惠
一起守护网络安全
node json数据库
服务器tpc
go给数据库加入数据
电脑怎么当网盘服务器
同花顺连接不了服务器什么问题
信息安全可以从事软件开发吗
linux服务器部署
U1服务器上自带风扇
服务器怎么放下显卡的
网络安全等级保护工作
重启交换机要先停数据库吗
战地模拟器如何删除服务器
较低的网络安全标准
死亡网络安全插画
呼市专业app软件开发培训课程
网络安全最基础的职位
黑马程序员数据库官网
村赞平台软件开发
数据库 环境优化
为何总出现无法连接服务器呢
域环境多台文件服务器管理
辽宁网络安全研究生
网络安全产业学院城成立