第四次:
一.介绍:相比于前三次,这一次也有一定的迭代,但是仍然有五个测试点未通过,接下来重点展示
二.类图:
三.耦合度:
在这个耦合度方面,
Answer类的OCavg:4.36,Main类的OCavg:40.00
Answer类的WMC:48,Main类的WMC:40
在软件工程中,OCavg和WMC是两个与代码复杂性相关的度量指标。OCavg表示每个类的平均对象复杂性,而WMC表示每个类的加权方法数。这些指标可以帮助开发人员评估代码的复杂性和维护难度。
两个都是偏高的,我总结了以下原因:
OCavg偏高的原因可能有以下几个方面:
类的设计问题:高OCavg可能意味着类的设计不够清晰,功能过于复杂,或者承担了过多的责任。这可能导致代码难以理解、修改和维护。
类的职责不明确:如果一个类承担了多个不相关的职责,那么它的OCavg可能会增加。这种情况下,可以考虑将类进行拆分,每个类只负责一个清晰的职责。
过度使用继承:继承是面向对象编程中的重要概念,但过度使用继承可能导致类的复杂性增加。当一个类继承了大量的属性和方法时,它的OCavg可能会增加。
WMC偏高的原因可能包括以下几个方面:
方法过多:一个类中包含过多的方法可能导致WMC偏高。这可能是因为类的功能过于复杂,或者承担了过多的责任。将功能拆分成更小的方法或将一些方法移动到其他类中可能有助于降低WMC。
代码重复:重复的代码可能导致WMC增加。通过提取重复的代码块并将其封装到单独的方法中,可以减少代码重复并降低WMC。
复杂的算法或逻辑:如果一个类中包含复杂的算法或逻辑,那么它的WMC可能会增加。在这种情况下,可以考虑将复杂的算法或逻辑拆分成更小的方法或将其移动到其他类中。
需要注意的是,OCavg和WMC只是代码复杂性的一些度量指标,高值并不一定意味着代码质量差。在评估代码时,还应考虑其他因素,如可读性、可维护性和可测试性等。
在这次的判题程序中,大部分问题是解决的。少部分原因在课后经过同学的帮助,也得以解决
第五次:
一.介绍:这次为电路的初始题目,题目难度偏低,不做过多介绍
二.类图:
三.耦合度:
在其中不难发现,Main的指标依旧偏高,说明我的单一职责做的不够好,Main中代码冗杂
这道题,因为我的不细心,最后四个测试的卡了两天,后面我回过头仔细看题目,才看到要将用电器排序输出。
第六次:
一.介绍:这次难度相比上一次难度稍微难一些,加了一个风扇,一个并联情况
二.结果:有许多测试点未通过,从十九到最后都未通过,如下图:
我找了一个满分的朋友以及室友,想借助同学的帮助解决我的问题,但是我们都没发现问题所在,不知道这个是不是互评,如果有谁知道这出了什么问题可以联系我。
三.:类图:
四.:耦合度:
这次的并联电路的电阻有个疑问,高中的知识为1/R = 1/R1 + 1/R2 + ... + 1/Rn;
在这道题中,使用这个式子计算1/R,接着倒数求R答案是错的,而只能使用两两之间(R1R2)/(R1+R2),最终才能通过测试点。
经过这些天的pta训练,自己编程水平也有所提升,但是仍然有很多地方需要改进。
标签:总结,OCavg,代码,耦合度,blog,WMC,Main,类中 From: https://www.cnblogs.com/oop-blog/p/18240121