【课程设计】用栈以及后缀表达式的方式实现简易计算器 taro程序 微信小程序

【课程设计】基于栈以及后缀表达式的简易计算器 taro程序 微信小程序

项目说明

本系统使用Taro框架进行开发, Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发 微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ 小程序 / H5 / RN 等应用。现如今市面上端的形态多种多样,Web、React Native、微信小程序等各种端大行其道。当业务要求同时在不同的端都要求有所表现的时候,只编写一套代码就能够适配到多端的能力就显得极为需要。

Taro编译框架也是得遵循小程序的规则的,基本在运用api,路由以及组件上与小程序无异,只是在代码风格不太一样,小程序的wxml更类似原生的html,taro的就相当于在html中嵌套js代码,更趋向于是小程序的底层代码,比如wx:for所遍历的数据,就是依靠 数组.map出来的

由于微信小程序中不可使用eval函数,所以考虑使用栈以及后缀表达式的形式来实现简易的计算器小程序

关键技术

1、字符串式转中缀表达式

问题描述:首先,需要输入的字符串式压入栈中,因为考虑到有小数点计算,所以不能使用 数组[索引]的方式获取每个元素,所以第一点考虑的就是通过递归的方式,解析出每个数字以及运算符在这里插入图片描述

2、中缀表达式转后缀表达式

问题描述:通过栈的方式,以及优先级的考虑,将中缀表达式转换成后缀表达式
在这里插入图片描述
在这里插入图片描述

3、解决浮点误差的问题

问题描述:因为计算机保存浮点数的精度有限,所以进行小数运算的时候,经常会出现运算结果的误差问题
解决方案:在进行乘除运算的时候,将小数扩大到整数倍,再将结果缩小到相应的倍数
在这里插入图片描述

4、计算器输入限制的问题

问题描述:输入时,必须考虑到.±*/%这几个符号的限制,否则将不能进行运算
解决方案:在输入时做一个限制,

  1. 最后一个字符是符号的时候,下一个字符不能输入符号了
  2. 一个数字中不能出现两个小数点
  3. 初始不能输入运算符或者小数点
    在这里插入图片描述

5、整体效果

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无心同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值