OO第一单元总结——表达式求导】的更多相关文章

title: BUAA-OO 第一单元总结 date: 2020-03-19 20:53:41 tags: OO categories: 学习 OO第一单元通过三次递进式的作业让我们实现表达式求导,在这几次作业中我也有很多收获.下面就回顾一下前三次作业中存在的问题. 在个人看来,表达式求导的难点主要有三部分--对输入的处理.表达式的存储结构以及化简.这三次作业我所采用的表达式存储结构都不相同,不过重构的速度还是比较快的(安慰自己). 第一次作业 在第一次作业中,我的程序总体架构为提取幂函数为Po…
2019面向对象课设第一单元总结 一.三次作业总结 1. 第一次作业 1.1 需求分析 第一次作业的需求是完成简单多项式导函数的求解,表达式中每一项均为简单的常数乘以幂函数形式,优化目标为最短输出.为了满足优化目标,我们需要将含有相同指数的项进行合并. 1.2 实现方案 根据需求,我们很容易就能想到利用HashMap构建常数和幂指数的对应关系(再加上这是第一次作业,本以为只是让我们借此熟悉一下Java语法,于是并没有考虑程序可扩展性),于是仅建立了Polynomial多项式类和用作主函数的Tes…
第一次作业 (1) UML结构图 (2)结构分析 Polynomial 类是对输入的字符串进行预处理,其中包括判断格式是否合法,运算符简化,分割成项等方法. Polynomial处理后得到的每一个项的字符串,传给Iterm类(这个类名是item和term的组合,互测中独一无二的类名,真是可怕!),iterm类通过构造函数获取各个信息.iterm类还有实现求导的方法,以及生成合并同类项的方法. PolyDer类没有属性,只有enter(Arraylist 添加对象)方法,和print方法. (3)…
一. 基于度量的程序结构分析 1. 第一次作业 这次作业是我上手的第一个java程序,使用了4个类来实现功能.多项式采用两个arraylist来存,系数和幂指数一一对应. private ArrayList<BigInteger> coefs; private ArrayList<BigInteger> degrees; 四个类分别为 Poly类,代表表达式: PolyDiff类,代表求导运算: PolyParse类,封装了格式检查,encoding(输入的多项式转为内部存储形式)…
OO第一单元总结-多项式求导 一.第一.第二次作业总结 因为前两次作业设计复杂度差别不大,因而放在这里统一总结. 基于度量分析程序结构: 前两次作业确实存在缺乏可拓展设计的构想,基本还是面向过程的思维方式."一类到底,一main到底",因为有代码风格的要求被迫将代码模块化(捂脸). 初次接触正则表达式,第一次设计正则表达式的时候并不知道正则的内部实现,出现了"一个大正则",后来了解到许多正则匹配模式(贪婪,懒惰,独占).两次作业都改成了小正则匹配同时捕获,这样可以有…
简介 本单元作业分为三次 第一次作业:需要完成的任务为简单多项式导函数的求解. 第二次作业:需要完成的任务为包含简单幂函数和简单正余弦函数的导函数的求解. 第三次作业:需要完成的任务为包含简单幂函数和简单正余弦函数的导函数及其组合的求解. 第一次作业 实现方式   输入.解析: 1.      去掉所有空白符. 2.      经过一系列replaceAll使得项与项之间仅以+分隔. 3.      利用Split将所有项拆分开,对于每一个项新建一个对象. 求导: 1.      每个因子存储在…
第一次作业分析 1.程序结构分析 类图: 好吧,这一次基本上完全是在面向过程编程,没有看出来任何的面向对象的特性. 复杂度: 可以看到模块间的相互耦合度很高,PolyDerive方法的非结构化程度也不够理想,是非常不合格的面向对象程序. 2.正则表达式 从带符号整数到项到多项式一步步地写出对应的正则表达式: 符号 String signStrPat = "(?:\\+|-)"; 带符号整数   String intStrPat = "(?:\\+|-)?\\d+";…
(1)说实话我这部分真的不知道写些什么,因为我只有第三次作业写了两个类,前两次都是一个类,一个类的好处可能也就是写起来比较方便(不用抽象什么共性了,直接c语言莽过去),缺点很多,架构不清晰,可读性不高,可扩展性不强,还学不到什么东西.因此在这里立一个flag,下次作业必好好构造.由于都是一个类,UML就不上丢人现眼了. (2)第二次作业的bug点在于我的优化,我对我的表达式的优化方法是求导后在String类中将^1,1*,0等替换掉,0是好办的,但是^1,和1*有些麻烦,我一开始想用String…
OO第一单元作业总结 第一次作业 基于度量分析代码结构 基本算法 第一次作业是简单多项式导函数求解,不需要对输入数据的合法性进行判定, 基本思想是用 (coeff, expo)表示二元组 coeff*x**expo,而多项式中的每一项都可以以二元组的形式存储,这样做的好处在于多项式的每一项存储形式规范单一,求导规则随之变得很简单,再加上由于不需要考虑输入数据的合法性与否.化简相对简单,使得实现很快. 当然缺点也很明显,可拓展性很差,只能支持简单的多项式,下一次迭代必须得重构了. UML类图: 耦…
OO第一单元(求导)单元总结 这是我们oo课程的第一个单元,也是意在让我们接触了解掌握oo思想的一个单元,这个单元的作业以求导为主题,从一开始的加减多项式求导再到最后的嵌套多项式求导,难度逐渐提高,编程思想也逐步深入面向对象,如果说前两次作业还可以用C语言的面向过程的思想去对付,那么第三次作业可以说是为面向对象而设计的. 一.作业分析 1.第一次作业 第一次作业作业的目标是实现简单的加减多项式的求导,项的形式为带符号整数和幂函数的结合,带符号整数符号与数字间不允许有空格,如-3*x. 由于此次作…