学知识容易,用知识难!编程是一门不断实践的技术,读者不但要阅读《C语言入门教程》《C语言和内存》和《C语言模块化开发》,还要自己动手去开发项目,将知识运用到实际中。
初学者往往有这样的困惑:教程已经阅读过了,其中的知识点也都理解了,但是真正编写代码的时候却感觉无从下手,甚至连数组排序、文件复制、百钱买白鸡这样的小程序都不能完成。究其原因,就是缺少实践,没有培养起编程思维,没有处理相关问题的经验。编程能力和你的代码量是成正比的!
现在,我们就带大家实践一下,做几个小项目。如下所示,每个项目都给出了规范的源码、清晰的思路、丰富的注释以及透彻的解析。
该贪吃蛇游戏不依赖TC环境,不依赖任何第三方库,可以在VC 6.0、VS、C-Free等常见IDE中编译通过。贪吃蛇游戏的难点在于设计思路、蛇的移动、食物的随机出现以及不同颜色的输出等,我们都巧妙地解决了。
推箱子小游戏可以很好地培养初学者的编程思维,它涉及到的知识点也不多,重在考察读者的逻辑思维能力,不要求你学习结构体、指针和文件操作,只要了解选择结构、循环结构、数组、函数等基本的C语言知识,就能够理解并编写该游戏。另外,该游戏虽然是彩色版,但是不依赖任何第三方库,在所有编译器下都能够运行。
该软件可以用来管理班级学生,能够对学生信息进行增加、删除、更改、查询等操作。该软件将学生信息直接保存在文件中,难点主要是对文件内容的增删改查、文件内部指针的移动、对学生信息的校验等。
上面的版本将学生信息保存在文件中,直接对文件内容进行增删改查操作。而该版本引入了数据结构中的单链表,先将学生信息存入单链表,再更新文件。如此,文件操作更加简单,只需要维护好单链表就可以。
与上面的两个版本相比,该版本在将数据写入文件时进行了加密,读取数据时再进行解密,并且使用软件时也要输入正确的密码。该版本的难点是对密码的校验,以及对数据加密解密的处理。