
本书以图形—动画—游戏为主线,将知识点融入项目,较为全面地介绍了C语言基本语法知识和程序设计思想。全书共九大项目,通过由浅入深的方式,从画图入手,先学习和掌握C语言的基本语法知识和程序流程结构,再学习图形动画的编程,逐步掌握编程的方法和技巧。在此基础上,开始编写极具趣味性的游戏,全面巩固和提高综合编程的水平和能力。本书可以作为高职高专计算机相关专业和非计算机专业C语言课程的教材,也可以作为计算机软件编程培训班的教材,还可以作为广大计算机爱好者自学用书。
C语言是目前工程教育中最基本、最核心的课程之一。要用C语言解决实际问题,仅靠编写一些简单的程序是无法办到的。如果你初次接触C语言,按照C语言的知识体系去学习和实践,能够使你对C语言有比较全面的了解,但是如要让你学完后马上开发一些小的系统项目,那么你会感到力不从心。 学习C语言的真正目的就是会用C语言,让语言为编程服务。C语言就是一个利用计算机去解决问题的工具,就像在学习使用螺丝刀时,需要掌握的是如何用螺丝刀拧螺丝,而不是学习螺丝刀的制作方法,研究螺丝刀的形状、结构和材料等。本书以图形—动画—游戏为主线,采用“教、学、做”一体化的项目式教学方法,按照“学做合一”的指导思想,引入CDIO工程教育方法,在完成技术讲解的同时,对学生提出相应的自学要求和指导。学生在学习本书的过程中,不仅能完成快速入门的基本技术学习,而且能按工程化实践要求进行项目的开发,完成相应功能的实现。 本书编者有多年实际项目开发经验,并有丰富的高职高专教育教学经验,完成了多轮次、多类型的教育教学改革与研究工作。本书在编写过程中,“淡化语法,强调应用”,从富有趣味性的图形—动画—游戏入手,努力把枯燥无味的语法讲得生动、活泼,让学生明白如何分析并解决实际问题,逐步培养学生程序设计的正确思维模式,重点放在程序设计方法上。 本书主要特点如下。 1.内容选择凸显趣味性 在内容上,我们选择图形、动画和游戏等编程内容,极大地提高了学生学习编程的兴趣,改变了以往编程枯燥无味的现象。 2.项目驱动照猫画虎 实践训练都是在课程项目的基础上进行的,是对已有项目及任务的拓展,是学生在掌握现有知识和技能的基础上的提高,是融会贯通的过程。 3.知识重构重在任务 以往教学通常都是围绕知识点来进行的,知识点既是学习的目标也是学习的线索,课程以知识点贯穿始终。这种方式的教与学比较适合理论课程,而不适合技能型和实践性的课程。C语言程序设计是实践性很强的课程,以项目及任务驱动方式来学习是非常好的手段,课程围绕任务来展开,知识点根据任务的需要重新组织和架构,体现了重在知识的灵活应用,不仅要懂,更重要的是会用。 4.将知识融入项目中 在课程的学习过程中,我们紧紧围绕项目展开学习,考核的目标以完成项目的任务为标准,强调知识的应用,营造知识学习的情景,使学生在具体的情景中学习并掌握知识,将知识融入项目中。 本书由浙江安防职业技术学院的匡泰、朱莉莉担任主编,张思源、张大力担任副主编。 为了方便教师教学,本书配有电子教学课件及相关资源,请有此需要的教师登录华信教育资源网(www.hxedu.com.cn)免费注册后进行下载,如有问题可在网站留言板留言或与电子工业出版社联系(E-mail:hxedu@phei.com.cn),也可以与编者联系(8406145499@qq.com)。 由于编者的水平有限,加之时间仓促,书中难免有不妥和疏漏之处,恳请专家、教师和读者多提宝贵意见,以帮助我们以后对教材进行修订。 编 者
项目一 搭建C语言图形编程环境 (1) 任务一 VC 6.0集成开发环境的搭建及图形库的安装 (1) 1.1.1 C语言简述 (2) 1.1.2 C语言程序的开发流程 (3) 任务二 使用printf语句在屏幕上输出字符图案 (7) 1.2.1 C语言程序的结构 (8) 1.2.2 C语言程序的组成 (9) 1.2.3 printf语句的使用 (9) 项目二 使用循环结构输出字符图案 (14) 任务一 使用循环结构在屏幕上输出平行四边形图案 (14) 2.1.1 基本数据类型 (15) 2.1.2 常量和变量 (16) 2.1.3 数据操作 (17) 2.1.4 while循环结构 (19) 任务二 使用循环结构在屏幕上输出空心等腰梯形图案 (22) 2.2.1 条件判断表达式 (23) 2.2.2 选择结构 (25) 2.2.3 for循环语句和do-while循环语句 (28) 项目三 使用C语言图形函数画图 (34) 任务一 画一把锤子 (34) 3.1.1 函数概念 (35) 3.1.2 屏幕坐标 (35) 3.1.3 C语言图形函数1 (36) 任务二 画一张笑脸 (41) 3.2.1 SmartDraw 6.0画图软件的安装和使用 (42) 3.2.2 C语言图形函数2 (46) 项目四 使用C语言图形函数画创意图案 (50) 任务一 在屏幕上画位图图案 (50) 4.1.1 一维数组 (51) 4.1.2 二维数组 (54) 任务二 使用C语言图形函数在屏幕上画艺术图案 (62) 4.2.1 格式输入函数scanf() (62) 4.2.2 switch多分支结构 (64) 4.2.3 坐标平移变换 (66) 项目五 使用C语言图形函数画数学曲线 (72) 任务一 在屏幕上画十字渐开线图案 (72) 5.1.1 格式输出函数printf() (73) 5.1.2 算法与结构化程序设计 (75) 5.1.3 描点画图法 (77) 5.1.4 C语言图形函数3 (78) 任务二 在屏幕上画艺术图案 (83) 图形的旋转变换 (83) 项目六 使用自定义函数画数学曲线 (91) 任务 在屏幕上画内五环曲线构成的图案 (91) 6.1.1 函数概述 (92) 6.1.2 函数的定义和使用 (93) 6.1.3 函数的嵌套调用 (98) 6.1.4 函数的递归调用 (99) 6.1.5 变量的作用域和生存期 (100) 项目七 使用C语言图形函数实现动画 (109) 任务一 在屏幕上显示运动的卡车 (109) 7.1.1 指针概念 (110) 7.1.2 指针变量的定义和使用 (110) 7.1.3 C语言图像函数 (112) 7.1.4 动画原理 (115) 任务二 模拟时钟动画 (122) 7.2.1 指针变量作为函数的参数 (122) 7.2.2 指针变量与一维数组 (124) 7.2.3 字符数组 (125) 7.2.4 结构体 (127) 项目八 使用C语言图形函数实现游戏 (135) 任务一 小人接水果游戏 (135) 8.1.1 键盘响应处理 (136) 8.1.2 C语言图像函数及其他函数 (137) 任务二 贪吃蛇游戏 (146) 客户区坐标与逻辑坐标 (147) 任务三 小人推箱子游戏 (159) 任意类型的数字转换为字符串 (159) 项目九 项目综合实践 (180) 任务一 打豆豆游戏 (180) 任务二 小炮打气球游戏 (183) 任务三 雷电游戏 (186) 任务四 俄罗斯方块游戏 (190)