23201829OO第二次blog作业

东湖之滨  金牌会员 | 2024-6-9 20:47:35 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 942|帖子 942|积分 2830

OO第二次blog作业

媒介

这三次的作业可以分为两个阶段,前一个阶段是上三次作业“答题判题步伐”的进一步迭代,而后一部分则是另一道题目“家居强电电路模拟步伐”。
从效果来看,电路模拟步伐的完成不尽人意,尤其是第二次迭代的电路模拟,由于这次没有了测试点的提示,导致步伐在提交出现错误后不知从何处动手举行修改。这也是个惨痛的教导,在真正的现实环境下,肯定是不会有测试点提示的。日后要夺取在设计阶段举行优化,提前考虑好大概出现的各种环境,补充这次的失误。
后续将对近三次作业举行一些具体的分析。
三次作业分析

第一次作业

第一次作业是对前次答题判题步伐的进一步迭代。在此次迭代中,题目加入了多选题和填空题的类型,并且输入顺序方面也举行了改动。只要是正确类型的数据便可以恣意顺序输入。除此之外还引入了多张试卷的环境,按照门生学号和试卷号对输出举行排序。

由于引入了两种新的题目类型,采用继续的方法来界说三种差别的题目类。
Stone类作为题库,其中存储一个链表,包含所有输入题目的信息。后续删除的行为也是对此处举行操纵。
Respond类、Paper类和Student类分别用于存储答卷、试卷和门生信息。
GetMassage类用于对输入的信息举行判别、处理以及相应的存储。
Judge类作为代理类,用于对门生的答卷举行判断并输出相应的数据。
SourceMonitor分析效果如下
![image]

由于在是上一次的代码上举行了改进,在修正了一些错误的同时也延续了代码的一些问题,好比采用多重分支语句等,导致代码的深度和复杂度仍旧居高不下。
第二次作业

第二次作业出现了新的题型——“家居强电电路模拟步伐”,这次的题型模拟包括了三种控制装备和三种受控装备。
由于是第一次迭代,模拟环境仅包含了单条串联电路。

界说了两个父类控制类和用电器类,三种控制装备类受控装备类分别继续自这两个父类。
还界说了一个Ponit类啊作为代理类,用于输入信息、对输入信息举行处理和输出信息。
SourceMonitor分析效果如下

从图中可以看出,代码的深度和平均复杂度较低,但最大复杂度过高,这是由于在Point类中当处理输入信息时使用了多重分支语句和多重循环所导致的。
第三次作业

第三次作业是前一次作业的迭代,在这次作业中,加入了并联电路的环境和一种新的用电器落地扇。
这次作业的难度无疑是又上了一个台阶,不仅仅是设计的难度提高了,而且没有给出测试点也是给我们出了一个难题。

由于上一次的代码难以对并联电路的输入举行处理,因此本次迭代对代码举行了重构。
相较于前次代码,本次代码构建了Skewer类和Combine类分别为串联电路类和并联电路类。
此次代码还构建了一个最高级父类Machine类,并联电路类、控制类和用电器类都继续自这个类。Machine类的构建使得我可以或许在界说串联电路类时使用一个链表来存储信息。
SourceMonitor分析效果如下

从图中可以看出,经过本次代码的重构,代码的复杂度有了显著的下降,这重要是由于界说了串联电路类与并联电路类的缘故原由。并且Machine类的使用使得在串联电路中对数据的调用和计算复杂度更低。
下面举行对三次作业的历程举行一些具体的描述与心得分享。
历程

第一次作业


这是在本次代码修改后的第一次提交,本次提交修改了信息的输入和处理,实现了信息的乱序输入,但对于多份答卷的问题还未得到解决。同时本份代码也存在其他问题,会使得出现分零返回的环境。

此次修改更正了信息的调用部分,解决了数组越界所引起的非零返回问题。但是对于多张试卷的问问题仍未得到解决。

在试卷类中加入了用于处理多张试卷的属性后,多张试卷的问题得到了解决,但仍有少数测试点存在问题。但在后续修改了某些会出现问题的环境后也得到了解决。
第二次作业


这是本次代码的首次提交环境,由于但由于分档调节器的部分问题导致有些测试点出现错误,在修正后便解决。

在与同学的交流中,我得知了最后三个测试点的环境是在用电器的两端都有一个开关,但由于我本次代码的设计问题,它只能处理一个控制元件和一个用电器的环境,所以导致没有通过这三个测试点。这个问题直到下一次大作业中才得到解决。
第三次作业


在我看来这次作业相较于前次的难度提高了不少,在首次提交时我只拿到了三分,并且还出现了非零返回的环境。在对代码的检查后发现时在对串联电路信息举行存储后在调用时没有及时更新导致调用的数据错误或是不存在在导致的。

在对信息输入举行了少许的修改后,又多过了几个测试点,并且也解决了非零返回的问题。

对计算装备数据时怎样调用串联电路数据库中的数据部分举行修改,又正确了一部分,但由于没有测试点的提示,导致不知道下一步应该对何处举行优化。
总结

在设计方面还需具有前瞻性,要考虑到对后续功能添加的环境,否则每次对代码举行迭代时都需要进大量的重构,耗费大量的时间不说,还大概会出现很多bug。
此外,最后一次作业没有给出测试点,因此导致自己不知从何处举行下一步的优化。然而在现实案例中,是不大概像这样给出一个个测试点的。因此,自身寻找错误的能力也需要加强。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

东湖之滨

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表