本书是计算机科学与技术专业的程序设计课程教材,以c++作为讲解的语言,内容包括C++概念、数据类型、运算符、表达式、分支和循环语句、函数、数组、指针、引用、结构、类和对象、继承和派生、友元函数、虚函数、运算符重载、I/O流、模板等。教材以VisualC++作为上机环境。
编者力求体现概念准确、编排合理、循序渐进、讲解通俗的特点,妥善处理好过程化程序设计和面向对象程序设计的关系,读者可以不具备其他高级语言和程序设计的基础知识。针对应用型本科人才的培养特点,在注重基础性、学科完整性的基础上,强调实践性、应用性,因此本书有专门章节介绍上机步骤,提供了较多的习题和上机实习题。
本书可作为本专科计算机专业的教材,也可作为其他相关专业和计算机培训的教学用书,还可供程序开发人员和自学者参考。
第1章 C++概念
1.1 计算机语言和程序
1.1.1 计算机语言
1.1.2 程序
1.2 结构化程序设计
1.3 面向对象程序设计
1.3.1 面向对象的基本特征
1.3.2 面向对象的三类基本机制
1.4 C++概念
1.4.1 C++的发展
1.4.2 C++与面向对象的关系
1.5 C++的一个简单实例
1.5.1 一个简单的示范程序
1.5.2 C++程序的组成部分
1.6 编辑、编译、连接和运行一个
C++程序
习题
第2章 数据类型、运算符、表达式、赋值语句、输入输出
2.1 C++语言的同法单位
2.1.1 关键字
2.1.2标识符
2.1.3 分隔符
2.2基本数据类型
2.3 常量和变量
2.3.1 常量
2.3.2变量
2.3.3 符号常量
2.4 运算符和表达式
2.4.1算术运算符
2.42关系运算符
2.4.3逻辑运算符
2.4.4 位运算符
2.4.5 赋值运算符、赋值表达式与赋值语句
2.4.6条件运算符
2.4.7 号运算符
2.4.8 sizeof运算符
2.4.9 混合运算与强制类型转换
2.4.10 关于表达式运算顺序的讨论
2.5 数据的输入与输出
2.5.1 I/O流
2.5.2预定义提取符“>>”和数据输入
2.5.3 预定义插入符“<<”和 数据输出
2.5.4 C++的输入输出格式控制
2.5.5 C风格的格式化输入输出函数
2.6 自定义数据类型
2.6.1 用typedef定义类型
2.6.2 枚举类型
2.7程序实例
习题
第3章 VisualC++6.0集成环境简介
3.1 VisualC++6.0概述
3.2 VisualC++6.0集成开发环境
3.2.1 进.3.VisualC++6.0
3.2.2 VisualC++6.0的菜单栏
3.2.3 常用的热键
3.3 一个简单的例子
3.4 常用调试手段
习题
第4章分支和循环结构
4.1 语句概述
4.2 if语句
4.2.1 if语句的基本形式
4.2.2 if语句的嵌套形式
4.3 switch语句
4.4 while语句
4.5 do-while语句
4.6 for语句
4.7循环的嵌套
4.8 break、continue、goto语句
4.8.1 break语句
4.8.2 continue语句
4.8.3 goto语句
4.9 程序实例
习题
第5章 函数和预处理
5.1 函数的定义、说明和调用
5.1.1 函数的定义
5.1.2 函数的说明
5.1.3 函数的调用
5.1.4 函数的分开编译
5.1.5 函数的参数传递
5.2 函数的嵌套和递归
5.2.1 函数的嵌套
5.2.2 函数的递归
5.3 内联函数
5.4 带默认形式参数值的函数
5.5 函数的重载
5.6 作用域和可见性
5.6.1 作用域
5.6.2可见性
5.6.3 作用域和可见性的关系
5.7 生命期
5.7.1 生命期
5.7.2 局部变量与全局变量
5.8 预处理
5.8.1 文件包含指令(#include)
5.8.2 宏定义指令(#define和#undef)
5.8.3 条件编译指令
习题
第6章 数组
6.1 一维数组
6.1.1 一维数组的声明
6.1.2 一维数组元素的使用
6.1.3 一维数组的初始化
6.1.4 将数组传递给函数
6.1.5 一维数组程序举例
6.2 维数组
6.2.1 -~维数组的定义
6.2.2 维数组元素的使用
6.2.3 维数组的初始化
6.3字符数组
6.3.1 字符数组与字符串概念
6.3.2 字符数组赋初值
6.3.3 字符串处理函数
6.3.4程序实例
6.4 数组的高级应用
习题
第7章 指针
7.1 变量的地址
7.2指针变量
7.2.1 声明指针变量
7.2.2 指针变量初始化
7.2.3 指针变量的引用
7.2.4 指针变量的地址
7.2.5 使用指针应注意的问题
7.3指针运算
7.4指针与数约
7.5 堆内存分配
7.5.1 堆内存分配
7.6指针与函数
7.6.1 数纪.作为函数参数
7.6.2 变量地址作为函数参数(传地址)
7.6.3 指针函数
7.7字符指针
7.7.1 字符指针的声明
7.7.2 字符串的赋值
7.7.3 字符指针与字符数组的区别
7.8指针数组
7.9 程序实例
习题
第8章 引用
8.1 引用的概念
8.2 引用的操作
8.2.1 用引用传递函数参数
8.2.2 利用引用返回多个值
8.2.3 用引用返回值
8.3 程序实例
习题
第9章结构体
9.1 结构体
9.1.1 结构体类型
9.1.2 结构体类型变量
9.1.3 结构体数组与结构体指针
9.1.4 结构体变量的引用
9.2 链表
9.2.1 链表结构
9.2.2创建链表
9.2.3 单链表上的查找运算
9.2.4 单链表上的插入运算
9.2.5 单链表上的删除运算
9.2.6输出单链表
9.3程序实例
习题
第10章类和对象
10.1 类
10.1.1 什么是类
10.1.2定义类
10.1.3 定义类时需注意事项
10.1.4 类和结构的关系
10.2对象
10.2.1 对象定义的形式
10.2.2 对象成员的表示方法
10.3 构造函数
10.3.1 定义构造函数
10.3.2缺省构造函数
10.3.3 重载构造函数
10.3.4 拷贝初始化构造函数
10.3.5 构造函数和new运算符
10.4 析构函数
10.5 this指针
10.6程序实例
习题
第11章 继承与派生类
11.1 继承
11.1.1 基本概念
11.1.2 单一继承
11.1.3 多重继承
11.2 初始化基类成员
11.3 冲突、支配规则和赋值兼容性
11.3.1 冲突
11.3.2 支配原则
11.3.3赋值兼容性
11.4 虚基类
11.5程序实例
习题
第12章类的其他特性
12.1 友元
12.1.1 友元函数
12.1.2 友元类
12.2 虚函数
12.3 静态成员
12.3.1 静态数据成员
12.3.2静态成员函数
12.4 const对象和成员函数
12.4.1 const对象
12.4.2 常成员函数
12.5 指向类对象和类成员的指针
12.5.1 指向类对象的指针
12.5.2 指向类的数据成员的指针
12.5.3 指向类的成员函数的指针
12.6 程序实例
习题
第13章运算符重载
13.1 运算符重载概念
13.2 几个特殊运算符的重载
13.2.1 加减运算符的重载
13.2.2 增量运算符的重载
13.2.3 强制类型转换运算符
的重载
13.3 字符串类
13.3.1 string字符串类简介
13.3.2 string类对象的赋值
与连接
13.3.3 string类对象的比较
13.3.4 string类的特性
13.4 程序实例
习题
第14章 I/O流
14.1 C++的基本流类体系
14.1.1 流的概念
14.1.2 C++的基本流类体系
14.2 I/O标准流类
14.3 文件流类
14.4 串流类
14.5 格式控制
14.5A 格式控制符
14.5.2 流格式控制成员函数
14.6 使用I/O流成员函数
14.6.1 open和close函数
14.6.2 getline函数
14.6.3 read和write函数
14.7程序实例
习题
第15章异常处理
15.1 异常的概念
15.2 异常处理的实现
15.3 异常处理的规则
15.4 异常的捕获和处理
15.5 程序实例
习题
第16章 模板
16.1 函数模板
16.1.1 函数模板说明
16.1.2 使用函数模板
16.1.3 重载模板函数
16.2 类模板
16.2.1 类模板说明
16.2.2使用类模板
习题
第17章上机实习题
上机实习题1 VisualC++6.0集成环境
上机实习题2 分支和循环结构
上机实习题3 函数和预处理
上机实习题4 数组
上机实习题5 指针
上机实习题6 引用
上机实习题7 结构
上机实习题8 类和对象
上机实习题9 继承和派生
上机实习题10 类的其他特性
上机实习题11 运算符重载
上机实习题12 I/O流
上机实习题13 异常处理
上机实习题14 模板
附录ASCII代码表
参考文献
程序设计是计算机科学与技术专业的一门重要的专业基础课程,是数据结构、操作系统、数据库原理、编译原理和软件工程等后继课程的基础。在程序设计语言的选择上,已经出现了从C语言向C什语言过渡的趋势。实际上,C十+是一门混合语言,它既支持面向过程的程序设计,也支持面向对象的程序设计,掌握了C抖语言,再学习其他程序设计语言,就是一件轻而易举的事情。因此,本书选择了C++作为讲解的程序设计语言。
本书共分17章,各章介绍内容如下:第1章介绍C什概念,第2章介绍数据类型、运算符、表达式、赋值语句、输入输出,第3章介绍VisualC十+6.0集成环境,第4章介绍分支和循环结构,第5章介绍函数和预处理,第6章介绍数组,第7章介绍指针,第8章介绍引用,第9章介绍结构体,第10章介绍类和对象,第11章介绍继承和派生,第12章介绍友元、虚函数、静态成员等,第13章介绍运算符重载,第14章介绍I/0流,第15章介绍异常处理,第16章介绍模板,第17章是上机实习题。
本书力图体现以下特点:
1)定位准确。本书的读者定位是应用型本科学生,针对应用型本科人才的培养特点,在注重基础性、学科完整性的基础上,强调实践性、应用性。
2)妥善处理好过程化程序设计和面向对象程序设计的关系。读者可以不具备程序设计的背景知识,本书既有充足的篇幅介绍分支、循环、函数等程序设计语言共性的成分,又在后面章节中努力帮助读者树立面向对象程序设计的理念。
3)概念准确、编排合理。在内容编排上,注意分散难点,便于读者循序渐进。
4)深入浅出,讲解通俗。尽量通过一些实例来说明有关概念。
5)两个并重,强化实践,重视应用。即程序设计语言和程序设计技巧并重,经典实例和实用程序并重。书中有专门的章节介绍C抖上机环境,并提供了较多的习题和上机实习题。
本书由廖雷任主编。各章具体分工如下:廖雷编写第1、3、10和第16章的主要内容,杨泽凡编写第6、7、8、9章,杜青编写第12、13、14、15章,胡文瑜编写第2、4、5章和第16章的部分内容,第17章由4位编者共同完成。南京大学副教授刘友华博士在白忙之中抽出时间认真地审阅了全书,并提出了宝贵意见,编者深表感谢。
本书编写过程中,得到了机械工业出版社和教材编委会的指导,学校各级领导和同事的关心和帮助。袁理景老师参与了第11章的编写工作,周业举、彭仕瑞、倪恩伟在文稿校对、程序测试方面付出了辛勤劳动,在此一并致谢。
由于编者水平有限,恐有不正确和不完善之处,欢迎读者指正。编者的电子信箱是:廖雷liaolei@sina.com,杨泽凡yangzefan@163.com,杜青dqingmail@163.net,胡文瑜turbohwy@hotmail.com。
编 者
2004年6月