C++计算和显示前缀表达式[2023-10-24]
您将编写一个程序来使用堆栈而不是递归来计算和显示前缀表达式。
从末尾开始计算前缀表达式很容易,保存每个操作数直到遇到一个运算符,该运算符将对您上次遇到(保存)的两个操作数进行操作。
您将使用分配时提供的堆栈 ADT。该 ADT 已在第 7 章中介绍。这些文件已附加到该作业中。
该表达式将包含单个整数值和仅二元运算符 +、-、/、*。
您的 main 应要求用户输入有效的前缀表达式。您可以假设他们将输入遵循限制的有效前缀表达式。您的 main 应该将表达式传递给计算并返回计算值的函数。主要应该向用户显示一条消息。
前任。如果用户输入 +*234 结果应该是 10
如果用户输入 */638 结果应该是 16
使用哨兵控制的 while 循环编写程序,以继续读取和计算前缀表达式,直到用户输入哨兵。您选择哨兵值。
您将提交以下内容:
仅将所有程序源文件 (.cpp) 和头文件 (.h) 压缩为 zip 文件。将您的 zip 文件命名为“lab2_Firstname_Lastname.zip”。您决定如何命名其他文件。
输入示例:
+-86*34 = 14
+-*3481 = 5
+3*98 = 75
/+-*5433+23 = 4
实验室成绩分
实验室将根据以下方面进行评分:
评论
包括:
程序描述(程序顶部的注释块)
除 main() 之外的每个函数的函数描述(用途、输入、输出)
主要算法步骤的评论(至少)
遵循指示
正确输出
结构化程序设计
有意义的标识符名称
注意 – 以下内容被视为非结构化编程,您不会在程序中执行任何此类操作:
你永远不会使用break、exit、return、pass、continue或任何东西来过早地离开循环(或迭代)、函数或其他构造,除非它是case语句中结构的一部分。
你永远不会有函数调用本身,除非它是有意的递归。
你永远不会使用全局变量。但是,如果合适并且使用得当,您可以使用全局常量。
函数中只有一个 return 语句。 (例外 - 递归函数中可能需要多个 return 语句。)
你永远不会故意编写一个无限循环然后打破它。