寒假作业4
寒假作业4
自我总结
已学内容总结
C++ 的内容学习已经学习了一半以上的,虽然由于春节,慕课的学习比预期的计划慢了些,但这最后一次寒假作业完成后,便会将大部分精力投入到慕课学习当中。
在学习C++ 的过程中,发现C的语言都能在C++ 环境下实现,而且有些同样的功能,C++ 有着它自己不太一样的代码。
一开始以为两者不会差别太多,但通过慕课学习,发现掌握了C++ 特有的代码有时候能更快速的解决一些问题。
查阅资料发现C++ 有很多模版啊,优秀的库,有很多很实用的函数,因此对后续的C++ 学习很感兴趣。(ง •_•)ง
而这次的寒假作业中,编程题我都尽量尝试使用C++ 去编译,虽然都只是些简单的C++ 操作,但也发现C++的好处,比如感觉输入输出较为方便,头文件比较强大。
存疑的问题
首先发现C++ 与C是两种不同的编程思想。
看一些论坛、知乎上的大佬说过,通过一些令人眼花缭乱的技巧,C基本上也能实现一些似是而非的封装、继承甚至多态,但用着肯定不象C++ 那么爽,就是因为C++ 是语言上支持这些编程思想的。
通过这寒假的学习,我还是不太懂这些的差别,希望后续的学习中能够进一步理解。
在学习C++ 的过程中我也一次次的发现C++ 的神奇操作。
如这次PTA作业中,链表删除结点中,简单的用数组模拟链表的思想,很快就解决了,但如果去建立链表却十分麻烦,令人头大,虽然从这题看不出链表的优势,但学习链表的过程中明白在以后的代码生涯中,链表的原理思路是必须要懂的。
又如计算均值的那题,重点其实就是要处理回车,我只是很莽的不断读取判断是否有回车,但做完后与大佬的交流中发现有getline(cin,variable)、stringstream之类的可以解决这个问题,又一次不禁感慨C++ 的神奇。_| ̄|○
这个寒假学了很多新知识,也有了很多新疑问,但也打开了对C++ 学习的大门,对C++ 产生了浓厚兴趣。( ̄▽ ̄)~*
花费总时间及锻炼的代码行数
虽然大一上学期开始时的实验班班会上老师有说过寒假会布置让我们提前自学一些课程,但这个寒假作业确实出乎意料,两次的电梯打得我头皮发麻。
一次次的作业都会接触到新的知识,从markdown到git到文件输入输出流等等,每一次的编程都会遇到种种新问题,可当你学会了新知识,解决了新问题,就会发现是美滋滋的,开心,努力没有白费。这个寒假痛并快乐着,定会印象深刻。
虽然我有记录每次看完慕课的时间,但开始的时间和中间处理一些突发事情的时间不好统计,两次电梯的编程时间也只是大概的统计,通常是下午开始便学习到晚上晚饭前,所以这次花费总时间难以准确统计。
而锻炼的代码行数,两次PTA作业的代码行数还是很好统计的,但两次电梯删删减减好几次,也没有每次删前算一波行数。
总之感觉整个大一上打的代码行数可能也就这样了,这个寒假真的是充实得一批。
两次电梯作业的总结和收获
这两次电梯作业真的是难受的,当时还和别人调侃自己以后不知道还敢不敢坐电梯╮(╯▽╰)╭
第一次电梯一布置后,群里就各种讨论 (这对我而言就是神仙聊天啊)
想来想去就还是各种if暴力去排,而且还没能排出多少情况,后续补充了些特殊情况,就迷迷糊糊的交了作业,这真是我第一次接触这么长的代码,很感谢当时畅畅助教的评论鼓励,我知道自己勇敢的迈出了第一步。
在第二次的电梯中,老师还给出了两种思路,这也给了我极大的帮助,不只是对于这次电梯,让我也明白了以后做题时,没有好的想法时,可以从极端去着手思考,再去一步步优化这极端思想。
第二次电梯虽然较第一次得到了不小的优化,但还是离最优解有些距离,但我也尽自己所能了。
其实打代码的过程不是最久的,有了想法便能很快打完,最久的是debug的过程,一次次解决问题,一次次优化代码,牵一发而动全身,代码过长debug很是痛苦,两次的电梯作业让我体会到这一过程,这是一次很宝贵的经验。
第二次电梯我是用了三种模型去比较得到较优者,有许多不足的地方。
1.首先,方法很蠢,而且就算用这种方法,用的模型也不够多,囊括的情况不多,许多数据肯定无法达到最优解。
2.其次,开学后如果还继续研究电梯的话,这样的方法难以改成正常的电梯。正常的电梯需要考虑的东西更多。
①比如承重量 (身为一个胖子,坐电梯人多的时候都会思考我进去后会不会超载。。。)
②又如在电梯上下高峰期的时候,要怎样尽量保持电梯的人数与等待的人数平衡,怎样可以真的让大家的总等待时间减少。
网上也有许多大神有关于电梯调度问题的博客,看完后感觉自己真的是路漫漫其修远兮。还有些考虑得挺全面的博客,可惜是用java写的,目前看不懂。╮(╯﹏╰)╭
其实两次电梯作业还有些收获就是
明白了搜索引擎真是我们的好朋友,还得到了很多同学、学长学姐和老师的帮助,谢谢大家!
对于未来寒假作业的建议
我们都做了,怎么能让下一届不做呢!传统不能断了啊!
而且这次寒假作业真的是挺有意义的,有付出就会有收获的。
学弟学妹肯定也会很开心有这样一次难忘的寒假的。
而对于寒假作业,我觉得这样先来个简单电梯再改进的形式不错,一步步地去升级优化。我觉得也可以来个大项目,团队合作,先给每人分工某部分的程序,然后再磨合,完成这个大项目。
为什么要用GitHub
一开始学习GitHub很痛苦,一直在上传文件给远程库这步出现各种错误,对于这些错误的解决方案总结在了第三次寒假作业的博客中。
学会后就感觉git很实用,虽然我目前也只用到了些添加删除上传文件基础的功能,但看大佬们说可以用git与别人进行交流,能从中有所收获就很期待以后能够参与进去。
PTA作业