《软件开发实战 C++开发实战》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:软件开发技术联盟编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302318910
  • 页数:566 页
图书介绍:本书从初学者的角度讲述使用Visual C++ 6.0进行程序开发应该掌握的各项技术,突出“基础”、“全面”、“深入”,同时就像书名所暗示的一样,强调“实战”效果。 本书主要内容包括Visual C++ 6.0开发环境,程序设计基础,流程控制,函数,类和对象,对话框程序设计,MFC通用控件,MFC高级控件,菜单、工具栏和状态栏设计,文本、图形图像处理技术等。

第1篇 新手入门 3

第1章 绪论 3

1.1 C++历史背景 4

1.1.1 20世纪最伟大的发明——计算机 4

1.1.2 C++++发展历程 4

1.1.3 C++++发展中的杰出人物 5

1.2 Visual Studio 2010集成编译环境 6

1.2.1安装Visual Studio 2010. 6

1.2.2卸载Visual Studio 2010. 8

1.2.3使用Visual Studio 2010创建一个C++++控制台程序 9

1.2.4编写第一个C++++程序“Hello World” 11

1.3如何使用本书代码 12

1.4小结 12

第2章 数据类型 13

2.1第一个C++程序 14

2.1.1 #include指令 14

2.1.2注释 14

2.1.3 main函数 15

2.1.4函数体 15

2.1.5函数返回值 15

2.2数据类型概述 15

2.3常量及符号 16

2.3.1整型常量 17

2.3.2实型常量 17

2.3.3字符常量 18

2.3.4字符串常量 19

2.3.5其他常量 19

2.4变量 19

2.4.1标识符 20

2.4.2变量与变量声明 20

2.4.3整型变量 21

2.4.4实型变量 21

2.4.5变量赋值 22

2.4.6变量赋初值 22

2.4.7字符变量 22

2.5数据输入与输出 24

2.5.1控制台屏幕 24

2.5.2 C++++语言中的流 24

2.5.3流操作的控制 26

2.6实战 33

2.6.1输出一个正方形 33

2.6.2输出一个三角形 34

2.6.3简单求和程序 34

2.6.4数值型常量的使用 35

2.6.5将输入的小写字符转换为大写字符 35

2.6.6水池注水问题 36

2.7小结 37

2.8学习成果检验 37

第3章 表达式与语句 39

3.1运算符 40

3.1.1算术运算符 40

3.1.2关系运算符 41

3.1.3逻辑运算符 42

3.1.4赋值运算符 43

3.1.5位运算 44

3.1.6移位运算符 45

3.1.7 sizeof运算符 47

3.1.8条件运算符 48

3.1.9逗号运算符 48

3.2结合性和优先级 48

3.3表达式 50

3.3.1算术表达式 50

3.3.2关系表达式 50

3.3.3条件表达式 51

3.3.4赋值表达式 51

3.3.5逻辑表达式 51

3.3.6逗号表达式 51

3.3.7表达式中的类型转换 53

3.4语句 55

3.5实战 56

3.5.1求1~10的累加和 56

3.5.2求一个整数任意次方后的最后三位数 56

3.5.3婚礼上的谎言 57

3.5.4阿姆斯特朗数 58

3.5.5满足abcd=(ab+cd) 2的数 59

3.5.6最大公约数及最小公倍数 59

3.6小结 60

3.7学习成果检验 61

第4章 判断与循环 63

4.1条件判断 64

4.1.1 if语句 64

4.1.2 if…else语句 66

4.1.3嵌套的if-else语句 67

4.1.4使用条件运算符进行判断 71

4.1.5 switch判断语句 73

4.2循环语句 77

4.2.1 while循环语句 77

4.2.2 do…while循环 79

4.2.3 while与do…while比较 80

4.2.4 for循环语句 81

4.3循环控制 85

4.3.1控制循环的变量 85

4.3.2 break语句 86

4.3.3 continue语句 87

4.3.4 goto语句 88

4.4循环嵌套 90

4.5实战 92

4.5.1小写字母转大写 92

4.5.2百鸡百钱问题 92

4.5.3判断三角形类型 93

4.5.4简单计算器 94

4.5.5求总数问题 95

4.5.6加油站加油 96

4.5.7灯塔数量 97

4.5.8尼科彻斯定理 98

4.6小结 99

4.7学习成果检验 99

第5章 综合实验(1)——模拟ATM机界面程序 101

5.1概述 102

5.2需求分析 102

5.3设计思路 102

5.4详细设计 102

5.5程序代码 106

第2篇 进阶提高 113

第6章 数组 113

6.1一维数组 114

6.1.1如何定义和引用一维数组 114

6.1.2一维数组初始化 115

6.1.3一维数组应用 116

6.2二维数组 117

6.2.1如何定义和引用二维数组 117

6.2.2二维数组初始化 118

6.2.3二维数组应用 120

6.3多维数组 121

6.4字符数组 121

6.4.1如何定义和使用字符数组 121

6.4.2字符数组初始化 122

6.4.3字符数组的结束标志 125

6.4.4字符数组的输入和输出 126

6.4.5字符数组应用 128

6.5实战 129

6.5.1相邻元素之和 129

6.5.2选票系统 130

6.5.3统计学生成绩 131

6.5.4模拟比赛打分 132

6.5.5矩阵的转置 133

6.5.6设计魔方阵 135

6.5.7统计各种字符个数 136

6.6小结 137

6.7学习成果检验 137

第7章 函数 139

7.1函数概述 140

7.2函数的定义 142

7.2.1无参函数 142

7.2.2有参函数 142

7.2.3空函数 143

7.3返回语句 143

7.3.1从函数返回 143

7.3.2返回值 144

7.4函数参数 145

7.4.1形式参数与实际参数 145

7.4.2数组作函数参数 147

7.4.3 main参数 151

7.5函数的调用 153

7.5.1函数调用方式 153

7.5.2嵌套调用 153

7.5.3递归调用 155

7.6内部函数和外部函数 158

7.6.1内部函数 158

7.6.2外部函数 158

7.7局部变量和全局变量 160

7.7.1局部变量 160

7.7.2全局变量 161

7.8实战 163

7.8.1求数组元素中的最小值 163

7.8.2求直角三角形斜边 165

7.8.3小数分离 165

7.8.4判断素数 166

7.8.5递归解决分鱼问题 167

7.8.6字母检索 168

7.8.7求字符串中字符的个数 169

7.8.8打鱼晒网问题 170

7.9小结 172

7.10学习成果检验 172

第8章 指针和引用 173

8.1指针 174

8.1.1变量与指针 174

8.1.2指针运算符和取地址运算符 177

8.1.3指针运算 179

8.2指针与数组 180

8.2.1数组的存储 180

8.2.2指针与一维数组 180

8.2.3指针与二维数组 182

8.2.4指针与字符数组 186

8.3指向函数的指针 187

8.4指针与安全 188

8.4.1内存的分配方式 188

8.4.2内存安全 190

8.5引用 193

8.5.1左值与右值 193

8.5.2引用的概述 194

8.5.3右值引用 195

8.6函数与引用 196

8.6.1使用引用传递参数 196

8.6.2指针与引用 197

8.6.3右值引用传递参数 199

8.7实战 200

8.7.1使用左值引用实现整数排序 200

8.7.2查找成绩不及格的学生 201

8.7.3指针实现冒泡排序 202

8.7.4使用指针插入元素 203

8.7.5使用指针的指针输出字符串 204

8.7.6为二维数组动态分配内存并释放 205

8.7.7使用右值引用转换二进制为十进制 206

8.8小结 207

8.9学习成果检验 208

第9章 综合实验(2)——猜数字游戏 209

9.1概述 210

9.2需求分析 210

9.3系统设计 210

9.3.1设计目标 210

9.3.2开发及运行环境 210

9.4程序预览 211

9.5设计思路 213

9.6文件引用 213

9.7主要功能实现 213

9.7.1主函数 213

9.7.2猜数字 215

9.7.3光标定位 217

第3篇 核心技术 221

第10章 类和对象 221

10.1 C++类 222

10.1.1类概述 222

10.1.2类的声明与定义 222

10.1.3类的实现 224

10.1.4对象的声明 228

10.2构造函数 231

10.2.1构造函数概述 231

10.2.2复制构造函数 233

10.3析构函数 234

10.4类成员 236

10.4.1访问类成员 236

10.4.2内联成员函数 238

10.4.3静态类成员 239

10.4.4隐藏的this指针 241

10.4.5嵌套类 243

10.4.6局部类 244

10.5友元 245

10.5.1友元概述 245

10.5.2友元类 247

10.5.3友元方法 248

10.6命名空间 251

10.6.1使用命名空间 251

10.6.2定义命名空间 251

10.6.3在多个文件中定义命名空间 254

10.6.4定义嵌套的命名空间 255

10.6.5定义未命名的命名空间 257

10.7实战 257

10.7.1找出最高分 257

10.7.2计算平面两点间距离 260

10.7.3创建简单单向链表 261

10.7.4创建简单双向链表 265

10.7.5单向链表的逆置 269

10.7.6括号匹配检测 272

10.8小结 275

10.9学习成果检验 275

第11章 继承和派生 277

11.1继承 278

11.1.1类的继承 278

11.1.2继承后可访问性 280

11.1.3构造函数访问顺序 283

11.1.4子类隐藏父类的成员函数 284

11.2重载运算符 287

11.2.1重载运算符的必要性 288

11.2.2重载运算符的形式与规则 289

11.2.3重载运算符的运算 291

11.2.4转换运算符 293

11.3多重继承 295

11.3.1多重继承定义 295

11.3.2二义性 296

11.3.3多重继承的构造顺序 297

11.4多态 299

11.4.1虚函数概述 299

11.4.2利用虚函数实现动态绑定 299

11.4.3虚继承 301

11.5抽象类 303

11.5.1纯虚函数 303

11.5.2实现抽象类中的成员函数 305

11.6结构体 306

11.7实战 307

11.7.1接口的实现 307

11.7.2二维方阵的加减运算 310

11.7.3成员函数重写与虚函数继承的区别 312

11.7.4善用类指针 314

11.7.5链表合并 316

11.7.6柱状三维图形的体积 318

11.8小结 321

11.9学习成果检验 321

第12章 模板 323

12.1函数模板 324

12.1.1函数模板的定义 324

12.1.2函数模板的作用 325

12.1.3重载函数模板 327

12.2类模板 328

12.2.1类模板的定义与声明 328

12.2.2简单类模板 330

12.2.3默认模板参数 331

12.2.4为具体类型的参数提供默认值 332

12.2.5有界数组模板 333

12.3模板的使用 335

12.3.1定制类模板 335

12.3.2定制类模板成员函数 337

12.3.3模板部分定制 338

12.4 链表类模板 340

12.4.1链表 340

12.4.2使用链表类模板 342

12.4.3类模板的静态数据成员 345

12.5实战 347

12.5.1使用函数模板回收动态分配的内存 347

12.5.2三维坐标类模板 348

12.5.3多继承与函数模板 349

12.5.4实现链表模板的插入 350

12.5.5选择排序函数模板 351

12.6小结 353

12.7学习成果检验 354

第13章 文件操作 355

13.1文件流 356

13.1.1 C++++中的流类库 356

13.1.2类库的使用 356

13.1.3 ios类中的枚举常量 357

13.1.4流的输入/输出 357

13.2文件打开 358

13.2.1打开方式 358

13.2.2默认打开模式 359

13.2.3打开文件同时创建文件 360

13.3文件的读写 361

13.3.1文件流 361

13.3.2写文本文件 363

13.3.3读取文本文件 364

13.3.4二进制文件的读/写 365

13.3.5实现文件复制 366

13.4文件指针移动操作 368

13.4.1文件错误与状态 368

13.4.2文件的追加 368

13.4.3文件结尾的判断 370

13.4.4在指定位置读/写文件 371

13.5文件与流的关联和分离 373

13.6删除文件 374

13.7实战 375

13.7.1合并两个文件信息 375

13.7.2文件复制 376

13.7.3文件加密 377

13.7.4使用销毁的手段保护文件内容 379

13.7.5在文件中查找关键词出现的次数 380

13.8小结 382

13.9学习成果检验 382

第14章 综合实验(3)——图书管理系统 383

14.1系统设计 384

14.1.1需求分析 384

14.1.2系统目标 384

14.1.3系统功能结构 384

14.2图书类 385

14.3主程序 389

14.4添加图书 393

14.5显示图书信息 394

14.6删除图书 396

14.7小结 397

第4篇 高级应用 401

第15章 预处理 401

15.1本章知识体系 402

15.2不带参数的宏定义 402

15.3带参数的宏定义 404

15.4 #include命令 405

15.5条件编译 408

15.5.1 #if命令 408

15.5.2 #ifdef及#ifndef命令 410

15.5.3 #undef命令 412

15.5.4 #line命令 412

15.5.5 #pragma命令 413

15.6实战 413

15.6.1利用宏计算两个数的乘积 413

15.6.2利用宏求3个数中的最小数 414

15.6.3使用带参数的宏求圆面积 415

15.6.4利用文件包含设计输出模式 415

15.6.5使用条件编译隐藏密码 416

15.7疑难解惑 417

15.7.1 C++++语言中包括哪些预处理功能 417

15.7.2使用宏时需要注意些什么 417

15.7.3文件包含可以嵌套吗 418

15.8小结 418

15.9学习成果检验 418

第16章 STL标准模板库 419

16.1序列容器 420

16.1.1向量类模板 420

16.1.2双端队列类模板 422

16.1.3链表类模板 424

16.2结合容器 426

16.2.1 set类模板 426

16.2.2 multiset类模板 431

16.2.3 map类模板 435

16.2.4 multimap类模板 437

16.3算法 438

16.3.1非修正序列算法 438

16.3.2修正序列算法 441

16.3.3排序算法 445

16.3.4数值算法 451

16.4迭代器 455

16.4.1输出迭代器 455

16.4.2输入迭代器 456

16.4.3前向迭代器 457

16.4.4双向迭代器 457

16.4.5随机访问迭代器 458

16.5实战 459

16.5.1使用链表类模板加载学生类实例 459

16.5.2按索引排序 460

16.5.3使用并集算法合并容器 463

16.5.4利用容器算法洗牌 466

16.5.5筛选过期的药品 468

16.6小结 470

16.7学习成果检验 470

第17章 程序调试 471

17.1选择正确的调试方法 472

17.2程序错误常见的4种类型 472

17.2.1语法错误 472

17.2.2连接错误 473

17.2.3运行时错误 473

17.2.4逻辑错误 474

17.3调试工具的使用 475

17.3.1创建调试程序 475

17.3.2进入调试状态 476

17.3.3监视窗口 477

17.3.4调用堆栈窗口 477

17.3.5内存窗口 478

17.3.6变量窗口 478

17.3.7寄存器窗口 478

17.3.8反汇编窗口 479

17.4调试的基本应用 479

17.4.1变量的跟踪与查看 479

17.4.2位置断点的使用 480

17.5小结 481

第18章 综合实验(4)——商品销售系统 483

18.1商品类的设计 484

18.2销售系统的设计 485

18.3销售记录功能 497

18.4小结 502

第5篇 项目实战 505

第19章 网络通信 505

19.1 TCP/IP协议 506

19.1.1 OSI参考模型 506

19.1.2 TCP/IP参考模型 506

19.1.3 IP地址 507

19.1.4数据包格式 508

19.2套接字 510

19.2.1 Winsocket套接字 510

19.2.2 Winsocket的使用 510

19.2.3套接字阻塞模式 515

19.2.4字节顺序 515

19.2.5面向连接流 516

19.2.6面向无连接流 516

19.3简单协议通信 517

19.3.1服务端 517

19.3.2客户端 520

19.3.3实例的运行 521

19.4小结 521

第20章 吃豆子游戏 523

20.1 Windows应用程序 524

20.1.1建立Windows应用程序 524

20.1.2 WinMain函数 526

20.1.3 Windows消息循环 529

20.1.4常用绘图GDI 532

20.2制作PacMan 535

20.2.1 PacMan程序框架初步分析 535

20.2.2碰撞检测的实现 538

20.2.3地图类的设计 542

20.2.4数据更新 545

20.2.5绘图 553

20.2.6窗口设计 559

20.3小结 566