北理工数据结构实验2王雅珊探析.docx

实验报告2王雅珊11201313191、需求分析:说明课题设计的任务;课题任务是编写一个简易计算器,实现简单计算器的功能,请按照四则运算加、减、乘、除、幂(^)和括号的优先关系和惯例,编写计算器程序。对于正确的计算表达式应输出结果,对于不正确的表达式应当进行报错,对计算过程中的错误,也应给与提示。2、概要设计:说明课题中用到的抽象数据类型的定义、主程序的流程以及各程序模块之间的调用关系;为实现上述程序功能,应使用两个栈,分别寄存操作数与运算符。为此,需要栈的抽象数据结构。程序计算的过程中,每次读入一个元素(数据或算符),每当程序读入的新算符,优先级低于算符栈的栈顶元素,则弹出栈顶元素与数据栈的栈顶的两个元素进行运算,并将结果压入数据栈。重复进行知道算式运算完毕。(1)、栈的抽象数据类型定义为:ADTStack{数据对象:D=数据关系:R1=约定端为栈顶,端为栈底。基本操作:InitStack(S)操作结果:创建一个空栈S。GetTop(S,e)初始条件:栈S已存在且非空。操作结果:用e返回S的栈顶元素。Push(S,e)初始条件:栈S已存在。操作结果:插入元素e为新的栈顶元素。Pop(S,e)初始条件:栈S已存在且非空。操作结果:删除S的栈顶元素,并用e返回其值。In(m,a[])操作结果:若m是运算符,返回TRUE。Precede(m,n)初始条件:m,n为运算符。操作结果:若m

文档评论(0)

1亿VIP精品文档

相关文档