QT计算器实例分析
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,本篇内容主要讲解"QT计算器实例分析",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"QT计算器实例分析"吧!后缀表达式是如何进行计算的呢?这时就需要比那里后
千家信息网最后更新 2025年02月04日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安全错误
数据库的锁怎样保障安全
静海数据库恢复
睢宁专业性软件开发
张湾区信息软件开发技术指导
东西湖天融信网络安全创业园
自动化好还是网络安全好
狂野飙车8服务器连接
软件开发游戏平台搭建
中学网络安全知识答题
检查数据库服务是否开启
因非税收缴系统服务器
网络安全法会怎么样
时序数据库用来存日志
网络安全太烦恼
中国人和老外的战争服务器下载
沟通能力差做软件开发
服务器装多个mysql
平谷区定制软件开发
MSSQL数据库技术分析
现代信号处理技术网络安全
网络安全系统评语
怎么管理小米云服务器
嵌入式软件开发与应用方向
网上购物系统软件开发计划书
还原数据库错误怎么找回
网络技术优化包括
台州银行软件开发笔试题目
做网络安全评估一次多少钱
图书馆网络安全小课堂
数据库管理页面
连接数据库服务语句