数据结构课程设计报告算术表达式处理算法实现.doc

上传人:文库蛋蛋多 文档编号:2396876 上传时间:2023-02-17 格式:DOC 页数:20 大小:602.50KB
返回 下载 相关 举报
数据结构课程设计报告算术表达式处理算法实现.doc_第1页
第1页 / 共20页
数据结构课程设计报告算术表达式处理算法实现.doc_第2页
第2页 / 共20页
数据结构课程设计报告算术表达式处理算法实现.doc_第3页
第3页 / 共20页
数据结构课程设计报告算术表达式处理算法实现.doc_第4页
第4页 / 共20页
数据结构课程设计报告算术表达式处理算法实现.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《数据结构课程设计报告算术表达式处理算法实现.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告算术表达式处理算法实现.doc(20页珍藏版)》请在三一办公上搜索。

1、长沙理工大学数据结构课程设计报告 *学 院 计算机与通信工程 专 业 网络工程 班 级 网络0902 学 号 24 学生姓名 指导教师 课程成绩 完成日期 2011年2月27日课程设计成绩评定学 院 计算机与通信工程学院 专 业 网络工程 班 级 0902班 学 号 200958080224 学生姓名 指导教师 完成日期 2011年2月27日 指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩 指导教师签字 2011年2月27日课程设计

2、任务书计算机与通信工程学院 网络工程专业 课程名称数据结构课程设计时间20102011学年第2学期12周学生姓名吴继征指导老师陈倩诒题 目算术表达式处理算法实现主要内容: 用C+语言和数据结构思想解决算术表达式处理算法实现问题。要求:(1)通过实际课题的分析、设计、编码、测试等工作,掌握用C+语言来开发和维护软件。(2)按要求编写课程设计报告书,能正确编写分析、设计、编码、测试等技术文档和用户使用手册。应当提交的文件:(1)课程设计论文。(2)课程设计附件(主要是源程序)。摘 要算数表达式处理算法实现是我们计算某些问题非常有用的方法,是一种非常重要的分析表达式所需的西药手段。本文对如何求一个算

3、术表达式的运算过程做了详细的说明,包括需求数据输入、表达式分析、表达式输出、测试与分析、总结、源程序清单等。首先,做了数据输入,输入数据后程序需要辨析是否有错误,然后再进行下一步运算。然后给出表达式的运算步骤,包括程序中用到的所有计算的优先级,主程序的流 程以及各程序模块之间关系在正文会有详细说明。在概要设计的基础上,又给出了详细的算法设计,实现概要设计中定义的所有函数,对每个函数写出核心算法,并画出了流程图。然后对编码进行了测试与分析(并在最后附上C语言编写的程序代码)。最后对整个设计过程进行了总结关键词:栈;优先级;流程图;目录1绪论- 1 -11前言- 1 -12研究意义- 1 -2 需

4、求分析- 2 -21问题分析- 2 -22基本要求- 2 -23目的- 2 -3 概要设计- 3 -31算法分析- 3 -32算法步骤- 3 -33基本思路及主要程序代码- 4 -4 详细设计- 5 -41主要函数的核心代码- 5 -42程序流程图- 5 -5 测试- 6 -51开始界面- 6 -52支持+,-,/,( )等符号 - 6 -53支持运算符的优先级- 7 -54支持括号的嵌套- 7 -55查错功能- 8 -56支持小数点与负数- 9 -6 总结- 10 -参考文献- 11 -附录:源程序清单- 12 -1绪论11前言 我们通常把算数表达问题处理的过于简单,并没有认真的思考算术表达

5、式与算法实现的问题。实际上问题并没有我们想的那么简单,这次这个程序是初步分析表达式的运算过程,同时处理优先级与算法的实现,而且还具有本身的查错功能是一个可以让我们理解算法的程序。 我们通常使用计算器为我们的生活带来方便,但是我们并不理解计算器的运算实质,其实计算机本身就是一个算术表达式的算法实现,它其实就是一个简单的程序可以实现初步的计算功能,并能够查错。在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。算法输入:一个算术表达式,由常量、变量、运算符和括号组成(以字

6、符串形式输入)。为简化,规定操作数只能为正整数,操作符为+、-*、/,()等。算法输出:表达式运算结果。算法要点:设置运算符栈和运算数栈辅助分析算符优先关系。在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。12 研究意义 算术表达式处理算法实现以很方便的帮助我们在日常生活中处理计算问题,以及大型工程中哪些活动发挥重大作用,由于计算科学在生活生产中的重要作用,该程序又是算法中的基础,熟练掌握它可以对生产设计,科学研究,计算研究,工业规划等工作中发挥重大作用。-1-2 需求分析21问题分析 算数表达式是常用的数学计算,在计算机计算中是非常普遍的,为了更加方便的进行此类运算

7、,在此设计了一个简单的算术表达式,用于对算术表达式进行创建,输出,以及各成员的相加,相减和相乘。该程序简单,清晰,明了,用户易懂易用,能较好得实现计算分析功能。 22基本要求 (1) 从键盘输入一个表达式,如(23-(45.2-2.8)/5=(2) 支持+,-,/,( )等符号 (3) 支持运算符的优先级(4) 支持括号的嵌套(5) 支持小数点及负数 (6) 有查错功能,如非法字符,小数点过多(如3.44.3),括号不匹配等错误。 23目的本程序是主要运用运算符的优先级、栈和运算符转换,其中在运算符优先级时优先括号内运算、先乘(除)后加(减)分析输出。-2-3 概要设计31算法分析(1) 首先

8、,构建一个for循环判断是否有非法字符加入。(2)其次利用for循环 ,同时构建一个switch语句来实现符号判定;(3)在分析-时,要确定该符号代表“负” 还是“减号” ; (4)最后输出结果。32算法步骤(1) 构建输入界面,如:cout 算术表达式的词法分析程序endl要求。(2)判断是否有非法字符。(3)判断符号与优先级。(4)最后结果输出。-3-33基本思路及部分程序代码1. 首先构建初始界面。如:int a;string m;cout 算术表达式的词法分析程序endl要求:endl1.从键盘输入一个正确的算术表达式:如(23-(4*5.2-2.8)/-5。endl2.支持 * /

9、()等符号。endl3.支持运算符的优先级。endl4.支持括号的嵌套。endl5.支持小数。endl6.有查错功能,如非法字符,小数点过多(如3.44.3),括号不匹配等错误。endlendl;cout m;2. 构建判断函数,实现查错功能。如:intk=sizeof(k);for(int j=0;jk;j+) for(int x=0;xk;x+) if(mj=mx&mj=.) printf(输入有错,请重新输入);3.构建函数实现符号判断。如:a=m.length();cout 结果为:;for (int i=0;ia;i+)switch (mi)case +:cout +、;break;

10、-4-4 详细设计41主要函数的核心代码1. 构建输入界面,如:cout 算术表达式的词法分析程序endl要求。2. 写主函数void main,以及for 和switch语句 。即函数switch()3. 编写函数mian()对函数switch()和函数length()进行调用,实现程序判断等功能。 具体代码请见附录:源程序清单。42程序流程图算术表达式处理与算法实现 数据输入 表达式计算 表达式分析输出输出图4.2 程序流程图-5-5 测试51开始界面开始界面如图5.1所示图5.1 开始界面图52支持+,-,/,( )等符号输入表达式后,如图5.2,开始进入程序图5.2 输入表达式界面图-

11、6-53支持运算符的优先级运算符优先级,如图5.3所示图5.3 运算符优先级图54支持括号的嵌套输入括号。同时支持套嵌,如图5.4所示图5.4 输入括号图-7-55查错功能查错功能,过程如图5.5所示图5.5 查错功能图-8-56支持小数点及负数支持小数点与负数,如图5.6所示图5.6 支持负数与小数点-9-6 总结历时两周的课程设计终于结束了,现在来做一下总结。通过陈老师的指导,算法表达式与算法实现基本完成,通过二个多星期的设计与开发,算术表达式简单计算系统基本开发完毕。本系统所用到的知识与数据结构这本书密切相关。进行测试运行后,发现程序运行良好,在此谢谢陈老师的指导。首先,发现自己对知识的

12、掌握不是很牢固,对课程的设计很困难。自己对知识的掌握和运用是相当的差,感觉自己的知识就是白学了,做这样的题目还是有困难的,尤其是指针的运用很不熟练。而做这个题目恰恰运用了大量的指针。所以很困难。由于时间问题和知识水平有限,系统还存在一些问题,比如:系统的界面比较单调,整个程序的功能还不完善,还有界面做的有些简单,菜单没有做好,可进行的操作太少,这些都有待进一步改善。-10-参考文献1 杨路明. C语言程序设计教程 .北京:北京邮电大学出版社,2000.12 严蔚敏,吴伟民. 数据结构 . 北京:清华大学出版社,20063 谭浩强. C程序设计 .北京:北京清华大学出版社,1999.14 北京金

13、洪恩电脑有限公司. C/C+程序设计入门 .天津:天津电子出版社,2003.4-11-附录:源程序清单#include #include using namespace std;void main()int a;string m;cout 算术表达式的词法分析程序endl要求:endl1.从键盘输入一个正确的算术表达式:如(23-(4*5.2-2.8)/-5。endl2.支持 * / ()等符号。endl3.支持运算符的优先级。endl4.支持括号的嵌套。endl5.支持小数。endl6.有查错功能,如非法字符,小数点过多(如3.44.3),括号不匹配等错误。endlendl;cout m;

14、intk=sizeof(k);for(int j=0;jk;j+) for(int x=0;xk;x+) if(mj=mx&mj=.) printf(输入有错,请重新输入); a=m.length();cout 结果为:;for (int i=0;ia;i+)switch (mi)-12-case +:cout +、;break;case -:if (i=0)cout -;elseif (mi-1=+|mi-1=-|mi-1=*|mi-1=/|mi-1=(|mi-1=)cout -;elsecout -、;break;case *:cout *、;break;case /: -13- cout /、;break;case (:cout (、;break;case ):if (i=a-1)cout ) ;elsecout )、;break;default:if (mi+1=+|mi+1=-|mi+1=*|mi+1=/|mi+1=(|mi+1=)cout mi、;elsecout mi;break; -14-cout endl;-15-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号