第一次oo博客作业--表达式求导】的更多相关文章

(1)说实话我这部分真的不知道写些什么,因为我只有第三次作业写了两个类,前两次都是一个类,一个类的好处可能也就是写起来比较方便(不用抽象什么共性了,直接c语言莽过去),缺点很多,架构不清晰,可读性不高,可扩展性不强,还学不到什么东西.因此在这里立一个flag,下次作业必好好构造.由于都是一个类,UML就不上丢人现眼了. (2)第二次作业的bug点在于我的优化,我对我的表达式的优化方法是求导后在String类中将^1,1*,0等替换掉,0是好办的,但是^1,和1*有些麻烦,我一开始想用String…
一.程序设计思路 在我的三次作业中都采用了类的分层结构,采用逐项匹配,分层求导的思路. (一). 第一次作业中构建了Polynimial(多项式)类,在类的构造器中就完成了对非法空格的判断并对合法表达式进行删除空格处理.由于第一次作业仅含有带有系数的幂函数与常数项,因而我就没有专门构建针对每一个项的类,而是在本类中就定义了getitem方法,用正则表达式逐项匹配出符合要求的项.在第一次作业中我求导的基本单位为项,在构造正则表达式时我对表达式中可能出现项的类型进行枚举,分别为:(1)系数与指数均有…
2019年北航OO第1单元(表达式求导)总结 1 基于度量的程序结构分析 量化指标及分析 以下是三次作业的量化指标统计: 关于图中指标在这里简要介绍一下: ev(G):基本复杂度,用来衡量程序非结构化程度.基本复杂度高意味着非结构化程度高,难以模块化和维护. Iv(G):模块设计复杂度,用来衡量模块判定结构,即模块和其他模块的调用关系.模块设计复杂度高意味模块耦合度高,这将导致模块难于隔离.维护和复用. v(G):模块判定结构复杂度,数量上表现为独立路径的条数. 从上面三张图可以看出,整体上3个…
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…
OO第三单元小结 一.JML语言理论基础以及应用工具链情况梳理 一句话来说,JML就是用于对JAVA程序设计逻辑的预先约定的一种语言,以便正确严格高效地完成程序以及展开测试,这在不能容忍细微错误的工程领域如航空航天领域有广泛应用. 1.1 JML语言理论基础 本单元我们学习了一些语言理论基础,梳理如下: 1.requires 该子句定义了方法的前置条件 2.assignable子句,列出方法修改的类成员属性.\nothing则表示方法不改变任何成员属性,是一个pure的方法 3.ensure子句…
第一次作业 (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(输入的多项式转为内部存储形式)…
简介 本单元作业分为三次 第一次作业:需要完成的任务为简单多项式导函数的求解. 第二次作业:需要完成的任务为包含简单幂函数和简单正余弦函数的导函数的求解. 第三次作业:需要完成的任务为包含简单幂函数和简单正余弦函数的导函数及其组合的求解. 第一次作业 实现方式   输入.解析: 1.      去掉所有空白符. 2.      经过一系列replaceAll使得项与项之间仅以+分隔. 3.      利用Split将所有项拆分开,对于每一个项新建一个对象. 求导: 1.      每个因子存储在…
这次的系列作业是写一个电梯调度,主要目的是让我们熟悉多线程. 第一次作业是一个傻瓜电梯的调度问题,要求也很简单,即每次接一个人就行了.我只用了两个线程,一个是输入线程,一个是电梯线程,输入线程负责从标准输入中读入请求并加入到请求队列中,电梯线程负责从请求队列中取出请求并执行,思路非常简单,每次取一个请求,把人送到后,再取下一个,直到取完并且输入停止. 第二次作业没有什么本质区别,只不过修改了调度算法,在电梯运行时进行捎带,我这里的思路是,先找到一个主请求,然后在去接主请求和送主请求去目的地的路上…