23201430-张文杰第二次博客作业
(1)前言:
本次布置题目集涉及的知识点: 题目集1 主要侧重于考察了java中 类与对象 的知识点,同时涉及了关于java中数组的基本应用,关联类和接口,继承等知识的考查。第二个题目集题目集主要侧重于考察方法的运用,用于解决简单的应用题。题目集3主要侧重于考察了进阶的类的运用。
设计条件逐渐增加。
难度逐渐提升。
代码量逐渐增。
(2)设计与分析:
题目集1:
第一题uml图
对题目的分析:
设计类:根据题目要求,设计将电器类分为控制类和被控制类设计它们的属性和方法,包括成员变量、构造方法和toString方法。
创建对象:根据输入的属性,使用无参构造方法和有参构造方法分别创建两个电器对象。
调用方法:调用对象的toString方法,显示电器的信息。
输出格式:按照输出格式要求,输出电器信息和状态。
第二题uml图

对题目的分析:
具体要求包括:
考查类的运用。
考查集合接口的实例化。
考查遍历方法和向下转型
第三题UML图

分析理解:
考查相关包的利用。
考查迭代器的创建和使用。
考查集合对象未知的向下转型。
考查创建有序集合对象。
输出格式要求,输出题目内容和对应的判题结果。
题目集二:
第一题UNL图:

分析理解:
在题目集一的第一题的基础上考虑并联情况下,各个电器状态判断时的差别
(3)采坑心得:
在第一个迭代题目中,我是根据题目给出的电器顺序依此存进Equipment数组中,所以输出时也是根据电器在数组中的数据按顺序以此输出电器的状态,此种方法在题目一中可以解决问题,但在迭代二即使电器的数据都正确,但中无法按照给出的输出样例输出,如在题目二中的第一个输入样例中#T1:[IN K1-1] [K1-2 D2-1] [D2-2 OUT]
T2:[IN K2-1] [K2-2 D1-1] [D1-2 OUT]
M1:[T1 T2]
T3:[VCC L1-1] [L1-2 M1-IN] [M1-OUT D3-1] [D3-2 GND]
K1
end,按照原本方法输出的数据是
@K1:closed
@K2:turned on
@D1:0
@L1:0.00
@D2:0
@D3:0但却应该是
@K1:closed
@K2:turned on
@L1:0.00
@D1:0
@D2:0
@D3:0
(4)改进建议:
因此,我在第二次的迭代中,将每种电器类中加一个独特的属性gg,在输出数据之前,将总Equipment数组中的电器重新内置排列,若gg相同,则比较电器名字的大小,反之,则不比较。
(5)总结:首先,我认为本次两个个题目集设置良好,题目难度逐渐进阶,且都出现在一个试卷分数的实际背景,让我在昨晚两个个题目集后收益良多,如我学到了基础的类的运用,和数组和列表的运用,接口和抽象类的运用,对于迭代题目的思考,对实际问题的解析能力等等。其次,我发现自身再对于多态的运用上缺乏能力,并且发现解决迭代问题思想的关键,常常即使上一题做出来,因为思想不对,无法做出下一题。希望往后能完善这方面的知识。