首页 > 其他分享 >4~6总结blog

4~6总结blog

时间:2024-06-09 22:11:46浏览次数:22  
标签:总结 OCavg 代码 耦合度 blog WMC Main 类中

第四次:
一.介绍:相比于前三次,这一次也有一定的迭代,但是仍然有五个测试点未通过,接下来重点展示
二.类图:

三.耦合度:

在这个耦合度方面,
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

相关文章

  • PTA4-6题目集总结
    一.前言这几次题目集重点考察的知识点是继承与多态以及抽象类与接口以及对前面所学的知识的一些应用等。与之前三个题目集相类似,这三次题目集也是将分值大部分给与了第一题,甚至是全部的分值都在第一题中,伴随的两道小题都是考察的基本功,难度普遍简单,而第一题与之前类似,都是迭代类......
  • 高考假集训总结(6.9)
    6.9今天依然是单调队列优化dp和斜率优化dp(只不过斜率优化的题还没开始做,具体原因下面讲)突然发现自己学得越多,忘得越多,都想不起来单调队列怎么用了,于是又花一上午跑回去看了单调队列的题并调了一上午的t1暴力做法,现在终于可以将两者融会贯通也就是成功实现了单调队列优化dp不......
  • 第二次pta总结
    设计实现答题程序,模拟一个小型的测试,要求输入题目信息、试卷信息、答题信息、学生信息、删除题目信息,根据输入题目信息中的标准答案判断答题的结果。本题在答题判题程序-3基础上新增的内容统一附加在输出格式说明之后,用粗体标明。输入格式: 程序输入信息分五种,信息可能会打乱顺......
  • oop 4~6总结
    oop4~6总结前言知识点继承:第四次作业中新增的ChoiceQuestion和GapFillingQuestion继承Question类;第五次作业中Switch,SteppedSpeedController,ContinuousSpeedController,IncandescentLamp,FluorescentLamp,和CeilingFan都继承Device类,从而共享其属性和方法。集合......
  • 6.7总结
    第三版,差不多是最后一个版本了<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"><metaname="render......
  • 第二次Blog
    1.前言第四次作业是前三次大作业的迭代,添加了选择题,多选题,填空题。多选题,填空题可以有多个答案,并且可以对一半并得到分数。这对输入是个考验。同时对比较答案也是个难题。第五次作业是设计一个智能家居强电电路模拟系统,有受控设备和控制设备,不算太难。第六次作业是第五次作业迭代......
  • 第二次Blog
    题目集47-17-4答题判题程序-4分数87作者蔡轲单位南昌航空大学设计实现答题程序,模拟一个小型的测试,要求输入题目信息、试卷信息、答题信息、学生信息、删除题目信息,根据输入题目信息中的标准答案判断答题的结果。本题在答题判题程序-3基础上新增的内容统一附加在输出格式......
  • JS(JavaScript)学习总结
    概念:JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语   言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范......
  • 题目集4-6的总结性blog
    前言:在这三周java的练习中,又运用了很多知识点,正则表达式,类与对象之间的关系,类与类之间的关系,继承,多态等等,巩固了上次学习的知识并掌握了新的技巧,这轮学习让我意识到,java题目需要先构思再实践,很多复杂的类之间联系,不构思好就去写代码,就会浪费很多时间。第四次大作业:这个题目是对......
  • PTA题目集4~6的总结
    PTA题目集4~6的总结一、前言第四次题目集为答题判题程序4,输入信息有题目信息、试卷信息、答题信息、学生信息、删除题目信息等。本次作业新增内容有选择题题目信息,填空题题目信息、输出顺序的变化:只要是正确格式的信息,可以以任意的先后顺序输入各类不同的信息,比如试卷可以出现......