答题判题程序4 及 家居强电电路模拟程序1-2 PTA大作业 第二次总结blog
前言
PTA大作业4-6分为两部分,大作业4是对上一部分答题判题程序程序的迭代,加入了多选,填空等题型的判断;大作业5,6则是新的家居强电电路模拟程序。除此外,在第5次大作业中,还涉及到了Java迭代器的使用。
设计与分析
题目大致信息如下:
7-4 答题判题程序-4
分数 87
作者 蔡轲
单位 南昌航空大学
设计实现答题程序,模拟一个小型的测试,要求输入题目信息、试卷信息、答题信息、学生信息、删除题目信息,根据输入题目信息中的标准答案判断答题的结果。本题在答题判题程序-3基础上新增的内容统一附加在输出格式说明之后,用粗体标明。
本次作业新增内容:
1、输入选择题题目信息
题目信息为独行输入,一行为一道题,多道题可分多行输入。
格式:"#Z:"+题目编号+" "+"#Q:"+题目内容+" "#A:"+标准答案
格式基本的约束与一般的题目输入信息一致。
新增约束:标准答案中如果包含多个正确答案(多选题),正确答案之间用英文空格分隔。
例如:
Z:2 #Q:宋代书法有苏黄米蔡四家,分别是: #A:苏轼 黄庭坚 米芾 蔡襄
多选题输出:
输出格式与一般答卷题目的输出一致,判断结果除了true、false,增加一项”partially correct”表示部分正确。
多选题给分方式:
答案包含所有正确答案且不含错误答案给满分;包含一个错误答案或完全没有答案给0分;包含部分正确答案且不含错误答案给一半分,如果一半分值为小数,按截尾规则只保留整数部分。
2、输入填空题题目信息
题目信息为独行输入,一行为一道题,多道题可分多行输入。
格式:"#K:"+题目编号+" "+"#Q:"+题目内容+" "#A:"+标准答案
格式基本的约束与一般的题目输入信息一致。
输出格式与一般答卷题目的输出一致,判断结果除了true、false,增加一项”partially correct”表示部分正确。
填空题给分方式:
答案与标准答案内容完全匹配给满分,包含一个错误字符或完全没有答案给0分,包含部分正确答案且不含错误字符给一半分,如果一半分值为小数,按截尾规则只保留整数部分。
3、输出顺序变化
只要是正确格式的信息,可以以任意的先后顺序输入各类不同的信息。比如试卷可以出现在题目之前,删除题目的信息可以出现在题目之前等。
4、多张试卷信息
本题考虑多个同学有多张不同试卷的答卷的情况。输出顺序优先级为学号、试卷号,按从小到大的顺序先按学号排序,再按试卷号。
大作业4中增加了填空题,多选题等的答题判题种类,难度相较于前几次又有了进一步的提升,尤其是填空题答案的判断,并不是简单比较标准答案与输入的答案字符串是否相同即可,需要对字符串进行进一步的处理才可以。
设计类图如下:

大作业4中因为有了多种题型的判断,所以使用继承和多态的方法,将单选,多选,填空题类都继承自一个题目类,实现了不同题目不同判断方法。
由于判断方法不同,因此本次大作业中,我还新增了一判断类,用来专门判断题目类型,调用特定类的判题方法。判断类需要一个题目类作为参数,在判断过程中,使用instanceof判断题目属于哪一特定类,并调用该特定类的特有判题方法,返回对应的结果。
大作业5为新的家居强电电路模拟程序,涉及到多种用电器和多种控制类设备,对于继承和多态的使用有了更进一步的要求
设计类图如下:

在大作业5中,由于该简单的电路系统只包含一个控制设备和一个用电器。由于这个系统相对简单,只包含了一个控制点和一个被控设备,我们可以采用一种直接而有效的方法来计算和分配电能,即计算节点的方式。
在这个简化的系统中,我们不需要复杂的电网模型或分布式计算,而是可以通过直接计算节点电压的方式来模拟电能的分配。节点电压是指在电路中某个特定点(即节点)的电位差,通常用来描述电路中电压的分布情况。
具体来说,我们可以设定一个电源节点和一个用电器节点,并假设电源节点有一个已知的电压值(比如220V)。然后,我们通过计算或模拟的方式,确定这两个节点之间的电压差,即用电器两端节点的电压。这个电压值将直接反映到用电器的状态上,比如电压达到一定值后,用电器开始工作;电压降低后,用电器可能降低功率或停止工作。
通过这种简单而直接的方式,我们可以模拟出一个包含控制类和用电器的简单电力系统,并通过计算节点电压的方式来模拟电能的分配和用电器的状态变化。
大作业6中增加了并联电路,使得之前的节点设计已经不再适用,对于新的大作业,我引入一个新的线路类协助计算。
设计类图如下:

在大作业6中,