第一部分 C语言程序 1
A01 创建Hello World程序(简单的单文件程序) 1
A01.1 创建项目 1
A01.2 建立文件 3
A01.3 编译 4
A01.4 连接与运行 4
A01.5 复制程序运行结果 5
A01.6 Workspace文件 5
A01.7 建立程序文件的简易方法 6
A01.8 注意事项 6
实验A01 6
A02 源代码隐蔽机制(多文件程序的编译与连接) 7
实验A02 10
A03 运算符sizeof的用法和几种类型的数据所占的字节数 10
实验A03 11
A04 printf函数和scanf函数中的基本格式字符的用法 11
A04.1 printf()函数中的基本格式字符 12
A04.2 scanf函数中的基本格式字符 14
实验A04 17
A05 初识C++的I/O流 18
实验A05 20
A06 调试程序 20
A06.1 VC++的程序调试功能 20
A06.2 检查数据 24
A06.3 复制程序运行结果 25
实验A06 25
A07 选择语句——if语句和switch语句 25
A07.1 条件语句(if语句) 25
A07.2 条件语句的嵌套 27
A07.3 多分支条件语句的困惑 28
A07.4 开关语句——switch语句 28
实验A07 30
A08 循环语句for——迭代法和穷举法 30
A08.1 迭代法 31
A08.2 continue语句和break语句的用法和区别 32
A08.3 穷举法 33
A08.4 for语句的变异 34
实验A08 35
A09 循环语句do…while和while——迭代法 35
实验A09 36
A10 函数初步 37
A10.1 函数格式 37
A10.2 栈操作 37
A10.3 函数原型 39
A10.4 参数传递 39
实验A10 42
A11 重载函数与具有默认参数的函数 42
A11.1 重载函数 42
A11.2 具有默认参数的函数 44
实验A11 45
A12 递归函数 45
实验A12 47
A13 程序结构 48
A13.1 单文件中的全局变量和局部变量 48
A13.2 单文件中的静态变量 50
A13.3 多文件中的变量与函数 51
实验A13 53
A14 条件编译指令的应用 54
实验A14 55
A15 数组与指针 56
A15.1 数组的基本知识 56
A15.2 指针的基本知识 57
A15.3 访问一维数组的几种方法 60
A15.4 二维数组元素在内存中的排列——降维处理 61
A15.5 访问二维数组的几种方法 62
A15.6 探索法——设计魔方图 64
实验A15 64
A16 数组与指针的应用 65
实验A16 69
A17 对指针及其指向对象的修饰 69
A17.1 常量指针(const对象) 69
A17.2 指针常量(const指针) 71
A17.3 指向常量的指针常量 72
实验A17 73
A18 堆内存分配——采样数据处理 74
A18.1 函数malloc()和free() 74
A18.2 运算符new和delete 75
实验A18 78
A19 引用、函数参数表与返回量(一) 78
A19.1 引用 78
A19.2 函数参数表 81
A19.3 返回量 85
实验A19 86
A20 引用、函数参数表与返回量(二) 87
实验A20 89
A21 字符和字符串处理函数 89
A21.1 字符串长度 90
A21.2 字符串复制 90
A21.3 字符串比较 90
A21.4 字符串串接 91
实验A21 92
A22 函数指针 92
A22.1 函数指针的定义 92
A22.2 用函数指针变量调用函数 93
A22.3 函数指针数组 94
A22.4 用指向函数的指针作函数参数 96
实验A22 97
A23 枚举类型、结构体和共同体 97
A23.1 枚举类型 97
A23.2 结构体 100
A23.3 共同体 104
实验A23 107
A24 链表 107
A24.1 链表的概念 107
A24.2 结点的构成与访问 108
A24.3 链表的两种构造方法 109
实验A24 110
A25 简单链表操作 111
实验A25 114
A26 C文件的读写 114
A26.1 文件类型指针 114
A26.2 文件的打开与关闭 115
A26.3 顺序文件的读写操作——函数fprintf()、fscanf()和feof() 116
A26.4 几个读写函数——fputs()、fgets()、fputc()和fgetc()的用法 117
实验A26 120
第二部分 C++语言程序 121
B01 认识类与对象 121
B01.1 类的组成 121
B01.2 内联函数 122
B01.3 对象的定义 123
B01.4 访问类的成员 123
实验B01 125
B02 初识构造函数和析构函数 125
B02.1 构造函数的作用与特点 125
B02.2 构造函数的调用次序 127
B02.3 构造函数的初始化列表 128
B02.4 析构函数 129
实验B02 130
B03 对象在内存中的布局和this指针 130
实验B03 132
B04 深入认识构造函数 132
B04.1 默认构造函数 132
B04.2 复制构造函数 133
B04.3 具有默认参数的构造函数 136
B04.4 重载构造函数 137
实验B04 138
B05 堆对象 138
B05.1 创建和删除单个堆对象的方法 139
B05.2 创建和删除堆对象数组的方法 140
实验B05 141
B06 静态数据成员和静态成员函数 141
B06.1 静态数据成员的特点及定义方法 141
B06.2 访问静态数据成员的方法 142
B06.3 静态成员函数 142
实验B06 145
B07 无名对象与临时对象 145
实验B07 146
B08 常量对象和常量成员函数 146
实验B08 148
B09 类成员 148
实验B09 150
B10 友元 150
B10.1 为什么需要友元 150
B10.2 友元的定义方法 150
B10.3 友元函数的特点 151
实验B10 154
B11 公有、保护和私有继承 154
B11.1 继承的概念 154
B11.2 公有、保护和私有继承 155
实验B11 158
B12 类层次中的构造函数和析构函数的调用 159
B12.1 构造函数的调用次序 159
B12.2 析构函数的调用次序 159
实验B12 161
B13 派生类的初始化方法——初始化列表的用法 161
实验B13 163
B14 重载和操纵 164
实验B14 165
B15 类层次中的对象数据结构和指针应用 166
实验B15 169
B16 多继承与虚函数 169
B16.1 没有公共基类的多继承——简单的多继承 169
B16.2 具有公共基类的多继承 171
实验B16 175
B17 虚基类 176
实验B17 180
B18 多态性与虚函数 180
B18.1 多态性 180
B18.2 联编 180
B18.3 静态多态性 181
B18.4 虚函数和动态多态性 182
B18.5 对虚函数的限制 184
实验B18 186
B19 纯虚函数和抽象类 186
实验B19 191
B20 运算符重载(一)——四则运算符的重载 191
B20.1 运算符重载基础 191
B20.2 运算符重载函数 194
实验B20 196
B21 运算符重载(二)——赋值运算符以及自增1、自减1和下标运算符的重载 197
B21.1 赋值运算符的重载 197
B21.2 自增1和自减1运算符的重载 197
B21.3 下标运算符的重载 199
实验B21 202
B22 运算符重载(三)——关系运算符以及输入输出运算符的重载 202
B22.1 关系运算符的重载 202
B22.2 组合运算符的重载 203
B22.3 输出与输入运算符的重载 205
实验B22 207
B23 类型转换 207
B23.1 基本类型转换为自定义类型 207
B23.2 自定义类型转换为基本类型 209
B23.3 自定义类型之间的转换 210
实验B23 213
B24 I/O流(一)——访问顺序文件和二进制文件 214
B24.1 I/O流的概念 214
B24.2 文件与文件流概述 214
B24.3 文件的打开和关闭操作 215
B24.4 顺序文件的读写操作 217
B24.5 二进制文件的读写操作 220
实验B24 223
B25 I/O流(二)——访问随机文件 223
B25.1 随机文件的特点 223
B25.2 随机文件的读、写方法 224
实验B25 227
B26 模板 227
B26.1 模板的概念 228
B26.2 函数模板与模板函数 229
B26.3 类模板与模板类 232
实验B26 234
B27 复数类 236
实验B27 244
B28 矩阵类 245
实验B28 256
B29 多项式类 256
实验B29 265
B30 C++在数字滤波器设计中的应用 265
实验B30 268
附录A 与字符和字符串有关的库函数 269
附录B ASCII码表简介 272
附录C 网站资源目录 276