PTA作业一通过截图
以上是本次作业笔者的类图
这次作业布置出来,不免感慨又是电梯。但是当即萌生了要重新写的想法,就去新开了个仓库,就当作和寒假做个了结吧。
一开始写电梯,想说一定能写的比寒假更快,代码更短,跑得更优秀,然而并没有什么代码行数的急剧减少,反而还多了不少。但是思路较寒假来说,笔者感觉更加清晰了,虽然这次电梯也是写了很久,但是因为思路的清晰,基本没有推翻想法然后重新写的过程,所以总的来说还是比较流畅的。
此次作业笔者写了两个类(了解到作业说明中给出的类结构只是参考),分别是`Elevator`和`Passenger`,从开头的类图可以清楚地看到笔者两个类的结构。此次作业遇到的困难不少,前文说得流畅主要指的是思路,而实际操作还是真的坎坎坷坷,好在都解决得不错,笔者通过对分块的输出,来对程序纠错,从而达到改错的效果。直到2018年4月20日晚间,笔者解决了此次笔者代码认为需要纠察的错误,印象最深的就是队列操作时的失误,容笔者细谈。
笔者使用`Elevator`的`DestQueue`来进行队列操作,而笔者还使用`vector<Passneger> Men`,来存储读入的乘客信息,不知道是什么原因,当笔者将`Men[i]`放入到`DestQueue`中后,改变`Men[i]`的一些属性值,再从`DestQueue`中取出对应`id`的乘客,发现此乘客的属性值和放入队列时一样,并没有因为`Men[i]`属性值的改变而改变,当笔者纠正完这个错误之后,代码便跑出了正确结果。笔者先前从未想过改变了`Men[i]`对应`id`的乘客的属性值,而队列中对应的乘客属性值并没有改变,从而导致了程序结果的一直错误。这个错误困扰了笔者非常久,也让笔者纠错了相当长的时间,也是笔者纠正的最后一个错误,是笔者此次代码很严重的错误。先前笔者一直以为在队列中的元素和被放入的一样,改变其一,另一个也跟着改变,好在这次的编码,让笔者颠覆了这个观念,当时发现的时候非常绝望,竟然是因为这种情况导致程序一直出错,后来纠正完之后很欣慰自己发现了这个错误,也纠正了先前的观点,今后对于队列的操作,以及元素的属性值修改,断然会比之前更加小心谨慎。
PS:20号大半夜把样例过了很兴奋,就没有去测别的,到了今天才发现自己出的数据并不能正确输出,目前还在纠结,不知道能不能调试出来……
所有评论(0)