Qt之加减乘除四则运算-支持负数

一、效果展示

如图1所示,是简单的四则运算测试效果,第一列为原始表达式,第二列为转换后的后缀表达式,冒号后为结果。表达式支持负数和空格,图中是使用了5组测试数据,测试结果可能不全,如大家发现算法有问题,可留言,谢谢。

图1 四则运算展示

测试代码如下

 1 void lineedit::CalculateExpression()
 2 {
 3     QString reExp("1 + 2.3 * (23 + 3)");
 4     QString res = change(reExp);//0 1 - 2.3 23 3 + * +
 5 
 6     QString reExp2("1*(-3)+2*(3+3)");
 7     QString res2 = change(reExp2);
 8 
 9     QString reExp3("2*-3+-2.1*(3+3)");
10     repairExpress(reExp3);
11     QString res3 = change(reExp3);
12 
13     QString reExp4("2*(-3)+-2.1*(3+3)");
14     repairExpress(reExp4);
15     QString res4 = change(reExp4);
16 
17     QString reExp5("2*(0-(1.1-3)*3)+-2.1*(3+3)");
18     repairExpress(reExp5);
19     QString res5 = change(reExp5);
20 
21     qDebug() << reExp << '\t'<< res << ":" << CalExp(res.split(' ', QString::SkipEmptyParts));
22     qDebug() << reExp2 << '\t'<< res2 << ":" << CalExp(res2.split(' ', QString::SkipEmptyParts));
23     qDebug() << reExp3 << '\t'<< res3 << ":" << CalExp(res3.split(' ', QString::SkipEmptyParts));
24     qDebug() << reExp4 << '\t'<< res4 << ":" << CalExp(res4.split(' ', QString::SkipEmptyParts));
25     qDebug() << reExp5 << '\t'<< res5 << ":" << CalExp(res5.split(' ', QString::SkipEmptyParts));
26 }

二、一些

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值