面向对象程序设计基础 第2版PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:李师贤等编著
- 出 版 社:北京:高等教育出版社
- 出版年份:2005
- ISBN:704016650X
- 页数:489 页
1.1 计算机程序 1
1.1.1 算法 1
1.1.2 实体 1
第一章 程序设计与C++语言初步 1
1.1.3 程序 3
1.1.4 程序设计 5
1.2 程序设计的演变 6
1.2.1 早期程序设计 6
1.2.2 结构化程序设计 6
1.2.3 面向对象程序设计 7
1.3.2 字符集 8
1.3 程序设计语言的定义 8
1.3.1 语法和语义 8
1.3.3 Backus-Naur范式 9
1.3.4 语法图 11
1.4 C++语言的程序结构 12
1.4.1 C++语言程序的组成 12
1.4.2 C++语言程序的基本结构 12
1.4.3 C++语言程序的退化结构 14
1.5 C++语言程序的运行 15
1.6 面向对象程序设计 16
1.6.1 面向对象程序设计过程 16
1.6.2 面向对象程序设计的特征 17
本章小结 19
练习与思考题 19
上机实习题 20
第二章 基本数据类型 22
2.1 数据类型概述 22
2.1.1 类型 22
2.1.2 类型的作用 22
2.1.3 C++语言的类型 23
2.2 保留字、标识符、常量与变量 24
2.2.1 单词 24
2.2.3 标识符 25
2.2.2 保留字 25
2.2.4 选择合适的标识符 26
2.2.5 常量与变量 27
2.2.6 简单输入/输出 28
2.3 基本数据类型 29
2.3.1 字符类型 31
2.3.2 整数类型 33
2.3.3 浮点类型和双精度类型 34
2.3.4 字符串常量 35
2.3.5 符号常量 36
2.4 运算符与表达式 38
2.4.1 表达式 38
2.4.2 表达式的运算次序 39
2.4.3 C++的运算符 40
2.4.4 算术运算 42
2.4.5 关系运算 43
2.4.6 逻辑运算 44
2.4.7 位运算 44
2.4.8 条件运算 47
2.4.9 sizeof运算 47
2.4.10 赋值运算 48
2.4.11 逗号运算 49
2.4.12 表达式与运算符的应用举例 49
2.5.1 隐式类型转换 50
2.5 类型之间的关系 50
2.5.2 强制类型转换 52
2.6 一个简单的应用程序 52
本章小结 54
练习与思考题 54
上机实习题 55
第三章 基本控制结构 56
3.1 程序的基本控制结构 56
3.1.1 C++语言的简单语句 56
3.1.2 单入口/单出口控制结构 57
3.1.3 结构化程序设计工具 57
3.2.1 if语句 60
3.2 选择结构 60
3.2.2 switch语句 67
3.3 循环结构 73
3.3.1 while语句 73
3.3.2 do_while语句 77
3.3.3 for语句 79
3.3.4 一个简单的循环例子 83
3.3.5 设计正确的循环 85
3.4 简单程序设计举例 86
3.4.1 问题 86
3.4.2 求解问题的精美算法 87
3.4.3 求解问题的原始算法 88
本章小结 89
练习与思考题 89
上机实习题 91
第四章 函数 92
4.1 C++语言的函数 92
4.1.1 例程与函数 92
4.1.2 函数的建立与使用 93
4.1.3 两个简单的例子 94
4.2 函数的声明与调用 97
4.2.1 函数声明 97
4.2.2 return语句 98
4.2.3 函数调用 99
4.2.4 函数与模块 102
4.2.5 内联函数 104
4.3 参数传递 107
4.3.1 参数传递方式 107
4.3.2 按值调用 107
4.3.3 缺省参数 109
4.4 作用域与生存期 110
4.4.1 标识符的作用域 110
4.4.3 变量的生存期 112
4.5 局部变量与全局变量 112
4.4.2 C++程序的存储组织 112
4.5.1 局部变量 113
4.5.2 全局变量 114
4.5.3 局部变量与全局变量的讨论 115
4.6 变量的存储类别 118
4.6.1 自动变量和寄存器变量 118
4.6.2 静态变量 119
4.6.3 外部变量 120
4.7 递归程序设计 120
4.7.1 简单递归程序 121
4.7.2 梵塔问题 123
4.8 预处理命令 125
4.8.1 文件包含 126
4.8.2 宏定义 127
4.8.3 条件编译 128
4.9 C++语言的库函数 129
4.9.1 库函数的用法 129
4.9.2 常用数值函数 129
4.9.3 常用字符函数 130
本章小结 131
练习与思考题 132
上机实习题 136
5.1.1 循环计数器 137
5.1 类的引入 137
第五章 类与对象 137
5.1.2 关于循环计数器的讨论 141
5.1.3 类作为构造程序的基本单位 142
5.2 类的定义 143
5.2.1 类声明 143
5.2.2 类成员的访问控制 145
5.2.3 类界面与类实现 146
5.2.4 标识符的类作用域 149
5.3 对象的创建 150
5.3.1 对象声明 150
5.3.2 使用对象成员 151
5.4 对象的初始化 153
5.3.3 对象的生存期 153
5.4.1 构造函数 154
5.4.2 析构函数 158
5.4.3 对象成员的初始化 160
5.5 使用类与对象构造程序的实例 163
5.5.1 模拟数字式时钟 163
5.5.2 模拟加油站油泵的对象工作 166
5.5.3 单实例对象类 168
5.6.1 基本数据类型与对象 170
5.6.2 抽象数据类型 170
5.6 关于类与对象的进一步讨论 170
5.6.3 设计良好的类界面 171
5.6.4 再论对象 172
5.6.5 下一步 172
本章小结 173
练习与思考题 174
上机实习题 180
第六章 复合数据类型 181
6.1 变量与赋值的进一步讨论 181
6.2 指针类型 182
6.2.1 指针的声明 183
6.2.2 指针的引用 184
6.2.4 按引用调用的参数传递方式 186
6.2.3 指针的运算 186
6.3 数组类型 188
6.3.1 一维数组的声明 188
6.3.2 一维数组元素的引用与初始化 190
6.3.3 数组作为函数的参数 192
6.3.4 一维数组应用举例 192
6.3.5 二维数组的声明 194
6.3.6 二维数组元素的引用与初始化 195
6.3.7 二维数组应用举例 196
6.3.8 指针与数组 198
6.4 字符串 200
6.3.9 指针数组与数组指针 200
6.4.1 字符串常量与变量 201
6.4.2 字符串数组 202
6.4.3 关于字符串操作的库函数 203
6.4.4 字符串与指针数组应用的例子(主函数带参数) 205
6.5 指向对象的指针 208
6.5.1 对象指针 209
6.5.2 对象的动态创建与撤销 210
6.5.3 对象的复制与比较 212
6.6 指向函数的指针 214
6.6.1 函数指针 214
6.6.2 函数指针作为参数 218
6.7.1 结构类型 219
6.6.3 主动对象 219
6.7 结构类型、枚举类型与类型别名 219
6.7.2 枚举类型 221
6.7.3 类型别名 222
6.8 高级数据结构应用 223
本章小结 228
练习与思考题 229
上机实习题 235
第七章 继承机制 236
7.1 继承的基本概念 236
7.1.1 IS-A关系 236
7.1.2 继承机制 237
7.1.3 继承的作用 238
7.1.4 继承与软件重用 239
7.1.5 C++继承常见的几种形式 239
7.2 C++语言的继承机制 240
7.2.1 继承的语法 240
7.2.2 继承成员的访问控制规则 243
7.2.3 一个应用继承机制的完整例子 245
7.2.4 派生类对象的存储组织 251
7.2.5 类型兼容性 252
7.3 继承与构造函数、析构函数 254
7.3.1 构造函数与析构函数的调用次序 254
7.3.2 向基类构造函数传递实际参数 256
7.4 继承成员的调整 257
7.4.1 恢复访问控制方式 257
7.4.2 继承成员的重定义 259
7.4.3 继承成员的重命名 261
7.4.4 屏蔽继承成员 261
7.5 多重继承 263
7.5.1 多重继承的应用背景 263
7.5.2 多重继承的语法形式 264
7.5.3 多重继承的名字冲突问题 265
7.5.4 多重继承的构造函数和析构函数 268
7.6.1 重复继承的应用背景 270
7.6 重复继承 270
7.6.2 重复继承的二义性问题 272
7.6.3 虚基类 274
7.6.4 虚基类的构造函数和析构函数 275
7.7 优化类层次设计 278
7.7.1 抽象与具体 279
7.7.2 封装与开放 279
7.7.3 使用继承与使用对象成员 280
7.7.4 典型类层次 280
7.7.5 其他技术 281
本章小结 281
练习与思考题 282
上机实习题 288
第八章 多态性 290
8.1 多态性的基本概念 290
8.1.1 程序的多态性 290
8.1.2 多态性的作用——表示独立性 291
8.2 函数重载 292
8.2.1 函数重载的方法 292
8.2.2 函数重载的注意事项 294
8.2.3 函数重载的二义性 296
8.2.4 构造函数重载 298
8.3.1 函数按值调用传递对象参数产生的问题 300
8.3 拷贝构造函数 300
8.3.2 对象作为函数返回值产生的问题 302
8.3.3 问题的解决——拷贝构造函数 304
8.4 运算符重载 306
8.4.1 运算符函数 306
8.4.2 类成员运算符重载 306
8.4.3 重载一元运算符“-” 310
8.4.4 重载赋值运算符“=” 311
8.4.5 重载下标运算符“[]” 311
8.4.6 友元 312
8.4.7 友元运算符重载 313
8.5.1 什么是虚函数 316
8.5 虚函数 316
8.4.8 运算符重载的其他规则 316
8.5.2 静态绑定与动态绑定 319
8.5.3 设计合适的绑定方式 320
8.6 抽象类 320
8.6.1 纯虚函数 320
8.6.2 抽象类 324
8.6.3 纯虚函数与抽象类的应用——多态数据结构 324
本章小结 336
练习与思考题 336
上机实习题 344
9.1.1 类型的严格性与灵活性 345
9.1.2 解决冲突的途径 345
9.1 类属的基本概念 345
第九章 类属机制 345
9.1.3 类属机制 346
9.2 类模板 346
9.2.1 类属类的定义 347
9.2.2 类属类的实例化 351
9.2.3 多个形式类属参数 353
9.2.4 类属类的继承关系 354
9.3 函数模板 362
9.3.1 类属函数 362
9.3.3 类属函数的实例化 363
9.3.2 类属函数的定义 363
9.3.4 类属函数的重载 364
本章小结 366
练习与思考题 366
上机实习题 368
第十章 输入/输出流 369
10.1 C++语言的输入/输出 369
10.1.1 外部设备与文件 369
10.1.2 程序中对文件的操作 370
10.1.3 文件的基本概念 370
10.2.1 流类库的基本结构 371
10.2 C++的流类库 371
10.2.2 预定义的流 372
10.2.3 支持文件的流类 372
10.2.4 支持字符串的流类 373
10.3 格式化输入/输出 374
10.3.1 使用ios成员函数 374
10.3.2 使用输入/输出操纵符 378
10.3.3 格式化输出到字符串 380
10.4 常用成员函数输入/输出 381
10.4.1 put成员函数 382
10.4.2 write成员函数 382
10.4.3 read和gcount成员函数 382
10.4.4 get成员函数 383
10.4.5 getline成员函数 386
10.4.6 peek、putback和ignore成员函数 387
10.5 设计自己的输入/输出操作 388
10.5.1 重载流的插入操作 388
10.5.2 重载流的提取操作 389
10.5.3 一个完整的实例 390
10.5.4 设计自己的输入/输出操纵符 394
10.6 检测流操作的错误 396
10.7 文件流 396
10.7.1 文件的打开与关闭 397
10.7.2 文本文件的操作 398
10.7.3 二进制文件的操作 400
10.7.4 文件的随机读/写 402
10.7.5 程序的打印输出 404
本章小结 405
练习与思考题 405
上机实习题 406
第十一章 面向对象软件构造 408
11.1 软件质量 408
11.2 程序断言机制 408
11.2.1 程序断言 408
11.2.2 程序断言的用法 410
11.2.3 在C++语言中实现部分断言 412
11.3.1 异常处理 413
11.3 异常处理机制 413
11.3.2 异常处理的模式 414
11.3.3 C++语言的异常处理机制 415
11.3.4 捕获所有类型的异常 417
11.3.5 带有异常说明的函数原型 418
11.3.6 异常的逐层传递 420
11.3.7 创建对象时的异常处理 421
11.4.1 可重用构件库开发规范 422
11.4.2 基本术语定义 422
11.4 可重用构件库 422
11.4.3 构件库组织形式与使用方法 423
11.4.4 构件库设计风格 425
11.4.5 构件库设计原则 431
11.4.6 构件库文档编制指南 432
11.5 面向对象软件构造 433
11.5.1 标识对象与行为 434
11.5.2 标识对象之间的关系 435
11.5.3 建立对象的类描述 435
11.5.4 创建并驱动对象的运行 435
11.6 实例研究:Petri网图形编辑器 435
11.6.1 问题定义 435
11.6.2 对象之间关系与类的设计 436
11.6.3 关于Petri网图形编辑器的讨论 466
本章小结 467
练习与思考题 467
上机实习题 469
第十二章 结束语 471
12.1 程序设计风范 471
12.1.1 过程程序设计 471
12.1.2 模块程序设计 471
12.1.3 类型程序设计 473
12.1.4 面向对象程序设计 475
12.2 面向对象程序设计语言 476
12.1.5 其他程序设计风范 476
12.2.1 Simula语言 477
12.2.2 Smalltalk语言 477
12.2.3 C++语言 478
12.2.4 Eiffel语言 478
12.2.5 Java语言 479
本章小结 481
练习与思考题 481
上机实习题 481
附录A ASCII编码表 482
附录B 主要术语索引 484
附录C 主要参考文献 489
- 《联吡啶基钌光敏染料的结构与性能的理论研究》李明霞 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《全国高等中医药行业“十三五”创新教材 中医药学概论》翟华强 2019
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《习近平总书记教育重要论述讲义》本书编写组 2020
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《高等数学试题与详解》西安电子科技大学高等数学教学团队 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《教育学考研应试宝典》徐影主编 2019
- 《语文教育教学实践探索》陈德收 2018
- 《家庭音乐素养教育》刘畅 2018