很不幸由于一些原因,前两次的作业我都没有能够提交,虽然都尽力完成了,但没有经过公测和互测的洗礼,也不知道程序写的究竟怎么样,这里我只能简单说一下程序设计的思想了
第一次作业:多项式加减
这次作业中一共写了2个类,第一个类是poly类,用来记录每一个输入的多项式。其中有两个属性coe和index,前者记录系数,后者记录指数。
第二个类是polys,用于把输入拆分为单个的多项式,构造多项式的队列。
第二次作业:傻瓜电梯
按照要求设计了5个类:
elevator:电梯类,用于构造一个电梯,并且描述和记录电梯的运行状态。
request类:用于构造一个请求。
requests类:用于构造请求队列。
scheduler类:调度器类,包含schedule方法用于调度请求,和command方法用于执行请求。
floor类:用于记录楼层按钮以及每个楼层的电梯内按钮的状态。
第三次作业:ALS电梯
第三次作业基本继承了第二次作业的设计,新增了一个ALS_scheduler类,继承了第二次作业中的scheduler类,其中重写了schedule方法用于捎带策略的调度。
这一次作业正常提交了,但很不幸由于重写elevator类的toString方法时忘记给STILL状态的输出时间+1s,导致所有测试中的STILL输出时间都少了1,所有的公测都没有通过,所以依然是无效作业。
我挨个查看了公测用例的输出,发现除了上述输出错误以外,有几个测试用例输出还存在问题,主要问题还是在于调度算法有漏洞,schedule方法和command方法中对于电梯的状态有些情况难以同步。
最后是感想。首先,我作为一个13级的学生,还能和16级的学弟学妹们一起快乐地学习面向对象,我感到非常荣幸。oo这门课会对学生产生非常深远的影响,尽管我的编程能力小学生水平,oo还是潜移默化中使我的编程思想变成了面向对象式的编程。
以前对这门课充满了恐惧,其实最近埋头研究了一段时间,对oo还产生了浓厚的兴趣,这最后的机会我一定会好好把握。另外,自己测试时一定要仔细,修改了什么地方千万小心别漏掉什么东西,不然下场就是努力一星期变成无效作业。