数据结构课程设计--表达式求值
《数据结构课程设计--表达式求值》由会员分享,可在线阅读,更多相关《数据结构课程设计--表达式求值(19页珍藏版)》请在毕设资料网上搜索。
1、1 数据结构课程设计数据结构课程设计 算符优先法对算术表达式求值 2 目录 一,课程题目 . 1 二,程序设计思想 1 三,程序流程图 . 1 四,程序关键代码设计 . 1 五,程序源代码以及运行结果 . 3 六, 心得体会 . 7 3 一,课程题目 (算符优先法计算算数表达式) 以字符序列的形式从终端输入语 法正确的、不含变量的整数表达式。利用教材表 3.1(P53)给 出的算符优先关系,实现对于算术四则混合运算(加、减、乘、 除)表达式的求值。例如:7+(4-2)*3+12/2=19。注:按照四 舍五入的方式将四则运算结果取整。 二,程序设计思想 在程序中分别设立一个运算符栈 (OPTR
2、栈) , 用于存储 + , - , * , / , # ( #用于判断算术表达式结束) ,和一个 操作数栈(OPND 栈) ,用于存放整数,输入算式后,先将数字与 运算符分开入 i 栈,若为数字则先用转换函数将 char 类型的数 转换为 int 型并进入操作数栈,若为运算符则根据教材表 3.1 (P53)给出的算符优先级关系,判断栈顶运算符和从键盘取得 的运算符作优先级比较,若取得的运算符优先级高则进栈,直到 取得运算符优先级低的, 则将操作数取出作 operate 运算后存入 栈顶,反复操作知道遇到# ,则结束运算,输出栈顶元素即为 结果。 4 三,程序流程图 四,程序关键代码设计 本次程
3、序设计共调用了 12 个方法分别是: InitNumStack,ParseInt,PushNum,PopNum ,InitCalStack, PopCal , PushCal, In, GetTopCal, GetTopNum, Preced, Operate。 其中 ParseInt 方法 int ParseInt(char c) int number5,i; for(i=0;i, , , , , , , , , , , , , ,=, ; if(a=+) if(b=+) return d00; if(b=-) return d01; if(b=*) 11 return d02; if(b=/) return d03; if(b=() return d04; if(b=) return d05; if(b=#) return d06; if(a=-) if(b=+) return d10; if(b=-) return d11; if(b=*) return d12; if(b=/) return d13; if(b=() return d14
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 表达式 求值
