Java4~6次大作业题目集的总结性Blog
- 前言
- 知识点无疑就是要学会熟练使用LinkedLsit、ArrayList、HashMap等存储数据的数据集合,并且能够合理处理输入的数据然后使用,在类设计中也要考虑好类之间的关系,学会使用继承多态可以很好处理数据
- 题量不大,在于能否处理好题目,方便写代码的时候使用相关信息来解决,花的时间基本上就是处理信息
- 难度不大,只要能够很好处理相关信息就能够很快写完代码,关键的是一些特殊情况的考虑,在没有给测试点提示的情况下,真的要想很久才能解决,个人在第六次大作业的部分测试点上还有部分测试点没过,想了很多情况但是没过,应该就是还有自己没考虑到的或者代码还是有瑕疵。
- 这三次代码的完成度比前三次的完成情况感觉好多了,一开始写大作业时有很多点都没考虑,只知道看到题目就写代码,而且很多知识点都不会去使用,经过前三次大作业,能够掌握使用一些知识处理问题,而且学会面向对象编程对自己写代码1也带来了很大帮助,迭代只需要在前几次的基础上修改就行,不用像之前重写,但是在一些方法的设计上还是不能精简,在最后看代码的方法耦合度分析时,还是有很多代码很复杂。
2.设计与分析
第四次大作业
类图
耦合度
解释
第四次的大作业难度还行,在第三此大作业的基础上增加了多选题和填空题的情况,在题目建议的基础上我设计了相关类后并且在类里设计了相关的方法后对后续的代码设计使用提供了很大的帮助,这几个类来处理问题后、合理运用方法来处理相关问题后就可以完成所有问题,但是在这一题上还是有一些特殊情况,就像输入的内容的特殊格式,没有处理好输入的内容就会使得最后判题结果错误,所以在获取及处理题目信息相关方面还要多加考虑,避免出现相关错误。
心得
第四次大作业让我更加熟悉了面向对象编程的步骤以及相关要点,在除了题目时要考虑的情况要全面,不能能想一点写一点,感觉效率好低,而且删删改改的给自己的心情都整不好了。
第五次大作业
类图
耦合度
解释
第五此大作业是新的内容,但是毕竟是题目的第一次大作业,总体上不会很难,看到老师给的类图,我自己也考虑过很多类设计,思考完后写自己的代码,写的过程时写了很多相关的类方法,在第四此大作业学会使用继承和多态后写代码也方便了很多,在父类上设计了一些方法,在子类重写后虽然更方便了,但是自己还是有一部分代码感觉是多余了,但是又不知道怎么改了,索性就这样了,所以有部分方法的复杂度太高了。
心得
在写代码的时候要先考虑好自己的类是怎样的再去构思代码的大纲是怎样的,不然写的过程中删删改改的就很烦了,还有的就是要仔细看题了,有时候遇到一些问题想了很久拿不定主意,问了下舍友,得到的结果是题目上写了,我都想骂我自己了怎么不好好看题目就开始写代码了。
第六次大作业
类图
耦合度
解释
这次题目多了一些设备和并联电路,基本上使用的还是上一次大作业的方法,增加了一些设备的类,但是多了一个并联电路后,修改了一下处理电路的方法,而且还有很多特殊情况需要考虑,所以方法也不免得多了起来,但是还是有很多方面没有考虑到,在第一次提交后看到自己七十几分后,就开始不断改代码,脑子好痒,要开始长脑子了,但是几天的修改下来,我明白了自己的代码还是有很多不足之处,最后也才多对了几个测试点,还是有几个没过的测试点,让自己感觉好烦。
心得
写代码要考虑面向对象编程,自己写代码就考虑那么点测试点,到最后很多方面都没考虑到,自己都无语了,那么多测试点没过,都不知道怎么怎么去修改,问了好多人有没有测试用例让自己过一下,对自己的代码改进看有没有帮助。但是好像并没有什么特殊的测试点,自己想了一个最笨的方法,找了一个满分室友的代码,改了一下输出格式,看看那些测试点与哪些有关然后自己再想测试用例,最后再测,但是最后还是失败了。(流泪)
3.踩坑心得
- 第四次大作业中有一个特殊情况就是题目中给定的答案中可能包含多个空格,在一家是写代码的时候没有考虑到这种情况,在判题的时候给定的结果是false的时候就知道错误了,想着还是舍友给的提示,不然都想不到这个点,头好痒,要长脑子了,这也是我初步了解到面向对象编程,写代码要考虑全面的好处。
- 第二个坑是第五此大作业的时候考虑的有点多了,写了个这个判断是不是有重名设备的情况,但是最后发现没有错误格式的测试点我就知道是不可能会有错误输入,最后也不想改了,反正也不会造成结果错误。
- 第三个坑就是在第六次大作业的时候遇到的两个测试点,想来想去最后还是舍友提醒结果精度的问题。修改了一下代码后但是只对了一个,想来还是其他地方出了问题。
4.改进建议
在第六次大作业中,类的设计任然存在一些不合理,我将所有设备继承一个父类Device,虽然看着方便了,所有信息都可以放在父类中处理,然后再进行相关调用,使得后续只需要在这些代码的基础上进行修改就可以了,但是这样也是复杂的,在父类中写了很多方法,子类中又给他重写了,看着那么多方法,想到修改一下父类代码,子类代码也要修改,对后续对代码的修改也不好改进。后续修改同时应该对类的方法简化一下,想想看一些方法虽然名字不同,但是修改一下效果还是一样的,最后主要的就是学会面向对象编程,多考虑才能对后续代码的复用有帮助。
5.总结
Java学习还是要靠自己,一些新方法还是要自己主动去学习才能更好掌。通过这三次大作业,我深刻体会到了面向对象编程的重要性。从第四次到第六次作业,我学会了如何更合理地设计类和处理特殊情况。虽然在过程中遇到了一些难题,就像踩的那几个坑,但这些经历帮助我认识到了全面考虑问题的必要性。而且也我意识到简化类设计和提高代码复用性的重要性,这有助于我在剩下两次大作业迭代中刚好写代码。