以下为《课程某某报告》的无排版文字预览,完整内容请下载
***计算机与信息***
课
程
设
计
报
告
课程名称
数据结构
项目名称
中缀表达式转化为后缀表达式并求值
班 级
2020级计算机类4班
学 号
***248
姓 名
杨某某
指导教师
耿某某
2021年6月29日
课程某某主要目的
通过综合训练,使学生能够运用数据结构的思想,针对不同数据对象的特性,选择适当的数据结构和存储结构以及相应的算法,解决实际的问题,培养学生实际分析问题、解决问题、编程和动手操作等多方面的能力,最终目的是帮助学生系统地掌握该门课程的基本内容,并运用所学的数据结构知识去解决实际问题。同时编写课程某某报告,锻炼软件开发文档撰写的基本方法。
课程某某任务要求
任务:
综合应用C语言的基本语句,调用函数,使用栈的思想把输入的中缀表达式转换为后缀表达式,再利用所得到的后缀表达式求值。
要求:
程序能够正确运行,实现中缀表达式到后缀表达式的转换及利用后缀表达式求值的基本功能;
用户操作界面大方、简洁;
程序的可读性要好,源程序采用锯齿型书写格式,关键代码要有注释部分语句;
写明存储结构,对关键功能画出程序流程图;
5.要有测试数据和结果、调试程序,对调试程序时出现的错误进行分析,思考导致错误的原因。
教师评语
成绩: 指导教师(签名)
目 录
一、需求分析 1
二、设计方案 1
2.1总体设计 1
2.2 详细设计 2
三、 测试与分析 8
3.1测试 8
3.2 分析 10
四、总结 10
一、需求分析
本次程序设计需要输入一串中缀表达式将其转化为后缀表达式,然后用后缀表达式求值并输出。本次设计需要利用栈的思想解决问题,判别运算符,并依据后缀表达式的规则进行排列。且本设计内仅仅支持“+”“-”“*”“/”“(”“)”的表达式的运算。
功能概述:
中缀表达式的录入
运算符优先级比较
中缀表达式转后缀表达式
利用后缀表达式求值
退出
二、设计方案
2.1总体设计
本次程序设计采用C语言。功能为:由中缀表达式转化为后缀表达式并求值。该程序是根据栈的思想进行编译的,通过中缀表达式数组,逐一将中缀表达式字符读取,并将其放到后缀表达式数组里。然后将后缀表达式数组字符逐一读取,并进行运算,最后得出所求值。
基本思路:
(1)输入中缀表达式:
通过按照常规算数表达式进行直观输入操作。
(2)运算符优先级:
各种运算符的优先级为:()、*、/、+、-。
(3)中缀表达式转换为后缀表达式:
通过中缀表达式字符串一一的进行扫描操作。遇到操作数,直接将其输出;遇到操作符,将其放入栈中;遇到右括号,将栈元素弹出,将弹出的操作符输出直到遇到左括号为止;如果遇到任何其它的操作符,从栈中弹出元素直到遇到发现更低优先级的元素为止,最后将栈中所有元素依次弹出。
(4)利用后缀表达式进行求值:
通过一一扫描后缀表达式字符串。当遇到数值字符时,直接将其压入到栈中进行保存,遇到运算符时,依次从栈顶弹出字符进行相应的计算操作。
流程图:
否
是
出栈
是
读 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 :遇到除数为0的情况,程序运行不出来,最后通过问查资料修改一下代码得以解决;在程序运行的过程中,有时候用到括号会出现乱码的情况,经检查分析,找到了原因:因为在编写代码的时候“括号()”定义的是英文形式,所以在输入中缀表达式的时候必须用 “英文括号”输入。
想法及目标:该程序运算符一共用到4种,以后有时间要加上%运算符或更多,也要实现负数的运算。对界面的完整以及因输入需要有的错误提示要有体现。在这次的课程某某中,我发现我考虑问题不够全面。同时也深深感觉到团队合作的重要性。希望在以后的实际操作中,可以更加细心,不断进步。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《课程某某报告》的无排版文字预览,完整内容请下载
课程某某报告由用户“lslwcfwz”分享发布,转载请注明出处