2018寒假作业_4(自我总结)

时间:2021-10-02 21:54:30

c++已学内容总结
对于c++学习内容,笔者所剩不多(以笔者所选的慕课课程而言——浙江大学翁恺教师:面对对象程序设计C++),目前课程谈及重载。笔者对于之后的STL库颇有兴趣,也会去学习、查看STL中功能的源码(不知道称之为源码是否合适),从而更加清楚地认识到其功能的实现方式与技巧。
至于总结,笔者记得最清楚的仍是慕课中不断提及的三个关键词——“封装、继承、多态”,不得不说c++的学习一直围绕着这几个关键词,最直接的说明笔者想来便是类中的私有和公共、父类和朋友,以及各种多态性(重载,类中函数重名而参数不同的分别等等)。笔者也很庆幸选择了这门慕课,让笔者知道了compiler可以轻松安(欺)抚(骗)、但是ld却不容戏耍;以及编写c++程序,需要留有一些接口来方便日后的继续更新。

存疑的问题
笔者在接触c++之前,听说c++可以堪称是c的超类,接触之后也不得不佩服c++这门语言的神奇。之前笔者一直以为c++相对于c来说是完全不同的,只是语法比较相似,却没有想到c++完全由c来实现,甚是惊讶。而对于c如何实现c++一些功能,慕课中已有些许的提及。
目前来说,笔者存在的疑问,如何比较针对地来学习c++,因为慕课讲的东西可以说不可能很深入或者说是非常全面,肯定还是需要自己的学习。因为从笔者的接触来看,c++有太多的东西,太多的函数名,哪些才是现阶段我们必须懂得的,而哪些是可以先接触,又有哪些是我们以后会接触的,还有那些是我们基本用不到的(虽然笔者觉得是不存在的)?就例如笔者这次作业(PTA练习)中,对于计算均值这题,一开始想法很普通,就是不断读入和判断空格,后来学习了博客发现竟然可以使用getline(cin,variable)、stringstream variable来解决这种问题,但是这些笔者之前并不了解,尤其是stringstream,让笔者觉得好像不知道如何较为针对地去学习c++如此丰富的功能。

花费的总时间、锻炼的代码行数
这次寒假作业确实给笔者留下了深刻的印象,肯定谈得上是记忆比较深刻的寒假了。笔者这次花费在学习c++的时间除了慕课(41课时、每天学习三课时),还有就是看博客的时间,难以具体量化,一般是下午或者晚上这段时间来学习c++,而早上的时间用于编程的练习(两次电梯的作业很磨人)。当然不可能全天都是学习这门课程的,笔者也有自己其他的安排。
谈及锻炼的代码行数,笔者说来有些惭愧,笔者的代码行数不多,而且很多代码并不是一天就写完了,写的周期比较长,一般是先想个结构先写,然后细节再慢慢填补,所以说其实每天的代码量并不是很大,但是相比于之前的代码行数来说,肯定是多了不少,调试的能力也自然是得到了提升。

两次电梯作业的总结和收获
这两次电梯作业除了令笔者头大,最主要的是让笔者明白了算法程序和项目程序的不同。
从笔者的理解来看,算法程序很多时候是可以很快写出来的(相对于项目而言,有些项目的周期(不仅限于实现,也包括日后的维护)是非常长的),而且算法程序很多时候不懂的话,可以在网上学习针对的算法来不断扩充自己,解决问题。除此之外,算法题的AC结果就可以证明你已经解决了这道题目,再多的无非是了解其他解决方式或是进行优化等。
而对于一个项目(就那这次的电梯来说),笔者思考了很久,也编写了很久,就对这一部电梯。从第一次比较愣的版本,到第二次笔者较为满意的版本。笔者自认为提高了不少,也考虑周全了不少,但是笔者认为仍有很多的不足,譬如:
1、最优等待时间的实现(在笔者看来,就如今已有的电梯调度来说不可能写很多版本去对比,应该是有某个固定的版本,笔者所坐电梯大多优先处理上)。
2、如何变成更为正常的电梯版本,笔者考虑的是电梯的容量,因为现实生活中电梯不可能是无限载重的,所以如何调度电梯(笔者学习了电梯调度算法总结,感觉收获还是不少的),而笔者之前看到一篇在笔者看来更优的博客(笔者争取重新找到),不但考虑了等待时间、电梯载重,还考虑了笔者认为很关键的一步——电梯经过楼层时的内部人数。博主模拟了大量人数,并且博主的程序实现了让电梯经过每层时,人数尽量相等,笔者记得博主控制在10~12人,而假设载重是15人(如果没有记错的话),可以说笔者很吃惊,也很钦佩,但是水平有些,博主很多地方的描述笔者只是明白意思,但是不知道为什么可以如此构想。
经历了两次电梯的更新,笔者收获了不少,当然最主要的便是上文所说的认识到了算法程序和项目程序的不同。还有便是经历了不断思考、更新的痛苦历程(当然当时很头疼,现在看来是一种收获),让笔者明白了如此常见的电梯其实调度程序并不是想象中那么简简单单的上上下下。懂得了对待一个程序要更加严谨,或者可以说是严苛,这样某种程度上可以更加方便。


对于GitHub
GitHub远比笔者想象得有趣,原先以为只是代码的托管仓库,程序员每天更更新,上上传,讨论讨论bug,谈谈新功能……后来发现竟然可以参与某些正在更新的项目,虽然意见不一定会被采纳,但是笔者觉得这点来说是挺有趣的,等到笔者有一定的能力以后,也希望能够参与一下,去学习和体味。

对于大一寒假作业
既然是传统,在笔者看来还是不错的,应该继续学长学姐和我们都做了,以后怎么能没有??其实认真跟着进度做作业挺有意思的,一次次地做下来,虽然不是说做得多好,但是也有点成就感。当然,笔者也希望之后的作业可以就是说有团队的成分,以及一些短时间可以完成的实际的小程序(当然是针对这门课程来说,因为不只有这门课程需要学习,其他课程也很重要,所以觉得短时间比较实在)。
最后,期待真正步入这门课的课堂。


笔者在链表删除元素那题没有使用链表,而是采用了vector.erase()
2018寒假作业_4(自我总结)