OO第一单元(求导)单元总结】的更多相关文章

OO第一单元(求导)单元总结 这是我们oo课程的第一个单元,也是意在让我们接触了解掌握oo思想的一个单元,这个单元的作业以求导为主题,从一开始的加减多项式求导再到最后的嵌套多项式求导,难度逐渐提高,编程思想也逐步深入面向对象,如果说前两次作业还可以用C语言的面向过程的思想去对付,那么第三次作业可以说是为面向对象而设计的. 一.作业分析 1.第一次作业 第一次作业作业的目标是实现简单的加减多项式的求导,项的形式为带符号整数和幂函数的结合,带符号整数符号与数字间不允许有空格,如-3*x. 由于此次作…
2019面向对象课设第一单元总结 一.三次作业总结 1. 第一次作业 1.1 需求分析 第一次作业的需求是完成简单多项式导函数的求解,表达式中每一项均为简单的常数乘以幂函数形式,优化目标为最短输出.为了满足优化目标,我们需要将含有相同指数的项进行合并. 1.2 实现方案 根据需求,我们很容易就能想到利用HashMap构建常数和幂指数的对应关系(再加上这是第一次作业,本以为只是让我们借此熟悉一下Java语法,于是并没有考虑程序可扩展性),于是仅建立了Polynomial多项式类和用作主函数的Tes…
title: BUAA-OO 第一单元总结 date: 2020-03-19 20:53:41 tags: OO categories: 学习 OO第一单元通过三次递进式的作业让我们实现表达式求导,在这几次作业中我也有很多收获.下面就回顾一下前三次作业中存在的问题. 在个人看来,表达式求导的难点主要有三部分--对输入的处理.表达式的存储结构以及化简.这三次作业我所采用的表达式存储结构都不相同,不过重构的速度还是比较快的(安慰自己). 第一次作业 在第一次作业中,我的程序总体架构为提取幂函数为Po…
OO第一单元作业总结 第一次作业 基于度量分析代码结构 基本算法 第一次作业是简单多项式导函数求解,不需要对输入数据的合法性进行判定, 基本思想是用 (coeff, expo)表示二元组 coeff*x**expo,而多项式中的每一项都可以以二元组的形式存储,这样做的好处在于多项式的每一项存储形式规范单一,求导规则随之变得很简单,再加上由于不需要考虑输入数据的合法性与否.化简相对简单,使得实现很快. 当然缺点也很明显,可拓展性很差,只能支持简单的多项式,下一次迭代必须得重构了. UML类图: 耦…
OO第一单元总结-多项式求导 一.第一.第二次作业总结 因为前两次作业设计复杂度差别不大,因而放在这里统一总结. 基于度量分析程序结构: 前两次作业确实存在缺乏可拓展设计的构想,基本还是面向过程的思维方式."一类到底,一main到底",因为有代码风格的要求被迫将代码模块化(捂脸). 初次接触正则表达式,第一次设计正则表达式的时候并不知道正则的内部实现,出现了"一个大正则",后来了解到许多正则匹配模式(贪婪,懒惰,独占).两次作业都改成了小正则匹配同时捕获,这样可以有…
写在前边:第一次接触面向对象语言,编程思想仍然不可避免的有以前面向过程的影子.从第一次作业的完全面向过程,到第二次学会剥离各个类互不影响到第三次作业的先构思面向对象的基本程序架构再编程.虽然程序有些地方仍然显得很笨重,但是在面向对象编程这条道路上也算是迈出了实质性的一步.在这一过程中,真心感谢各位在讨论课上分享自己经验的同学和讨论区的大佬.从各位的分享中,自己get到很多的关于程序架构设计参考,关于面向对象的不同理解,自动评测的方法,以及很多小技巧. 历次作业程序分析 第一次作业(仅包含幂函数的…
第一次作业 (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)基于度量的程序结构分析 1. 统计信息图: 2. 结构信息图: 3. 复杂度分析 基本复杂度(Essential Complexity (ev(G)).模块设计复杂度(Module Design Complexity (iv(G))).Cyclomatic Complexity (v(G))圈复杂度 OCavg为平均循环复杂度;WMC为总循环复杂度 4. 分析: 本次作业一共使用3个类,没有使用继承.接口. Main类: 1)程序入口 2)主要业务逻辑层…
简介 本单元作业分为三次 第一次作业:需要完成的任务为简单多项式导函数的求解. 第二次作业:需要完成的任务为包含简单幂函数和简单正余弦函数的导函数的求解. 第三次作业:需要完成的任务为包含简单幂函数和简单正余弦函数的导函数及其组合的求解. 第一次作业 实现方式   输入.解析: 1.      去掉所有空白符. 2.      经过一系列replaceAll使得项与项之间仅以+分隔. 3.      利用Split将所有项拆分开,对于每一个项新建一个对象. 求导: 1.      每个因子存储在…