全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设计模式课程设计一、四则运算学习软件 请使用面向对象来设计一个完成数学运算的计算器,计算器要实现四则运算、三角运算、倒数、乘方/开方这些基本运算,给出设计界面,由界面按钮来录入表达式的内容,能够保留计算表达式,根据计算优先级完成表达式的计算,并且使用抽象语法树显示计算的过程,可单步执行、一次执行、多次回退,可以提供给学生学习数学运算知识。1、设计场景说明:数学表达式运算。对常数或变量进行加减乘除乘方、开方、三角函数等运算,如何使用面向对象的方式来进行设计呢?可以说明一下语法规则如下表达式格式:常量|变量|加|减|乘|除加:表达式 + 表达式减:表达式 - 表达式乘:表达式 * 表达式变量:任何标志符常量:数字2、设计界面如下:(可以根据你的需要改进界面设计,可以将输入框变为一个textArea,以存放更多的字符串,类似编辑框)这里专门有一个图框表达上面的表达式的抽象语法树结构3、计算器数学运算表达式分析(首先使用解释器模式建立语法规则)v 要求分析处理表达式中的单层括号,不包括嵌套括号(请考虑嵌套括号);v 要求处理变量,最多三个变量(名称限定为A、B、C)v 按照优先级及替换原则进行表达式分析(递归下降分析,简单说明如下:)3.1首先分析和替换括号,使用括号作为分隔符分解表达式,所以每个元素由”(“或者”)”以及括号中的表达式和括号外的表达式组成,计算括号内的表达式,用结果替换该表达式;形成新的表达式。3.2对新的表达式,分析和替换*/符号,使用+-符号作为分隔符分解表达式,所以每个元素由+,-,以及乘除法表达式组成,计算乘除法表达式(建立语法树),用结果替换该表达式(或递归调用);形成新的表达式。3.3对新的表达式,使用+-符号作为分隔符分解表达式,所以每个元素由+,-,以及数字组成,建立语法树,最后得到表达式结果。3.4对其他运算,类似进行优先级替换,同样可以得到计算结果。4、对数学表达式可以增加各种新的操作,如对不同节点进行格式化(不同颜色)显示、算法优先级显示、类型检查、赋值检查、以及语法检查、解释执行,考虑使用访问者模式。上帝回答:办法很简单:你可以把作用于不同节点类的相关的操作(如格式化显示操作)打包在一个单独的对象里,该对象我们叫它“访问者(visitor)”;然后把这个对像作为参数分别传递给抽象语法树的节点类,相当于这个对象遍历了这棵树。当一个节点元素“接受(accept)”访问者时,它就会发送给访问者一个请求,要求对自己进行处理。访问者本身也有一个代表节点元素的参数。于是访问者就会为该元素执行被请求的操作在最开始的笨方法中,这个操作的定义是放在节点类里的。.例如,一个编译器如果不使用访问者模式,可能就要通过用抽象语法树里的TypeCheck操作来完成type-check动作。每一个子节点都需要实现不同的TypeCheck方法。而如果该编译器采用访问者模式,它就可以创建一个TypeCheckingVisitor 对象,调用抽象语法树里的Accept操作,把自己作为参数传入。每一个子节点将实现回调访问者的Accept方法:不同的子节点类回调不同的访问者方法。例如:赋值节点回调VisitAssignment方法;变量引用节点回调VisitVariableReference方法。过去放在AssignmentNode类里的TypeCheck方法的定义现在放在TypeCheckingVisitor类的VisitAssignment里面。如果需要访问者支持多种操作,而不仅是type-checking一种, 我们可以使用一个抽象父类NodeVisitor, 从该类派生出抽象语法树的所有访问者。NodeVisitor 类必须为每一个子节点类声明一个操作。需要计算程序度量数据的应用程式定义NodeVisitor的新的子类, 而且不再需要在节点类中添加特定于应用程式的代码。访问者模式把每一个不同编译阶段的操作封装到了跟该阶段有关的一个访
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 必修2 第五章 第2节 《氮的循环》大单元说课稿 2024-2025学年高一下学期人教版(2019)必修第二册
- 英语教案模板下载电子版20篇(全文)
- 招聘2024年度工作计划6篇
- 地理工作计划5篇
- -w西游记读后感300字7篇
- 护士实习心得600字5篇
- 销售工作计划范文5篇
- 护士岗位年度工作计划7篇范文
- 婴儿车专用包市场发展预测和趋势分析
- 高中毕业典礼老师致辞5篇
- 2023年天津公务员已出天津公务员考试真题
- 2025年高考数学专项题型点拨训练之初等数论
- 教科版三年级科学上册《第1单元第1课时 水到哪里去了》教学课件
- 通信技术工程师招聘笔试题与参考答案(某世界500强集团)2024年
- 国际贸易术语2020
- 国网新安规培训考试题及答案
- 2024至2030年中国节流孔板组数据监测研究报告
- 黑龙江省哈尔滨市师大附中2024-2025学年高一上学期10月阶段性考试英语试题含答案
- 第六单元测试卷-2024-2025学年统编版语文三年级上册
- 【课件】Unit4+Section+B+(Project)课件人教版(2024)七年级英语上册
- 青少年法治教育实践基地建设活动实施方案
评论
0/150
提交评论