1、 课课 程程 设设 计计 说说 明明 书书 课程名称: 数据结构 设计题目: 表达式求值 院 系: 学生姓名: 学 号: 专业班级: 指导教师: 2011 年 6 月 25 日 课课 程程 设设 计计 任任 务务 书书 设计题目 表达式求值 学生姓名 所在院系 计科学院 专业、?级、班 设计要求:设计要求: 1. 计算表达式手工录入,计算结果必须正确 2. 支持两位以上的整数和浮点数的运算 3. 运算符优先级表可在程序中直接通过代码初始化 4. 能够检查表达式是否合法,对于错误的表达式要能够给出错误原因。 学生应完成的工作:学生应完成的工作: 设计一个能够计算表达式的程序,要求能够对包含加、减
2、、乘、除、括号运算符的表 达式进行计算,并能显示出一定的错误及错误分析。 参考文献阅读:参考文献阅读: 严蔚敏 吴伟民 编著数据结构 (C 语言版) 清华大学出版社 2010 年 10 月 (美)克林伯格 编著算法设计 清华大学出版社 2007 年 6 月 王晓东 编著算法设计与分析 (第三版) 电子工业出版社 2007 年 5 月 工作计划:工作计划: 1、第一周的第一天:小组布置设计题目;说明进度安排。 2、第一周的第二天:小组审题,查阅资料,进行设计前的必要资料准备。 3、第一周的第三天、第四天、第五天:程序编写、上机调试 4、第二周的第一天至第三天: 上机调试程序、结果分析。 5、第二
3、周的第四天: 撰写设计报告。 6、第二周的第五天: 设计答辩及成绩评定。 任务下达日期任务下达日期: 2011 年 6 月 13 日 任务完成任务完成日期:日期: 2011 年 6 月 25 日 指导教师(签名) : 学生(签名) : 1 表达式求值表达式求值 摘摘 要:要: 表达式求值是程序设计语言编译中的一个最基本的问题。它的实现是栈应用的一个 典型例子。我们使用的是一种简单直观,广为使用的算法“算符优先法” 。 要把一个表达式翻译成正确求值的一个机器指令序列,或者直接对表达式求值,首 先要能够正确解释表达式。要知道算法四则运算即(1)先乘除,后加减; (2)从左到 右; (3)先括号内,后括号外。算法优先级法就是根据这个运算优先级的规定来实现对 表达式的编译或解释执行的。 任何一个表达式都是由操作数,运算符和界限符组成的,我们称之它们为单词。一 般地,操作数既可以是常数也可以是被说明为变量或常量的标识符;运算符可以分为算 术运算符,关系运算符和逻辑运算符三类;基本界限符有左右括号和表达式结束符等。 关键词:关键词: 表达式 栈(出战,入栈) 括号匹配 符号优先级 运算 2 目目 录录 一一. .设计背景设计背景3 1.1目的 3 1.2背景 3 二二. .设计方案设计方案3 三.方案实施方案实施 4 3.1 运算