表达式求值算法实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南人文科技学院计算机科学技术系
课程设计说明书
课程名称:数据结构
课程代码:408024
题目: 表达式求值
年级/专业/班:08级计算机科学与技术二班
学生姓名: 黄胜李业芝黄自强
黄沅涛姚洋
学号:08408210 08408211 08408212
08408213 08408215
指导教师: 袁辉勇
开题时间: 2009 年12 月21
日
完成时间: 2010 年 1 月 1 日
目录
摘要 (1)
一、引言 (3)
二、设计目的与任务 (3)
1、课程设计目的 (3)
2、课程设计的任务 (4)
三、设计方案 (4)
1、需求分析 (4)
2、概要设计 (4)
3、详细设计 (6)
4、程序清单 (13)
四、调试分析与体会 (17)
五、运行结果 (18)
六、结论 (20)
七、致谢 (21)
八、参考文献 (21)
摘要
在高级语言环境中算术表达上的结果是通过语言环境预设的算法的思想计算出来的,然而高级语言初学者并不了解表达式的计算过程和方法。本文采用算符优先分析和堆栈的方法给出了算术表达式的计算过程。
所以本次课程设计的程序是在Windows系统上为用户解决包括加、减、乘、除以及括号在内的四则混合运算。用户可通过键盘输入四则运算,经过程序运行之后,可以判断出用户所输入的表达式是否正确。如果正确,就给出表达式的值;如果不正确,就提示输入有误。
关键词:四则混合运算;高级语言;栈
Abstract
The arithmetic expression result is the algorithm thought which supposes in advance through the language environment calculatesin the higher order language environment,however the higher order language beginner does not understand the expression the computationprocess and the method. This article used the operator first to analyze and the storehouse method has given the arithmetic expression computa-tion process.
Therefore, the procedure in this curriculum design is the solution for users on Windows systems, including add, subtract, multiply, divide and brackets, including four hybrid operation. Users can enter via the keyboard 4 operation, after a program is running, you can determine the user entered expression is correct. If correct, it gives the value of the expression; if not correct, it prompted an error.
Key words: Four mixed operating;High-level programming language;Stack
《数据结构》课程设计
——表达式求值一、引言
随着我国进一步的开放,我们需要扩大国际交流,加强学习国外的先进经验。掌握国际的领先技术是我们的首要任务。计算机技术发展异常迅速,内容更新很快,我们对计算机的了解程度也直接影响了我国的现代化和信息化的程度。《数据结构》是计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且是其他理工专业的热门选修课。数据结构研究的是世界上所有非数值量的信息结构及其处理方法,它不仅是计算机科学与技术相关专业十分重要的核心课程,也是应用数学、管理科学、环境规划等很多专业的一门重要基础课。所有的计算机系统软件和应用软件都要用到各种类型的数据结构。因此,对于所有想更好地运用计算机来解决实际问题得人们而言,仅掌握几种计算机程序设计语言是难以应付众多复杂的课题的。要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识。打好《数据结构》这门课程的扎实基础,对于学习计算机专业的其他课程,如操作系统、编译原理、数据库管理系统、软件工程、人工智能等都是十分有益的。
本次课程设计的课题是表达式求值。在表达式中我们必须考虑的运算符的优先性,而能够实现这一功能的就是栈了。栈是一种重要的数据结构,是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。
本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但是在课程设计之前我们还是做了很多准备的。例如,在网上和一些资料上查找栈的应用。由此我们觉得本次程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。
二、设计目的与任务
1、课程设计目的
本次课程设计教学所要求达到的目的:通过栈来实现表达式求值,并通过此次课程设计的训练,使学生巩固和加深对栈的理解,利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。