(论文 页数:17 字数:2720 带程序)第一章 需求分析 一般来说,计算机解决一个具体问题时,需要经过几个步骤:首先要从具体问题抽象出一个适当的数学模型,然后设计一个解决此数学模型的算法,最后编出程序,进行测试,调整直至得到想要的答案。对于算术表达式这个程序,主要利用栈和数组,把运算的先后步骤进行分析并实现简单的运算!以字符列的形式从终端输入语法的正确的、不含变量的整数表达式。利用已知的算符优先关系,实现对算术四则运算的求值,并仿照教科书的例子在求值中运算符栈、运算栈、输入字符和主要操作的变化过程。对一些错误输入能报错。
第二章 概要设计 计算机系统完成一个表达式的计算要分两个步骤:(1)把中缀表达式变换为后缀表达式。(2)根据后缀表达式计算表达式求值。 中缀表达式转换为后缀表达式的基本运算思想是:按照算术运算的规则,把每一个运算符都移到它的两个操作数的后面,然后删除所有的括号。如:8-9*(5+3)转换为8 9 5 3 + * -。计算机编译系统需要从左到右依次扫描中缀表达式,每读到一个操作数,就把它作为后缀表达式的一部分直接输出。而对于运算符,则设置一个栈,初始的时候,栈顶存放一个分界符#,并把也当作运算符号。每当读到一个运算符P2,就将其优先级与栈顶位置运算符P1的优先级比较,分成以下情况: (1)若P2的优先级高于栈顶运算符P1的优先级,则将P2进栈,继续下一个。 (2)若P2的优先级低于栈顶运算符P1的优先级,则P1出栈并作为后缀表达式的一部分输出,然后继续比较P2的优先级与新的栈顶的运算符的优先级。 (3)若P2的优先级等于栈顶运算符P1的优先级,并且P1为“(”,P2为“)”,则P1出栈,丢弃P1和P2,在继续下一个。 (4)若P2的优先级等于栈顶运算符P1的优先级,并且P1和P2都是#,则算法结束。
目 录
第1章 需求分析 .................................................... 1 第2章 概要设计.................................................... 2 第3章 详细设计.................................................... 3 第4章 调试分析.................................................... 11 第5章 心得体会..................................................... 12 参考文献.................................................................. 13 附录......................................................................... 14
|