OO第二次博客作业

OO第二次博客作业

pjl240428

前言

第四次作业:

知识点:这次的题目集是在前三次的基础上增加了多选题,那么也就涉及到了多选题的判断方式,可以是部分选对,得分也可以是得到部分分数,这就需要我们对题目的答案的存储和判断进一步的完善和改进。同时这里面也涉及到多选题是不是要额外拿出来,设计一个多选题的类,这都是要进行考虑的。

题量:因为是第一次大作业的最后一词,可以说是综合性最大最全的,所以题量还是在的

难度:难度也就不用多说,肯定是第一次大作业中最难的一次

测试点:这次的测试点,有个地方和容易忽略,就是他如果是多选题只对了部分,但是你答题给出的答案不是按标准答案的顺序给出,那么你输出的答案必须改成标准答案的顺序。

第五次作业:

知识点:这次的大作业是模拟家居强电电路模拟程序,本次题目集只考虑了电路只为串联的情况,但是有多个开关接入电路,同时也有电压调节器。这次作业需要我们对电器实现继承关系,即所有的用电器都需要继承与电器这个父类。

题量:由于是第二次大作业的第一次,没有涉及到很复杂的电路,题量相对而言还行。

难度:虽然说只是考虑串联的情况,但是因为是第一次,所以也需要我们去构思,解读这个题目。

测试点:有一个测试点,我一直没有过,还是没想明白,真的有点烦。

第六次作业:

知识点:这次作业在上次作业的基础上增加了并联的情况,这就涉及到了并联电路的分析,同时我们也需要去分析如何处理并联电路的信息,如何判断并联电路的状态。、

题量:题目量还行,只有这一个题目。

难度:肯定是相对于上次而言,难度加大了。

测试点:很烦的是,这次我又是一个测试点没有过,想了很久,还是没有解决!真的有点崩溃。

设计与分析

第四次作业:

现在看自己写的代码,觉得自己写的很不规范,也写得很繁琐,写了将近1000行,确实不够简洁。

类图:

image-20240602102241166

度量:

方法:

image-20240602102816236

类:

image-20240602102834605

涉及到了7个类:

普通问题类;多选选择题类;多选填空题类;试卷类;答卷类;删除题目类;学生类。

第五次作业:

这次的作业我存储信息都是用list,在后面发现用list存储会很繁琐,多出很多代码量!

同时这次代码书写太不规范,我是在主类里去判断信息,导致我的主类中代码量非常多!

类图:

image-20240602103605635

度量:

方法:

image-20240602103702130

类:

image-20240602103726331

涉及到了8个类:

电器类;开关类;分档调速器类;连续调速器类;白炽灯类;日光灯类;风扇类;档位类

第六次作业:

一开始我用的是list去存储数据,代码量太多,并且我的判断都是在主类中去判断很不规范,所以我又重新写了一边 改成了map去存储,代码量减少了,代码也更规范了,看起来也更规范和舒服。

第一次用list写的类图:

image-20240602104334962

非常繁琐,且不好看

改进后用map存储:

类图:

image-20240602104518095

度量:

方法:

image-20240602104610367

类:

image-20240602104652404

涉及到了10个类:

电器类;开关类;分档调速器类;连续调速器类;白炽灯类;日光灯类;风扇类;落地扇类;串联电路类;并联电路类;

踩坑心得

1:不要在主类中去判断:

​ 你会把你的主类中的代码量弄得非常多,让你的代码看的很丑:

image-20240602105951899

2:不要不给注释:

​ 你以为你自己写的代码你自己就一定能看懂? 当你写了很多行代码时,可能过几天你去看的时候你已经不知道你写的是啥了,还想 去找错误?那是不可能的

image-20240602110114422

3:一定一定要注意索引越界的问题:

​ 当你设计了一个list或者map时,又在程序中对其进行遍历,那么你就一定要先去判断是否为空,不让就是你很难找到你的问题所 在。

image-20240602110542086

image-20240602110312791

4.注意空指针异常:

​ 如果你想用一个new的新类去先保存一个数据,但你不知道这个数据时何种构造方法生成的,那么那就先将其设置成null.

image-20240602110625720

image-20240602110417659

改进建议

一:对于这几次作业:我认为都能改进的地方就是要减少主类中的代码量,要尽量减少在主类中进行判段。我们需要的时代码的简洁性和 标准性

二: 对于第四次的作业:我觉得可以将题目类,做一个继承关系,这样就减少了很多判断,同时在存储信息的时候可以改进存储方式。

三:对于第五次的作业:我觉得要改进的地方就是要额外去设计一个串联电路类,并且对开关的判断要在输入信息时就判断,这样既符合 逻辑又能减少代码量

四:对于第六次的作业:我觉得要改进的地方就是要将存储方式改进,如果吧存储方式改成treemap我们就可以减少对用电器排序的步 骤,减少代码量。

总结

学习心得:

通过这几次的作业,我也已经从刚开始的吃力慢慢变得适应,但距离游刃有余还有很大距离,这几次的作业让我学习到一个程序的好坏既要有代码的简洁也要有代码的标准,要让自己的程序好看,功能全,同时我也学习到了java中类的继承,以及集合存储中的map.当然也有很多细节:要给代码注释,要注意代码可能出现的问题,以及如何将代码的复用性提高.......等等,总之,我学习到了很多,也存在很多不足,也希望后续的学习能够越来越好!

一些xiao~意见:

就是希望老师在布置题目集的时候可以多给及格测试样例,还有就是不要不给测试点提示,不给测试点提示,真的会让人头皮发麻,最后一个:能不能讲一下这些题目集啊 ,没讲就感觉如果自己写的不好也不知道哪个地方能够优化!

posted @ 2024-06-02 12:14  彭嘉良  阅读(17)  评论(0编辑  收藏  举报