不知不觉过去了这么久,又经历了三轮的PTA作业,到了写blog小结的时间,接下来给大家分析的第二次的PTA作业。
本次作业分为以下部分:
(1)总结三次题目集的知识点、题量、难度等情况。
(2)设计与分析:重点对题目的提交源码进行分析。
(3)采坑心得:对源码的提交过程中出现的问题及心得进行总结。
(4)改进建议:对相应题目的编码改进给出自己的见解,做到可持续改进。
(5)总结:对本阶段三次题目集的综合性总结,学到了什么,哪些地方需要进一步学习及研究。
前言:第一次的题目在之前的题目集上继续迭代,变得更加复杂,第二次题目集是在第一次题目集结束后重新开始的题目,所以并不是很复杂,然后第三次题目集在第二次的题目集上迭代,也不算是很复杂。
一.三次作业的内容:
1.第一次作业的模拟场景:
1)多张试卷、多张答卷的信息处理,
新增:输入选择题题目信息,多选题输出,多选题给分方式,输入填空题信息,填空题输出,填空题给分方式,输出顺序变化,多张试卷信息。
2)详细内容:
输入试题的信息(编号、题目、标准答案)、试卷引用信息(试卷号、引用的题目
号-分值)、答卷信息(试卷号、答案)、学生信息(学号、姓名)、删除题目信息(题
号)
输出试题每一题的答题、判题信息以及最后每一题的判分结果、总分。输入中出现
各类错误时输出对应错误信息。
2. 第二次作业的模拟场景:
1)单个用电器与开关间的关系。
2)详细内容:
输入设备的信息(设备标识,引脚编号),输入连接信息(引脚号),输入控制设备调节信息(设备标识,引脚编号)
按开关、分档调速器、连续调速器、白炽灯、日光灯、吊扇的顺序依次输出所有设备的状态或参数。每个设备一行。同类设备按编号顺序从小到大输出。
3.第三次作业的模拟场景:
1)单个以及多个用电器与开关之间的关系。
新增内容:用电器有电阻,考虑并联电路,风扇迭代落地扇。
2)输入设备的信息(设备标识,引脚编号),输入连接信息(引脚号),输入控制设备调节信息(设备标识,引脚编号),输入串联电路信息(电路编号和连接信息),输入并联电路信息(电路编号,串联电路信信息)1.
按开关、分档调速器、连续调速器、白炽灯、日光灯、吊扇、落地扇的顺序依次输出所有设备的状态或参数。每个设备一行。同类设备按编号顺序从小到大输出。
2.三次作业的设计与分析:
1.第一次作业:
1)题目类(Question):用于保存一道题目的信息以及处理的方法。(与系列 1 相同,无变化)
题目类(用于封装单个题目的信息):
属性:题目编号、题目内容、标准答案-standardAnswer,题目对应的答案列表
方法:数据读写set\get方法、
判题方法(答案-answer):判断答案-answer是否符合标准答案-standardAnswer;判断是否为有效题目
2)试卷类(TestPaper):保存和处理一张试卷的信息以及处理的方法。
试卷类(用于封装整套题目的信息)
属性:题目列表(题目类的对象集合)、题目数量,题目总分,试卷题号列表
方法:判题方法(题号-num、答案-answer):判断答案-answer是否符合对应题号的题目标准答案-standardAnswer
保存题目(题号-num、题目-question):将题目保存到题目列表中,保存位置与num要能对应;HashMap接口,key为题目编号,value为题目分值;题目总分值的计算。;获得总分。
3)答卷类(AnswerPaper):保存和处理一张答卷的信息以及处理的方法。
答卷类(用于封装答题信息)
属性:试卷(试卷类的对象)、答案列表(保存每一题的答案),学生学号,答卷的试卷列表
方法:判题方法(题号-num):判断答案列表中第num题的结果是否符合试卷中对应题号的题目标准答案,判断答案顺序是否与试卷答案相同。
输出方法(题号-num):按照题目的格式要求,输出题号为num的题目的内容和答题结果。
保存一个答案(题号-num,答案-answer):保存题号为num的题目的答题结果answer。
4)学生类(Student):保存和处理一个学生的信息
学生类(用与封装学生信息)
属性:学生姓名,学生学号
方法:sette/getter方法
5)删除类(Delete):保存和处理一个删除题目的信息
删除类(用于封装删除题目信息)
属性:删除题目号
方法:setter/getter方法
6)试卷题目类(Question_Paper):用于保存试卷中的题目信息。由于试卷中的题目序号与题
目本身的题号不一致。且题目在不同试卷中的分值可能不一样,因此,设计试卷题目类。
试卷类(用于封装试卷题目信息)
属性:题目顺序号,题目(题目类的对象),题目分值
方法:判断题目是否得分。
7)答案类(Answer):用于保存答卷中一道答案的信息。
答案类(用于封装答案信息)
属性:试卷题目(试卷题目类的对象),答案
方法:判断每一道题的正确性,判断每一道题的得分,计算总分,判断答案对应的题目是否失效
8)合法类(Valid):用于判断输入是否合法
合法类:(用于封装输入信息)
属性:字符串
方法:用正则表达式判断输入的信息是否合法。
9)填空题类(Question_fill):保存和处理填空题的信息
填空题类:(用于封装填空题信息)
属性:题目类
方法:判断填空题是否得分,输出填空题信息。
10)选择题类(Question_select):保存和处理选择题的信息
选择题类:(用于封装选择题信息)
属性:题目类
方法:判断选择题是否得分,输出选择题信息。
这是前三次作业的迭代,在前三次作业上面新增了题目类型和给分方式记忆多张试卷信息
这一次的作业我先设计好了类图,然后根据类图将一个个类完善好了,但是在输入输出的时候处理不好相关信息。所以完成度不怎么样。
二.第二次作业:
1)设备类(Device):保存和处理设备的信息
设备类:(用于封装设备信息)
属性:设备标识,电压
方法:计算电压(电压)
2)开关类(Switch):用于保存和处理开关的信息
开关类:(用于封装开关信息)
属性:状态
方法:计算电压(电压)
3)调节器类(Controller)
调节器类:(用于封装调节器类信息)
属性:档位,档位参数
方法:输出档位(档位),输出档位参数(档位参数)
4)分档调节器类(ContinueController)
加速调节器类:(用于封装加速调节器信息)
属性:档位
方法:加速(档位+),减速(档位-),计算电压(电压),输出
5)连续调节器(SpeedController)
连续调节器类:(用于封装连续调节器信息)
属性:档位参数
方法:计算档位参数(档位参数),计算电压(电压),输出
6)风扇类(Fan)
风扇类:(用于封装风扇信息)
属性:调节器
方法:计算电压(电压),计算风扇速度(电压),输出
7)灯类(Light)
灯类:(用于封装灯的信息)
属性:调节器,亮度
方法:计算电压(电压),计算亮度(电压)
8)白炽灯(DayLight)
白炽灯类:(用于封装白炽灯的信息)
属性:调节器,亮度
方法:计算电压(电压),计算亮度(电压),输出
9)日光灯(LightBulb)
日光灯类:(用于封装日光灯的信息)
属性:调节器,亮度
方法:计算电压(电压),计算亮度(电压),输出
本次的作业相较于之前的难度有所降低,并且能够理解题目所要求的内容。
3.第三次作业:
1)1)设备类(Device):保存和处理设备的信息
设备类:(用于封装设备信息)
属性:设备标识,电压
方法:计算电压(电压)
2)开关类(Switch):用于保存和处理开关的信息
开关类:(用于封装开关信息)
属性:状态
方法:计算电压(电压)
3)调节器类(Controller)
调节器类:(用于封装调节器类信息)
属性:档位,档位参数
方法:输出档位(档位),输出档位参数(档位参数)
4)分档调节器类(ContinueController)
加速调节器类:(用于封装加速调节器信息)
属性:档位
方法:加速(档位+),减速(档位-),计算电压(电压),输出
5)连续调节器(SpeedController)
连续调节器类:(用于封装连续调节器信息)
属性:档位参数
方法:计算档位参数(档位参数),计算电压(电压),输出
6)风扇类(Fan)
风扇类:(用于封装风扇信息)
属性:调节器
方法:计算电压(电压),计算风扇速度(电压),输出
7)灯类(Light)
灯类:(用于封装灯的信息)
属性:调节器,亮度
方法:计算电压(电压),计算亮度(电压)
8)白炽灯(DayLight)
白炽灯类:(用于封装白炽灯的信息)
属性:调节器,亮度
方法:计算电压(电压),计算亮度(电压),输出
9)日光灯(LightBulb)
日光灯类:(用于封装日光灯的信息)
属性:调节器,亮度
方法:计算电压(电压),计算亮度(电压),输出
10)电路方法(Load)
电路类:(用于封装电路的信息)
属性:电路编号,连接信息
方法:setter,getter
11)串联电路类(LoneLoad)
串联电路类:(用于封装串联电路的信息)
属性:电路编号,连接信息
方法:setter,getter
12)并联电路类(ConnetLoad)
并联电路类:(用于封装并联电路类)
属性:电路编号,串联电路信息
方法:
本次作业在上一次的作业上面迭代了线路中包含一个串联电路,以及多了一个落地扇和电阻的相关内容。
三.踩坑心得
1.因为没有先写输入输出,而是先写类,导致要写方法时要在类里面写输入输出
2.正则表达式没有正确使用,导致输入时有问题
3.输出时应该在类设计时添加方法,这样会简化且条理清晰
四.改进建议
1)要先做输入输出,然后再补全类
2)有些特定方法一定要用对,要不然会出很大的问题
3)代码类设计要合理,这样可以省去一些重复和不必要的步骤
五.总结
这三次的作业考察的内容和之前的内容差不多,最主要的还是类的设计,当类设计做好之后,后续会变得简单起来,只需要根据类来一步步补充就可以了。
这三次的作业完成度还是不高,害,感觉自己不是很适合学这个东西,对这个兴趣也不是很高,但是还是要先把最基础的掌握了,后面的在一步步来吧。