第一次课程设计体会#
这次的课程设计带给我感受比较大的是在细节、理解和耐心三个方面。
整个系统的大部分程序都是考察数据结构当中单向链表的操作,在写代码的过程中,不断出现的无法运行程序、莫名其妙地开始刷屏、程序突然地结束都在告诉我对这方面有多不熟悉。确实,我阅读了课本的程序,看了翁恺的mooc,我还是没能搞懂。这就非常考验我的耐心,我在看似理解了其实完全没有理解的状态下徘徊几度无奈。但为了能完成课设,我利用了我所能查找到的一切的资源去让自己理解链表这个东西其真正是如何操作的其原理是什么,好处有什么。寻找了大量教学视频,终于在B站找到了一个他讲链表我听得懂的老师,并完成链表部分的代码。在调试的过程下,代码成功运行,那一刻的成就感不禁感谢自己的坚持和耐心,以及没理解好就不写代码的决心。
在对照着题目完成程序的过程中,细节我觉得是相当重要的。例如在输入记录的这个功能里面,题目还要求需要进行合法性检查。这也让人想起来后面的修改、删除两个功能也需要相应的合法检查,不然就无法完成相应的功能。并且在题目中所需要我们展示的表格示例里面,其平均工资一行,其数字是很有一定特殊性的,其小数点后的数字如果有除0以外的值是会被表示出来的,若没有则就不表示出来。所以我去查找了一点资料,发现这就需要使用%g的格式符,而%g的格式符只能用于浮点数上,所以我又将系统中的各类工资类型改成浮点型。而还有一个细节问题,就是表格数据的对齐问题,因为我是用printf的方式将表格打印出来,所以就没有什么特别的方法可以让我的表格对齐,我就用了很原始的方法,计算其应当所占的宽度,然后运行看看是否对齐,然后再修改宽度。虽然用了很笨较为容易的方法,但为了得到一份与题目示例相差不多的表格,多花一点点耐心我认为很值得。
在整个程序完成的过程中,其实于我而言,是很难一个函数写完然后再去看能否运行,我认为这是有点浪费时间的。我是写完一模块再去看看这一模块的一些函数能否去运行。但这样的弊端,就是破洞百出。除却vs寻找出的语法错误,还有一部分的逻辑错误,需要你一个个设断点去看到底为什么不行呢?这方面相当考验耐心,要你不断读程序,去想到底哪里思考的不对,可能是while的循环条件写成了它结束的条件,可能是删除的结点刚好是头结点而你却没有去赋值新的头结点造成程序崩溃无法运行,也可能是非常细节的你少写了分号,你在判断字符串是否相等的时候忘记使用strcmp函数直接使用了“==”来判断。这不单考验你的耐心、考验你寻找错误的头脑和眼睛,这还告诉你你平时编程的时候有多么地不注意。
这一次课设于我而言,认识到了自己现在的水平确实一般。在我拥有自省机会的同时培养了我的耐心,并且提高了我利用身边资源的能力,以及不断深刻不断刷新思想,有效理解的能力。
来源:https://www.cnblogs.com/moonwinfred/p/12181235.html