C语言课程设计--输入一个表达式_输出其结果
《C语言课程设计--输入一个表达式_输出其结果》由会员分享,可在线阅读,更多相关《C语言课程设计--输入一个表达式_输出其结果(17页珍藏版)》请在毕设资料网上搜索。
1、 课 程 设 计 报 告 课程名称课程名称 C 语言程序设计 课题名称课题名称 输入一个表达式,输出其结果输入一个表达式,输出其结果 专专 业业 通信工程通信工程 班班 级级 通信通信 1101 2012 年年 6 月月 29 日日 湖南工程学院 课 程 设 计 任 务 书 课程名称 C 语言程序设计 课 题 输入一个表达式,输出其结果 专业班级 通信 1101 任务书下达日期 2012 年 6 月 15 日 任务完成日期 2012 年 6 月 29 日 一、设计思想一、设计思想 两种算法首先都要建立两个栈,一个是存放操作数的数栈 OdStack,一个是存放运算符 的符栈 OpStack。数栈
2、采用 double 型的用来存放浮点数,符栈采用 char 型的用来存放运算 符, 由于考虑到运算符有优先级的问题, 所以事先做了一个 Type 用来存储运算符的优先级。 栈建立好了之后做栈的相关操作,初始化栈,入栈,出栈,看栈顶。其中入栈要判满,出栈 和看栈顶要判空。 中缀转后缀再计算的算法。 此算法的基本思路是先将中缀表达式转换成后缀表达式, 之后再利用后缀表达式的算法 对表达式进行计算。 首先,用一个 char 数组将中缀表达式读入,对数组中的每一个元素进行处理,区分哪 些是数,哪些是运算符。如果是数元素(或小数点元素) ,则依次存入用来存储后缀表达式 的 char 数组,直到一个整合数
3、存完之后用空格将其与后面的元素分开。如果是运算符元素, 则根据当前运算符的优先级和栈里面的运算符的优先级进行处理。 如果栈内元素的优先级小 于当前元素的优先级或者栈内为空, 则将当前运算符入栈; 如果栈内元素的优先级大于等于 当前元素的,则依次将出栈元素存入后缀表达式,并用空格将其与后面的元素分开,直到栈 内元素的优先级小或者栈内为空。对于左括号来说,无条件进栈,并只在有右括号出现的时 候才有可能出栈。对于右括号来说,无条件让栈内元素出栈,直到左括号出栈。依次将每个 元素进行处理直到中缀表达式索引完毕。 至此, 已经实现了将中缀表达式转换成了后缀表达 式,在数组的最后加上结束符以便下一步的调用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 输入 一个 表达式 输出 结果
