今儿上完课设,老师果然讲的比较少,周四还不用去,看来还是学生自己折腾。我在做课设的过程中,攒了一些心得/体会,希望能和大家分享分享,也希望能一起探讨探讨。如果是我能回答的问题,我很乐意能够提供帮助。
课设这东西是要写出一个大的整体,和咱们上学期写的那些习题不太一样。那些题都是明确给出了具体的目的。而这个课设给出了一系列较为宏观的需求,要咱们自己去设计一些综合的方法,开始时可能觉得迷茫,无从下手,不知道该干什么。我的感受是在做课设之前,心里要有几个数,或者说对几样东西有谱,这样就能有效地开始着手我们的任务。
1、先构思,后写代码
以前我试图写过一个贪吃蛇游戏,没有进行构思和设计,直接开始写代码,想到哪就写到哪,结果开发到中期时,整个程序的结构已经混乱不堪,完全无法维护,不得不放弃了程序。这回我做课设(小球移动)之前,虽然也没做什么规范、详细的设计,但至少按照一些程序设计的方法,简单勾勒了一下程序的框架。
比如考虑到面向过程的程序设计,那么我想我有哪些数据(输入,小球等),进而设计数据的设计结构。我选择了用链表+结构体存储小球们的信息,我在后期很多功能的拓展,得益于我为小球选择了较为正确的数据结构,因为我很方便就能添加小球的属性(在咱们将来的面向对象编程中,也就意味着还能很方便地添加小球的功能)。再考虑数据的处理,输出(显示、保存等)。
其中对数据的处理自然是核心任务,那我就能由此展开来,考虑模块化的程序设计方法。我将对数据处理的不同任务划分为不同模块(显示球、移动球、响应点击等),高内聚我做的并不好,因为我经常在一个模块中完成一个以上的任务,最性质恶劣的就是我在delete_ball模块中塞进了许多功能(因为我到最后懒得再新弄一个模块再设计接口了,但现在一想也就是5分钟的事儿)。但是模块之间的低耦合我想我弄的还是不错的,除非是作为枢纽的模块,否则即使删掉某个函数应该对整体也影响不大。具体可以看我文档中的模块关系图。
2、IDE(编程工具)的选择
(未完持续)