OO第一单元总结

一、程序结构分析

第一次作业

类图
image

此次作业结构相对比较简单,Item类定义了项的系数、指数以及符号,Main类中对传入的数进行处理。

度量分析

image

​ 第一次作业由于自己完全没有认识到面向对象构造的重要性,而且没能管理好时间,导致自己硬生生地把OO第一次作业写成了数据结构。这也导致自己第二次作业的重构。

第二次作业

类图

image

​ 第二次作业感觉压力增加了不少,不仅仅是sin、cos三角函数的出现,而且还有括号的出现,这让自己十分头疼,对于括号的处理只想到了之前学到的弹栈出栈的方法,还在递归下降部分花了不少时间(虽然没能用上),最终导致没能进入互测。

​ 我将函数分为三类(sin、cos和幂函数),在各个类中分别定义求导方法,最终在主类Main中实现。

第三次作业

​ 对于第三次作业自己到现在都感到十分懊恼,首先是由于这次作业是完成各个函数的组合求导,再研究作业指导书方面下了不少功夫,再加上理解错了OS实验课下的ddl,最后只能含泪放弃。

Bug分析

自己程序的bug:

​ 三次作业中自己程序的bug很大一部分归咎于对于指导书的理解不够,导致第一次作业写出了又臭又长的正则表达式,不得不说这么冗杂而没有调理的表达式很难实现后面作业的要求(比如嵌套处理以及超长式的匹配),面对第二次作业的时候只好重新理解指导书进行重构。

image

​ 之前一直对于表达式的写法不屑一顾,认为表达式只要达到匹配的目的就行,经过了第一次研讨课才恍然大悟。才重新意识到指导书中大规模篇幅用于定义项和式子的用意。因此第二和第三次作业中对表达式的匹配进行了分而治之的处理。

image

别人的bug

​ 对于bug的查找,第一次研讨课上就给了我很大的震撼,相比单纯看他人代码找bug,手写评测机寻找别人代码的bug这个方法自己之前从来没有想到过,由此也看到了自己和别人巨大的差距所在。

重构经历与体会

​ 通过一个单元的学习, 我深刻体会到了写代码前先完成初步架构的重要性,当然重构也是痛苦但有效的,从第一次作业的“一main到底”到第二第三次作业开始比较系统地分析各个类的组成结构,第一单元给我的感觉可以说是“痛并快乐着”,尽管常常因为OO作业熬夜甚至无时无刻都在思考自己的构造最终面对自己不想要的结果,经过三个星期的磨练,OO课在带给自己巨大压力的同时也学到了海量知识。在第一单元就对OO有了一个初步的了解,尽管还远远不够成熟。希望接下来的几个单元能够再加把劲,达到满意的成绩。

posted @ 2021-03-29 17:11  DaiWei06  阅读(59)  评论(1)    收藏  举报