一.摘要 本文是BUAA OO课程Unit1在课程讲授.三次作业完成.自测和互测时发现的问题,以及倾听别人的思路分享所引起个人的一些思考的总结性博客.本文第二部分介绍三次作业的设计思路,主要以类图的形式展现,并有简单的优劣分析:第三部分为程序代码复杂度的分析(二.三两部分为基于度量的对自己程序结构的分析):第四部分为对自己.对他人程序的测试.DEBUG.Hack的思考:第五部分是分析作业中可以应用对象创建模式的可能性,和重构的思考. 二.开发设计思路 1.程序类图展示 第一次作业 第二次作业 第…
OO第一单元总结-多项式求导 一.第一.第二次作业总结 因为前两次作业设计复杂度差别不大,因而放在这里统一总结. 基于度量分析程序结构: 前两次作业确实存在缺乏可拓展设计的构想,基本还是面向过程的思维方式."一类到底,一main到底",因为有代码风格的要求被迫将代码模块化(捂脸). 初次接触正则表达式,第一次设计正则表达式的时候并不知道正则的内部实现,出现了"一个大正则",后来了解到许多正则匹配模式(贪婪,懒惰,独占).两次作业都改成了小正则匹配同时捕获,这样可以有…
从C.DS.计组一路折磨过来, 几乎都在采用过程化.函数式的编程思想.初接触面向对象的项目开发,经过了三周的对多项式求导问题的迭代开发,经历了设计.coding.测评环节,算是对面向对象有了一定的认识,这个过程总结了一些经验,在这里希望和大家一起share,欢迎大家给我提意见. 一.关于代码架构 1.第一次作业 主要设置了3个class PolyComputer作为主类,进行I/O操作,正则表达式匹配,项的提取,合并同类型,排序这些操作 PolyTerm表示每一项,包含项的基本特征系数和指数,c…
概述: 面向对象第一单元的作业是三次难度依次递增的多项式求导.第一次作业是仅包含带符号整数和幂函数的多项式求导,例如:-1+xˆ233-xˆ06:第二次是在前面的基础上增加了三角函数的求导,例如:-1+xˆ233*xˆ06-sin(x)*3*cos(x):第三次是增加了嵌套函数的求导,例如:(-1+xˆ233)*sin(xˆ2)ˆ06-cos(sin(x))*3.经过三次的求导训练,我学会了正则表达式的用法.Java内大数运算.对象与类.继承与多态.异常捕获.利用checkstyle检查并规范自…
作业一.含幂函数的简单多项式的求导 (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.程序结构分析 类图: 好吧,这一次基本上完全是在面向过程编程,没有看出来任何的面向对象的特性. 复杂度: 可以看到模块间的相互耦合度很高,PolyDerive方法的非结构化程度也不够理想,是非常不合格的面向对象程序. 2.正则表达式 从带符号整数到项到多项式一步步地写出对应的正则表达式: 符号 String signStrPat = "(?:\\+|-)"; 带符号整数   String intStrPat = "(?:\\+|-)?\\d+";…
第一次作业 需求简要说明 针对符合规定的多项式表达式输出其符合格式规定的导函数多项式,格式错误输出WRONG FORMAT! 带符号整数 支持前导0的带符号整数,符号可省略,如: +02.-16>.19260817等. 幂函数 一般形式 由自变量x和指数组成,指数为一个带符号整数,如:x ^ +2. 省略形式 当指数为1的时候,可以采用省略形式,如:x. 项 变量项 带有系数的幂函数,如:2 * x ^ 2.-1 * x. 系数为1的时候,可以省略系数或表示为正号开头的形式,如:x ^ 2.+…
OO是个借助Java交我们面向对象的课,可是萌新们总是喜欢带着面向过程的脑子去写求导,然后就是各种一面(main)到底.各种方法杂糅,然后就是被hack的很惨. 第一次作业:萌新入门面向对象 题目分析 题目其实不难,最难不过是这种东西的求导: +4*x - -x^2 + x 其实很好办啊,直接超级长的一个正则表达式莽,如图. String pattern = "..."://好长的一段 String longPattern = "pattern(pattern)+"…
第一次作业 基于x的简单多项式相加求导 带符号整数 支持前导0的带符号整数,符号可省略,如: +02.-16>.19260817等. 幂函数 一般形式 由自变量x和指数组成,指数为一个带符号整数,如:x ^ +2. 省略形式 当指数为1的时候,可以采用省略形式,如:x. 项表达式 由加法和减法运算符连接若干项组成,如: -1 + x ^ 233 - x ^ >06.此外,在第一项之前,可以带一个正号或者负号,如:- -1 + x ^ 233>.+ -2 + x ^ 19260817.注意…
一.本单元的架构设计 1.类图 第一次 第二次 2.关键方法和架构简述 总体而言是读取图的时候就完成大部分计算(完成缓存),调用查询方法时只是展示计算的结果,少部分直接计算.主要是设计了各种自己定义的类,处理输入数据时完成各种类的创造和放入容器.第二次作业中,使用预处理器对输入的UML元素进行了多次遍历,先创建具体的对象,再创建次级的从属对象,再读取关系而调用之前创造的对象的特定方法,从而实现把输入的信息重新组合,以便于符合要求地查询.因而各功能是单元化的,对开发和测试比较有利. 二.架构设计和…