zoukankan      html  css  js  c++  java
  • 面向对象第一单元总结博客

    第一次作业

    第一次作业为多项式求导,各项均为幂函数,用正则表达式匹配每一项,得到系数指数后求导输出

    (1)类复杂度分析:

    (2)方法复杂度分析:

    (3)UML类图:

    (4)关于bug:

    本次作业强测互测均未出现bug,本次互测中寻找别人程序bug主要通过阅读代码,并未发现bug

    (5)重构想法:

    可以在多项式和幂函数之间增加项类,并考虑使用工厂模式,增强程序扩展性

    第二次作业

    第二次作业增加了输入格式正误的判定和三角函数以及乘积求导

    (1)类复杂度分析:

    (2)方法复杂度分析:

    (3)UML类图:

    (4)关于bug:

    本次作业使用对拍器批量测试,按文法生成数据并添加随机扰动,然后使用sympy对比结果

    (5)重构想法:

    本次作业用到了对象创建模式中的工厂模式,但使用正则表达匹配出每一项然后用乘号分割出因子的流程并不足够通用,在第三次作业出现嵌套因子后就不适合继续使用,应当考虑参考代码给出的对每一种函数和函数组合规则建立类的架构

    第三次作业

    第三次作业仍然使用表达式->项->因子的类层次结构,增加了表达式嵌套因子的求导

    (1)类复杂度分析:

    (2)方法复杂度分析:

    (3)UML类图:

    (4)关于bug:

    主要bug在于嵌套因子的解析,正则匹配出现错误

    (5)重构想法:

    讨论区的将最外层括号替换为其他字符的做法颇为有效,可以据此修改输入处理部分,另外采用指导书和参考代码给出的所有项和组合项各一个类的架构

    心得体会

    经过第一单元三次作业主要的心得体会在于

    1.OO程序将问题层次抽象,一次只需要关注一个模块,所以开发编码过程中应当同时也进行模块化测试,这样开发效率和效果更好

    2.阅读参考代码和优秀代码的架构设计后,强烈体会到优秀的架构设计的好处,逻辑清晰简单,不易出错,易于扩展;还需要在学习摸索中提升面向对象思想和层次抽象能力

  • 相关阅读:
    正常安装selenium后,pycharm导入selenium失败
    python+selenium自动化的准备 2:安装python 3.7.4 和selenium 2.53.1
    python+selenium自动化的准备 1:安装浏览器(火狐)及浏览器插件firebug与firepath、selenium IDE
    虚拟机安装win10系统
    官网下载Windows 10 系统的iso镜像文件
    电脑系统属性中用户与系统环境变量的区别
    验证器
    EchoMode的显示效果
    文本框类控件
    QLabel标签快捷键的使用
  • 原文地址:https://www.cnblogs.com/buaa17373128/p/12539546.html
Copyright © 2011-2022 走看看