第一章 C++入门 1
1.1软件开发与C++语言 1
1.2算法与程序 2
1.3输入、编译、调试和运行一个C++程序 4
1.4 C++语言的输入与输出命令 4
1.5程序设计语言的发展 5
1.6 C++程序的基本要素 7
1.6.1标识符、关键词和标点符号 7
1.6.2注释 7
1.6.3源程序 8
1.7编译预处理 8
1.7.1宏定义 8
1.7.2文件包含 9
1.8 Visual C++的集成开发环境 10
1.8.1菜单和工具栏 11
1.8.2 Developer Studio窗口 11
1.8.3用Developer Studio编写和调试简单C++程序 11
1.8.4菜单选项、快捷键和工具栏 12
上机练习题 15
第二章 控制结构 16
2.1程序的基本控制结构 16
2.2 C++的控制结构 18
2.2.1顺序结构 18
2.2.2选择结构 18
2.2.3循环结构 19
2.3结构化程序设计 20
2.4伪代码 21
2.5结构化程序设计方法简介 24
2.6 C++的其他控制转移语句 24
2.6.1 switch语句 25
2.6.2 goto语句和语句标号 26
2.6.3 break语句和continue语句 27
2.6.4 exit()函数和abort()函数 28
2.7 Developer Studio的文本编辑器 28
上机练习题 34
第三章 基本数据类型 35
3.1数据类型 35
3.1.1整型数据的表示方法 36
3.1.2实型数据的表示方法 36
3.2常量 36
3.2.1整型常量 37
3.2.2实型常量 37
3.2.3字符常量 37
3.2.4字符串常量 38
3.3变量 38
3.3.1变量的声明 38
3.3.2变量的初始化 40
3.4数组 40
3.5字符型数组和字符串处理库函数 41
3.6类型修饰符和常量修饰符 43
3.7枚举类型 44
3.8 typedef语句 45
3.9 Developer Studio的文件处理功能 46
3.10 Visual C++程序的编译、连接和运行 47
3.11查看和修改编译、连接错误 48
上机练习题 51
第四章 表达式 53
4.1算术运算符和算术表达式 53
4.2逻辑运算符和逻辑表达式 54
4.3赋值运算符和赋值表达式 54
4.4自增运算符和自减运算符 55
4.5表达式中各运算符的运算顺序 56
4.6其他具有副作用的运算符 57
4.7问号表达式和逗号表达式 58
4.8类型不同的数据之间的混合算术运算 59
4.9运行错误的判断与调试 60
4.10基本调试手段 61
4.11注释号在调试中的作用 62
4.12条件编译 62
上机练习题 66
第五章 函数 67
5.1函数的定义 67
5.2函数的调用 69
5.3函数原型 70
5.4函数间的参数传递 70
5.4.1值调用 70
5.4.2引用调用 71
5.5函数重载 72
5.6局部变量和全局变量 73
5.7内联函数 74
5.8带有默认参数的函数 75
5.9 C++的库函数 75
5.10函数模板 76
5.11变量的存储类别 77
5.11.1自动变量(auto) 77
5.11.2静态变量(static) 77
5.12 Developer Studio的跟踪调试功能 78
上机练习题 81
第六章 指针 83
6.1地址与指针 83
6.1.1地址 83
6.1.2指针 84
6.2指针运算 84
6.3指针与数组 87
6.4动态存储分配 90
6.5指针和函数 91
6.5.1指针作为函数的参数 91
6.5.2返回指针的函数 92
6.5.3指向函数的指针 93
6.6指针的数组 94
6.7指针的初始化 96
6.8 Visual C++的帮助功能 96
上机练习题 99
第七章 类和对象 100
7.1面向对象的思想 100
7.2面向对象程序设计的特点 101
7.3类与对象 102
7.3.1类的定义 102
7.3.2成员函数的定义 103
7.3.3内联成员函数 104
7.3.4对象 104
7.4构造函数与析构函数 106
7.5数据成员的初始化 108
7.6对象与指针 109
7.7 const修饰符 110
7.8 MFC的CString类 111
7.9 MFC的CTime类和CTimeSpan类 113
7.9.1 CTime类 114
7.9.2 CTimeSpan类 115
7.9.3 CTime类和CtimeSpan类的运算 115
7.10类的嵌套 115
7.11如何在程序中使用MFC类库 116
7.12使用FileView标签 116
上机练习题 119
第八章 继承与派生 120
8.1继承与派生 120
8.1.1为什么使用继承 120
8.1.2派生类的定义 121
8.1.3派生类中的变化 122
8.2派生类的继承方式 122
8.2.1公有继承 122
8.2.2私有继承 124
8.2.3保护继承 126
8.3派生类的构造函数和析构函数 127
8.3.1构造函数 128
8.3.2析构函数 129
8.4显式访问基类成员 129
8.5静态成员 131
8.6类模板 132
8.7使用ClassView标签 134
上机练习题 139
第九章 多态性 140
9.1多态性概述 140
9.2派生类对象替换基类对象 142
9.3虚函数 143
9.3.1虚函数定义 143
9.3.2虚函数的使用限制 145
9.4抽象类 146
9.5运算符重载 148
9.6文件处理 150
9.7异常处理机制 152
上机练习题 159
第十章 Windows编程 160
10.1 Windows编程的基本思想 160
10.2 MFC编程 161
10.3单文档界面(SDI)应用程序 162
10.4在窗口的客户区输出文字和图形 163
10.5编制消息处理函数 167
10.5.1消息映射 167
10.5.2利用ClassWizard编制消息处理函数 168
10.6鼠标和键盘消息处理 168
10.7 Windows的用户界面对象 170
10.7.1窗口 170
10.7.2系统菜单 171
10.7.3标题栏 171
10.7.4菜单栏 171
10.7.5工具条 171
10.7.6客户区 171
10.7.7垂直滚动条和水平滚动条 172
10.7.8状态栏 172
10.7.9图标 172
10.7.10光标 172
10.7.11插入符 172
10.7.12对话框 172
10.7.13控件 172
10.8 Windows数据类型与变量的命名规则 173
10.9用AppWizard生成文档/视图结构的程序框架 175
10.10 Developer Studio的C1assWizard(类向导) 184
上机练习题 191
第十一章 文档/视图结构 192
11.1文档/视图概念 192
11.2视图类 193
11.3文档类 194
11.4文档/视图类之间的协作关系 195
11.5使客户区重绘 200
11.6定时器消息 203
11.7文档/视图结构中的应用程序类 204
11.8文档/视图结构中的框架窗口类 205
11.9文档/视图结构中各类对象之间的协作关系 205
11.10 Visual C++的常用调试宏 205
11.10.1 TRACE0宏 205
11.10.2 ASSERT()宏 206
11.10.3 ASSERT VALID()宏 206
11.10.4 CObject.Dump()成员函数 206
上机练习题 212
第十二章 图形设备接口和资源 213
12.1设备环境类和图形对象 213
12.2 Windows应用程序资源 214
12.3库存图形对象 215
12.4画笔与画刷 217
12.5位图 223
12.6菜单 225
12.7字体 227
12.8绘图模式 229
12.9 GDI坐标系 230
12.10图标、快捷键和字符串表 231
12.11向项目中添加资源 231
12.12资源编辑器 232
12.12.1图标编辑器 232
12.12.2位图编辑器 233
12.12.3菜单编辑器 233
12.12.4快捷键编辑器 234
12.12.5字符串表编辑器 234
上机练习题 242
第十三章 对话框 243
13.1对话框(Dialog) 243
13.2控件 246
13.3对话框的初始化 246
13.4对话框的数据交换和数据检验机制 246
13.5非模态对话框 252
13.6公用对话框 252
13.6.1颜色选择对话框 253
13.6.2字体选择对话框 253
13.7对话框模板资源的编辑 254
13.8使用C1assWizard建立对话框类 256
13.9为对话框类加入成员变量 256
上机练习题 263
第十四章 控件 264
14.1常用控件 264
14.2基于对话框的应用程序 274
14.3动画控件 277
14.4用AppWizard生成基于对话框的应用程序 279
上机练习题 281
第十五章 文档读写与打印 282
15.1序列化(Serialize) 282
15.2打印和打印预览 283
15.3自定义类的序列化 286
15.4编写独立的打印处理程序 288
15.5更新命令用户接口消息 291
15.6工具条与状态条 294
15.7 Developer Studio的输出窗口 295
上机练习题 297
第十六章 多文档界面程序 298
16.1 MDI应用程序 298
16.2滚动视图 304
16.3对话视图 305
16.4文本编辑视图 306
16.5使用AppWizard建立MDI程序框架 307
上机练习题 309
附录 310
附录1 ASCII码表 310
附录2 常用库函数 311
附录3 可供两人对弈的中国象棋程序 317
附录4 防空战游戏程序 328
附录5 七巧板程序 336