《数据结构课程设计》算术表达式求解项目预习报告

本文介绍了《数据结构课程设计》的预习报告,任务是设计一个算术表达式计算器,支持四则运算及括号嵌套。采用两个栈分别存储操作数和操作符,通过Analyzer类分析输入表达式,Operand和Operator类表示操作数和运算符。calculate函数遵循运算符优先级规则进行计算,实验中使用C++实现。
摘要由CSDN通过智能技术生成

《数据结构课程设计》算术表达式求
一、题目及定义
【问题描述】
设计一个简单的算术表达式计算器。

【基本要求】
实现标准整数类型的四则运算表达式的求值(包含括号,可多层嵌入)。

【测试数据】
(30+270)/3-123
5+ (9* (62-37) +15) *6解项目预习报告

二、问题分析和任务定义

设计2个栈,分别用于存放操作数和操作符,其中操作符有优先级。栈内存放的操作数用一个类名为Operand的类存放;操作符用Operator类存放,并且设置 相应运算符的优先级。

将用户输入的整个四则运算表达式字符串可看作由操作数,运算符和左右括弧()组成的字符串,并用事先定义的操作数类、操作符 类来表示相应的对象。用一个叫分析器的类(Analyzer)对输入的四则运算进行分析扫描,每次返回一个字符串;定义一个名为calculate的函数将Analyzer的静态方法返回的字符串构造为相应的对象,放入各自的栈,并利用四则运算规则,计算相应的结果。

calculate函数利用四则运算的规则:乘、除优先级高于加、减,则放入操作符栈的规则为:

1、操作符栈里符号进栈规则是,后进栈的操作符优先级必须高于已经进栈符号的优先级,比方如果接收的操作符优先级等于或小于(<=)栈顶操作符优先级,则先对栈顶操作符进行出栈,运算;再将后面的操作符入栈保存。这样保证操作符栈里符号优先级为由低到高,符合优先级高的操作符先出栈,参与运算的规则。

2、遇到左括弧“(”时,先将左括弧“(”进栈,当扫描到右括

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值