当前位置:首页 > 工业技术
现代C++程序设计
现代C++程序设计

现代C++程序设计PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:(美)Barbara Johnston著;曾葆青,丁晓非等译
  • 出 版 社:清华大学出版社
  • 出版年份:2005
  • ISBN:7302108056
  • 页数:569 页
图书介绍:本书用简单通俗的语言,细腻生动地介绍了C++语言和面向对象程序设计技术,全书图文并茂,易学易懂,真正做到了寓教于乐,是一本难得的C++面向对象设计入门教材。本书读者对象是高校计算机系及软件学院低年级学生、非计算机专业软件工程硕士,计算机专业二学位和双学位学生、非计算机专业的计算机语言公共选修课学生以及计算机业余爱好者。
《现代C++程序设计》目录

第1章 C++与软件开发 1

欢迎来到C++的世界 2

1.1 什么是C,什么是C++ 4

1.1.1 C和C++发展简史 5

1.1.2 C/C++是编译语言 5

1.1.3 为什么程序员们喜欢C++ 6

1.2 什么是面向对象 7

1.2.1 C++程序不是自动面向对象的 7

1.2.2 一个简单的面向对象程序案例 7

1.2.3 面向对象的软件更受欢迎 8

1.3 结构化设计与面向对象设计 9

1.3.1 ATM的结构化方法 9

1.3.2 ATM的面向对象方法 9

1.4.1 如何不编程 11

1.4 软件开发技术简介 11

1.5 找错 12

1.5.1 我的程序哪儿出了错 12

作业 13

简答题 13

目录 13

复习题与作业 13

致谢 13

第2章 C++入门:数据类型、变量、操作符、算术、简单输入输出 14

软件开发简介 15

2.1 编程基础 15

2.1.1 算法设计 15

2.1.3 练习:如何给猫洗澡 17

2.1.2 走成功编程之路 17

2.1.4 三分原则 18

2.1.5 如何编程 19

2.2 术语及项目的建立 19

2.2.1 项目的建立步骤 20

2.3 C++程序的一般格式 21

2.3.1 Hello World!程序 21

2.3.2 注释 21

2.3.3 预处理指令 22

2.3.4 main函数 22

2.3.5 函数首行 22

2.3.6 C++语句 23

2.3.7 气象信息 23

2.3.8 空白字符与C++灵活的编程风格 24

2.3.9 语法与编译错误 25

2.3.10 C++关键字 26

2.3.11 大小写敏感 27

2.3.12 好的编程风格 27

2.3.13 坚持好的风格 27

2.3.14 关于程序中的注释 28

2.4 程序与数据:球与球拍 28

2.5 C++中的数据类型 29

2.5.1 物品架=内存,容器=数据类型,标签=变量名 30

2.5.2 数据类型修饰符 31

2.5.3 找错:整数有多大 31

2.6 C++中的变量声明 32

2.6.2 在哪里声明变量 33

2.6.1 C++中的命名规则 33

2.7.1 操作的优先级 34

2.7 C++中的操作符 34

2.7.2 赋值操作符 35

2.7.3 算术操作符 36

2.7.4 自增量和自减量操作符 41

2.7.5 累计操作符 42

2.7.6 C++中的其他操作符 43

2.8 其他话题:#define、const和数据类型转换 43

2.8.1 #define 43

2.8.2 const修饰符 44

2.8.3 const优于#define吗 45

2.8.4 数据类型转换 46

2.10.1 找错:赋值操作的摆放位置 48

2.9 键盘输入和屏幕输出 48

2.10 练习 48

2.10.2 计算圆柱体的体积 49

2.10.3 求余和距离换算 50

2.10.4 将字符数据表示为十进制、十六进制、八进制数,流格式化 51

复习题与作业 51

简答题 51

程序改错题 52

代码阅读 53

编程题 54

第3章 控制语句和循环 55

判断,还是判断 56

3.1 关系操作符和逻辑操作符 56

3.1.1 表达式求值和操作符优先级 57

3.2 if语句 59

3.2.1 if else语句 60

3.2.2 if语句中的括号错误 61

3.2.3 if—else if—else语句 62

3.2.4 低效率编程方法 64

3.2.5 if else:This Old Man编程举例 65

3.2.6 嵌套if else语句 66

3.2.7 “?”操作符 67

3.3 switch语句 68

3.3.1 找错:不要忘了break 69

3.4 循环语句概述 70

3.4.1 加括号还是不加括号 70

3.5 for循环 71

3.4.2 无法跳出无穷循环 71

3.5.1 不要更改循环指标 72

3.5.2 for循环举例 73

3.6 while循环 74

3.6.1 while循环举例 75

3.7 do while循环 76

3.7.1 do while举例 77

3.8 排除错误 79

3.8.1 4种常见错误 79

3.8.2 找错:循环无法中止 80

3.8.3 找错:分号和括号 82

3.8.4 找错:放错位置的else、非法else、文件不完整错误 83

3.9 总结 84

3.8.5 调试程序 84

3.10 练习 86

3.9.1 缩进原则 86

3.10.1 时间转换 87

3.10.2 数 89

3.10.3 输出图案 90

复习题与作业 92

简答题 92

找错题:编译错误 93

找错题:运行期错误 93

代码阅读 95

编程题 95

第4章 指针、地址、间接寻址操作符 97

4.2 变量与内存 98

泊车与指针 98

4.1 指针的重要性 98

4.2.1 sizeof操作符 99

4.2.2 分配内存 100

4.2.3 计算机内存与十六进制数 101

4.3 取地址操作符& 102

4.4 指针 104

4.4.1 指针与取地址操作符 104

4.4.2 小红帽与白宫 106

4.4.3 指针与间接寻址操作符 106

4.4.4 指针类型混用 109

4.5 指针有什么用 110

4.5.1 C++中的函数只返回一个值 110

4.5.2 高效处理大数据结构、数组、类 111

4.6 总结 112

4.6.1 指针:早学,勤练 113

4.7 练习 113

4.7.1 问候与指针 113

4.7.2 “This Old Man”与指针 114

4.7.3 金字塔的体积与指针 115

复习题与作 116

简答题 116

代码阅读 116

找错题 117

编程题 118

第5章 函数第Ⅰ部分:基本概念 119

5.1.1 使用函数之前 120

盖房子与开发软件 120

5.1 C++中的函数 120

5.1.2 有了函数以后 121

5.1.3 使用函数有很多优点 122

5.2 函数的基本格式 122

5.2.1 4个简单函数例子 123

5.2.2 调用函数与被调函数 124

5.3 写函数的要求 125

5.3.1 计算年龄 125

5.3.2 函数原型 126

5.3.3 函数调用 127

5.3.4 函数首行与函数体 127

5.3.5 传值调用 129

5.3.6 再看一个例子 130

5.3.7 回顾函数的一般形式 132

5.3.8 找错:类型失配 133

5.3.9 找错:调用语句中的数据类型 134

5.3.10 函数使用要求与C++库 135

5.4 局部变量、静态变量、全局变量 135

5.4.1 局部变量 136

5.4.2 找错:忘记声明变量 136

5.4.3 静态变量 137

5.4.4 全局变量 138

5.4.5 全局变量是危险的 139

5.4.6 找错:全局变量y1和math.h 139

5.5.1 传值调用复习 141

5.5 指针与函数 141

5.5.2 函数返回两个值 142

5.5.3 指针复习 142

5.5.4 传引用调用:将变量地址传给函数 143

5.6 总结 145

5.7 练习 146

5.7.1 素数 146

5.7.2 随机数 150

5.7.3 时间转换 151

5.7.4 猫和狗 152

复习题与作业 155

简答题 155

代码阅读 156

编程题 157

程序找错题 157

第6章 数组 159

跑得更快,跳得更高 160

6.1 使用单数据变量 160

6.2 数组基础 161

6.2.1 C++中的数组下标从零开始 162

6.2.2 数组不被自动初始化 162

6.2.3 初始化一维数组 162

6.2.4 for循环与数组 163

6.3 数组的伴随指针 165

6.3.1 数组指针 165

6.4 一维数组和函数 166

6.4.2 向函数传递一维数组 167

6.4.1 数组与数组指针 167

6.4.3 求数组元素的平均值 168

6.4.4 找错:不能从函数中“返回”数组 169

6.5 字符数组 172

6.5.1 字符数组的初始化 173

6.5.2 空字符 173

6.5.3 输入字符串 175

6.5.4 读取数值和字符数据 181

6.5.5 C++中的字符串函数 183

6.6 多维数组 184

6.6.1 二维数组的初始化 185

6.6.2 嵌套for循环和二维数组 186

6.6.3 二维数组的应用:水电杂费计算程序 186

6.7.1 重新设计水电杂费计算程序 188

6.7 多维数组与函数 188

6.7.2 白雪公主:用二维数组存储姓名 190

6.8 数组下标越界 190

6.8.1 数组下标越界等于灾难 192

6.9 从文件中读数据 192

6.10 总结 192

6.11 练习 194

6.11.1 常用单词 194

6.11.2 气象信息 195

复习题与作业 199

简答题 199

找错题:编译错误 199

找错题:运行期错误 200

编程题 201

第7章 用户定义的数据类型、结构与枚举 204

建城堡 205

7.1 用户定义的数据类型 205

7.1.1 将数据分组 205

7.1.2 结构与枚举 206

7.2 结构 206

7.2.1 数据类型基本概念回顾 206

7.2.2 创建并声明结构 207

7.2.3 结构说明 208

7.2.4 无名结构 209

7.3 访问结构成员 210

7.3.1 方框图 210

7.3.2 访问结构成员 210

7.4.1 结构数组举例 213

7.4 结构数组 213

7.5 结构中的结构 216

7.5.1 使用了时间结构的竞赛程序 216

7.5.2 嵌套了两个结构的结构 217

7.6 复制结构 219

7.7 结构与函数 220

7.7.1 时间结构举例 221

7.7.2 求线段的中点 222

7.8 传引用调用:将结构地址传递给函数 223

7.8.1 函数与指针:简要回顾 223

7.8.2 结构变量的赋值与返回 225

7.8.3 右箭操作符与点操作符 226

7.8.4 程序员的捷径 227

7.8.5 编程案例:观鸟 228

7.9 结构数组与函数 230

7.9.1 底线 230

7.9.2 举例:Student结构数组 231

7.10 枚举数据类型 232

7.10.1 通过枚举变量创建编号序列 233

7.10.2 枚举变量:赋值与比较 235

7.10.3 枚举变量找错:选择枚举值要谨慎 238

7.10.4 举例:数硬币 239

7.10.5 枚举变量的输入与输出 240

7.11 枚举类型与函数 242

7.11.1 举例:光学器件与错误代码 243

7.13.1 计算时间 245

7.12 多文件程序 245

7.13 练习 245

7.13.2 扑克牌 247

7.13.3 趣味狗秀 248

复习题与作业 251

简答题 251

找错:编译错误 252

找错:运行期错误 253

编程题 254

第8章 函数第Ⅱ部分:高级概念 256

8.1.1 基本要求 257

8.1.2 传值调用 257

8.1 函数复习 257

走进新世界 257

8.1.3 调用函数与被调函数 259

8.1.4 传引用调用:向函数传递变量地址 259

8.1.5 全局变量与函数 260

8.1.6 函数传递数据的4种方法 261

8.2 利用引用参数的传引用调用 262

8.2.1 通过引用参数进行函数的传引用调用 262

8.2.2 引用变量数组 269

8.3 函数重载 270

8.3.1 在过去的C时代 270

8.3.2 函数重载 271

8.4 可变长参数表函数 273

8.4.1 画线程序 274

8.4.2 参数顺序 275

8.4.3 找错:函数重载 278

8.4.4 不同类型的重载函数 280

8.5 内联函数 281

8.6 总结 282

复习题与作业 282

简答题 282

找错题:编译错误 283

找错题:运行期错误 285

编程题 287

第9章 类与对象 290

9.1 面向对象的原则和定义 291

9.1.1 简介 291

打蜡 291

9.1.2 面向对象语言的基本原则 293

9.1.3 对象存在于生活中 294

9.1.4 对象定义 295

9.2 类与对象 296

9.2.1 面向对象分析:特征、行为和功能 296

9.2.2 面向对象设计 297

9.2.3 结构化网球程序 298

9.2.4 类的声明 299

9.2.5 网球类 300

9.2.6 如何给数据成员赋值 302

9.3 定义成员函数 305

9.3.1 两种不同格式 305

9.3.2 举例:球体类 305

9.4.1 数据成员的初始化 308

9.4 类的构造函数 308

9.4.2 构造函数 309

9.4.3 举例:构造函数与时钟 310

9.4.4 构造函数注意事项 312

9.4.5 举例:两个日期 312

9.5 析构函数 315

9.6 一个简单例子 316

9.6.1 学习难点 316

9.6.2 举例:Gadgets程序 316

9.6.3 找错:与类相关的常见错误 320

9.7 对象数组 325

9.7.1 PhoneList对象数组 325

9.7.2 对象数组和扑克牌 328

9.8 操作符重载与对象 330

9.8.1 一元操作符重载 331

9.8.2 增量/减量操作符的前缀形式与后缀形式 332

9.8.3 二元操作符重载 333

9.9 指针与类 339

9.9.1 举例 340

9.10 总结 346

9.10.1 结构与类的比较 347

9.11 练习 348

9.11.1 足球运动员 348

复习题与作业 353

简答题 353

找错题:编译错误 353

找错题:运行期错误 356

编程题 358

第10章 类之间的关系 360

开心时刻 361

10.1 对象模型和类关系 361

10.2 使用C++的类 362

10.2.1 输入输出流类iostream 362

10.2.2 C++字符串类 362

10.2.3 C++数值类 362

10.2.4 使用名字空间std 363

10.2.5 名字空间举例 363

10.3 “有”关系和“使用”关系 365

10.3.1 例1:顾客与收银员 365

10.3.2 例2:掷色子 372

10.3.3 例3:教练的秒表 376

10.3.4 例4:可乐零售机 379

10.4 总结 387

作业 387

第11章 继承与虚函数 392

家长与孩子 393

11.1 为什么继承如此重要 393

11.1.1 举例:计数器类 393

11.1.2 答案是继承 395

11.2 继承基础 395

11.2.1 举例:Counter与NewCounter 395

11.2.2 受保护的成员 399

11.2.3 雇员、经理、执行总裁 401

11.3 存取说明符的特殊用法 408

11.5 继承、构造函数和析构函数 410

11.5.1 复习构造函数和析构函数 410

11.4 多重继承 410

11.5.2 基类和派生类的构造函数 411

11.5.3 基类和派生类的析构函数 411

11.5.4 基类和派生类构造函数的参数传递 412

11.5.5 找错:继承 419

11.6 继承举例 420

11.6.1 动物园 421

11.6.2 洗牌与发牌 424

11.6.3 面向对象程序设计 425

11.6.4 类声明 427

11.7.1 多态:一个界面,多种形式 434

11.7 多态与虚函数 434

11.7.2 什么是虚函数 435

11.7.3 纯虚函数 437

11.7.4 虚函数的应用 438

11.8 总结 443

复习题与作业 443

简答题 443

编程题 444

第12章 高级C++编程 446

冰山的启示 447

12.1 动态内存分配 447

12.1.1 概述 447

12.1.2 new和delete操作符 448

12.1.3 如果new操作失败,会出什么事 451

12.2 星球大战 452

12.2.1 为二维和三维数组分配内存 452

12.2.2 在函数之间多次传递地址 457

12.3 异常处理 458

12.3.1 举例 459

12.3.2 new操作符的异常处理 461

12.4 微软基础类库(MFC) 462

12.4.1 简述 462

12.4.2 快速构建一个会发声的Windows应用程序 463

12.5 JavaTM程序设计语言 465

12.5.1 JavaTM是没有指针的C++ 465

12.5.2 Java版“Hello World” 466

12.6 总结:模板、标准模板库、友元 466

12.6.1 cout<<″\n再见!″; 467

附录A Visual C++使用入门 468

附录B C++关键字 480

附录C C++中的操作符 492

附录D ASCII码 493

附录E 位、字节、内存及十六进制表示法 497

附录F 文件输入输出 502

附录G C++的string类 515

附录H 多文件程序 524

附录I 键盘输入和屏幕输出 532

附录J Microsoft Visual C++调试工具 544

附录K 例子程序索引 552

参考文献 559

词汇表 560

相关图书
作者其它书籍
返回顶部