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

    第一次作业

    有关设计

    1. 第一次作业相对简单,我只设计了两个类。Item类存放各种项的系数和指数;
    2. 识别各种概念我采用了自顶向下分析法,用一个ArrayList存放项;
    3. 在对输入的表达式进行解析以后,首先进行一次同类项合并,减少需要求导的项数,根据测试结果来看这样做的优化效果不错,只有负号开头的情况没有优化到。

    度量分析

    不知道为啥,第一次作业代码的复杂度和类图都无法显示,不过作业比较简单,又采用了自顶向下的分析,所有没有很复杂的方法。

    有关bug

    • 自己的

      由于心大脑大,感谢同学给我报bug。少考虑了一种情况,比如说:- - x;
      这种情况下,两个符号分别判断为项前的符号,第一个因子为-1的省略形式。

    • 别人的

      发现bug的思路还是分析各种组合情况,主要在各种省略;
      除了被自己少考虑的上种情况外,没有发现其他的问题。

    第二次作业

    有关设计

    1. 第二次作业在第一次作业的基础上对 进行了复杂化,增加了 因子 的概念,项表示为因子的乘积,因子有常数因子、幂函数和三角函数;
    2. 识别各种概念依然采用了自顶向下分析法;
    3. 对于每一种概念建立一个类,Expression类, Item类, Factor类,还有一个专门用来错误处理的类;
    4. Expression类里维护一个存放项的列表, Item类里维护一个存放因子的列表, Factor类里存放因子的种类和它的指数;
    5. 时间有限,做了几个简单的优化:比如说将“+-”替换为“-”,将因子“1”和项“0”省略等,不值一提。

    度量分析

    • UML类图

    • 复杂度分析

    1. 类的复杂度

    2. 方法的复杂度

    Expression类中trigonometric()方法是将两种三角函数分开分析的,增加了复杂度,其实可以一同判断,这一点待改进;
    digit()方法是因为有+1和-1省略的情况存在,当时没有进行预处理,这里的处理略有些复杂,其实可以先对表达式进行简化预处理,进而降低后续方法的复杂度。

    有关bug

    • 自己的

      处理 --1 这种情况时写法欠考虑,导致 +-sin(x), --x 这种形式被判断为错误输入,非常遗憾,不过bug修复时忘记了点“下一步”更让我难过;
      还有因为输出不完善导致最后结果显示错误的问题。

    • 别人的

      从各种组合情况,尤其是各种省略来分析;
      有不少关于省略的bug,比如 - -2, - + -1这些,大多问题出在符号个数和正负叠加的合并判断上。

    第三次作业

    有思路未实施,是一次无效作业,不做赘述。

    对比和心得体会

    • 从第一次作业到第三次作业,难度层层递进,有一点点想法。
    • 关于作业。可以做的预处理应当先做,可以非常有效的避免其后的代码过于复杂。像第一次作业先合并同类项还有优化的好处,第二三次作业可以利用正则表达式预判一些WRONG FORMAT的输入,而且可以除空格简化符号等等,让输入的表达式简单标准化,方便后续处理。
    • 要通读指导书,上面的建议尽可能的采纳,某些提示也应该注意,因为遇到过没过的点是数的范围不够的原因,而这个刚好在当时指导书上提到过,开始没当回事,后来老老实实改了的。
    • 还有要多思多想,写代码我觉得“瞻前顾后”挺好的,这是来自没有成功提交修复的血泪教训。
    • 还有遇到某个知识点的时候尽量看透彻看明白,就算这次不用,下次可能还需要被启发。
    • 必要的注释很有用,有助于检查代码,自己debug,写总结博客的时候尤其有裨益!
  • 相关阅读:
    某个牛人做WINDOWS系统文件详解
    常用ASP脚本程序集锦
    LINUX基础:文件安全与权限
    proftpd+mysql+quota
    apache2.0.49tomcat5.0.19jk2建立virtualHost
    URL Redirection(转) Anny
    顶级域名后缀列表(转) Anny
    \u4E00\u9FA5意义 Anny
    How to POST Form Data Using Ruby(转) Anny
    How to get rid of 'Enter password to unlock your login keyring' in Ubuntu(转) Anny
  • 原文地址:https://www.cnblogs.com/mzny/p/12535734.html
Copyright © 2011-2022 走看看