本书共分为三部分。*部分为设计部分,主要针对两个综合项目(LostCraft游戏以及HR服务平台)进行介绍,引出面向对象思维概念并构建面向对象思维模型;第二部分为实践部分,将抽象的案例模型实例化,并在实现过程中掌握C 基础语法;第三部分为提高部分,通过一个综合项目示例培养学生综合编程能力。
前 言近年来,支持面向对象程序设计的C 语言迅速在国内普及,并且我国大部分高校均开设了C 课程,但纵观大部分高校的整体课程设计,课件内容多、小章节划分细是普遍现象,基础内容较多,但实际应用方面略显不足。国内的课程多偏向于讲解概念化的东西,例如什么是类、什么是构造函数、什么是OOP等,教材多偏向于介绍解释性内容,却没有详细说明为什么需要、如何应用等。鉴于此,我们将面向对象基本概念、C 语言和实际综合案例项目进行结合,打破传统的知识点讲授顺序,以案例驱动知识点的方式来讲解面向对象,并最终以C 语法进行落地。
考虑到国内大部分课程中面向对象思维与C 语法分离的现状,我们编写了这本易于入门的教材,以帮助更多的初学者更顺利地迈进面向对象的大门。本教材的特点如下。
基于解决问题的知识架构书籍的开发思路,准确定位该教材的重点目标是培养学生分析问题、解决问题的能力,面向对象思维能力,项目设计与建模能力。因此,本教材的编写主要采用软件工程模块化、能力导向的思路,基于解决问题的知识架构模式重新构建课程知识体系,以案例、任务为驱动,结合探究式模式构建核心学习内容,并使用C 作为最终实现语言,易教易学,效果好。
基于解决问题的知识架构模式主要是以提高学习者解决问题的思维能力为导向,先建立模型, 不拘泥于编程语法细节,然后按真实模型演变产生问题,循序渐进地引入知识来解决。在学习每个模型之前,注重使其与学习者已有的知识或模型建立连接,尽量基于同一个案例重构或迭代,只有当知识与场景不匹配时,才引入新的案例或场景。
基于能力导向的应用型人才培养要求进行分解,合理设计案例本教材所涉及的3个综合案例均由拥有丰富企业开发经验的实训教师所设计,是他们多年教育教学设计和软件开发的经验与知识积累的结晶。
3个案例的难易程度不同,从一开始的基础设计到最终的综合提高,每一个案例都有对应的设计模型以及知识点,在实现过程中学生可以根据不同的项目需求学习到C 语法的相关重点和难点,并且整本书采用同一案例不同版本迭代的方式进行讲解,学生每学习完一个案例版本,便可掌握一些基础知识的应用以及实际的应用场景,这种从简单到复杂逐渐演化的学习路径,又让他们可以更轻松地理解知识之间的相互关系。
基于模块化的知识结构划分,合理设计教材内容面向对象程序设计(C 语言)是计算机专业的核心基础课程,结合案例特色,本书共分为三部分。第一部分为设计,主要针对综合项目进行介绍,引出面向对象思维概念并构建面向对象思维模型;第二部分为实践,将抽象的案例模型实例化,使学生掌握C 基础语法;第三部分为提高,培养学生的综合编程能力。
本书主要面向的群体是具有一定的C语言编程基础但从未接触过或者较少接触面向对象的学生。全书共分9章,各章节内容安排如下:
第1章主要从公共平台中下载综合案例并进行演示,在演示的过程中进行项目介绍以及角色功能分析。学完本章内容,学生应该能够清晰地了解该门课程所需完成的项目概况,以及该项目所涉及的角色与功能。
第2章主要从软件行业现状入手,结合实际项目案例,引入面向对象概念,并通过案例分析了解对象之间的行为关系且加以抽象,最后再通过生活中的案例进行思维强化。学完本章内容,学生应该能够初步建立面向对象思维,针对已有的案例需求,可有意识地进行对象区分与功能抽象。
第3章主要从生活案例开始引入面向对象的概念,通过多个案例的描述培养学生的对象思维,最后通过UML工具进行建模,从而实现面向对象的设计部分。学完本章内容,学生应该能够从日常生活或者一段项目需求描述中找到所涉及的类与对象,通过UML工具实现具体建模,并绘制出对应的类图、时序图与用例图。
第4章主要针对C 的一些基础语法知识点进行讲解,同时通过介绍程序设计语言的发展史,使学生对C 语言有一个初步的认知。基础语法包括:变量的定义与使用、常用的几种数据类型、各类运算符的使用、控制语句中的判断语句以及循环语句的使用、一维数组的定义与查找遍历、函数与指针。
第5章主要针对设计部分进行代码落地,将所设计的内容通过C 编程语言最终实现出来,要求学生能够将之前所学过的基础语法与思维建模很好地结合到一起,完成一个完整项目的开发。
第6章主要是C 语法的提高与扩展。由于项目需求越来越大,以及需求的多变性,所以需要使用更高级的语法知识来实现项目。本章主要包含以下内容:成员函数的定义与实现、函数的重载、构造函数的声明与使用以及面向对象的封装机制,并通过知识点的整合最终实现一个小型项目。
第7章主要通过对已有项目进行优化,根据项目实现的合理性提出继承概念并实现。在实现的过程中讲解单继承的概念及其存在意义,以及实现单继承的C 语法及其应用。学完本章内容,学生应该能够运用继承的思想分析项目,抽取出继承类和派生类,理解并掌握单继承的概念以及应用方法,最终能用C 代码实现基于继承的项目。
第8章主要通过解决实际应用中的一些扩展问题,引出
目 录
前言
教学建议
第一部分 设 计
第1章 综合项目初体验 2
1.1 项目下载地址及安装操作说明 2
1.2 综合项目介绍 2
1.2.1 综合实例1LostCraft游戏项目介绍 2
1.2.2 综合实例2HR服务平台项目介绍 5
1.3 项目角色功能分析 7
1.3.1 综合实例1LostCraft游戏项目的角色功能分析 7
1.3.2 综合实例2HR服务平台项目的角色功能分析 9
1.4 本章小结 10
1.5 本章习题 11
第2章 面向对象思维建立 12
2.1 面向对象概念的引入 12
2.1.1 软件行业现状 12
2.1.2 何为面向对象 13
2.2 类与对象 15
2.2.1 综合实例1LostCraft游戏项目中对象间的行为关系 15
2.2.2 综合实例1LostCraft游戏项目中类的抽象 16
2.2.3 类与对象的概念和关系 17
2.3 本章小结 20
2.4 本章习题 21
第3章 面向对象思维建模 22
3.1 UML概述 22
3.1.1 类图 22
3.1.2 时序图 24
3.1.3 用例图 26
3.2 项目实现的UML设计 27
3.2.1 综合实例1LostCraft游戏项目的UML设计 27
3.2.2 综合实例2HR服务平台项目的UML设计 32
3.3 本章小结 41
3.4 本章习题 42
第二部分 实 践
第4章 程序设计语言C 初识 44
4.1 C 概述 44
4.2 第一个C 程序 44
4.2.1 VS 2010工具介绍 44
4.2.2 编写第一个C 程序helloworld 45
4.2.3 代码解释 49
4.2.4 程序注释 50
4.3 C 编译过程 51
4.4 C 编程逻辑 52
4.4.1 程序中的简单数据存储 52
4.4.2 输入与输出 55
4.4.3 控制语句 57
4.4.4 一维数组 63
4.4.5 函数 66
4.4.6 指针与引用 69
4.5 本章小结 72
4.6 本章习题 73
第5章 类与对象的实现 75
5.1 综合实例1LostCraft游戏项目 75
5.1.1 类的构成 75
5.1.2 技能类的声明与实现 76
5.1.3 对象实例化 79
5.1.4 其他类的声明 81
5.1.5 对象间的协作实现 84
5.2 综合实例2HR服务平台项目 90
5.2.1 类的声明与实现 90
5.2.2 对象实例化之new运算符 92
5.2.3 对象资源回收之delete运算符 94
5.2.4 对象间的协作实现 95
5.3 本章小结 97
5.4 本章习题 98
第6章 深入学习面向对象函数 100
6.1 综合实例1LostCraft游戏项目 100
6.1.1 成员函数介绍 100
6.1.2 函数重载 100
6.1.3 构造函数 102
6.1.4 C 封装机制的private权限 104
6.2 综合实例2HR服务平台项目 106
6.2.1 封装技巧的get和set方法 106
6.2.2 引用技巧的this指针 108
6.2.3 构造函数的重载 108
6.2.4 析构函数 110
6.2.5 其他核心方法的代码实现 111
6.3 本章小结 117
6.4 本章习题 118
第7章 继承 121
7.1 综合实例1LostCraft游戏项目 121
7.1.1 继承的概念 121
7.1.2 单继承的声明与实现 122
7.2 综合实例2HR服务平台项目 124
7.2.1 巧用继承中的构造函数 125
7.2.2 访问权限的protected关键字 126
7.3 本章小结 127
7.4 本章习题 128
第8章 多态 129
8.1 综合实例1LostCraft游戏项目 129
8.1.1 多态的概念 129
8.1.2 静态多态的函数多态 129
8.1.3 动态多态的虚函数实现 130
8.2 综合实例2HR服务平台项目 135
8.2.1 多态的实现 135
8.2.2 纯虚函数与抽象类 136
8.3 本章小结 138
8.4 本章习题 139
第三部分 提 高
第9章 综合项目锻炼系统 142
9.1 系统项目介绍 142
9.2 系统项目角色功能分析 142
9.2.1 普通用户 142
9.2.2 群主 144
9.2.3 私教/教练 145
9.3 系统项目的UML设计 146
9.3.1 用例图 146
9.3.2 时序图 147
9.3.3 类图及说明 153
9.4 本章小结 180
9.5 本章习题 181
附录 183
附录A LostCraft游戏的实现代码 183
附录B HR服务平台的实现代码 192
附录C 综合项目 锻炼系统的实现代码 200
参考文献 228