C++程序设计
书 号:9787113119843
丛 书 名:普通高等教育计算机基础课程规划教材
作 者:冯博琴 贾应智
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:38元
-
内容简介
全书以面向对象的程序设计方法贯穿始终,每一章都首先阐述面向对象的程序设计思想和方法,然后引出必要的语法知识,在讲解语法时着重从程序设计方法学的角度讲述基本意义和用途,力求使读者在掌握C++语言的同时,能够对现实世界中较简单的问题及其解决方法用计算机语言进行描述。针对初学者和自学者的特点,书中以结合实例讲解基本概念和方法为主,力求将复杂的概念用简洁浅显的语言来描述,做到深入浅出。 -
前言
计算机程序设计的方法已从面向过程的方法即结构化方法发展到面向对象的方法,由于面向对象程序设计方法中的抽象性、封装性、继承性和多态性等特点,使程序的开发和维护变得更为方便,同时对已有的程序也具有较高的可重用性。这种开发方法已成为目前开发大型软件时采用的主要方法,C++则是面向对象程序设计中广泛使用的一种程序设计语言。
C++是从C语言发展演变而成的一种面向对象的程序设计语言,它完全兼容了C语言并提供了比C语言更全面、更严格的语法。这样,它不仅保留了传统的面向过程程序设计方法,也全面支持面向对象的程序设计方法,其中面向过程部分可以看成是增强的C语言,它是面向对象程序设计的基础,因此,学习C++要同时掌握面向过程和面向对象这两部分的内容。
本书共分为10章,分别是C++语言概述,运算符、表达式和语句,控制结构,数组、结构体和共用体,函数,指针,类和对象,类的继承,多态性,输入/输出和异常处理。其中,前6章主要是面向过程的内容,后4章则是面向对象的,因此,学习本书并不要求有C语言的基础。
对于面向对象的程序设计思想,有许多概念不容易理解,学习起来有一定的难度,因此,本教材系统地介绍C++的语法规则和面向对象的程序设计方法,不要求有任何程序设计基础知识。教材在体系结构上力求分散难点、突出重点,语言叙述上逻辑清晰,讲解中引入了较多的例题同时对例题涉及的语法规则、编写思路和输出结果进行了较为详尽的解释和分析,所有的例题均在Visual Studio C++ 6.0环境下运行通过。
在每章的末尾,还收集了较多的练习题,题型有选择题、填空题和编程题。通过大量的例题和相关练习,使读者逐步掌握C++的面向过程和面向对象的功能,从而掌握面向对象程序设计的基本编程思想,为后续课程的学习打下坚实的基础。
2009年8月,教育部高等学校计算机基础课程教学指导委员会编制了《高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求》,该基本要求的第二部分中对计算机教学中核心课程的知识体系和实验体系都给出了具体的描述,对每一门课程也给出了基本的要求,其中也包括了“程序设计基础”课程的内容。本书涵盖了基本要求中的内容。
本书的内容完全覆盖了全国计算机等级考试二级程序设计语言——C++语言程序设计的内容,因此,对于要参加等级考试的应试者,本书也是一本实用的教材。
由于作者的水平有限,书中难免出现疏漏或错误之处,恳请读者不吝赐教,在此表示衷心的谢意。
编 者
2010年6月 -
目录
第1章 C++语言概述 1
1.1 C++语言的发展 1
1.2 C++程序概述 2
1.2.1 C++程序的结构和组成 2
1.2.2 C++程序的开发过程 6
1.3 Visual C++ 6.0集成环境的使用 6
1.3.1 Visual C++简介 6
1.3.2 项目开发过程 7
1.3.3 集成开发环境Developer Studio 7
1.3.4 创建C++程序 10
1.4 C++语言的数据类型 13
1.4.1 基本数据类型 13
1.4.2 派生类型 14
1.4.3 标识符 14
1.4.4 用typedef定义新的类型名 15
1.5 常量 15
1.5.1 直接常量 15
1.5.2 符号常量 18
1.6 变量 19
1.6.1 定义变量 19
1.6.2 引用 20
1.6.3 枚举类型 21
本章小结 22
习题1 22
第2章 运算符、表达式和语句 25
2.1 运算符概述 25
2.2 算术运算 26
2.2.1 算术运算符和算术表达式 26
2.2.2 表达式中的数据类型不一致时的转换 27
2.3 赋值运算 28
2.3.1 赋值运算符和赋值表达式 28
2.3.2 复合赋值运算符 29
2.3.3 自增运算符++和自减运算符-- 30
2.4 比较运算 31
2.5 逻辑运算 33
2.6 位运算 35
2.7 条件运算符 38
2.8 逗号运算符和逗号表达式 39
2.9 长度运算符 39
2.10 C++语句 40
本章小结 42
习题2 42
第3章 控制结构 45
3.1 顺序结构 45
3.1.1 声明语句 46
3.1.2 数据的输出 47
3.1.3 数据的输入 48
3.1.4 命名空间 49
3.2 选择结构 52
3.2.1 if语句 52
3.2.2 switch语句和break语句 57
3.3 循环结构 59
3.3.1 while 语句 59
3.3.2 do…while语句 62
3.3.3 for语句 63
3.3.4 循环的嵌套 65
3.3.5 用在循环体中的控制语句 68
本章小结 71
习题3 71
第4章 数组、结构体和共用体 76
4.1 一维数组 76
4.1.1 一维数组的定义 76
4.1.2 一维数组的初始化 77
4.1.3 引用数组元素 78
4.1.4 应用举例 79
4.2 二维数组 84
4.2.1 二维数组的定义 84
4.2.2 二维数组的初始化 85
4.2.3 二维数组元素的引用 86
4.2.4 应用举例 86
4.3 字符数组和字符串 89
4.3.1 用字符数组保存字符串 89
4.3.2 字符数组的输入/输出 90
4.3.3 字符串处理函数 91
4.3.4 字符串数组 95
4.4 结构体 96
4.4.1 定义结构体类型 96
4.4.2 定义结构体类型的变量 97
4.4.3 引用结构体变量的成员 98
4.5 共用体 100
本章小结 102
习题4 103
第5章 函数 107
5.1 结构化程序设计 107
5.1.1 过程化的C++程序框架 107
5.1.2 库函数和自定义函数 109
5.2 函数的概念 110
5.2.1 函数的定义 110
5.2.2 函数的返回 111
5.2.3 函数的声明 112
5.3 函数调用 114
5.3.1 函数调用的一般形式 114
5.3.2 设置形参的默认值 116
5.4 参数传递 117
5.4.1 参数的传递方式 117
5.4.2 一维数组名作为函数的参数 119
5.5 函数的特殊调用 120
5.5.1 嵌套调用 120
5.5.2 递归调用 121
5.6 变量的作用域和生存期 122
5.6.1 变量的作用域 123
5.6.2 变量存储类型 125
5.6.3 变量的生存期 128
5.7 函数重载 128
5.8 内联函数 130
5.9 函数模板 131
5.9.1 模板的定义和使用 132
5.9.2 模板实参的使用 133
5.9.3 模板函数的重载 135
本章小结 136
习题5 137
第6章 指针 141
6.1 指针和指针变量的概念 141
6.2 指针变量 143
6.2.1 指针变量的定义 143
6.2.2 指针变量可以进行的运算 144
6.2.3 动态存储空间的分配 145
6.3 指针和函数 147
6.3.1 用指针变量调用函数 147
6.3.2 函数调用时的地址传递 149
6.4 数组和指针 152
6.4.1 一维数组的地址和数组元素的引用 152
6.4.2 二维数组的地址和数组元素的引用 154
6.5 指针和字符串 159
6.6 指针和结构体类型 161
6.6.1 指向结构体类型的指针变量 162
6.6.2 在函数调用时使用结构体变量 163
6.7 指针数组和多级指针 166
6.7.1 指针数组 166
6.7.2 指向指针的指针变量 168
6.7.3 用指针数组作为main()函数的命令行参数 169
本章小结 169
习题6 170
第7章 类和对象 174
7.1 面向对象的程序设计概述 174
7.1.1 对象和类的概念 174
7.1.2 面向对象的程序设计 175
7.2 类的定义 176
7.2.1 定义类的一般格式 176
7.2.2 成员的访问控制权限 177
7.2.3 类的数据成员 178
7.2.4 定义类的函数成员 179
7.3 对象的定义和使用 181
7.3.1 定义类的对象 181
7.3.2 引用对象的成员 182
7.3.3 成员函数的重载 184
7.3.4 为成员函数的形参设置默认值 185
7.3.5 this指针 186
7.3.6 具有不同生存期的对象 187
7.4 构造函数和析构函数 187
7.4.1 定义构造函数 187
7.4.2 拷贝构造函数 189
7.4.3 定义析构函数 191
7.4.4 动态创建和删除对象时构造函数和析构函数的调用 194
7.4.5 默认构造函数和默认析构函数 195
7.5 对象成员 196
7.6 友元 199
7.6.1 友元函数 200
7.6.2 友元成员 202
7.6.3 友元类 203
7.7 静态成员 205
7.7.1 静态数据成员 205
7.7.2 静态函数成员 207
7.8 常类型 210
7.8.1 常对象 210
7.8.2 常成员函数 211
7.8.3 常数据成员 214
7.9 类的模板 215
7.10 使用string类处理字符串 217
本章小结 220
习题7 221
第8章 类的继承 224
8.1 继承和派生 224
8.1.1 继承和派生的概念 224
8.1.2 单继承的定义 225
8.1.3 派生类与基类成员的同名覆盖 227
8.1.4 多继承的定义 227
8.2 派生类对基类的继承方式 228
8.2.1 公有继承 228
8.2.2 私有继承 229
8.2.3 保护继承 229
8.3 派生类的构造函数和析构函数 231
8.3.1 派生类的构造函数 231
8.3.2 派生类的析构函数 232
8.4 具有继承关系的类中同名成员的辨识 237
8.5 虚基类 241
8.5.1 虚基类的定义 242
8.5.2 虚基类构造函数的调用 243
8.6 指向基类和派生类的指针变量 245
本章小结 247
习题8 248
第9章 多态性 252
9.1 多态性的概念 252
9.2 虚函数 253
9.2.1 虚函数的定义 253
9.2.2 多继承中的虚函数 255
9.2.3 虚函数的传递性 256
9.2.4 虚析构函数 259
9.3 纯虚函数和抽象类 260
9.4 运算符重载 262
9.4.1 运算符重载的概念 262
9.4.2 运算符重载为成员函数 263
9.4.3 运算符重载为友元函数 267
9.4.4 不同运算符重载应注意的问题 270
本章小结 271
习题9 271
第10章 输入/输出和异常处理 275
10.1 C++流的概念 275
10.2 输入/输出格式 277
10.2.1 数据的输入/输出 277
10.2.2 默认的输入/输出格式 280
10.2.3 输出格式控制 281
10.3 文件的输入/输出 286
10.3.1 文件的打开和关闭 286
10.3.2 文件流的状态 289
10.3.3 文件的顺序读写 289
10.3.4 文件的随机读写 292
10.4 异常处理机制 294
本章小结 296
习题10 297
附录A C++语言的运算符 300
附录B C++语言中的关键字 302
附录C C++语言的函数库 303
参考文献 306 -
作者介绍
主要著译者顺序姓名学历职称学科专长通讯地址1冯博琴 博士 教授 工作单位西安交通大学 邮政编码 710049电话13709263946 2 贾应智 工作单位西安交通大学 邮政编码710049 电话029-81929310 3 工作单位 邮政编码 电话 审校者(主审者) 学历 工作单位 邮政编码 电话 职称 工作单位 邮政编码 电话 -
编辑推荐
本教材从没有任何程序设计的基础开始,系统地介绍C++语言的语法规则和面向过程、面向对象的程序设计方法,教材在体系结构上力求分散难点、突出重点,语言叙述上逻辑清晰,讲解中引入了较多的例题并同时对例题涉及的语法规则、编写思路和输出结果进行了较为详尽的解释和分析,所有的例题均在Visual Studio C++6.环境下运行通过。 -
书评书荐
-
附件下载
图书推荐