欢迎来到苏打粉可乐的博客|

苏打粉可乐

园龄:10个月粉丝:9关注:7

第三次blog作业

前言

本次blog是对第7、8两次PTA大作业的分析总结,对于电路系统的分析总结。

1.关于题量

相比于前两次,这两次PTA,都是只有一道题目,就是对于电路系统的迭代。按照老师说的,第7次PTA老师写了400多行,对于学学生来说,600-800行代码足够了;但是在第八次,无论从难度还是从考虑的情况,题量虽然只有一题,但是比前面化的时间要多很多

2.关于知识点

本次大作业两次PTA主要考察的还是继承和多态,但是我认为还有老师上课讲的一些设计模式,现在回头来看,其实一些设计模式的加入可以让程序的可拓展性更高,同时也更灵活。最后,在第7次PTA上,电路知识没有很体现出来,但是在最后一次,不仅仅是需要编程能力,还需要一些高中的电路知识,比如引脚,分压,分流等。从中真的明白了,软件工程这一行对于需求的了解

3.关于难度

第七次PTA加入的新的电器元件,其实和第六次的代码大差不差,加上两个子类,将输入增加两种情况,再将输出加上两种输出情况就可以了,对于加入的多串联,在第6次PTA上如果已经考虑到了,难度不会很大,可以说是三次电路程序种最简单的一次。
第八次PTA修改了输出情况,它应该是八次PTA上最难的一次。首先从题本身出发,引脚的输出,电流的考虑,并联串联相互结合,要考虑的情况太多了,42个测试点代码的质量考察很高;其次,从同学们的提交情况来说,这是第一次没有同学100分的情况,大部分同学都是50分以下;最后,从老师的角度来说,老师这题都看了快1个小时。综上来说,这一次PTA的难度很大,需求很多,同时考察的物理知识也多,比如如何算电势差,如何分流,如何分压等等。

设计与心得

第七次大作业第一题


设计:本次大作业18个类,相比较于第六次就增加了一个类,和前面设计模式,设计的思路都是一样的。增加的一个类就是类图中的“Mutex”,代表着互斥开关,开始面对互斥开关,不知道如何下手,它不同于其他的,它有三个引脚。我的处理方式是,将输入时的两个互斥开关一起存储,1-2引脚为一个,1-3引脚为另一个,不同引脚但是同名的开关,输出是按照一定的顺序输出即可,后面结果证明这样处理是可以的。

根据Sorcemontor的代码检测,
1.首先是对于行数,其实讲道理,代码行数881行我是没想到的,其实本次PTA并不需要这么多行,如果自己代码整理一下,把一些不需要的地方删除,应该是可以降到600多行,同时很多地方有相同的语句,完全可以用递归,用循环直接处理。

2.其次是复杂度,自己其实忘记了上一次blog写的,自己要将代码重新思考,按照单一职责原则将一些方法一些类单独拿出来,为了以后的拓展,因为这个缺陷,自己的最大复杂度非常非常大。

3.雷达图只有Avg Stmts/Method在绿色区域内,其他的要么太大了,要么太少了,在修改时自己有点一味的冲着100分去了,导致很多的地方可以完善的地方没有完善,可以精简的地方没有精简

4.注释方面:其实注释量应该比之前多了很多,但是由于代码的增加,导致百分比下降,这个其实有所改善,好的注释才可以更好的阅读

5.代码规范这一块,之前几次都没拿出来说,本次自己修改时发现有一些变量不知道什么意思,导致自己修改起来很困难,自己就将一些变量名修改为见名知义的英语单词。

6.平均深度确实蛮深的,主要归咎于自己在输出时写了很多的循环。对于没有规律的字典序,在我的思路下,只能对于数字排序,字母的排序可能需要复写Comparable接口,如果自己修改成这个,代码平均深度可以降低

第八次大作业第一题



设计:从类图就可以看出增加了很多类。首先自己是将原来一个控制类分解,原本控制类中既要输入,又要输出,还要处理电压,本次还要分流,处理引脚,所以我决定单独写几个类,从上面类图可以知道,通过分解的几个类,加上注释,代码的可读性提高了,电路系统是从输入-调整设备-分电压-处理引脚-计算电流-输出,六个步骤逐步进行。
分析:
1.首先是对于代码的整理,主函数确实做到了之前老师的建议,主函数不用来干任何事情,只有调用其他类的方法。
2.对于继承和多态,可能是因为题目很浅显易懂,父类和子类很快就找到了,但是之前因为不知道向上转型和向下转型,导致自己的前期7个类的参数设置不够好,后期自己知道这个知识点,将后面的子类都进行了修改,代码质量提高
3.自己还是改不了,为了分数的问题,即使这次的代码质量依旧很差,但是之前都是100满分,所以没去管这个东西,现在只得到80分,错失了学习的机会

根据Sorcemontor的代码检测:
1.本次代码的雷达图并不好看,基本每一个都超过绿色区域很多很多,第一自己确实没有写完,只拿到80分,想要后期再来减少;其次是自己的代码用了非常非常多递归,对于并联和串联互相交替,我认为递归是一个好办法,可能自己确实没有使用合理。
2.对于平均深度,正如前面所言,出现了二极管,互斥开关等控制设备要考虑的情况太多了,自己又不想从底层里面修改,所以使用了大量的if语句
3.对于复杂度,确实有点惨不忍睹。八次PTA里面这次是断层遥遥领先,代码程序值得好好思考
4.本次还有一提的是代码行数,突破新高,1589行。原来都是在1000行以内即可解决问题。第一本次PTA确实难度较大,其次是面对增加的这么多需求,原本代码确实没有考虑这么多,按照道理来说必须重构的,但是自己还是没有重构,这几乎就是断送了满分的之路。
反思:本次PTA决定加一个反思,主要是自己确实没有拿到100分,值得思考的东西太多了。首先是代码注释,本次虽然有所增加,但是仍然会存在自己找不到自己的需要的方法。其次是代码构思,自己的有些地方写的真的是想到什么写什么,写一步看一步,后面发现自己根本用不到这些属性方法,这是不应该的,类中的属性在开始就应该设计好,而不是为了临时的想法突然增加。还有就是自己的拓展度不够,之前的试卷管理系统,自认为写的还是蛮好的,每次增加的需求,自己可以很快的通过增加子类解决,现在的电路系统,每次加入新的需求,都是需要把原有的一些东西推倒重来。然后就是自己的不能把上课的知识很好的使用,比如一些模式的代入。最后就是对于软件工程的思考,电路是自己薄弱的一块地方,但是客户有需求我依旧要迎难而上。

踩坑心得


对于题目要求没看清,第六次PTA上窗帘不工作时应该是全开,自己写的是全关,但是在第七次PTA上窗帘不工作时又是全关,自己写的是全开,导致自己失分;

自己的代码使用递归不对,导致串联电路无穷搜索,代码陷入死循环,导致答案错误;

在互斥开关的处理上,四种情况内,自认为只需要考虑两种情况,后期还是其他同学告知,自己修改。

互斥开关的情况,自己的串联电路上解决了,但是在复制粘贴情况下,自己少复制一段,导致自己找了好久才得到应该得的分数

又是经典的没看到题目,因为之前题目都说没有考虑短路情况,这次考虑了,自己没看到,导致分数低下

对于引脚的情况,其实当开关断开时,开关后的用电器其实也有可能有电压,只是没有电压差,我写的时候以为全是0;

当二极管正向通过时,可以看成一个导线,我写的时候并联里面的串联没有考虑这种情况,只考虑了反向的情况;

改进建议

1.多写注释,让代码的可读性增加,第一自己修改起来更加便捷,第二让读者更加好阅读。
2.加入一些上课讲的模式,让代码更加专业,好好体会模式的魅力,学以致用。
3.发现代码有问题先构思好,是要重构还是能够在原来的基础上添加,把不需要的代码删除。

总结

本次总结写对于java学习的简短总结吧
1.正如老师所言,语法都是次要的,为什么叫面向对象,就是要学习这种思想,从8次PTA,5次实验,上课学到了很多不同于语法的知识,比如迪米特法则,MVC模式等等。希望大家都认识到本门科目的魅力和目的
2.第二是自己学到了什么,虽然语法是次要的,但是确实语法还是要学的,如何输入输出,体会到java有很多方法很多类比较c语言来说更加便捷。其次就是学习到的思想,上个学期只是有这个想法,单一职责原则,这个学期确实得到实践,可能有的时候用的确实不够合理,但是这个思想也是烙下印子了;迪米特法则,自己用的也是很多的。然后就是模式,策略模式,简单工厂模式,还有自己用的最多的MVC法则,多多少少在构思的时候还是会考虑进去,能不能运用,学以致用。
3.最后是对于java课程的建议,老生常谈希望PTA的题目和实验描述更加清楚,其次是在最后一次PTA中,在截止的前一天晚上,临时增加2个测试点,希望以后可以在开始就加上。
❀完结撒花❀,

本文作者:苏打粉可乐

本文链接:https://www.cnblogs.com/soda-coke/p/18270386

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   苏打粉可乐  阅读(30)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 把回忆拼好给段老师 王贰浪
把回忆拼好给段老师 - 王贰浪
00:00 / 00:00
An audio error has occurred.

作词 : 童子-T/Shingo.S

作曲 : 童子-T

编曲 : 闫津

制作人 : 王佳依

采样曲:願い~あの頃のキミへ~

中文填词:一只然

OP(原属词曲版权公司):テレビ東京ミュージック 东京电视台音乐

本作品经过原词曲作者以及版权公司授权

我们之间的回忆

我们之间的回忆

全部都小心地收集

我总是偷偷地哭泣

像倦鸟失了归期

但愿我相信的爱情

但愿我相信的爱情

结局紧握在我手心

时光匆匆却没有遗失过去

希望我们 有光明的未来

希望我们 有光明的未来

还有能够装下星空的期待

可现实为何让我感到如此懈怠

总怀念相遇时我们无视落叶和人海

是你让我勇敢不再像颗尘埃

是你让我勇敢不再像颗尘埃

是你常帮我照料装着梦的盆栽

每一天我们都是如此愉快

一直到天色渐晚看着落日无奈离开

我知道你爱集邮爱笑甚至爱发呆

我知道你爱集邮爱笑甚至爱发呆

我知道你怕草虫还有夜晚的妖怪

我喜欢你有一点心不在焉的状态

看起来像个回到七岁时候的小孩

该如何将我这份感情向你告白

该如何将我这份感情向你告白

喜欢却又不敢爱

直到整个宇宙

在为我焦虑失神慌张之中醒来

就像是黑暗过后黎明盛开

我们之间的回忆

我们之间的回忆

全部都小心地收集

我总是偷偷地哭泣

像倦鸟失了归期

但愿我相信的爱情

结局紧握在我手心

时光匆匆却没有遗失过去

那天你在雨后街角答应接受我的爱

那天你在雨后街角答应接受我的爱

那一刻我的世界有了色彩

这一生无法忘记关于澄蓝色的你

像一份礼物悄然呈现在我的境遇

我们从清晨起玩一整天游戏

到夜晚一起看我最爱的剧

能够拥有这些已足够幸运

我已经不再期待其他什么东西

我们也经常争执互相不接电话

我们也经常争执互相不接电话

在同一房间终于呼叫冷漠抵达

也曾想过以后生活没有人牵挂

把爱扔掉只剩一块残酷伤疤

而那些你送我的梦,教我折的花

而那些你送我的梦,教我折的花

逃亡的盛夏

在夜空隐没之际为我点燃烟花

寂寞时让我把快乐拼起来吧

我们之间的回忆

我们之间的回忆

全部都小心地收集

我总是偷偷地哭泣

像倦鸟失了归期

但愿我相信的爱情

结局紧握在我手心

时光匆匆却没有遗失过去

我们可以就像是孩子一样成长

我们可以就像是孩子一样成长

永远无所畏惧义无反顾向着未知的前方

原来我们每天努力长成看似大人的模样

为了可以一起跨越山和海洋

那时的我每天都祈祷 实现这个梦想

现在的你还好吗

现在的你还好吗

是否还会像从前一样的爱笑

现在的你还好吗

当你径直在我面前坦言放下

现在的你还好吗

是否像从前一样有无限的温柔啊

现在的你还好吗

愿你能保持月亮般的心,要爱自己啊

我们之间的回忆

我们之间的回忆

全部都小心地收集

我总是偷偷地哭泣

像倦鸟失了归期

但愿我相信的爱情

但愿我相信的爱情

结局紧握在我手心

时光匆匆却没有遗失过去

独自收集两个人之间的回忆

独自收集两个人之间的回忆

即使每当到这时候我都会哭泣

为何一切,变得如此,无法回到过去

但我仍愿意感谢你给过我爱情

但我仍愿意感谢你给过我爱情

每一场风景都是我们爱的证明

就算如今,天各一方,祝你余生动听啊

独自收集两个人之间的回忆

独自收集两个人之间的回忆

即使每当到这时候我都会哭泣

为何一切,变得如此,无法回到过去

但我仍愿意感谢你给过我爱情

但我仍愿意感谢你给过我爱情

每一场风景都是我们爱的证明

就算如今,天各一方,把回忆拼好给你

企划:谢宇航 / 牛雪吟 / 裘小静

企划:谢宇航 / 牛雪吟 / 裘小静

制作人:王佳依

监制:姚政

录音:陈程

缩混:陈程

封面设计:刘馨宇

网易云音乐特别企划“听,海风”

本歌曲来自〖网易音乐人〗

本歌曲来自〖网易音乐人〗

10亿现金激励,千亿流量扶持!

合作:st399@vip.163.com