第1章 概论 1
1.1 软件开发的范型 2
1.1.1 瀑布模型 2
1.1.2 原型模型 3
1.1.3 其他软件模型 8
1.2 软件开发方法 10
1.2.1 模块化方法 10
1.2.2 结构化方法 11
1.2.3 面向数据结构方法 12
1.2.4 面向对象方法 13
1.2.5 可视化开发方法 14
1.2.6 敏捷软件开发方法 15
1.2.7 基于构件的软件开发方法 16
1.3 算法的效率评价 17
1.4 C++简介 19
1.4.1 如何用C++编写程序 20
1.4.2 Visual C+.NET的新特性 25
习题 26
第2章 数据和运算 27
2.1 数据类型 27
2.1.1 整型数据的表示方法 27
2.1.2 实型数据的表示方法 28
2.2 常量 29
2.2.1 整型常量 29
2.2.2 实型常量 29
2.2.3 字符常量 29
2.2.4 字符串常量 30
2.3 变量 31
2.3.1 变量的声明 31
2.3.2 变量的初始化 31
2.4 运算符和表达式 31
2.4.1 算术运算符和算术表达式 32
2.4.2 比较运算符和逻辑运算符 32
2.4.3 赋值运算符和赋值表达式 33
2.4.4 自增运算符和自减运算符 33
2.5 表达式中各运算符的运算顺序 34
2.6 复合赋值运算符 35
2.7 问号表达式和逗号表达式 36
2.8 不同数据类型之间的混合算术运算 36
2.9 类型修饰符和常量修饰符 38
2.10 枚举类型 38
2.11 typedef语句 40
2.12 运行错误的判断与调试 40
2.13 基本调试手段 41
2.14 注释符号在调试中的作用 42
上机练习题 43
第3章 控制结构 44
3.1 程序的基本控制结构 44
3.2 顺序结构 46
3.3 选择结构 47
3.3.1 if语句 47
3.3.2 switch语句 48
3.4 循环结构 50
3.4.1 构成循环的语句 50
3.4.2 break语句和continue语句 52
3.4.3 循环嵌套 54
3.5 C++的其他控制转移语句 55
3.5.1 goto语句和语句标号 55
3.5.2 exit()函数和abort()函数 56
3.6 结构化程序设计思想 56
3.7 伪代码 58
上机练习题 66
第4章 数组、字符串和结构体 67
4.1 一维数组 67
4.1.1 一维数组的定义 68
4.1.2 引用数组元素 68
4.1.3 一维数组的初始化 70
4.2 二维数组 71
4.2.1 二维数组的定义 71
4.2.2 二维数组的初始化 72
4.2.3 引用数组元素 73
4.3 字符数组和字符串处理函数 76
4.3.1 字符数组的定义 76
4.3.2 字符串的输入输出 77
4.3.3 字符串处理函数 77
4.4 结构体 79
4.4.1 结构体类型的定义 80
4.4.2 定义结构体类型变量和引用成员 81
4.5 编译预处理 83
4.5.1 宏定义 83
4.5.2 文件包含 85
4.5.3 条件编译 85
4.6 查看和修改编译、连接错误 87
上机练习题 91
第5章 函数 92
5.1 函数的定义 92
5.1.1 定义函数 92
5.1.2 return语句 93
5.2 函数的调用 94
5.2.1 C++程序的执行过程 94
5.2.2 函数的调用 94
5.3 函数原型 95
5.4 函数间的参数传递 96
5.4.1 值调用 96
5.4.2 引用调用 97
5.5 函数重载 98
5.6 局部变量和全局变量 100
5.7 内联函数 101
5.8 带有默认参数的函数 102
5.9 C++的库函数 102
5.10 函数模板 103
5.11 变量的存储类别 104
5.11.1 自动变量 104
5.11.2 静态变量 104
上机练习题 108
第6章 指针 110
6.1 地址与指针 110
6.1.1 地址 110
6.1.2 指针和指针变量 111
6.2 指针运算 112
6.3 指针与数组 115
6.4 动态存储分配 118
6.5 指针和函数 120
6.5.1 指针作为函数的参数 120
6.5.2 返回指针的函数 120
6.5.3 指向函数的指针 121
6.6 指针数组 123
6.7 Visual C+.NET的帮助功能 125
上机练习题 127
第7章 类和对象 128
7.1 类与对象 128
7.1.1 类的定义 128
7.1.2 成员函数的定义 130
7.1.3 内联成员函数 131
7.1.4 对象 131
7.2 构造函数与析构函数 133
7.3 数据成员的初始化 135
7.4 指向对象的指针变量 137
7.5 const修饰符 138
7.6 MFC的CString类、CTime类和CTimeSpan类 139
7.6.1 CString类 139
7.6.2 CTime类 142
7.6.3 CTimeSpan类 143
7.6.4 CTime类和CTimeSpan类的运算 144
7.7 类的嵌套 144
上机练习题 148
第8章 类的继承 150
8.1 继承与派生 150
8.1.1 继承 150
8.1.2 派生类的定义 151
8.1.3 基类成员在派生类中的变化 152
8.2 派生类的继承方式 152
8.2.1 公有继承 152
8.2.2 私有继承 155
8.2.3 保护继承 157
8.3 派生类的构造函数和析构函数 158
8.3.1 构造函数 159
8.3.2 析构函数 160
8.4 显式访问基类成员 161
8.5 静态成员 162
8.6 友元 163
8.6.1 友元函数 163
8.6.2 友元类 165
8.7 类模板 167
上机练习题 174
第9章 多态性 175
9.1 多态性概述 175
9.2 派生类对象替换基类对象 177
9.3 虚函数 179
9.3.1 虚函数定义 179
9.3.2 虚函数的使用限制 180
9.4 抽象类 181
9.5 运算符重载 184
9.5.1 运算符重载为成员函数 185
9.5.2 运算符重载为友元函数 187
上机练习题 191
第10章 异常处理和I/O流 193
10.1 异常处理机制 193
10.1.1 异常处理概述 193
10.1.2 异常处理的实现 193
10.2 流的概念 195
10.3 输入输出的格式控制 197
10.3.1 数据的输入输出 197
10.3.2 默认的输入输出格式 198
10.3.3 设置输入输出格式 200
10.4 文件的输入输出操作 203
10.4.1 文件的打开和关闭 204
10.4.2 文件流的状态 206
10.4.3 文件的顺序读/写 206
10.4.4 文件流的定位与文件的随机读/写 207
上机练习题 209
第11章 C++基本控件 210
11.1 控件的概念 210
11.2 常用公共控件 210
11.2.1 标签 210
11.2.2 命令按钮 212
11.2.3 文本框 214
11.2.4 列表框 217
11.2.5 组合列表框 221
11.3 数据集 223
11.4 菜单与工具栏控件 226
11.4.1 菜单 226
11.4.2 工具栏 229
11.5 打印控件 234
上机练习题 246
第12章 数据库基础与应用 247
12.1 数据库系统的基本概念 247
12.1.1 数据库系统的发展与特点 247
12.1.2 数据库系统的组成及各部分功能 248
12.1.3 数据库系统的3级模式结构 249
12.2 数据模型 250
12.2.1 概念模型 250
12.2.2 数据逻辑模型 252
12.2.3 数据物理模型 253
12.3 关系数据库简介 253
12.3.1 关系数据库的基本概念 253
12.3.2 关系模式 255
12.3.3 关系数据库 256
12.3.4 关系操作 256
12.4 数据库逻辑结构设计 257
12.4.1 逻辑结构设计的步骤 257
12.4.2 E-R图向关系模型转换的内容 258
12.4.3 E-R图向关系模型转换的原则 258
12.4.4 向特定DBMS规定的模型进行转换 259
12.5 关系数据库标准语言SQL 261
12.5.1 SQL的特点 261
12.5.2 基本表操作的SQL语句 262
12.5.3 数据查询 264
12.5.4 单表查询 264
12.5.5 多表查询 267
12.6 数据库访问 269
12.6.1 ADO.NET组成结构 269
12.6.2 数据绑定技术 270
12.6.3 数据库连接方法 273
12.6.4 举例 273
上机练习题 292
参考文献 295