文件名称:程序设计教程 陈家骏等编著
文件大小:1.07MB
文件格式:DOC
更新时间:2015-03-29 13:47:02
陈家骏 程序设计 教程 C++ 南京大学
程序设计教程 --用C++语言实现 或 --用C++语言描述 或 --用C++语言编程 南京大学计算机科学与技术系 陈家骏,郑滔 编著 前 言 i 第1章 概述 1 1.1 计算机的工作模型 1 1.1.1 硬件结构 1 1.1.2 软件 3 1.2 程序设计 4 1.2.1 程序设计范型 4 1.2.2 程序设计语言 5 1.2.3 程序设计的步骤 7 1.3 C++语言 9 1.3.1 C++的特点 10 1.3.2 C++程序的基本结构 10 1.3.3 C++语言的词法 11 1.3.4 C++程序设计环境 14 1.4 小结 15 1.5 习题 16 第2章 基本数据类型和表达式 17 2.1 数据类型概述 17 2.2 C++基本数据类型 18 2.3 数据的表现形式 20 2.3.1 常量 21 2.3.2 变量 24 2.3.3 变量值的输入 26 2.4 操作符(运算符) 27 2.4.1 算术操作符 27 2.4.2 关系与逻辑操作符 30 2.4.3 位操作符 33 2.4.4 赋值操作符 36 2.4.5 其它操作符 37 2.5 表达式 38 2.5.1 表达式的构成与分类 39 2.5.2 操作符的优先级和结合性 39 2.5.3 表达式中的类型转换 41 2.5.4 表达式的副作用问题 42 2.5.5 表达式结果的输出 42 2.6 小结 43 2.7 习题 43 第3章 程序的流程控制――语句 45 3.1 语句的分类 45 3.2 表达式语句 46 3.3 复合语句 47 3.4 选择语句 48 3.4.1 if语句 48 3.4.2 switch语句 54 3.5 循环(重复)语句 57 3.5.1 while语句 57 3.5.2 do-while语句 58 3.5.3 for语句 59 3.5.4 三种循环语句的使用原则 61 3.5.5 循环程序设计实例 64 3.6 转移语句 70 3.6.1 break语句 70 3.6.2 continue语句 71 3.6.3 goto语句 73 3.7 空语句 74 3.8 程序设计风格 75 3.8.1 结构化程序设计 76 3.8.2 关于goto语句 76 3.9 小结 77 3.10 习题 78 第4章 过程抽象――函数 80 4.1 子程序 80 4.1.1 过程抽象 80 4.1.2 子程序间的数据传输 81 4.2 函数 82 4.2.1 函数的定义 82 4.2.2 函数的调用 85 4.2.3 函数的参数传递 87 4.3 变量的局部性 89 4.3.1 全局变量与局部变量 89 4.3.2 变量的存储分配(生存期) 90 4.3.3 *基于栈的函数调用的实现 93 4.3.4 C++程序的多模块结构 95 4.3.5 标识符的作用域 97 4.3.6 名空间(namespace) 103 4.4 递归函数 105 4.4.1 递归函数的定义 105 4.4.2 递归函数的作用 106 4.4.3 递归与循环的选择 108 4.4.4 递归函数实例 109 4.5 函数名重载 111 4.6 带缺省值的形式参数 114 4.7 内联函数 116 4.8 条件编译 119 4.8.1 基于多环境的程序编制 119 4.8.2 程序调试 122 4.9 标准库函数 123 4.10 小结 124 4.11 习题 125 第5章 构造数据类型 127 5.1 枚举类型 127 5.2 数组类型 131 5.2.1 一维数组 131 5.2.2 二维数组 139 5.2.3 数组的应用 143 5.3 结构(struct)与联合(union) 150 5.3.1 结构 151 5.3.2 联合(共同体) 157 5.4 指针类型 162 5.4.1 指针的基本概念 162 5.4.2 指针作为形参类型 169 5.4.3 指针与动态变量 174 5.4.4 指针与数组 184 5.4.5 函数指针 187 5.4.6 *多级指针 190 5.5 引用类型 191 5.6 小结 193 5.7 习题 194 第6章 数据抽象――类 197 6.1 从面向过程到面向对象 197 6.1.1 什么是面向对象程序设计 197 6.1.2 为什么要面向对象 199 6.1.3 面向对象程序设计的基本内容 203 6.2 类的定义 204 6.2.1 数据成员 205 6.2.2 成员函数 206 6.2.3 成员的访问控制:信息隐藏 207 6.3 对象 210 6.3.1 对象的创建和标识 210 6.3.2 对象的操作 211 6.3.3 this指针 213 6.4 对象的初始化和消亡前处理 215 6.4.1 构造函数与析构函数 215 6.4.2 成员对象的初始化 222 6.4.3 拷贝构造函数 223 6.5 const 成员函数 226 6.6 静态成员 228 6.7 友元 231 6.8 小结 234 6.9 习题 235 第7章 操作符重载 238 7.1 操作符重载的需要性和基本原则 238 7.2 作为成员函数重载操作符 240 7.3 作为全局(友元)函数重载操作符 242 7.4 几个特殊操作符的重载 244 7.4.1 赋值操作符= 244 7.4.2 数组元素访问操作符(或下标操作符)[] 246 7.4.3 类成员访问操作符-> 247 7.4.4 动态存储分配与去配操作符new与delete 249 7.4.5 自定义类型转换操作符 253 7.4.6 函数调用操作符() 255 7.5 小结 257 7.6 习题 258 第8章 继承――派生类 260 8.1 继承的概念 260 8.2 单继承 262 8.2.1 单继承的定义 262 8.2.2 在派生类中对基类成员的访问 264 8.2.3 继承方式 267 8.2.4 派生类对象的初始化和赋值操作 269 8.2.5 单继承的实例 270 8.3 虚函数 272 8.3.1 多态性 272 8.3.2 虚函数 273 8.3.3 纯虚函数和抽象类 276 8.3.4 *虚函数动态绑定的实现 281 8.4 多继承 283 8.4.1 多继承的需要性 283 8.4.2 多继承的定义 284 8.4.3 名冲突 285 8.4.4 重复继承――虚基类 286 8.5 类作为模块 287 8.5.1 类模块的组成 287 8.5.2 *Demeter法则 289 8.6 小结 290 8.7 习题 290 第9章 类属设施――模板 294 9.1 函数模板 294 9.2 类模板 298 9.3 模板的复用 300 9.4 小结 302 9.5 习题 302 第10章 输入/输出(I/O) 304 10.1 概述 304 10.2 控制台I/O 305 10.2.1 基于I/O函数库的控制台I/O 305 10.2.2 基于I/O类库的控制台I/O 308 10.3 文件I/O 313 10.3.1 基于I/O函数库的文件I/O 314 10.3.2 基于I/O类库的文件I/O 320 10.4 字符串I/O 327 10.5 小结 328 10.6 习题 329 第11章 异常处理 330 11.1 异常的概念 330 11.2 C++异常处理机制 331 11.2.1 try、throw以及catch语句 331 11.2.2 异常处理的嵌套 334 11.3 小结 335 11.4 习题 336 第12章 实例--面向对象的Windows应用程序框架 337 12.1 Windows应用程序的基本结构 337 12.1.1 应用程序的用户界面 337 12.1.2 消息驱动的程序结构 339 12.2 MFC类库(Microsoft Foundation Class library) 341 12.2.1 面向对象的Windows应用程序结构 341 12.2.2 MFC对面向对象的Windows应用程序的支持 342 12.2.3 Visual C++的应用向导(AppWizard)和类向导(Class Wizard) 348 12.3 小结 349 12.4 习题 349 例子索引 351 图表索引 354 参考文献 355 附录一 ASCII字符集及其编码 357