数据结构课程设计之项目三——计算简单的中缀表达式

本文详细介绍了如何设计一个简单的算术表达式计算器,包括中缀表达式的输入、逻辑设计(数据结构、类定义、模块划分)、物理设计(存储结构、主函数与全局函数)以及错误处理。通过栈结构实现运算优先级处理,适合初学者理解算法设计过程。
摘要由CSDN通过智能技术生成

目录

一、问题描述

二、基本要求

三、问题分析

四、逻辑设计

1、数据结构

2、类和全局函数的定义

3、模块划分

4、模块调用关系图

五、物理设计

1、存储结构

2、主函数设计

 3、全局函数和类函数设计

4、函数算法框架图

一、问题描述

设计一个简单的算术表达式计算器。

二、基本要求

        要求从键盘输入中缀表达式,实现标准整数类型的四则运算表达式的求(包含括号,可多层嵌入),要求能判断一些基本的输入错误,提示用户输入错误。

三、问题分析

        对于此类计算,我们可以直接计算,也可以将中缀表达式转为后缀表达式再计算。在这里我们采取第一种方法。

四、逻辑设计

1、数据结构

         考虑到栈能够较好地解决此类问题,因此,我们使用模板类建立一个栈类。使用数组来模拟存放栈内的元素。

2、类和全局函数的定义

        定义一个栈类,栈类需要包含判断栈是否为空、取得栈顶元素、元素入栈、元素出栈等等成员函数。全局函数定义优如下函数:判断是否为数字、表达式是否合理、是否是符号、是否是左括号、是否是右括号、符号优先级等。

3、模块划分

       主函数模块

       全局函数模块

       栈类模块

4、模块调用关系图

        

五、物理设计

1、存储结构

        使用一维数组来存储输入的表达式,定义一个栈类,使用一维数组来存储入栈的元素,创建两个栈的对象分别用来保存数字和符号。

2、主函数设计

伪代码:
1.设置一个一维数组,由用户输入表达式
2.判断输入数据是否合理
3.创建一个数字栈和符号栈
4.通过循环依次遍历表达式中的每一个值,最后输出表达式的值

 3、全局函数和类函数设计

伪代码:
全局函数

左括号函数()
判断传入的值是否是左括号,返回1或0;
数字函数()
判断操作数是否为数字,返回1或0;
数值转换函数()
返回该数字字符对应的数值大小
右括号函数()
判断传入的值是否是右括号,返回1或0;
符号函数()
判断传入的值是否是+-*/符号,返回1或0;
优先级函数()
返回优先级;
数值计算函数()
返回传入的数字和操作符运算的结果;

类的成员函数

判空函数()
返回栈是否为空;
获得栈顶函数()
返回栈顶的元素;
入栈函数()
将操作数入栈;
出栈函数()
将栈顶元素出栈,返回栈顶元素;

4、函数算法框架图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值