第一次做业正则表达式
第一次进行面向对象的编程,不管是针对数据设计类仍是对方法进行合适的归于不一样类中,都不是很熟悉。所写出来的程序仍是面向过程+有函数的类(虽然如今很大程度上感受起来也是这样)。索性做业难度并不算高,完成的也算马马虎虎。公测都经过了,可是互测的时候被发现了一处笔误,少写了一个0,致使6位的测试样例没法正常读入。而且因为个人检测输入的实现并非经过正则表达式,而是经过简单粗暴的有限状态机,故而第一周并无完整学习正则表达式。虽然有限状态机的设计并无出错,可是没有尽早学习正则表达式也给我后面的做业留下了隐患。编程
第二次做业数组
第二次做业对于电梯的设计要求并不高,除了一个须要排除同质请求的要求外,基本上跟遛狗同样,哪里有需求就去哪里。对于这样的设计要求,我设计了一个nextTime数组来存贮下一次这一条指令容许被点亮的时间开始点。在设计请求队列的时候,我设计的方法是与前项的请求时间比较,可是我忘记了对即时项数减一,故而致使对于时间逆序的判断恒为正。致使公测有两个测试点没有经过。因为我上次做业并无按照正则表达式进行设计,我此次的正则表达式其实是第一次设计。虽然没有出现录入时的爆栈,可是在字符转换为整形变量的时候没有用try-catch进行设计,从而致使转换的时候出现爆栈。真的让我很心痛…这让我明白按照公测树针对性的进行测试输入样例的重要性,debug的时候必定要覆盖到全部细枝末节,不能经过看和想来分析。数据结构
第三次做业函数
此次的做业险些血崩。因为要进行指令的捎带,也就意味着我上一次所设计的nextTime数组要作很大程度上的修改,不只next的时间要随着指令的完成而变化,对于同质的判断也要随之而改变。这让我真的头疼不已。我以前了解到了第二次做业有的同窗使用了模拟时间的办法进行设计。我认为这种想法真的挺好,我当时认为能够经过设计按钮(经过按钮的点亮状况指导电梯的移动、经过其亮暗的状况判断同质),来把复杂的对于指令的判断交给所涉及的模拟来进行。可是,这种初期看似美丽的想法每每会变得很坑。随着设计的进行,我发现,这种模拟实际上就是在设计一种有限状态机,不只须要根据指导书中所说起的状况来进行完整的cover,并且对于主指令以及捎带指令的判断是没法避免的。由于指导书中要求对于不一样的指令类型作不一样的行为(再次务必要强烈吐槽一下,为何一次开门不能解决全部问题…)故而,实际上,不论作哪一种实现,对于主指令和捎带指令的判断和刷新是永远没法避免的。因而,我就经历了天天中午美滋滋的觉得本身作完了,下午看客服群&再读指导书,发现了个人程序有无数个没有正确实现的点,而后debug到一点钟。这样连续了两三天…不过,这真的让我明白了老老实实按照指导书所要求的进行实现是多么重要。学习
对于大一的时候并无参加6系魔幻课程数据结构的高工学生来讲,面向对象编程是咱们第一门大量码代码的科目。相比已经经历过洗礼的6系同窗来讲,咱们的压力确实不小。不过,我想,学习是一个过程,纵使咱们起步慢,咱们也能够追。对于程序的设计和维护也是一步步进行的,但愿我再接下来的无数个做业中能作的更好。测试