一、实验目的和要求
设计并实现一个整型算术表达式计算器。
要求:
1. 要求计算方法根据PPT例题求解方法进行。
2. 只处理整型算术运算表达式,即运算符至少包含+-*/()。
3. 其中,要求抽象出栈结构进行独立实现。
4. 其它要求同作业-01要求。
二、实验环境
编译器:Vscode
系统:Windows10
三、实验内容
设计并实现一个整型算术表达式计算器。
四、实验过程
4.1 任务定义和问题分析
利用栈来实现简单的四则运算表达式(包括括号)
问题分析:
需要一个操作完备的栈,包括 入栈 出栈 判空 判满 返回栈顶元素等等
如何处理不同运算符 尤其是括号带来的复杂计算
由于数字要用int类型的栈,运算符(如果不映射的话)要用字符类型的栈 所以最优选择是使用模板类来实现栈
如何区别各个运算符之间的优先级 并作出处理
进阶处理要求
是否能处理(1)这种无实际意义的括号
是否能处理-1这种单目运算符
是否能处理(-1)这种运算
()必须是英文状态下的 否则会有错误
4.2 数据结构的选择和概要设计
使用模板类来实现栈的入栈、出栈、判空、判满、返回栈顶元素等等
利用函数进行对运算符优先级的比较操作(需要用到迭代)
模板类的存储结构选择动态数组
在写代码的过程中可以选择逐步处理各种情况 不断更新需求 进行完善(极有可能会推翻)
概要分析设计:
1.将运算符和数字分开处理(数字在入栈的时候不需要考虑什么 运算符入栈时需要和栈顶运算符比较----->)
2.优先级高低情况处理用if判断分情况处理