一、度量分析程序结构

1.UML类图分析

1.1第一次作业

             

1.2第二次作业

        

1.3第三次作业

           

1.4总结

 从UML类图三次作业的可以看出,我从一个类到逐渐利用多个类,代码结构在不断的进步。有许多模块是可以独立出                        来的,而且这样修改起来也不用考虑对其他模块的影响,例如我将判断与求导还有输出分成3个类,这样3个类之间就互                        不干扰。

2.Statistics分析

2.1第一次作业

         

2.2第二次作业

          

2.3第三次作业

          

2.4总结

  可以看到代码量在随着作业难度的提升逐渐增长。

3.MetricsReloader分析

3.1第一次作业

                

3.2第二次作业

                

3.3第三次作业

                

3.4总结

  ev(G)基本复杂度是用来衡量程序非结构化程度的,基本复杂度高意味着非结构化程度高,难以模块化和维护。

  Iv(G)模块设计复杂度是用来衡量模块判定结构,软件模块设计复杂度高意味模块耦合度高,模块设计复杂度不能大于圈复杂度,通常是远小于圈复杂度。

  v(G)是用来衡量一个模块判定结构的复杂程度,圈复杂度大说明程序代码可能质量低且难于测试和维护。

可以看到三次作业,模块的耦合度都比较高,甚至某个类的Iv(G)已经快接近v(G)。总的来说,自己还未成功的把程序模块化,不同类之间联系过大。自己对于面对对象的思维还是不够明确。

二、自己程序bug分析

1.第一次作业

   第一次bug由于我最后晚上优化程序时,优化完了就上交,自己并未检验到底优化是否增添了bug导致只要表达式里没有x就会报错。原因是我只在ArrayList中存了x的项,而我后面访问该ArrayList时并未检验是否是空的,导致出现问题。

2.第二次作业

    第二次bug由于正则表达式中\\t代表制表符,而在字符串中\t代表制表符,而我在字符串中写\\t代表制表符,从而出现了bug。   

3.第三次作业

     第三次bug中我在判断正误的一个正则表达式中少加了[ \\t],导致本来应该正确的表达式出错。还有一个还是由于我优化出现了问题。

三、发现别人的bug

      在这三次作业,第一个找到的bug是空白符,应该是WF,但是有些人却什么都没有输出。第二个bug是一个表达式化简之后为           0,但是他却未考虑这种情况。第三个bug是--x但是他却判断其是错误。

四、Applying Creational Pattern

    在这三次作业中,当我在互测屋中看到别人的代码时,看到很多人都是讲项分成不同的类,而我就只有一个项,包括了幂函                数,三角函数和常数,而且求导也是在同一个类,现在看到别人,就想到,可以把项当做父类,而其他的就是其子类,也就是用继          承。而同理,求导也可以这样做。虽然自己面向过程的思想还是在体现。但是可以看到自己也慢慢的具有了面对对象的思想了,也          在不断地进步。

2019-oo-第一次总结的更多相关文章

  1. OO第一次作业总结

    OO第一次学习总结 1.第一次作业:多项式加法 从未接触过java的我,在从输入输出开始学了几天后,按照C语言的思路,写出了一个与面向过程极其接近的程序. 在这个程序中,存在两个类:一个是Comput ...

  2. OO第一次博客作业

    OO第一次博客作业 一.三次作业的bug反省 1.自己发现别人的问题 (1)输入处理的问题,比如第一次作业,主要就是处理输入的字符串,然后有同学的正则表达式有问题,则对于一些错误输入就不能正确判断. ...

  3. oo 第一次博客作业

    oo 第一次博客作业 早在大一就听说了oo的各种传奇故事,大二下学期终于也开始了我的oo之旅. 基于度量来分析自己的程序结构 第一次作业 类图分析 耦合度分析 可以看出在第一次作业中,我的耦合度非常高 ...

  4. 2019年北航OO第一次博客总结

    一.基于度量对程序结构的分析 1. 第一次作业 1.1 基于类的分析的度量 首先,基于类的属性个数,方法个数,每个方法的规模,每个方法的控制分支数目,类总代码规模等特征对本次作业的结构进行分析. 1. ...

  5. OO第一次单元总结

    第一次总结性博客 16071070 陈泽寅 2019.3.23 一.第一单元所学总结 首先先来总结一下第一单元我所学到的知识以及所感所悟.第一个单元,是我第一次接触JAVA语言,并且再使用了几次之后, ...

  6. OO第一次阶段性总结

    经过三次作业的历练之后终于来到了写博客这一周.回顾开学来的这一个月,令我印象最深刻也是最累的一门课就是OO了.虽然上学期学过一部分Java,但这学期开学就来的OO作业还是让我在第二周就开始熬夜了.不过 ...

  7. OO第一次博客作业--第一单元总结

    OO第一单元总结 面向对象设计与构造的第一单元,对“面向对象”的概念还根本不理解不熟悉,只觉得需要“分模块”,但不知道怎么分,分多少模块,怎么根据需要的模块的功能建立类.学习的进度又太慢,根本跟不上出 ...

  8. OO第一次博客

    过去的三周里我们完成了表达式求导的程序设计与构造.表达式求导程序,大致思路是实现一个表达式类,支持表达式的输入.求导运算和输出功能.可能的话,还可以增加表达式的化简方法,从而得到更高质量的输出结果.总 ...

  9. oo第一次作业

    前言: 这是一篇面向对象作业总结,作业内容是对多项式进行求导,一共有三个阶段,具体要求不详述,第一阶段只要求’+’连接coeff*x^pow的形式,第二次支持*连接的幂函数及三角函数,第三次则需要支持 ...

  10. OO第一次博客总结

    虽然早在开学之前就已耳闻过OO这门课的威力,也在寒假自学了一些java的语法,但在真正面对OO这样的工程训练时才发现寒假所学的那点语法简直不值一提,也深刻的感受到在这个过程中自己的提升确实很快,毕竟d ...

随机推荐

  1. ABP使用Miniprofiler监测EF

    在上篇教程中,我们在WebApi项目中集成了Miniprofiler,本篇文章中,将继续集成Miniprofiler EF6,以实时监测分析EF的执行语句.执行效率等.Miniprofiler会针对E ...

  2. Fibonacci数列(数列 取模)

    问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. 输入格式 输入包含一个整数n ...

  3. vscode断点调试工程化服务端文件

    一.创建express应用我们使用express-generator创建一个新的express应用.1.全局安装express-generator // 安装 sudo npm install exp ...

  4. BZOJ.4598.[SDOI2016]模式字符串(点分治 Hash)

    LOJ BZOJ 洛谷 点分治.考虑如何计算过\(rt\)的答案. 记\(pre[i]\)表示(之前的)子树内循环匹配了\(S\)的前缀\(i\)的路径有多少,\(suf[i]\)表示(之前的)子树内 ...

  5. MBA 拓展训练总结

    1. 拓展训练,大家绑腿跑 沟通时间极短, 规则制定不完善, 对方'王者队'沟通很好, 女队练习的同时, 男队边观看边练习, 效率很高, 由于之前王者输的比较多, 总结很多, 所以执行力也占优了, 我 ...

  6. cmd 命令 net start mongodb 启动不了,提示 net 不是内部命令或者外部命令

    1.要管理员的身份进入 cmd 2.右击我的电脑-->属性-->高级系统设置 3.选择高级-->环境变量 4.找到系统变量-->Path-->编辑 5.把 C:\wind ...

  7. python学习-01

    1.编程语言分类: 编译型:(由编译器将代码编译成计算机识别的二进制文件)C \C++ \C#    运行速度较解释型语言快 解释型:(在运行时进行编译)python.php.sheel.ruby.j ...

  8. ol图层支持的数据源

    ol.source.BingMaps,必应地图的数据: ol.source.Cluster,聚族矢量数据: ol.source.ImageCanvas,数据来源是一个canvas元素,其中数据是图片: ...

  9. PDF在线解除密码的方法是什么

    大家在网上下载一些关于PDF文件的时候通常会发现有的PDF文件是有密码的,有密码的文件通常是不可以被转换的,这个时候我们就需要将其密码解除掉,这样后期不仅方便阅读也方便了PDF文件的转换. 操作工具: ...

  10. 初识Restful架构

    1.对Rest(Restful)的理解 理解RESTful架构 怎样用通俗的语言解释REST,以及RESTful 维基百科:Representational state transfer 2.Rest ...