第一次作业总结
1.基于度量来分析自己的程序结构
类图
解释分析:
第一次作业,对于java还不是很了解,所以算是写了一个C语言的翻译,只有一个类,里面构造了多种方法来进行计算。
代码分析
解释分析:
所写的cal方法是用于将字符串中的数字转换成数字…刚开始不知道有parseInt可以将字符串转成数字…还是后来课上测试…才看到代码里有这个方法。
2.分析自己的bug
第一个bug:
初次尝试使用正则表达式匹配,只会用matches,在输入太长的时候会爆掉…因为懒得改(其实是没时间),然后草草的用try catch一写就这样交上去了,毕竟一个ERROR还是比CRASH要可以接受一点hhhh,然后在输入特别长的时候果然炸掉了。其实是一开始不清楚在匹配的时候会炸掉…后来和别人交流的时候才发现,再回首发现已经来不及了,还是对于正则匹配有点懵懂,下回学习一个新知识的时候一定要多看一些资料,了解透彻,或者早早向大佬们请教。
第二个bug:
阅读指导书的时候没有看仔细,我就默认第一个多项式前没有符号,其实指导书上只是说,如果第一个多项式前没有符号,就默认是“+”。所以在第一个多项式前符号为“-”的时候就会出错。还是自己不够细心,没有认真阅读指导书…
3.分析自己发现别人bug所采用的策略
我查找别人的bug的策略第一步是依靠我自己在写这道题时,写给自己的测试样例,用别人的程序跑一遍,我的测试样例都是我觉得哪些点我可能会出错、或者是哪些不容易被注意的点。第二部是依靠测试树,在测试树的分支上特意写一些代码用作测试代码,给被测程序跑。第三部是阅读被测者的代码,看看还有哪些我觉得有问题的地方,进行测试。
4.心得体会
OO第一次作业是我第一次用Java语言进行编程…可能对于后几次作业来说,第一次作业更像是C语言的翻译,是因为我现学的java,还缺少对于这个语言的充分认识,没能用面向对象的方法解决问题,写的程序还是面向过程的…不过慢慢对于Java这门神奇且实用的语言已经渐渐了解了,对于不懂得地方当然还有很多,我也会积极的去学习。阅读指导书的时候还不够细心,以后一定会多读几遍指导书,确认好每一个细节,再进行编程。这也是第一次完成面向对象的作业,对于这么课,可谓既有恐惧也有敬畏…希望自己能够通过自己不懈的努力,取得一个好的成绩。
第二次作业总结
1.基于度量来分析自己的程序结构
类图
解释分析:
Control类:调度器,用于接受请求队列中的请求,调度电梯。
Sequence类:请求队列,用于存放请求。
Elevator类:电梯,用于运行电梯。
Request类:请求,用于记录单挑请求的内容。
Floor类:没用上…
Main类:用于调度各个类,实现工程。
代码分析
解释分析:
所写的cal方法是用于将字符串中的数字转换成数字…刚开始不知道有parseInt可以将字符串转成数字…还是后来课上测试…才看到代码里有这个方法。Judge方法是判断是否符合种种规范,是否需要
报ERROR。
2.分析自己的bug
第一个bug:
我是分把ER,和FR两种指令,分开处理,但是再ER处理的时候,忘记了对楼层小于1时的判断,就是我再FR处理的增加对小于1进行判断的时候,忘记了对ER部分的修改…
3.分析自己发现别人bug所采用的策略
我查找别人的bug的策略第一步是依靠我自己在写这道题时,写给自己的测试样例,用别人的程序跑一遍,我的测试样例都是我觉得哪些点我可能会出错、或者是哪些不容易被注意的点。第二部是依靠测试树,在测试树的分支上特意写一些代码用作测试代码,给被测程序跑。第三部是阅读被测者的代码,看看还有哪些我觉得有问题的地方,进行测试。
4.心得体会
相比与第一次作业,我对于java这门语言,有了更深的理解。写起来也稍微得心应手一些,我按照指导书的要求,写了多个类,按照自己的理解,给各个类安排了他们相应的“工作”。总的来说第二次作业还相对顺利,不过还有很多不足之处,希望今后通过大量的训练和学习增强自己的码代码能力。
第三次作业总结
1.基于度量来分析自己的程序结构
类图
解释分析:
Control类:调度器,用于接受请求队列中的请求,调度电梯。
Sequence类:请求队列,用于存放请求。
Elevator类:电梯,用于运行电梯。
Request类:请求,用于记录单挑请求的内容。
Floor类:没用上…
Main类:用于调度各个类,实现工程。
代码分析
解释分析:
DO方法是调度器中执行电梯调度的方法,在第三次作业中占有重要地位,In方法是请求类中接收请求信息的方法,用于接收请求类型、方向、楼层、时间。
2.分析自己的bug
第一个bug:
在捎带比当前楼层高的ER的时候,ER会捎带在请求序列中比自己先输入的请求,在同一动作执行两条命令的时候,输出顺序会出现问题…所以我在这种情况的时候先增加了一个判断,根据时间顺序输出。
第二个bug:
啊啊啊啊啊,这个bug,是因为我在还没有认真做第三次作业的时候,看到了指导书上的要求所以草草的就加上了一个equals判断第一条指令是否是“[FR,1,UP.0]”…然后导致产生了这条错误,然后在写代码的时候也忘了这回事,也是经互测的人点出这条bug,我才发现…理应在对第一条指令满足正则表达式的情况下,进行去除前0,去除“+”再进行判断。
第三个bug:
我本次作业没有改成UTF-8格式…我都忘了自己是什么时候给改回来的…印象里一直是UTF-8,也没有想到UTF-8还有人测试,,,不过吃一堑长一智,希望自己吃了这个亏有所改观。
3.分析自己发现别人bug所采用的策略
我查找别人的bug的策略第一步是依靠我自己在写这道题时,写给自己的测试样例,用别人的程序跑一遍,我的测试样例都是我觉得哪些点我可能会出错、或者是哪些不容易被注意的点。第二部是依靠测试树,在测试树的分支上特意写一些代码用作测试代码,给被测程序跑。第三部是阅读被测者的代码,看看还有哪些我觉得有问题的地方,进行测试。
4.心得体会
相比于前两次作业,第三次作业的难度增加了不止一点,关于捎带,也向其他同学了解各自的想法并且考虑了很久,最后觉得电梯运行的时候一层一层楼增加,进而判断捎带是很好的一个方法。但是这种方法也存在了很多的问题…在我第一遍把代码码完的时候,进行测试,真的是漏洞百出…通过各种方法弥补…才将漏洞补上。建议下次可以先考虑清楚了,再进行码代码,个人觉得这次作业写的特别乱…因为补漏洞的时候,增加了好多代码,而且有些地方是更改了许多次,导致代码十分混乱。希望下次考虑好一个方法的时候,能够考虑的更细致一些…不然会很烦人。