《C++程序开发案例课堂》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:刘春茂,李琪编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2019
  • ISBN:9787302515210
  • 页数:434 页
图书介绍:第1篇基础知识;第2篇核心技术;第3篇高级应用;第4篇项目实战;第5篇为王牌资源篇,赠送了大量的超值资源。

第1篇 基础入门 3

第1章 揭开C++的神秘面纱——我的第一个C++程序 3

1.1认识C++ 4

1.2 C++的优势 5

1.3常见的C++开发环境 6

1.4新手的福音——Visual Studio 2017集成环境 8

1.4.1安装Visual Studio 2017的条件 8

1.4.2安装Visual Studio 2017 8

1.5熟悉Visual Studio 2017开发界面 10

1.5.1创建项目 10

1.5.2菜单栏 12

1.5.3工具栏 13

1.5.4解决方案资源管理器 13

1.5.5【属性】面板 14

1.5.6【错误列表】面板 14

1.5.7【输出】面板 14

1.6实战演练——第一个C++项目 15

1.7理解C++语言的翻译过程 16

1.8大神解惑 17

1.9跟我学上机 18

第2章 零基础开始学习——C++的程序结构 19

2.1分析C++程序的结构 20

2.1.1 #include指令及头文件 20

2.1.2 main函数 21

2.1.3变量声明和定义 22

2.1.4函数的声明 24

2.1.5关于注释 25

2.2编译前的预处理 26

2.3输入和输出数据 29

2.3.1 cout输出数据 29

2.3.2 cin读取输入数据 32

2.4命名空间 33

2.4.1命名空间的定义 33

2.4.2 using关键字 34

2.4.3命名空间std 35

2.5实战演练——经典的入门程序 36

2.6大神解惑 38

2.7跟我学上机 38

第3章 程序中的数据种类——数据类型 39

3.1标识符 40

3.1.1保留字 40

3.1.2标识符命名 41

3.2变量与常量 41

3.2.1变量 41

3.2.2常量 44

3.3基本变量类型 46

3.3.1整数类型 46

3.3.2字符类型 48

3.3.3浮点数类型 50

3.3.4布尔类型 51

3.4查询变量的类型和内存空间大小 52

3.5自定义数据类型 53

3.6实战演练——对比不同数据类型的长度 57

3.7大神解惑 57

3.8跟我学上机 58

第4章 谁来操作数据——灵活使用运算符 59

4.1运算符概述 60

4.1.1赋值运算符 60

4.1.2算术运算符 61

4.1.3关系运算符 62

4.1.4逻辑运算符 64

4.1.5自增和自减运算符 65

4.1.6位逻辑运算符 66

4.1.7移位运算符 68

4.1.8三元运算符 69

4.1.9逗号运算符 70

4.1.10类型转换运算符 71

4.2运算符优先级和结合性 72

4.2.1运算符优先级 72

4.2.2运算符结合性 73

4.3实战演练——综合运用运算符 75

4.4大神解惑 76

4.5跟我学上机 77

第5章 程序的执行方向——程序流程控制 79

5.1顺序语句 80

5.2条件判断语句 81

5.2.1 if条件 81

5.2.2 if-else条件 82

5.2.3条件运算符 83

5.3循环语句 84

5.3.1 for循环 85

5.3.2 while循环 86

5.3.3 do-while循环 87

5.4多重选择——switch语句 88

5.5跳出循环 90

5.5.1 continue语句 90

5.5.2 break语句 90

5.5.3 goto语句 91

5.6实战演练——流程控制综合应用 92

5.7大神解惑 95

5.8跟我学上机 96

第Ⅱ篇 核心技术 99

第6章C++的灵魂——函数的应用 99

6.1函数的基本结构 100

6.1.1函数的声明、定义和调用 100

6.1.2参数的传递方式 101

6.1.3函数的默认参数 103

6.1.4函数的返回值 104

6.2变量的作用域 105

6.2.1局部变量 105

6.2.2静态局部变量 106

6.2.3外部变量 107

6.2.4寄存器变量 108

6.3特殊函数调用方式——递归调用 108

6.4内联函数 109

6.5预处理器 110

6.5.1 #define预处理器 110

6.5.2 #define的作用 111

6.5.3 const修饰符 112

6.6函数的重载 113

6.7实战演练——汉诺塔问题函数 114

6.8大神解惑 116

6.9跟我学上机 116

第7章 特殊的元素集合——数组与字符串 117

7.1一维数组 118

7.1.1一维数组的声明 118

7.1.2数组初始化 119

7.1.3数组的操作 120

7.2二维数组和多维数组 121

7.2.1二维数组的声明 121

7.2.2二维数组的使用和存取 122

7.2.3多维数组 123

7.3数组与函数 125

7.3.1一维数组作为函数的参数 125

7.3.2传送多维数组到函数 126

7.4字符串类 127

7.4.1字符串的声明 127

7.4.2字符串的输入和输出 128

7.4.3字符串处理 129

7.5实战演练1——判断字符串回文 132

7.6实战演练2——输出斐波那契数列 134

7.7大神解惑 135

7.8跟我学上机 136

第8章 灵活调用内存地址——指针 137

8.1指针概述 138

8.1.1什么是指针 138

8.1.2为什么要用指针 138

8.1.3指针的地址 139

8.2指针变量 139

8.2.1指针变量的声明 139

8.2.2指针变量的使用 140

8.3指针与函数 141

8.3.1指针传送到函数中 141

8.3.2返回值为指针的函数 142

8.3.3函数指针 143

8.4指针与数组 144

8.4.1指针的算术运算 145

8.4.2利用指针存储一维数组的元素 146

8.4.3利用指针传递一维数组到函数中 147

8.5指针与字符串 147

8.6 const指针 148

8.7 void指针 149

8.8指向指针的指针 149

8.9动态内存配置 150

8.9.1使用基本数据类型做动态配置 151

8.9.2使用数组做动态配置 152

8.10实战演练——判断字符串中有多少个整数 153

8.11大神解惑 155

8.12跟我学上机 156

第9章 灵活定义数据类型——结构体、共用体和枚举类型 157

9.1结构体 158

9.1.1结构体的声明 158

9.1.2结构体变量的初始化与使用 159

9.1.3结构体数组初始化 161

9.2将结构体变量作为函数参数 162

9.2.1将整个结构体传送到函数 162

9.2.2传送结构体的地址到函数 163

9.3共用体 164

9.3.1共用体的定义和声明 164

9.3.2共用体类型的初始化和使用 165

9.3.3 struct和union的差异 166

9.4枚举类型 167

9.4.1枚举类型的定义和声明 167

9.4.2枚举类型的初始化和使用 168

9.5实战演练——学生信息登记表 169

9.6大神解惑 172

9.7跟我学上机 172

第10章 主流的编程思想——认识面向对象编程 173

10.1面向对象编程概述 174

10.1.1面向对象编程的几个概念 174

10.1.2面向对象编程与面向过程编程的区别 175

10.2认识类 175

10.2.1类的基本概念 175

10.2.2类的定义 175

10.2.3类对象的生成 177

10.2.4类对象指针 178

10.3成员函数 180

10.4嵌套类 182

10.5 const成员函数 182

10.6类成员的访问控制 184

10.6.1私有成员 184

10.6.2公有成员 185

10.6.3保护成员 186

10.7静态成员 187

10.7.1静态数据成员 187

10.7.2静态成员函数 189

10.8友元函数 190

10.9实战演练——栈类的实现 191

10.10大神解惑 193

10.11跟我学上机 194

第11章 类的特殊函数——构造函数和析构函数 195

11.1构造函数初始化类对象 196

11.1.1什么是构造函数 196

11.1.2使用构造函数 196

11.2析构函数清除类对象 198

11.2.1析构函数的概念 198

11.2.2析构函数的调用 198

11.3默认构造函数 200

11.4重载构造函数 201

11.4.1重载构造函数的作用 201

11.4.2重载构造函数的调用 201

11.5类对象数组的初始化 202

11.5.1类对象数组调用 203

11.5.2类对象数组和默认构造函数 204

11.5.3类对象数组和析构函数 206

11.6拷贝构造函数 207

11.6.1拷贝构造函数的概念 207

11.6.2深拷贝和浅拷贝 208

11.7实战演练——构造函数和析构函数的应用 210

11.8大神解惑 212

11.9跟我学上机 212

第Ⅲ篇 高级应用 215

第12章 赋予新功能——运算符的重载 215

12.1什么是运算符重载 216

12.1.1运算符重载的形式 216

12.1.2可重载的运算符 218

12.2重载前置运算符和后置运算符 219

12.2.1重载前置运算符 219

12.2.2重载后置运算符 221

12.3插入运算符和析取运算符的重载 222

12.3.1插入运算符重载 222

12.3.2析取运算符重载 223

12.4常用运算符的重载 225

12.4.1“<”运算符的重载 225

12.4.2“+”运算符的重载 226

12.4.3“=”赋值运算符重载 227

12.5实战演练——重载运算符综合应用 230

12.6大神解惑 231

12.7跟我学上机 232

第13章 实现代码重用——类的继承 233

13.1继承的基本概念 234

13.1.1基类和继承类 234

13.1.2简单的基础实例 235

13.2调用父类中的构造函数 240

13.3子类存取父类成员 243

13.3.1私有成员的存取 243

13.3.2继承与静态成员 244

13.4多继承 246

13.5实战演练——继承的综合应用 248

13.6大神解惑 250

13.7跟我学上机 250

第14章 实现多态性——虚函数和抽象类 251

14.1什么是虚函数 252

14.1.1虚函数的作用 252

14.1.2动态绑定和静态绑定 253

14.2抽象类与纯虚函数 255

14.2.1定义纯虚函数 255

14.2.2抽象类的作用 256

14.2.3虚析构函数 257

14.3抽象类的多重继承 259

14.4虚函数表 260

14.4.1什么是虚函数表 260

14.4.2继承关系的虚函数表 262

14.5实战演练——抽象类的综合应用 263

14.6大神解惑 266

14.7跟我学上机 266

第15章 数据存储——C++操作文件 267

15.1文件的基本概念 268

15.1.1文件I/O 268

15.1.2文件顺序读写 271

15.1.3随机文件读写 271

15.2文件的打开与关闭 273

15.2.1文件的打开 273

15.2.2文件的关闭 275

15.3文本文件的处理 275

15.3.1将变量写入文件 275

15.3.2将变量写入文件尾部 276

15.3.3从文本文件中读入变量 277

15.3.4使用get()、getline()和put()函数 278

15.4处理二进制文件 280

15.5实战演练——文件操作 282

15.6大神解惑 284

15.7跟我学上机 285

第16章 解决问题的法宝——异常处理 287

16.1异常的基本概念 288

16.2异常处理机制 288

16.3抛出异常 289

16.4重新抛出异常 291

16.5捕获所有异常 292

16.6未捕捉到的异常 293

16.7标准异常 294

16.8异常规范 294

16.9异常与继承 295

16.10自定义异常类 296

16.11捕获多个异常 298

16.12实战演练——异常处理应用 299

16.13大神解惑 301

16.14跟我学上机 302

第17章C++的高级技能——模板与类型转换 303

17.1模板 304

17.1.1函数模板 304

17.1.2类模板 305

17.1.3模板参数 307

17.1.4模板的特殊化 308

17.1.5重载和函数模板 309

17.2类型识别和强制转换运算符 311

17.2.1运行时类型识别 311

17.2.2强制类型转换运算符 314

17.3实战演练——模板的综合应用 316

17.4大神解惑 318

17.5跟我学上机 318

第18章 控制元素的存储和访问——容器和迭代器 321

18.1 STL 322

18.2迭代器 322

18.3顺序容器 323

18.3.1向量 323

18.3.2双端队列 325

18.3.3列表 326

18.4关联容器 327

18.4.1集合和多集 327

18.4.2映射和多重映射 329

18.5容器适配器 330

18.5.1栈 330

18.5.2队列 331

18.5.3优先级队列 332

18.6实战演练——容器的综合操作 333

18.7大神解惑 338

18.8跟我学上机 338

第Ⅳ篇 项目开发实战 341

第19章 项目实训1——开发计算器助手 341

19.1需求分析 342

19.2功能分析 342

19.3开发前的准备工作 343

19.4系统代码编写 343

19.4.1 CalculatorAssistant.h和CalculatorAssistant.cpp文件 344

19.4.2 Complex.h和Complex.cpp文件 347

19.4.3 Fraction.h和Fraction.cpp文件 351

19.4.4 main.cpp文件 356

19.5系统运行 356

19.6项目总结 358

第20章 项目实训2——开发汽车信息管理系统 359

20.1需求分析 360

20.2功能分析 360

20.3开发前的准备工作 362

20.4系统代码编写 362

20.4.1 Date.h文件 362

20.4.2 DateException.h文件 363

20.4.3 Vehicle.h和Vehicle.cpp文件 364

20.4.4 VehicleManage.h和VehicleManage.cpp文件 366

20.4.5 Main.cpp文件 373

20.5系统运行 376

20.6项目总结 378

第21章 项目实训3——开发银行交易系统 379

21.1需求分析 380

21.2功能分析 380

21.3开发前的准备工作 381

21.4系统代码编写 382

21.4.1交易流程处理、余额查询、存款和取款等功能 382

21.4.2相关设备模拟 388

21.4.3交易设备、数据库和账户等具体实现 390

21.4.4设备处理、交易处理、操作处理和验证处理等功能 394

21.4.5主程序运行入口 398

21.5系统运行 398

21.6项目总结 399

第22章 项目实训4——开发学校职工信息管理系统 401

22.1需求分析 402

22.2功能分析 402

22.3开发前的准备工作 404

22.4系统代码编写 404

22.4.1职工信息的数据结构的基类属性和成员方法 404

22.4.2各人员类的声明、定义和实现 407

22.4.3系统职工信息增删改查功能的声明、定义 413

22.4.4系统增删改查以及菜单功能的实现 416

22.4.5主程序运行入口 432

22.5系统运行 432

22.6项目总结 434