数据结构课程设计 算术表达式求值演示.doc

数据结构课程设计 算术表达式求值演示.doc

ID:48128810

大小:148.53 KB

页数:10页

时间:2020-01-21

数据结构课程设计 算术表达式求值演示.doc_第1页
数据结构课程设计 算术表达式求值演示.doc_第2页
数据结构课程设计 算术表达式求值演示.doc_第3页
数据结构课程设计 算术表达式求值演示.doc_第4页
数据结构课程设计 算术表达式求值演示.doc_第5页
资源描述:

《数据结构课程设计 算术表达式求值演示.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构课程设计学院:信息科学与工程学院专业:计算机科学与技术班级:计1008学号:20101221149学生姓名:刘成启指导教师:潘玉奇2012年3月12日1算术表达式求值演示目录一概述……………………………………………………………3二总体设计分析…………………………………………………3三概要设计………………………………………………………5四详细设计………………………………………………………6五调试分析与测试………………………………………………7六自我评析与总结………………………………………………81一概述课程设计是

2、实践性教学中的一个重要环节,它以某一课程为基础,可以涉及和课程相关的各个方面,是一门独立于课程之外的特殊课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和掌握课程的相关知识。《数据结构》是一门重要的专业基础课,是计算机理论和应用的核心基础课程。数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。㈠实现题目:算术表达式求值演示。㈡问题描述:表达式计算

3、是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们,同时加深对这种结构的理解和认识。㈢基本要求:以字符序列的形式从终端输入语法正确的、不含变量的整数表达式。利用教科书表3.1给出的算符优先关系,实现对算数四则混合运算表达式的求值,并仿照教科书的例3-1演示在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。㈣实现提示:①设置运算符栈和运算数栈辅助分析算符优先关系。②在读入表达式的字符序列的同时

4、,完成运算符和运算数(整数)的识别处理,以及相应的运算。③在识别出运算数的同时,要将其字符序列形式转换成整数形式。④在程序的适当位置输出运算符栈、运算数栈、输入字符和主要操作的内容。㈤选做内容:①扩充运算符集,如增加乘方、单目减、赋值等运算。②运算量可以是变量。③运算量可以是实数类型。④计算器的功能和仿真界面。二总体设计分析㈠实验的环境:指硬件和软件环境1.硬件环境:Intel奔腾双核T2390双核处理器(1.86GHz主频/1MB二级缓存/533MHz前端总线),RAM:2G.92.软件环境:操作系统:windows

5、vista编译软件:MicrosoftViualC++6.03.软件环境介绍:VisualC++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。所以实际中,更多的是以VisualC++6.0为平台。Visual

6、C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。㈢程序流程图:开始优先级比较算法EvaluateExpression算法建立栈存放操作字符存放数据调用Operate()计算结束9三概要设计1、算

7、法设计1)算符的优先级比较函数Precede(chara,charb)算法的基本思想:通过已知的算符间的优先关系写出算符的优先级算法。任意两个相继出现的算符c1和c2之间的优先关系至多是下面3种关系之一:c1c2c1的优先权高于c2算法步骤:Step1:如果输入符号为“+”或“-”1.1如果栈顶元素为“(”、“#”,此时栈顶符号优先级低,返回“<”1.2否则,栈顶符号优先级高,返回“>”Step2:如果输入符号为“*”或“/”2.1如果栈顶元素为“)”、“*

8、”、“/”,此时栈顶符号优先级高,返回“>”2.2否则,栈顶符号优先级低,返回“<”Step3:如果输入符号为“(”,则直接返回“<”Step4:如果输入符号为“)”4.1如果栈顶元素为“(”,此时优先级同,返回“=”4.2否则,栈顶符号优先级高,返回“>”Step5:输入符号为其他5.1栈顶元素为“#”,此时优先级同,返回“=”

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。