第1篇 C/C++语言导论 1
第1章 C/C++语言概述 1
1.1 C/C++语言起源 1
1.2 C/C++语言是程序员的语言 2
1.3 C/C++程序风格 2
1.4 程序库、链接与程序重用 4
1.5 程序的编译 5
1.5.1 PC机的编译模式 5
1.5.2 模块划分和独立编译 5
1.5.3 神图关联的分别编译 6
1.6 从语言发展看C/C++ 6
1.6.1 语言的发展轨迹 6
1.6.2 程序的拓扑结构 7
1.6.3 神图C/C++的多维拓扑结构 8
1.6.4 程序的组成 8
1.6.5 金无足赤的C/C++ 9
第2章 C/C++数据与算符 10
2.1 基本数据类型 10
2.2 常量、变量和初始化 11
2.2.1 数据声明 11
2.2.2 局部和全局变量 12
2.2.3 函数形参 13
2.3 变量的存储修饰 13
2.3.1 变量和标识符 13
2.3.2 存储类和类型修饰符 14
2.3.3 静态变量与信息隐藏 15
2.4 表达式 16
2.4.1 运算符 16
2.4.2 逻辑真假值 16
2.4.3 判定表达式 17
2.4.4 累计赋值 17
2.5 构造类型与数据抽象 18
2.5.1 数组 18
2.5.2 结构类型 20
2.5.3 数据抽象 21
2.5.4 C++的类 22
2.5.5 指针 23
2.6 C/C++的基本I/O操作 26
2.6.1 控制台I/O 26
2.6.2 格式化的控制台I/O 27
2.6.3 C++的基本流 28
2.6.4 printf()同cout<<的比较 28
2.6.5 缓冲文件系统 29
第3章 C/C++算法与控制 32
3.1 顺序流程 32
3.2 转向语句 32
3.2.1 无条件转向语句goto 33
3.2.2 受限转向语句 continue,break,exit() 33
3.3 分支语句 33
3.3.1 if分支控制 33
3.3.2 switch分支控制 34
3.3.3 神图的分支结构 35
3.4 循环语句 35
3.4.1 while循环 35
3.4.2 do-while循环 37
3.4.3 for循环 37
3.4.4 神图的循环结构 38
3.5 块复合语句 39
3.5.1 块语句与抽象 39
3.5.2 神图的抽象块 40
3.6 函数 40
3.6.1 功能抽象 41
3.6.2 调用和参数传递 41
3.6.3 函数副作用 43
3.6.4 函数调用的合法性 44
3.6.5 神图的函数定义 45
第4章 C/C++程序结构与组织 46
4.1 C/C++的预处理 46
4.2 C/C++的程序模块 51
4.2.1 从神图看C/C++的程序模块 51
4.2.2 模块的主体设计 52
4.2.3 模块的辅助描述 53
4.3 系统拼联的一致与合法性 54
4.3.1 程序的一致性 54
4.3.2 程序的合法性 54
4.3.3 独立编译的优缺点 55
4.3.4 神图确保系统拼联的一致与合法性 55
第5章 C/C++与程序设计方法学 57
5.1 程序=数据结构+算法 57
5.2 结构化编程 58
5.2.1 有限控制结构 58
5.2.2 受限转向控制 59
5.2.3 功能抽象化 60
5.3 模块化设计 61
5.3.1 抽象与信息隐藏 61
5.3.2 修改变换的局部性 61
5.3.3 编程的灵活性 62
5.4 面向对象方法学 62
5.4.1 C++的类 62
5.4.2 重载与多态性 64
5.4.3 构造与析构函数 64
5.4.4 类的继承 65
5.4.5 C++类的程序组织结构 66
5.4.6 神图的模块拓扑结构 67
第2篇 用神图C/C++进行程序设计 69
第6章 神图的结构化程序设计 69
6.1 神图的数据结构 70
6.1.1 声明结构 70
6.1.2 定义结构 70
6.1.3 类定义 70
6.2 神图的控制结构 71
6.2.1 注释结构 71
6.2.2 简单结构 71
6.2.3 分支结构 73
6.2.4 循环结构 74
6.3 神图的算法结构 76
6.3.1 抽象块与求精 76
6.3.2 函数规格与实现 76
6.4 神图的模块结构 77
6.4.1 模块规格 77
6.4.2 模块实现 77
6.5 第一个设计问题:Shell命令解释 78
第7章 程序抽象与功能设计 82
7.1 功能规划与详细实现 82
7.1.1 函数的IPO特征 82
7.1.2 局部声明 82
7.1.3 语句实现 83
7.2 函数的“黑匣子”原理 83
7.2.1 函数修改的局部性 84
7.2.2 函数调用的合法性 84
7.2.3 函数原型的一致性 84
7.3 逐步求精与思维层次 85
7.3.1 抽象与求精层次 85
7.3.2 神图模块的分层组织 85
7.4 第二个设计问题:Tic-Tac-Toe游戏 86
第8章 数据抽象与面向对象设计 93
8.1 类型化的程序设计 94
8.2 类和对象 94
8.2.1 struct的扩展 94
8.2.2 类的成员声明 95
8.2.3 类的访问权限 96
8.3 对象的行为特征 96
8.3.1 成员函数 96
8.3.2 友元函数 97
8.3.3 内联函数 97
8.4 对象的构造与析构 98
8.5 第三个设计问题:Stack堆栈应用 100
第9章 重用模块的IC化设计 104
9.1 重载函数和算符 104
9.1.1 操作算符重载 104
9.1.2 构造函数重载 106
9.2 类的静态成员 107
9.3 “积木”式的继承功能 108
9.3.1 对基类的访问控制 108
9.3.2 类的继承和保护成员 110
9.3.3 虚拟基类和多重继承 111
9.3.4 向构造函数传递参数 113
9.3.5 执行构造和析构函数 114
9.3.6 对象数组和指针应用 114
9.4 虚函数与多态性 116
9.4.1 虚函数 116
9.4.2 抽象类 117
9.4.3 前联编与后联编 118
9.5 第四个设计问题:Convert货币兑换 119
第10章 模块拼联与系统开发 125
10.1 自动化的头文件处理 125
10.1.1 IN型头文件生成 125
10.1.2 OUT型头文件生成 126
10.1.3 系统头义件智能包含 128
10.2 模块之间的拓扑关系 128
10.2.1 关系描述 129
10.2.2 依赖性 129
10.2.3 传递性 130
10.3 关联的重新编译 130
10.4 第五个设计问题:Dual网状派生类 131
10.5 计算机辅助软件工程大有可为 136
第3篇 神图C/C++开发环境 137
第11章 神图系统功能介绍 137
11.1 环境菜单和系统功能 137
11.1.1 系统管理 137
11.1.2 模块编辑 138
11.1.3 编译加工 138
11.1.4 项目管理 139
11.1.5 环境备选 139
11.1.6 文档处理 140
11.2 神图的工程项目管理 140
11.3 环境的用户管理与系统维护 141
11.3.1 任务组与多用户 141
11.3.2 用户登录及管理 141
11.3.3 用户屏蔽与开放 143
11.4 编译系统的挂接 143
11.4.1 神图与编译系统的关系 143
11.4.2 区分编译C与C++程序 143
11.4.3 选控编译系统的挂接 144
11.4.4 编译系统及版本差异 144
11.4.5 开放式词组库管理 144
第12章 神图用户操作指南 146
12.1 神图结构程序规范 146
12.1.1 神图的树型层次结构 146
12.1.2 神图结构编辑 147
12.1.3 结构状态和控制 148
12.1.4 结构模糊变换 149
12.1.5 结构异常处理 149
12.2 神图结构程序编辑 151
12.2.1 字符串编辑操作 151
12.2.2 神图环境的汉字及编码编辑 152
12.2.3 在线帮助——语法词组用法指南 153
12.2.4 自动匹配括号、引号的串编辑 153
12.2.5 字符串的快速查寻 154
12.2.6 结构编辑操作 154
12.2.7 结构的区域操作 154
12.3 神图结构程序开发 155
12.3.1 神图结构页面开发控制 155
12.3.2 神图程序的注释处理 156
12.3.3 神图结构扩展处理 156
12.3.4 类成员函数实现处理 159
12.3.5 抽象块的广泛应用 159
附录A 神图的语法示图 161
A-1 树型结构语法规范 161
A-2 模块规格说明 162
A-3 函数求精页面 162
A-4 声明结构 163
A-5 定义结构 163
A-6 语句结构 164
附录B 神图C-DATA(C/C++)环境热键 164
B-1 全屏浏览 164
B-2 编辑修改 165
B-3 结构区域操作 165
B-4 其它操作 166
附录C 神图C-DATA(C/C++)系统安装 166
C-1 系统软件包安装 166
C-2 系统路径 167
C-3 DOS环境配置 167
C-4 运行用户管理程序UsrMgr 168
参考文献 168