表达式求值算法实现3.docx
《表达式求值算法实现3.docx》由会员分享,可在线阅读,更多相关《表达式求值算法实现3.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、河南工程学院数据结构与算法课程设计成果报告表达式求值算法实现2014年12月29日return p;)SC*Pop(SC*s) /SC 类型的指针 Pop(SC *q=s;s=s-next;free(q); return s;)SF *Pop(SF *s) /SF 类型的指针 Pop(SF *q=s;s=s-next;free(q);return s;)计算函数Operatefloat Operate(float a,unsigned char theta, float b)(switch(theta)case +1: return a+b;casereturn a-b;case return
2、 a*b;case return a/b;case,A,: return pow(a,b);default: return 0;)charOPSETOPSETSIZE=,+,-,*,7,,(7),#,,A,;Status ln(char Test,char *TestOp)(int Find=false;for (int i=0; i OPSETSIZE; i+)(if (Test = TestOpi) Find= true;)return Find;)Status ReturnOpOrd(char op,char *TestOp)(for(int i=0; ic!=#)(if (!ln(*c
3、, OPSET) (Dr0=*c;strcat(TempData,Dr);字符串连接函数C+;if (ln(*c, OPSET) (Data=atof(TempData); 字符串转换函数(double)OPND=Push(OPND, Data);strcpy(TempData,O); )else /不是运算符那么进栈(switch (precede(OPTR-c, *c)(case :/退栈并将运算结果入栈theta=OPTR-c;OPTR=Pop(OPTR); b=OPND-f;OPND=Pop(OPND); a=OPND-f;OPND=Pop(OPND);OPND=Push(OPND,
4、Operate(a, theta, b); break; /switch/whilereturn OPND-f; /EvaluateExpressionint main(void)(char s128;puts(“请输入表达式gets(s);puts(该表达式的值为:);printf(H%sb=%gn,s,EvaluateExpression(s);system(pause);return 0;)4测试4.1测试数据下面执行加法运算:图1T加法运算测试结果图下面执行减法运算:F:学习生程序炼习题6Debug6.exe情输入表达式:10-9该表达式的值为:10-9=1番按任意键继续图1-2减法运
5、算测试结果图10下面执行乘法运算:图1-3乘法运算测试结果图下面执行除法运算:吓:学习无程序练习题6Debug6.exe,请输入表达式:8/4该表达式的值为:8/4=2请按任意键继续.图1-4除法运算测试结果图11下面执行混合运算:F:学习那程序炼习题5Debug5.exe请输入表达式: *3-2/5 该表达式的宿为: *3-2/5=2 请按任意键继续.图1-5混合运算测试结果图4. 2测试结果分析程序经过测试之后,主要的功能可以实现,可以完成实验的要求,并仿照教 科书的例子在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程进行 四那么混合运算。但是也存在一些小问题,就是在计算完一个表达
6、式之后,不可以 直接进行下一运算,必须再一次启动程序进行计算。但它的优点是,用户输入方 便,没有过多的输入要求,直接输入想计算的表达式即可,没有过多的格式要求。 以字符列的形式从终端输入语法正确的、不含变量的整数表达式。利用的运 算符优先关系,实现对算术四那么混合运算表达式的求值。125总结一个星期完成的这课程设计。虽然之前对栈已经有了一些认识和了解,但是 通过这次课程设计,我发现之前对栈的了解不值一提,这次课程设计让我对栈有 了更深刻的理解,对它的运用也更熟练。对程序的设计也有了很多自己的思维方 式和想法。开始有许多课程给我选择,可是我凭着自认为对栈比拟了解,所以选 了栈这个课题,可是开始弄
7、的时候却不知道该从何下手,经过同学和老师的帮助 才慢慢的设计这个课程,然后经过一个星期的努力才把这个课程完成。但是我觉 得我对栈的理解远远不够。还要像老师和同学们多多学习,去游览各种资料,让 我对栈有更深的理解。13参考文献1朱福喜.Java语言程序设计(第二版).科学出版社2陈国君等.Java程序设计基础(第二版).清华大学出版社3 Deitel.Java大学基础教程(第六版).电子工业出版社4 MaryCampione.Java语言导学(第四版).机械工业出版社5 Y. Daniel Liang.Java语言程序设计基础篇(第六版).机械 工业出版社6 Kathy Sierra.Head
8、First Java(第二版).东南大学出版社1415题目表达式求值算法实现考核工程考核内容得分平时考核(30分)出勤情况、态度、效率;知识掌握情况、 基本操作技能、知识应用能力、获取知识能力系统设计(20分)分析系统的功能模块编程调试(20分)实现系统的各个功能模块,并完成调试回答下列问题(15分)回答老师针对课程设计提出的问题课程设计报告撰写(10分)严格按照规范要求完成课程设计报告源代码(5分)按照规范要求完成课程设计源代码的排版总评成绩指导教师评语:日期:1课程设计目标与任务11.1课程设计目标11. 2课程设计任务12分析与设计22.1题目分析22. 2存储结构设计22. 3算法描述
9、22.5测试程序说明43程序清单74.1测试数据104. 2测试结果分析125总结131课程设计目标与任务1.1课程设计目标数据结构课程设计是在学完数据结构课程之后的实践教学环节。该实践教学 是软件设计的综合训练,包括问题分析,总体结构设计,用户界面设计,程序设 计基本技能和技巧。要求学生在设计中逐步提高程序设计能力培养科学的软件工 作方法学生通过数据结构课程设计各方面得到锻炼:(1)能根据实际问题的具体情况结合数据结构课程中的基本理论和基本算 法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决 问题的有效算法;(2)通过上机实习,验证自己设计的算法的正确性,学会有效利用基
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 表达式 求值 算法 实现
限制150内