第一次做业的指导书发下来以后我按着上面的步骤一步一步的作了以后发现项目拉下来了,怎么开始码代码呢...而后在舍友的帮助下才知道怎么建包建类,而后对Java的语法又不是很了解,因而就先把C的代码写了而后照着C程序的代码进行面向过程编程...正则表达式
第一次做业中未熟练了解到正则表达式的用法,因此在分析多项式时使用了状态机用了不少的if-else也正是这样因此在互测中被找到了一个多项式判断的bug,在公测中也因为没能彻底理解指导书也挂了一个。互测中对方的bug貌似我比还多他的error用了小写,这致使他的公测挂了一堆,我得先把公测里一个一个错误样例看完才能去给他找其余不重样的bug,不过仍是找到了数组越界、以及正则表达式错误。编程
从度量分析中能够看出第一次做业写的代码圈复杂度很高,由于这是按照C语言写的面向过程Java,主类有300+行各类循环圈套...但通过第一次做业也粗略的了解了Java是怎么写的,可是对类之间的调用还不是很明白。数组
第二次做业要求使用5个类,我在写的时候先是构思了下该怎么判断同质,而后决定把每一个类型相应楼层的指令最后的响应时间存入一个数组中并放在指令类型所对应的电梯和楼层类,并在控制器中完成电梯执行指令先后状态的转化和时间的计算,并把有效指令运行结果存入动态数组中。虽然在第二次做业中是能这样写的,可是这种操做给了第三次做业代码改写带来了巨大的困难。并且在写完全部类以后在整合这5个类时遇到了类之间没法相互调用的问题(小菜鸡只会一直new一个类,而后类中数组的数组又得保存,这调用之间产生矛盾),后来在了解类之间调用规则以后终于把程序跑成功了。测试
仍是一如既往的圈复杂度超标,虽然此次做业中用到了正则表达式进行格式判断,可是因为写程序时逻辑还不够清晰,因此感受程序有点绕弯。这搞得本应该很傻瓜的电梯一些代码显得不少余。3d
并且在判断不符合正则时输出的错误信息忘了加上#号,这致使我公测中有关格式错误的点全都挂了。互测时到是没有被找到bug毕竟此次的电梯比较傻瓜,判断完同质就能够输出结果了,而后也没有找到对方的bug。在此次做业中我收获了类与类之间应该如何调用,以及多种调用方法。blog
此次的做业在第二次做业基础上加入了捎带功能,本觉得想平常生活中常常搭的电梯同样,觉得捎带的原理很简单。不就是在电梯往目标楼层行驶时有人按电梯,电梯就会停下来嘛。而后看了下指导书给的判断条件,感受跟本身想的差很少,然而在代码实现时却感受到力不从心:捎带的判断,捎带的同质判断,以及停靠楼层是否该同时完成多个同楼层指令,这些都得考虑到,在初次写完并能运行后试着运行了几个简单的样例都运行不对...几乎两个测试样例de出一个bug。通过多个样例的洗礼后,感受才de出了像样点的程序。然而最后仍是发现了一个de不了的bug——同层完成多个指令时按指令的输入顺序输出,因为我每次出队时都已经把该指令从请求指令中删掉了因此并不能再判断谁先谁后,当时想到了设个flag而后改完后发现输出全乱了,又想不到什么其余的灵感,因而就放弃了。在进行互测时,我获得的代码逻辑十分的清晰:何时该去同质,何时该把请求从队列中去掉,他都安排得好好的,而个人代码是在读完请求进入循环后再判断是否同质,这致使原被捎带请求升级为主请求后它是同质的就结束了循环致使队头请求变成主请求,而本来应该是另外一个可被捎带请求升级成主请求这样它就能捎带其余的请求,主请求改变后没法对本应该捎带的请求进行捎带,因此输出结果错误,而后还有就是由于这样一个同质判断机制而致使同层多个捎带响应判断错误。我很感谢测试者帮我找到的这些bug。(我本来还觉得本身程序就一个bug了...继承
圈复杂度超标*3,因为此次用了多个循环重复遍历请求队列来查找可捎带请求因此致使块嵌套深度太高,不过这三次做业以来个人代码貌似逐渐具备凝聚性(大概吧。此次做业中对继承的使用,以及接口都有所了解。接口
这三次做业最后回顾起来感受都不算是很难的那种,但为何写的时候却无从下手呢?究其缘由仍是自身对题目要求上不够清楚,代码逻辑不够清晰,不知道该干什么,没有清晰的一个程序流程图。这就致使在写代码的时候忽然不知道下一步应该怎么办,或者是大致上知道该怎么办可是细节上却没有考虑彻底。对于de本身的bug通常都是先随便跑几个写代码时脑海中飘过的有必定针对性的样例。而后再测大一点的数据。而后对出现的问题进行分析。de别人的代码也是先用本身想到的那些样例,而后再对其代码进行研读,分析其程序代码流程。并借此了解其代码中各个数组之类的变量的边界,并对这些边界进行边界测试。当读懂对方代码后对方会出现的bug天然也就会被发现。队列
一、不能赶ddl。基础
二、不能赶ddl。
三、不能赶ddl。
四、只要认真对待就不会没有收获。