-
第一单元作业总结
第一单元总结 一、第一次作业 1.架构分析 第一次作业中,我采用了预解析输入模式,这种方法对于架构设计的要求不高,基本上还是沿用了面向过程编程的思路——将解析过的式子存入容器中,再遍历容器中的语句,将式子中的因子连成一个长字符串,最后再进行化简。 为了存储每个阶段的式子,我创建了一个Expressi -
面向对象第一单元博客
第一次作业(原始) 第一次作业主要实现的功能为表达式的括号展开,然而自己最开始的思路却非常愚蠢,大致是是将表达式视为字符串,并直接对字符串进行修改。这种思路使代码异常繁琐且漏洞百出(原因可能是没看明白training),这里对最开始的思路也不赘述了,只是写下来,以示对自己的提醒吧QAQ。 第一次作业 -
OO第一单元总结
Part 1:代码分析 前言 对于OO第一单元的学习,我个人深刻体会到了面向对象设计中,层次化设计的重要性。首先需要明白自己的代码将如何构成,将基本的框架搭建好,其次才是具体的实现。然而第一次作业时我对整体程序的架构思考并不够深入,为简化工作快速完成实验作业决定以预解析处理的方式读入数据。在之后遇到 -
面向对象程序设计第一单元作业总结
面向对象程序设计第一单元作业总结 第一单元的总任务是实现多项式的展开,三次任务难度递进。从第一次任务实现单一变量多项式括号展开,到第二次作业完成多项式的括号展开与函数调用、化简,再到第三次作业完成多层嵌套表达式和函数调用的括号展开与化简,我在这三次作业中不断深化了层次化设计的思想,学习了使用面向对象 -
OO第一单元总结
OO第一单元总结 一、总体思路 (一)表达式的解析 这三次作业,表达式的解析思路都是相同的,变的只是因子的种类以及限制条件,所以总体的架构基本保持不变。对于表达式的解析,我采取的是按表达式、项、因子层层解析的结构。表达式即用加减号连接起来的项;项即用乘号连接的因子;而因子则是最有趣的,因为不但有常量 -
BUAA-OO-2022-Unit1
面向对象设计与构造2022第一单元总结 零、任务简介 读入一系列自定义函数的定义以及一个包含幂函数、三角函数、自定义函数调用以及求和函数的表达式,输出恒等变形展开所有括号后的表达式。 展开所有括号的定义是:对原输入表达式 E 做恒等变形,得到新表达式 E’。其中,E‘ 中不再含有自定义函数与求和函数 -
BUAA OO 第一单元总结
一、第一次作业 (1)类结构设计 第一次题目架构比较简单,具体结构设计如下(图1): 基本数据类型: Polynomial:用Hashmap<int(指数), BigInteger(系数)>将表达式/项/因子数据内容统一形式 运算方法:加法add、乘法mul、乘方pow 格式化输出:toString -
OO 第一单元总结
OO第一单元总结 代码架构设计 第一单元总共有三次作业,从第一次简单的单变量拆括号,到第二次引入了自定义函数和三角函数,再到第三次作业去掉了对于函数嵌套和三角函数的种种限制,本质上是在不断地实现同一类问题的更复杂的需求。由于OO每次只发布当前作业的要求,不透露以后的需求,这就要求我们每次作业的架构要 -
第一单元总结
第一单元总结 前言 第一单元的三次作业都围绕着表达式展开进行,让我们从面向过程逐渐转变为面向对象。我的主要思路是先进行大量的字符串替换,将字符串替换为仅含有+,-,*三种运算符的式子,再进行表达式的展开。但这种方法的弊端在于不能很好地体现面向对象的思想,替换步骤还是围绕着面向过程来进行的。 一、程序 -
2022面向对象第一单元总结
第一次作业 核心类图 架构分析 主体分为解析、化简、合并三个过程,三者之间基本解耦 优化在合并过程中完成 支持括号嵌套 解析 核心类:Parser, Lexer 采用递归下降法解析表达式,后续两次作业在此基础上进行迭代 Lexer 处理输入字符串,一次可取出一个整数或一个其他字符 Parser 依据