面向对象程序设计:C++实现
作者 : 雷大正 王啸楠 丁德成 等编著  岳丽华 主审
出版日期 : 2017-02-10
ISBN : 978-7-111-55884-2
定价 : 35.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 238
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书共分为3部分。第一部分为设计部分,主要针对两个综合项目(LostCraft游戏以及HR服务平台)进行介绍,引出面向对象思维概念并构建面向对象思维模型;第二部分为实践部分,将抽象的案例模型实例化,并在实现过程中掌握C++基础语法;第三部分为提高部分,通过一个综合案例(锻炼系统)培养学生综合编程能力。

图书特色

本书为面向对象程序设计初学者的入门教材,从需求分析、模型构建到最后的C++语言实践落地,深入浅出地分析实例,讲述面向对象思维构建方式与形成过程,在保持面向对象知识体系的基础上,讲述C++语言的基本概念以及实际运用,从实践的角度剖析面向对象的编程思想,系统深入地诠释C++技术,体现其发展性、实践性。本书以培养读者面向对象设计及编程能力为宗旨,使读者能够从丰富的实际案例中理解面向对象的精髓,迅速掌握C++编程技巧,轻松学习面向对象程序设计语言。

本书特色:
内容深入浅出,不拘泥于编程语法细节,按真实模型的演变产生问题,循序渐进地推进内容。
重点突出案例的分析设计过程,通过详细描述模型的构建过程来强调面向对象编程思想的重要性。
提供丰富的实践性例题,采用UML进行表述及系统建模。
全书采用3个难易程度不同的综合性开发实例,随着知识点的深入,从简单到复杂,扩展实例的规模并逐步完善所有实例,通过实例详解完成所有知识点的连贯说明。
基于解决问题的知识架构模式,本着遇到问题、解决问题的设计思路,在语法实现的过程中提供大量与C++语言开发相关的技术要点提示。
强调习题的连贯性,随着面向对象程序设计以及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章主要通过解决实际应用中的一些扩展问题,引出多态的概念:同一个方法,对象不同表现不同;同一个对象,不同情况下会表现出不同行为。同时,在此基础上提出虚函数以及纯虚函数的概念。
第9章主要通过对综合项目案例进行需求分析、UML设计以及最终代码实现来综合训练和巩固学生之前所学过的所有知识点。学完本章内容,学生将能够熟练掌握C++基础语法,并结合实际项目需求进行简单的综合程序设计与开发。
本书第1章由丁德成、雷大正、王啸楠编写;第2章由殷振华、黄勇、高超编写;第3章由王啸楠、殷振华、黄勇编写;第4章由王啸楠、薛蕾编写;第5章由殷振华、王啸楠、高超编写;第6章由王啸楠、高超、薛蕾编写;第7章由高超、殷振华、王啸楠编写;第8章由雷大正、王啸楠编写;第9章由雷大正、高超、殷振华编写。最后由岳丽华负责审阅定稿。
在本书的编写过程中,参考了许多相关的书籍和资料,在此对这些参考文献的作者表示感谢。同时对一切在本书出版过程中给予支持和帮助的同事、朋友,特别是郭贺、戈超、王强,表示真挚的感谢。
因编者水平有限,书中难免存在错漏和不妥之处,望读者指正,以便改进和提高。

上架指导

计算机\程序设计

封底文字

本书为面向对象程序设计初学者的入门教材,从需求分析、模型构建到最后的C++语言实践落地,深入浅出地分析实例,讲述面向对象思维构建方式与形成过程,在保持面向对象知识体系的基础上,讲述C++语言的基本概念以及实际运用,从实践的角度剖析面向对象的编程思想,系统深入地诠释C++技术,体现其发展性、实践性。本书以培养读者面向对象设计及编程能力为宗旨,使读者能够从丰富的实际案例中理解面向对象的精髓,迅速掌握C++编程技巧,轻松学习面向对象程序设计语言。

本书特色
·内容深入浅出,不拘泥于编程语法细节,按真实模型的演变产生问题,循序渐进地推进内容。
·重点突出案例的分析设计过程,通过模型构建过程的详细描述来强调面向对象编程思想的重要性。
·提供丰富的实践性例题,采用UML进行表述及系统建模。
·全书采用3个难易程度不同的综合性开发实例,随着知识点的深入,从简单到复杂,扩展实例的规模并逐步完善所有案例,通过案例详解完成所有知识点的连贯说明。
·基于解决问题的知识架构模式,本着遇到问题、解决问题的设计思路,在语法实现的过程中提供大量与C++语言开发相关的技术要点提示。
·强调习题的连贯性,随着面向对象程序设计以及C++语言知识点的讲解,每章课后练习题也循序渐进地增强功能设计难度,充分引导读者发挥分析、设计程序以及架构编程的能力。

图书目录

前言
教学建议
第一部分 设  计
第1章 综合项目初体验 2
1.1 项目下载地址及安装操作说明 2
1.2 综合项目介绍 2
1.2.1 综合实例1——LostCraft游戏项目介绍 2
1.2.2 综合实例2——HR服务平台项目介绍 5
1.3 项目角色功能分析 7
1.3.1 综合实例1——LostCraft游戏项目的角色功能分析 7
1.3.2 综合实例2——HR服务平台项目的角色功能分析 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 综合实例1——LostCraft游戏项目中对象间的行为关系 15
2.2.2 综合实例1——LostCraft游戏项目中类的抽象 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 综合实例1——LostCraft游戏项目的UML设计 27
3.2.2 综合实例2——HR服务平台项目的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 综合实例1——LostCraft游戏项目 75
5.1.1 类的构成 75
5.1.2 技能类的声明与实现 76
5.1.3 对象实例化 79
5.1.4 其他类的声明 81
5.1.5 对象间的协作实现 84
5.2 综合实例2——HR服务平台项目 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 综合实例1——LostCraft游戏项目 100
6.1.1 成员函数介绍 100
6.1.2 函数重载 100
6.1.3 构造函数 102
6.1.4 C++封装机制的private权限 104
6.2 综合实例2——HR服务平台项目 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 综合实例1——LostCraft游戏项目 121
7.1.1 继承的概念 121
7.1.2 单继承的声明与实现 122
7.2 综合实例2——HR服务平台项目 124
7.2.1 巧用继承中的构造函数 125
7.2.2 访问权限的protected关键字 126
7.3 本章小结 127
7.4 本章习题 128
第8章 多态 129
8.1 综合实例1——LostCraft游戏项目 129
8.1.1 多态的概念 129
8.1.2 静态多态的函数多态 129
8.1.3 动态多态的虚函数实现 130
8.2 综合实例2——HR服务平台项目 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

教学资源推荐
作者: (美)Mary Campione,Kathy Walrath,Alison Huml
作者: [意]阿尔贝托·博斯凯蒂(Alberto Boschetti) 卢卡·马萨罗(Luca Massaron) 著
作者: [丹]弗莱明·尼尔森(Flemming Nielson),[丹]汉内·里斯·尼尔森(Hanne Riis Nielson),[英]克里斯·汉金(Chris Hankin) 著
作者: Kenneth Barclay;John Savage
参考读物推荐
作者: 尹宝林 著
作者: (美)Alexander Stepanov, Paul McJones 著
作者: 孙杰 山金孝 张亮 张婷婷 著