首页 > 其他分享 >第二次blog

第二次blog

时间:2024-06-09 23:43:52浏览次数:30  
标签:题目 代码 blog 电压 第二次 解析 方法 本题

一、前言   题目集4总共包含三道题目,题量适中。其中第一题的要求是对完善前面三个题目集中的答题判题程序。其中包括了字符串处理数据结构的使用、文件输入输出、输入输出格式处理、错误处理与异常处理等知识点。我认为本题题目较难,因为本题目涉及多个输入输出格式和数据处理逻辑,需要设计一个复杂的系统来实现。同时还要处理大量的的边界情况和错误情况。第二题的要求是设计一个学生类和它的一个子类——本科生类,其中涉及了类与对象、继承、构造方法、方法重载与重写等知识点。我认为本题难度偏易,题目只要求设计基本的类和继承关系。第三题的要求是实现校园角色类设计,本题和上题有一些,其中也涉及了类与对象、继承、方法重载与重写、复杂的继承关系处理等知识点。我认为本题难度偏易,题目涉及多个类和继承关系,但每个类的设计相对独立,适合练习多层次继承和类之间的关系。总体来说,第一题难度最大,涉及较多的输入输出和数据处理逻辑。后面两题相对简单,主要考察基本的面向对象编程知识。   题目集5也包含三道题目,第一题的要求是设计一个电路模拟程序,其中包含了电路模拟、控制设备和受控设备的模拟、串联电路、开关、分档调速器、连续调速器的功能模拟、灯具和风扇的状态模拟等相关知识,我认为本题较难,因为涉及电路的各类设备模拟,包括开关、调速器、灯具和风扇等。需要对输入的电路连接信息进行解析,并根据控制设备的状态调整受控设备的状态,最后输出各设备的状态,内容较为复杂。第二题的要求是对一段错误代码进行调试然后改正,这道题目的原代码的功能是使用集合存储多个学生的信息,获取学生总数,并按照存储顺序;,最后按照存储顺序获取各个学生的信息并逐条输出,涉及到Java集合框架、列表的实例化和遍历、类和对象的创建及操作等知识点。我认为本题难度较低。第三题的要求也是修改程序,功能要求是使用集合存储3个员工的信息(有序);,通过迭代器依次找出所有的员工。本题相较第二题多了迭代器的使用、控制台输入处理这两个要求。总体来说和第二题类似,我认为本题难度偏易。   题目集6中只有一道题目,题目量较小。本题要求在题目集5的基础上添加了电阻这个概念同时添加了落地扇这个电器类。我认为该题难度大,它在题目集5中第一题的基础上引进了并联电路,较之更加复杂。 二、设计与分析 1.题目集4 7-1 答题判题程序-4   这道题目的设计目标是创建一个简单的考试系统,支持以下功能:

1.解析不同格式的输入数据,包括问题、试卷、学生信息和答题卡。

2.对题目进行管理,支持删除题目。

3.对答题卡进行处理,计算学生的成绩,并根据题目的类型判断答案的正确性。

本题在类的设计中,设计的Question 类的功能包括存储题目信息,包括题目ID、内容、答案、是否被删除和题目类型;TestPaper 类的功能包括存储试卷信息,包括试卷ID和题目分数的映射;Student 类用于储存学生信息;AnswerSheet 类用于存储答题卡信息,包括试卷ID、学生ID和学生的答案。主类中包含数据存储结构和主要处理逻辑及解析输入数据、处理题目删除、计算学生成绩、生成警告信息和输出结果。类结构图如下所示:

静态代码分析结果如图所示

其中显示文件 'Main.java' 共有 251 行代码,其中包含 171 条语句。Main.process() 方法被标识为最复杂的方法,其复杂度为 24,包含了 55 条语句,并且最大代码块深度为 8。平均代码块深度为 3.23,这说明代码的结构相对较为平均.分支语句占总语句的比例为 25.1%,方法调用语句总数为 86。代码包含了 5 个类和接口,平均每个类拥有 2.2 个方法,平均每个方法含有 12.36 条语句。

总体来说,代码比较完整,实现了对测试试卷、学生答题情况的处理,包括题目的解析、成绩计算等功能,涵盖了答题系统的核心逻辑。但是在某些地方部分代码逻辑重复出现,可以考虑进行代码的抽象和封装,提高代码的复用性和可维护性。

2.题目集5 7-1 家居强电电路模拟程序-1

本题目在类的设计中,设计的Device类用于作为所有设备的基类,提供设备标识符和输出电压计算的抽象接口。Switch类可以模拟开关设备的开闭状态,并根据状态控制电压传递。FanRegulator类用于模拟风扇调节器的不同级别,通过级别控制输出电压。ContinuousRegulator类模拟连续调节器,通过连续的调节值控制输出电压。IncandescentLamp类模拟白炽灯的亮度变化,亮度与输入电压相关。FluorescentLamp类模拟荧光灯的亮度变化,亮度随输入电压变化。CeilingFan类模拟吊扇的速度变化,速度与输入电压相关。主类负责整体流程控制,包括输入解析、设备创建、连接设置、电压计算和输出生成,同时可以使用映射表存储设备和连接信息,方便查找和操作设备。类结构图如下图所示

 静态代码分析结果如图所示

 从结果来看,Main.calculateVoltages()方法复杂度最高,达到了17。可能是因为它需要遍历连接图,计算每个设备的电压传递和更新状态。Main.calculateVoltages()方法中语句数量最多,达到了25,该方法处理了一些逻辑,包括设备的创建、连接设置和电压计算,其中涉及到多个步骤和条件判断。Main.calculateVoltages()方法中快深度为9,在整个代码中最高,这可能说明该方法中嵌套了许多层次的条件判断和循环,使代码变得更加复杂。整个代码中平均快深度为2.6,整体来说比较简单。

3.题目集6 7-1 家居强电电路模拟程序-2

本题在类的设计中在之前的基础上添加了一个StandingFan类,该类继承自Device类,表示落地扇设备,具有速度属性,根据输出电压更新速度,最后返回前速度。同时添加了Resistor类,该类继承自Device类,表示电阻设备,根据输入电压和电阻值计算输出电压。类设计图如下图所示

 静态代码分析图如下图所示:

 从上图结果来看,大部分方法的复杂度都在5-6左右。每个类的方法数适中,平均每个类有4个方法。每个方法的平均语句数为3.22,代码中大部分方法相对较短。大部分块深度集中在1到2之间,代码的嵌套层次适中。

三、不足与改进

1.题目集4 7-1 答题判题程序-4

这道题目我认为首先可以将与题目解析、试卷解析、学生解析和答卷解析相关的代码分离成单独的方法,保持单一职责原则,以便于维护和测试。然后可以在错误处理上进行改进,在解析输入时,改进错误处理机制,从而提供更多的错误信息。还可以改进数据结构,当前使用的 MapList 可以满足需求,但在一些情况下,使用更复杂的数据结构(如 Set 或自定义类)可能会使代码更清晰。

2.题目集5 7-1 家居强电电路模拟程序-1

这道题目我认为改进的地方可以参照第1点的内容。在此基础上还可以在连接处理上进行改进,连接处理部分代码有些冗长且复杂,可以通过优化数据结构和逻辑简化这部分代码。

3.题目集6 7-1 家居强电电路模拟程序-2

改进思路和第2点类似

四、总结与心得

通过这几次题目集,我对java中的语法、类、继承、抽象类、接口、集合等有了更深入的理解,对面向对象编程原则有了更深刻的认识。各种数据结构,如映射、列表和数组等有了一定的了解,可以有效地存储和操作数据。我认为对异常情况的处理是一个值得更加深入学习的地方,以更好地理解如何处理意外情况和错误。

标签:题目,代码,blog,电压,第二次,解析,方法,本题
From: https://www.cnblogs.com/gch123/p/18240251

相关文章

  • Blog_2
    前言知识点1.前三次大作业之后,学习到继承这一特征,第四次大作业开始使用继承了,但基础的数据存储结构我使用的还是HashMap,这个还是使用得比较得心应手。这道题中正则表达式的使用是最多的,因为有错误匹配以及多种信息提取的需要。2.第五次大作业除继承外,还使用了多态这一特征。......
  • 23201826-熊锋-第二次blog
    一.前言这三次pta作业第一次为答题判断程序-4,这是答题判断程序的第三次迭代,相较于答题判断三,新增了各种题型及其不同种类的答案,并且出现多选题,使得这次题目相当棘手,具有很大的挑战性。第二次为家居强电电路模拟程序-1,这次是新题型,这道题难点在于电器之间的连接,电路是否为通路,电器......
  • 第二次Blog
    一,前言题目集4`6,正则表达式,类型转换,字符串处理,链表,以及例如Arraylist等包的知识,需要合理运用继承多态来设计类,需要对题目的逻辑过程,具体实现有充分的认知.题量适中,难度较大,在写代码之前要对实现的过程,思路充分完善,才利用代码的完成.2,设计与分析第四次题目集7-1......
  • 23201115-邓俊豪-第二次blog
    目录blog2前言关于难度和题目量关于知识点设计与分析pta4一、项目简介二、项目实现三、项目测试四、代码示例五、总结六、代码分析pta-5一、项目简介二、项目实现三、项目测试四、代码示例五、总结六、代码分析pta-6一、项目简介二、项目实现三、项目测试四、代码示例五、总结六、......
  • 第二次blog
    一:前言第五次作业明显比之前的难了许多,大作业是模拟家居强电电路模拟程序,本次题目集只考虑了电路只为串联的情况,但是有多个开关接入电路,同时也有电压调节器。这次作业需要我们对电器实现继承关系,即所有的用电器都需要继承与电器这个父类。所给题目设计建议:1、电路设备类:描述所......
  • 第二次Blog
    引言第4次大作业第4次大作业相比前两次迭代,增加了多选题与填空题的判断,随着内容的增多,更看重代码的维护难易程度,因为前面某些测试点未通过,导致我多次尝试仍有二到三个测试点无法通过,因为代码量过大与设计的原因,导致我的代码维护难度过大,如问题类与题目类中某些方法的混淆使我的......
  • 第二次blog
    前言这三次pta大作业是我对java程序进行进一步的系统的训练。对我而言,在构建类图和考虑类与类之间的关系时显得尤为吃力。在这三次的pta大作业中我不断强化和训练我对类图构建方面的能力,也对其有了自己的认识。与此同时,我发现java程序编程的极为重要的一点就是对整体的把握,老师十......
  • OOP第二次blog
    不知不觉过去了这么久,又经历了三轮的PTA作业,到了写blog小结的时间,接下来给大家分析的第二次的PTA作业。本次作业分为以下部分:(1)总结三次题目集的知识点、题量、难度等情况。(2)设计与分析:重点对题目的提交源码进行分析。(3)采坑心得:对源码的提交过程中出现的问题及心得进行总结。(4......
  • 4~6总结blog
    第四次:一.介绍:相比于前三次,这一次也有一定的迭代,但是仍然有五个测试点未通过,接下来重点展示二.类图:三.耦合度:在这个耦合度方面,Answer类的OCavg:4.36,Main类的OCavg:40.00Answer类的WMC:48,Main类的WMC:40在软件工程中,OCavg和WMC是两个与代码复杂性相关的度量指标。OCavg表示每......
  • 第二次pta总结
    设计实现答题程序,模拟一个小型的测试,要求输入题目信息、试卷信息、答题信息、学生信息、删除题目信息,根据输入题目信息中的标准答案判断答题的结果。本题在答题判题程序-3基础上新增的内容统一附加在输出格式说明之后,用粗体标明。输入格式: 程序输入信息分五种,信息可能会打乱顺......