C++基础与案例开发详解

C++基础与案例开发详解"

作者:王海龙、程传鹏
ISBN:9787302339618
定价:¥58
字数:千字
页数:
出版时间:2014.01.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

    作为从C语言发展而来的一种优秀的高级程序设计语言,C++在计算机科学的各个领域中得到了广泛的应用,尤其适合于系统级的程序设计,是应用最广泛的程序设计语言之一。

    本书在结构安排上充分考虑到了初学者的实际情况,在组织结构上,针对C++语言的特点,分为三部分,共17章。其中第1~7章为第一部分,主要介绍了结构化程序设计,包括C++基础知识、控制流程语句、函数、数组、字符串、指针、结构体、共用体和枚举类型、链表、内存动态分配和释放等。第8~12章为第二部分,主要介绍了面向对象程序设计,包括类和对象、继承和派生、虚函数和多态性;I/O流类以及文件操作、函数模板、类模板和标准模板库等。第13~17章为第三部分,是综合案例,依次介绍了银行卡管理系统、成绩管理系统、工资发放系统、旅店管理系统、图书管理系统等。通过精心设计的案例深入浅出地介绍了C++语言程序设计的特点,循序渐进地介绍了面向对象程序设计的思想和方法。

    本书既可作为高等院校各专业学生学习C++的基础教材,又可作为编程爱好者的自学教程。

前言

前    言

  C++语言是从C语言发展而来的一种优秀的高级程序设计语言,它具有全面兼容C语言并支持面向对象的特点。面向对象的设计思想是在原来结构化程序设计方法的基础上的一个质的飞跃,C++完美地体现了面向对象的各种特性,支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。C++以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用,尤其适合于系统级的程序设计,是应用最广泛的程序设计语言之一,深受广大编程爱好者的喜爱。

  本书特色如下。

* 全新体系,内容翔实:本书以面向过程的程序设计为切入点,从编写简单的程序开始,循序渐进,由面向过程到面向对象,逐步深入,符合读者的认识规律。

* 概念清晰,突出算法:本书详细介绍了程序设计的基本思想、概念和技术,C++语言是作为程序设计的工具,所以我们将从语言、语法的学习,上升到程序的“设计、算法、编程、调试”的层次。

* 通俗易懂,可读性强:本书尽量用通俗易懂的语言来叙述复杂的概念,力求减少初学者学习C++的困难。

* 理论丰富,注重实践:本书每个章节中均包含多个实例,着重于强化编程实践,注重动手能力的培养。

  本书共分17章,在组织结构上,针对C++语言的特点,分为三部分。其中第1~7章为第一部分,主要介绍结构化程序设计,包括C++基础知识、控制流程语句、函数、数组、字符串、指针、结构体、共用体和枚举类型、链表、内存动态分配和释放等。第8~12章为第二部分,主要介绍面向对象程序设计,包括类和对象、继承和派生、虚函数和多态性;I/O流类以及文件操作、函数模板、类模板和标准模板库等。第13~17章为第三部分,是综合案例,依次介绍银行卡管理系统、成绩管理系统、工资发放系统、旅店管理系统、图书管理系统等。通过精心设计的案例,深入浅出地讲解C++语言程序设计的特点,循序渐进地介绍面向对象程序设计的思想和方法。

  本书基础知识介绍清晰明了,理论联系实际,具有很强的操作性。实例介绍知识面广,不仅温习了前面所学的内容,还扩展介绍了相关的应用技巧,从而保证读者能够更好地掌握C++程序设计语言。

  本书既可作为高等院校各专业学生学习C++的基础教材,又可作为编程爱好者的自学教程。即使没有教师讲授,读者也能完全读懂本书的内容。

  本书由王海龙、程传鹏老师担任主编并统稿,其中,第1~2章由郭德双编写,第5~7章由夏敏捷编写,第13~15章由程传鹏编写,其他章节由王海龙编写。此外,徐明华、尼春雨、陈丽丽、李远、尼朋、赵丹、王国胜、伏银恋、胡文华、曹培培、孟文婷、蒋燕燕、蒋军军、张班班、张悦、张丽、张石磊等人也参与了本书的整理核对和光盘制作,在此一并表示感谢。

  由于编者水平有限,书中难免有疏漏和不足之处,恳请专家和广大读者指正。

  

  

  编  者

  

  

  

  

  

  

  

  

  

目录

目    录

第1 章  C++概述 1

1.1  程序设计语言的发展 2

1.1.1  机器语言阶段 2

1.1.2  汇编语言阶段 2

1.1.3  高级语言阶段 3

1.1.4  从C到C++ 4

1.2  简单的C++程序介绍 4

1.3  程序开发的过程 7

1.4  上机练习 8

第2章  数据类型、运算符和表达式 11

2.1  标识符和关键字 12

2.1.1  标识符 12

2.1.2  关键字 12

2.2  C++的基本数据类型 13

2.2.1  int和double类型 13

2.2.2  其他数值类型 14

2.2.3  char类型 15

2.2.4  类型的兼容性 15

2.3  变量和赋值 16

2.3.1  变量 16

2.3.2  赋值语句 17

2.4  基本运算符和表达式 19

2.4.1  基本运算符和表达式的

简介 19

2.4.2  算术运算符和算术表达式 20

2.4.3  赋值运算符和赋值表达式 21

2.4.4  关系运算符和关系表达式 22

2.4.5  逻辑运算符与逻辑表达式 23

2.4.6  位运算符和位运算表达式 24

2.4.7  条件运算符和条件表达式 25

2.4.8  逗号运算符和逗号表达式 26

2.4.9  sizeof运算符和表达式 26

2.5  简单的输入/输出实现方法 26

2.5.1  格式化输入输出

——scanf()和printf() 27

2.5.2  I/O流 29

2.5.3  cin 29

2.5.4  cout 30

2.5.5  输出控制符 30

2.6  上机练习 33

第3章  C++流程控制 35

3.1  算法 36

3.1.1  算法的概念 36

3.1.2  算法的表示 36

3.2  C++语句 37

3.3  C++程序的三种基本结构 38

3.4  顺序结构程序 39

3.5  选择结构程序 39

3.5.1  if语句 40

3.5.2  嵌套if语句 42

3.5.3  switch语句 44

3.6  循环结构程序 46

3.6.1  while语句 46

3.6.2  do-while语句 48

3.6.3  for循环语句 50

3.6.4  循环的嵌套 52

3.6.5  转向语句 55

3.6.6  三种循环的比较 57

3.7  上机练习 57

第4章  函数和预处理 59

4.1  标准库函数 60

4.2  程序员自定义函数 62

4.2.1  函数定义举例 62

4.2.2  函数定义语法总结 65

4.3  过程抽象 66

4.3.1  案例分析:购买蛋糕 67

4.3.2  案例分析:企业管理 70

4.4  函数的嵌套调用和递归调用 71

4.4.1  函数的嵌套调用 71

4.4.2  函数的递归调用 73

4.5  内联函数和函数重载 76

4.5.1  内联函数 76

4.5.2  函数重载 77

4.6  具有默认参数值的函数 81

4.7  局部变量与全局变量 82

4.7.1  局部变量 82

4.7.2  全局变量 83

4.7.3  动态存储方式与静态存储

方式 85

4.8  变量的存储类型 86

4.8.1  自动类型(auto) 86

4.8.2  寄存器类型(register) 87

4.8.3  静态类型(static) 88

4.8.4  外部类型(extern) 90

4.9  编译预处理 91

4.9.1  宏定义 92

4.9.2  文件包含命令 93

4.9.3  条件编译命令 94

4.10  程序的多文件组织 96

4.10.1  头文件 96

4.10.2  多文件结构 96

4.10.3  多文件结构程序示例 97

4.11  上机练习 98

第5章  数组 99

5.1  数组的概念 100

5.1.1  数组与数组元素 100

5.1.2  数组的维数 100

5.2  一维数组 100

5.2.1  一维数组的定义和初始化 100

5.2.2  一维数组的操作 102

5.2.3  数组的大小 103

5.2.4  一维数组的应用 103

5.3  二维数组 108

5.3.1  二维数组的定义 109

5.3.2  二维数组初始化 110

5.3.3  二维数组应用 111

5.4  字符数组的定义及应用 114

5.4.1  字符数组和字符串 114

5.4.2  字符串处理函数 117

5.4.3  二维字符数组 120

5.4.4  字符数组应用 121

5.5  数组和函数 125

5.5.1  向函数传递一维数组 125

5.5.2  向函数传递二维数组 128

5.6  上机练习 129

第6章  指针和引用 131

6.1  指针与指针变量 132

6.1.1  地址与指针的概念 132

6.1.2  指针变量 133

6.1.3  指针变量的运算 136

6.2  指针与数组 139

6.2.1  一维数组与指针 139

6.2.2  二维数组与指针 141

6.2.3  字符指针 143

6.2.4  指针数组 145

6.2.5  指向指针的指针

(二级指针) 147

6.3  堆的动态分配和释放 147

6.3.1  new运算符 148

6.3.2  delete运算符 148

6.4  指针与函数 150

6.4.1  指针变量作为函数参数 150

6.4.2  函数指针 155

6.4.3  返回指针值的函数 157

6.5  引用 158

6.5.1  引用及声明方法 158

6.5.2  用引用作为函数的参数 160

6.5.3  如何使一个被调函数同时

返回多个值 161

6.5.4  用引用返回函数值 162

6.6  上机练习 163

第7章  结构体、共用体和枚举类型 165

7.1  结构体的定义及使用 166

7.1.1  结构体的定义 166

7.1.2  定义结构体变量的方法 167

7.1.3  结构体变量的使用 169

7.1.4  结构体变量的初始化 169

7.1.5  结构体数组 170

7.1.6  结构体和函数 175

7.2  共用体的定义与使用 176

7.2.1  共用体的定义 176

7.2.2  定义共用体类型变量 177

7.2.3  共用体变量的使用 177

7.3  枚举类型 179

7.4  链表 181

7.4.1  结构体与指针 181

7.4.2  链表概念 183

7.4.3  链表的基本操作 184

7.5  typedef定义类型 193

7.6  上机练习 194

第8章  类和对象 195

8.1  面向对象程序设计基本概念 196

8.1.1  类 196

8.1.2  对象 196

8.1.3  封装与数据隐藏 197

8.1.4  继承 197

8.1.5  多态性 197

8.1.6  消息 198

8.2  类和对象的定义 198

8.2.1  定义类和成员函数 198

8.2.2  公共成员和私有成员 200

8.2.3  类和对象编程举例 205

8.2.4  类对象的内存分配 210

8.2.5  this指针 211

8.3  用于初始化的构造函数 213

8.3.1  构造函数的定义 213

8.3.2  默认构造函数 217

8.3.3  析构函数 218

8.3.4  拷贝构造函数和默认拷贝

构造函数 220

8.4  类和对象的进一步应用 224

8.4.1  堆对象 224

8.4.2  对象数组 225

8.4.3  类对象作为成员 227

8.5  静态成员 229

8.5.1  静态数据成员 229

8.5.2  静态成员函数 232

8.6  友元函数和友元类 235

8.6.1  友元函数 235

8.6.2  友元类 239

8.7  上机练习 240

第9章  继承与派生 243

9.1  继承与派生的基础知识 244

9.2  类的继承方式 251

9.2.1  公有继承 251

9.2.2  私有继承 253

9.2.3  保护继承 255

9.2.4  继承方式的总结和比较 255

9.3  派生类的构造函数与析构函数 256

9.3.1  简单派生类的构造函数 256

9.3.2  析构函数 258

9.3.3  复杂派生类的构造函数和

析构函数 258

9.3.4  派生友元类 261

9.4  基类与派生类的转换 262

9.5  上机练习 264

第10章  多态性 265

10.1  多态性的概念 266

10.2  运算符重载 266

10.2.1  运算符重载的规则 267

10.2.2  运算符重载为成员函数 267

10.2.3  运算符重载为友元函数 268

10.2.4  赋值运算符重载 270

10.2.5  单目自增和自减的运算符

 重载 272

10.2.6  关系运算符重载 273

10.2.7  下标运算符重载 275

10.2.8  类型转换运算符重载 276

10.3  联编和虚函数 279

10.3.1  虚函数的作用和定义 279

10.3.2  虚函数的使用原则 281

10.3.3  虚函数的访问 281

10.3.4  虚析构函数 282

10.4  纯虚函数和抽象类 284

10.5  上机练习 286

第11章  输入和输出流类库 289

11.1  输入/输出流概念 290

11.2  流类库 291

11.3  格式化I/O 293

11.3.1  使用ios类成员函数 293

11.3.2  使用操纵符 296

11.4  文件流 298

11.4.1  文件流类与文件流对象 299

11.4.2  文件的打开和关闭 300

11.4.3  文本文件的输入/输出 302

11.4.4  二进制文件的输入/输出 305

11.4.5  文件的随机访问 306

11.5  重载I/O输入输出运算符 308

11.5.1  重载输出运算符“<<” 308

11.5.2  重载输入运算符“>>” 310

11.6  上机练习 311

第12章  模板和异常处理 313

12.1  函数模板 314

12.1.1  函数模板语法 314

12.1.2  函数模板实例化 315

12.1.3  使用函数模板实例 317

12.2  类模板 318

12.2.1  类模板的语法 318

12.2.2  类模板实例化 320

12.2.3  类模板的默认参数 321

12.3  标准模板库 322

12.4  异常处理 324

12.4.1  异常处理基础 324

12.4.2  异常处理机制 325

12.4.3  异常函数 329

12.5  上机练习 331

第13章  银行卡管理系统 333

13.1  功能需求 334

13.2  总体设计 334

13.2.1  总体功能模块设计 334

13.2.2  数据结构设计 335

13.2.3  程序界面设计 335

13.3  银行卡管理系统的实现 337

13.3.1  主函数的源代码 337

13.3.2  创建新卡模块的源代码 338

13.3.3  卡号登录模块的源代码 339

13.3.4  存款操作的源代码 340

13.3.5  取款操作的源代码 340

13.3.6  日志文件读/写的源代码 341

13.4  本章小结 341

第14章  成绩管理系统 343

14.1  功能需求 344

14.2  总体设计 344

14.2.1  系统功能结构 344

14.2.2  数据结构及全局变量/函数

 设计 345

14.2.3  程序界面设计 346

14.3  学生成绩管理系统的实现 349

14.3.1  主函数源代码 349

14.3.2  学生信息录入函数 353

14.3.3  学生信息查找函数 355

14.3.4  学生信息编辑函数 357

14.3.5  学生信息统计函数 361

14.3.6  学生成绩排序功能 363

14.3.7  文件读/写功能 368

14.4  本章小结 369

第15章  工资发放系统 371

15.1  总体设计 372

15.1.1  类的设计 372

15.1.2  虚函数的分析设计 372

15.2  工资单系统源代码 373

15.2.1  主函数源代码 374

15.2.2  基类Employee源代码 375

15.2.3  派生类Manager的源代码 376

15.2.4  派生类CommissionWorker

 的源代码 377

15.2.5  派生类HourlyWorker的

 源代码 379

15.2.6  派生类PieceWorker的

 源代码 380

15.3  本章小结 381

第16章  旅店管理系统 383

16.1  功能需求 384

16.2  总体设计 384

16.2.1  系统功能结构 384

16.2.2  数据结构以及全局函数

 设计 385

16.3  旅店管理系统实现 386

16.3.1  系统头文件 387

16.3.2  显示界面函数 388

16.3.3  客房信息录入函数 392

16.3.4  入住登记函数 394

16.3.5  退房结算函数 396

16.3.6  客房信息浏览函数 398

16.3.7  信息查询函数 399

16.3.8  信息删除和修改函数 404

16.3.9  客房信息插入函数 407

16.3.10  退出系统函数 408

16.3.11  其他辅助函数 409

16.4  系统运行界面 412

16.5  本章小结 415

第17章  图书管理系统 417

17.1  功能设计要求 418

17.2  总体设计 418

17.2.1  类的设计 418

17.2.2  系统功能结构 421

17.3  图书管理系统源代码 422

17.3.1  类的定义 422

17.3.2  类的成员函数实现 424

17.3.3  用户界面相关函数 432

17.3.4  读者维护模块 433

17.3.5  图书维护模块 434

17.3.6  系统管理员功能模块 435

17.3.7  普通管理员功能 436

17.3.8  系统main函数 438

17.4  本章小结 439

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个