前三次OO作业小结】的更多相关文章

I used to be enamored of object-oriented programming. I'm now finding myself leaning toward believing that it is a plot designed to destroy joy. Eric Allman 一.基于度量来分析程序结构 总体: 第一次作业:在两个类中处理了所有多项式的求导,一个主函数控制输入并且处理字符串,格式不正确时报错:另外一个处理多项式并且求导. 第二次作业:在第一次作…
OO课程目前已经进行了三次的作业,容我在本文中做一点微小的工作. 第一次作业 第一次作业由于难度不大,所以笔者程序实际上写的也比较随意一些.(点击就送指导书~) 类图 程序的大致结构如下: 代码分析 可以看出,整体的功能还是相对零散的,耦合状况也基本还可以.然而类似Main.main.Polynomial.Polynomial两个函数的复杂度仍有点高.笔者后来查阅了阿里Java开发规范手册,发现两个问题: 单个方法的长度不宜过长,入口点方法(Main.main)也是一样 不宜在构造函数中携带过多…
一.作业总结 前三次的任务都是表达式求导.这是我在高中就思考过的问题,但是很久都没有付诸实践,直到学习了"类"这个强大的工具.还有正则表达式,如果能适当使用,则不失为一个字符串格式检查的利器.真觉得有点编译原理的词法分析的赶脚. 从结果来看,不甚满意,尤其是第二次作业,由于一些不可预测的原因而没有做足够的测试,从而在强测阶段爆掉.这是个惨痛教训,争取以后的作业中不要再出现这种问题,把失掉的分弥补回来. 前两次作业,几乎没有面向对象的身影,而主要是锻炼程序的鲁棒性.格式识别中种种要求应接…
基于度量的程序结构分析 由于平时使用了NetBrains出品的IDEA作为IDE,在分析程序的时候我使用了IDEA的插件Metrics Reloaded.然而在使用时发现不懂得很多分析项目的含义,因此花费了一些时间了解,并在这里总结. Complexity Metrics(复杂度分析) 这部分我们需要使用的主要是方法和类的复杂度分析. 方法的复杂度分析主要基于循环复杂度的计算.循环复杂度是一种表示程序复杂度的软件度量,由程序流程图中的"基础路径"数量得来. ev(G):即Essenta…
1. 规格设计的发展历史 规格设计用于对程序设提供分解,抽象等的手段.在撰写代码规格的时候,需要对组成部件进行抽象. 在1960s,软件设计出现危机,例如Dijkstra提出了goto语句的种种危害,引发了软件开发领域长期的论战,并且在这时候产生了结构化程序设计方法,例如Pascal语言在1970s占据有统治地位. 之后,随着计算机软件规模日渐庞大,结构化程序设计方法开始无法满足用户的需求,面向对象程序设计(OOP)应运而生.面向对象程序设计是一场重大的革命,提高了开发人员的效率,有效的控制了软…
概述 经历了三次oo作业的洗礼,让我对java语言的强大以及面向对象编程有了初步的理解(当然,我是小白).本文接下来就将对自己这三次作业的代码进行分析以及分享自己的心路历程. 基础知识点考核 针对前三次作业,我列出了这其中涉及到的主要的知识点: java基础语法 java正则表达式(注意不要爆栈) 对java封装.继承.多态.接口的理解 程序的构思能力 当然,还有最重要的还是阅读和理解指导书的能力,能够在较短的时间内准确无误的理解指导书的意图也是必需的能力之一. 程序结构分析 作业一:多项式计算…
一,第一次作业分析 度量分析: 第一次的oo作业按照常理来说是不应该有这么多的圈复杂度,但是由于第一次写的时候,完全不了解java的相关知识,按照c语言的方式来写,完全的根据指导书的逻辑,先写好了正确的方式然后又一步步的判断所有错误的方式,由于没有采用正则表达式,导致代码冗长,写了很多的if else循环导致嵌套过多.执行的次数大大的增加,使得程序的维护十分的困难. 类图分析: 第一次作业所创建的类很少,一个储存多项式的类和一个多项式集合的类.所有关于输入的判断全部都放入了一个类里面这就导致了前…
OO前三次作业总结 基于度量分析程序结构 由于三次作业较多,决定分析内容.功能最为复杂的第三次作业. 上图为第三次作业的类图.我使用了一个抽象类Factor,写了五个因子继承Factor,然后又单独开了一个Term类,还有表达式类,其中Expression因子包含一个表达式类,其他就是常见的Main类,InputHandle类,求导和输出都在Main类中完成.个人认为本次的架构还可以,较为清晰,具有延展性,若是加入其他因子只需要继续继承Factor类,而在其他类中改动无需太多就可继续使用,而在递…
一.第一次作业 1.程序设计分析 ![img](s1.ax1x.com/2018/04/02/CSgoSU.png) 图1 第一次作业类图 ![name](https://images2018.cnblogs.com/blog/1346258/201804/1346258-20180402222354189-1523550375.png) ![](https://images2018.cnblogs.com/blog/1346258/201804/1346258-2018040222000442…
一.JML理论基础及应用工具链情况 理论基础 1.JML表达式 \result:表示方法执行后的返回值. \old(expr):表示一个表达式expr在相应方法执行前的取值. \foall:全称量词修饰的表达式. \exists:存在量词修饰的表达式. <==>:等价关系操作符. ==>:推理操作符. \nothing:变量引用操作符,指示一个空集. \everything:变量引用操作符,指示一个全集. 2.方法规格 requires:表示前置条件(pre-condition). en…