oop题目集4~6的总结性Blog

一、前言

4~6的训练集难度较上一次提升很多,训练了很多java中独有的提供好的方法,如hashset,数组的sort等方法,实现了代码运行时间的优化,和内存的占用减少,学会了代码的封装,和使用类间关系,同时了解并使用了正则表达式,了解Scanner类中nextLine()等方法、String类中split()等方法、Integer类中parseInt()等方法的用法,了解LocalDate类中of()、isAfter()、isBefore()、until()等方法的使用规则,了解ChronoUnit类中DAYS、WEEKS、MONTHS等单位的用法,总体题量适中,但代码行数偏多,难度也大幅提高。

二、设计与分析:

(1)、训练集4

7-1菜单计价程序-3

因为时间没有合理安排加上第一次遇到这种难题,导致时间不够,没有写这道题.
分析原因:没有挑战精神,在看到这么长的代码后想着先做后面的题目而忽视了这道题,存在畏难情绪,而正因为这次结果导致后面作业也存在难点,缺陷被进一步放大,下次会吸取教训,积极挑战,不让问题越放越大。

(2)、训练集5

7-5日期问题面向对象设计(聚合一)

这道提要求我们使用聚合关系实现日期问题,代码分析如下:
类图设计:
image
由类图可以看出DateUtil和Day存在组合关系,而Day又和Month存在组合关系,Month和Year也存在组合关系。一层一层的组合使得在使用DateUtil时已经包含了Year,Month,Day的参数。
SourceMonitor分析图表:
image
image
image

由图表可得代码注释行占比为9.7%,对于代码注释方面还需加强增强代码可读性,而代码的Max Complexity明显超出正常范围,这说明有些方法的复杂度还是过高,应该考虑优化代码运行思路,降低代码复杂度。在观察代码后发现DateUtil中的getNextDays()和getPreviousNDays()存在较大问题,代码复杂度高。

7-6 日期问题面向对象设计(聚合二)

类图设计
image
分析类图可知相比起7-5类图,这次设计是将Day,Month,Year和DateUtil进行了组合,降低了代码的耦合度
**SourceMonitor分析图表:
image
image
这次题目中吸取了前一次设计的教训,优化了getdaysofDate的算法,使得更加简单,同时增加了代码的可读性.

(3)、训练集6

7-1 菜单计价程序-4

类图设计
image
由类图可知menu和dish存在组合关系,table->order->record->dish存在组合关系
SourceMonitor分析图表:
image
由图可知代码的最大复杂度较高,代码深度也偏高,其他较为良好。
7-1由于上次pta未能写完这道题,导致重新开始时难度较大,在经过一段时间后,才逐渐完善相关功能,但还是发现自身由很多不足之处,没能合理安排时间.

三、采坑心得:

1、对题目难度估计错误,导致没由合理的时间完成安排的任务。
2、在写代码前未能合理的思考结构,导致后续写代码的时候经过大量修改才能实现功能。
3、很多知识只是片面的学习,没有系统的学习,导致效率低下。

四、改进建议:

1、提高代码可读性,掌握标准的代码格式。
2、为代码添加更多注释,让他人更容易理解代码。
3、在写代码前先构思好框架,减少代码长度,使代码更加高效解决问题。

五、总结:

这次训练集学会了使用组合间的关系,意识到在解决一个大问题时应该将问题细化,先做好设计,在慢慢实现具体功能,这样才能效率翻倍。意识到做任何事情都应该用尽全力去做,不能马马虎虎,要敢于挑战困难。意识到自己对事情的时间安排存在很大问题需要改正。但感觉最近的训练集题目比起上次题目集代码行数增加很多,代码难度也大幅增加,还需慢慢适应

posted @ 2023-04-30 20:22  xzs2004  阅读(58)  评论(0)    收藏  举报