图书目录

目录

第1章网络编程的实现原理1

1.1网络程序的类型与应用领域1

1.1.1网络程序的类型1

1.1.2网络程序的应用领域3

1.2套接字及其种类5

1.2.1什么是套接字5

1.2.2套接字的类型7

1.2.3网络字节顺序8

1.3Visual C++编程基础知识9

1.3.1Visual C++字符串处理函数9

1.3.2Visual C++新增的数据类型11

习题12第2章控制台版本的TCP通信程序13

2.1套接字编程基础13

2.1.1套接字编程步骤13

2.1.2套接字编程的准备工作14

2.1.3套接字编程中使用的函数16

2.1.4套接字建立连接与TCP三次握手19

2.2最基本的TCP通信程序20

2.2.1服务器端程序的编制21

2.2.2客户端程序的编制22

2.2.3WinSock的错误处理24

2.3UNIX Socket编程24

习题25第3章Win32 API版本的TCP通信程序27

3.1Windows对话框程序27

3.1.1新建对话框程序27

3.1.2处理Windows消息31

3.1.3获取和设置控件的内容33

3.2Windows API程序实例34

3.2.1计算器程序34

3.2.2获取主机名、IP地址和时间的程序37

3.3Win32 API版本的TCP通信程序实例38

3.3.1将控制台程序改造成Windows程序的方法38

3.3.2服务器端程序的编制40

3.3.3客户端程序的编制42

习题45第4章异步通信版本的TCP通信程序46

4.1阻塞与非阻塞模式46

4.1.1引起阻塞的WinSock函数46

4.1.2异步I/O模型47

4.1.3WSAAsyncSelect模型47

4.2异步通信版本的TCP通信程序实例50

4.2.1服务器端程序的编制50

4.2.2客户端程序的编制53

习题56第5章UDP通信程序57

5.1UDP通信程序的原理57

5.1.1UDP的通信模式58

5.1.2UDP的数据收发函数60

5.2控制台版本的UDP通信程序实例61

5.2.1服务器端程序的编制61

5.2.2客户端程序的编制62

5.3异步对等UDP通信程序实例63

5.4UDP广播消息的程序实例67

5.4.1设置套接字选项68

5.4.2UDP广播通信程序的编制70

习题74第6章MFC网络编程75

6.1MFC概述75

6.1.1MFC中的类75

6.1.2MFC程序的结构76

6.2MFC版本的计算器程序78

6.2.1设置成员变量79

6.2.2编写代码79

6.2.3在Visual Studio 2010中新建MFC程序81

6.3MFC版本的TCP异步通信程序实例83

6.3.1服务器端程序的编制83

6.3.2客户端程序的编制87

习题90第7章使用CAsyncSocket类和CSocket类92

7.1MFC Socket编程基础92

7.1.1CAsyncSocket类的函数92

7.1.2CAsyncSocket类编程的步骤95

7.2CSocket类版本的TCP通信程序实例95

7.2.1服务器端程序的编制96

7.2.2客户端程序的编制99

7.3CAsyncSocket类版本的TCP通信程序实例102

7.3.1服务器端程序的编制102

7.3.2客户端程序的编制106

习题109第8章TCP文件传输程序110

8.1控制台版本的TCP文件传输程序实例110

8.1.1服务器端程序的编制111

8.1.2客户端程序的编制113

8.2CFile类和CFileDialog类115

8.2.1CFile类的使用115

8.2.2CFileDialog类的使用116

8.2.3使用CFile类和CFileDialog类编制记事本程序118

8.3MFC版本的TCP文件传输程序实例119

8.3.1TCP文件传输程序的流程120

8.3.2服务器端程序的编制121

8.3.3客户端程序的编制125

习题129第9章网络用户登录程序130

9.1MFC访问数据库130

9.1.1访问数据库的原理130

9.1.2ADO访问数据库程序实例131

9.2单机版用户登录程序实例134

9.2.1程序的编制135

9.2.2查询数据库的实现137

9.2.3在用户登录界面与欢迎界面之间传递变量139

9.3网络版用户登录程序实例141

9.3.1服务器端程序的编制142

9.3.2客户端程序的编制146

习题149第10章TCP一对多通信程序150

10.1多线程程序的作用150

10.1.1进程与线程150

10.1.2创建线程的步骤151

10.2控制台版本的多线程TCP通信程序实例153

10.2.1服务器端程序的原理153

10.2.2服务器端程序的编制154

10.3MFC版本的多线程TCP通信程序实例156

10.3.1服务器端程序的原理156

10.3.2服务器端程序的编制157

习题162第11章使用select模型实现一对多通信163

11.1select模型基础163

11.1.1select模型的集合与事件163

11.1.2select模型编程的步骤164

11.2群聊软件实例165

11.2.1服务器端程序的原理166

11.2.2服务器端程序的编制167

11.3服务器远程监控系统实例172

习题175第12章在线考试系统176

12.1重叠I/O模型176

12.1.1WSAOVERLAPPED结构体176

12.1.2重叠I/O模型的常用函数178

12.1.3重叠I/O模型的编程框架180

12.1.4基于重叠I/O模型的TCP通信程序182

12.2I/O完成端口模型184

12.2.1使用I/O完成端口的编程流程185

12.2.2在线考试系统的设计186

习题189第13章网络嗅探软件190

13.1原始套接字概述190

13.1.1创建原始套接字190

13.1.2使用原始套接字收发数据191

13.2编制网络嗅探软件191

13.2.1网络嗅探软件的原理192

13.2.2网络嗅探软件的编制192

习题194附录APython版的TCP通信程序195附录BJava版的TCP通信程序197参考文献200第一部分数 据 结 构

第1章绪论3

1.1数据结构的概念3

1.1.1数据结构的范畴3

1.1.2相关概念和术语4

1.2算法和算法分析7

1.2.1算法的基本概念7

1.2.2算法复杂度11

小结13

习题14第2章线性表15

2.1线性表的逻辑结构15

2.1.1线性表的定义15

2.1.2线性表的基本操作16

2.2线性表的顺序存储及运算实现17

2.2.1顺序存储的特点17

2.2.2顺序表上的运算实现17

2.3线性表的链式存储及运算实现21

2.3.1链式存储的特点22

2.3.2链表上的运算实现24

小结26

习题27第3章特殊线性表28

3.1栈28

3.1.1栈的定义28

3.1.2栈的存储及运算实现29

3.2队列31

3.2.1队列的定义31

3.2.2队列的存储及运算实现33

3.3串35

3.3.1串的定义35

3.3.2串的存储37

小结37

习题38第4章数组39

4.1数组的定义39

4.2数组的存储及运算实现40

小结42

习题42第5章树与二叉树43

5.1树43

5.1.1树的定义43

5.1.2相关术语44

5.2二叉树45

5.2.1二叉树的定义45

5.2.2二叉树的性质46

5.2.3二叉树的存储结构47

5.3二叉树的遍历48

小结50

习题50第6章图51

6.1图的定义和术语51

6.2图的存储表示53

6.3图的遍历55

小结57

习题58第7章查找59

7.1基本概念59

7.2静态查找表60

7.2.1顺序查找60

7.2.2折半查找61

7.2.3索引查找62

7.3动态查找表63

7.3.1二叉排序树64

7.3.2平衡二叉树66

7.4哈希表的查找66

小结69

习题69第8章排序70

8.1基本概念70

8.2插入排序71

8.2.1直接插入排序71

8.2.2希尔排序73

8.3交换排序74

8.3.1冒泡排序74

8.3.2快速排序76

8.4选择排序78

8.5归并排序79

小结81

习题82

第二部分数据库技术

第9章数据库系统概述85

9.1数据库系统的作用85

9.1.1数据与数据管理85

9.1.2数据库应用88

9.2数据库处理技术的发展过程91

9.2.1人工管理阶段91

9.2.2文件系统阶段92

9.2.3数据库系统阶段93

9.2.4高级数据库阶段95

9.3数据模型97

9.3.1概念模型97

9.3.2数据模型101

9.3.3层次模型103

9.3.4网状模型104

9.3.5关系模型106

9.3.6面向对象模型109

9.4数据库系统的结构111

9.4.1数据库系统的三级模式结构111

9.4.2数据库系统的二级映像113

9.4.3数据库体系结构114

9.5数据库管理系统117

9.5.1DBMS的工作模式117

9.5.2DBMS的主要功能118

9.5.3DBMS的组成119

小结120

习题121第10章关系模型与关系代数122

10.1关系模型122

10.2关系代数126

10.2.1集合的三种基本运算——交、并、差126

10.2.2关系的基本运算129

小结133

习题134第11章关系数据库标准语言——SQL135

11.1SQL概述及特点135

11.1.1SQL概述135

11.1.2SQL的特点136

11.1.3SQL的基本概念137

11.2SQL的数据定义138

11.2.1数据库的定义138

11.2.2基本表的定义141

11.2.3索引的定义147

11.3SQL的单表查询149

11.3.1SELECT语句概述149

11.3.2投影运算151

11.3.3选择运算153

11.3.4排序运算157

11.3.5查询表158

11.4SQL的连接查询159

11.4.1等值与非等值连接159

11.4.2自表连接162

11.4.3外连接163

11.5SQL的聚合查询166

11.5.1聚合函数166

11.5.2分组聚合167

11.6SQL的嵌套子查询169

11.6.1使用IN的子查询169

11.6.2使用比较运算符的子查询170

11.6.3使用存在量词EXISTS的子查询172

11.7集合运算173

11.8SQL的数据操纵174

11.8.1插入数据174

11.8.2更新数据176

11.8.3删除数据178

11.9视图179

11.9.1创建视图179

11.9.2查询视图181

11.9.3视图更新182

11.9.4删除视图183

小结184

习题184第12章数据库设计及优化189

12.1数据库设计方法189

12.1.1数据库和信息系统189

12.1.2数据库设计过程190

12.2需求分析192

12.2.1需求分析的任务192

12.2.2需求分析的步骤193

12.2.3需求分析的方法193

12.3概念结构设计195

12.3.1概念模型的基本概念195

12.3.2概念模型的表示方法195

12.3.3概念结构的特点196

12.3.4概念结构设计的方法197

12.3.5概念结构设计的步骤198

12.4规范化200

12.4.1关系模式规范化的必要性200

12.4.2函数依赖201

12.4.3范式与规范化203

12.4.4模式分解原则207

12.4.5规范化的本质分析与总结207

12.5逻辑结构设计208

12.5.1概念模型向关系模型的转换208

12.5.2数据模型的优化211

12.5.3数据库逻辑设计案例212

12.6数据库的物理设计214

12.6.1数据库物理设计的方法214

12.6.2确定数据库的物理结构215

12.6.3对物理结构进行评价216

12.7数据库的实施与维护216

12.7.1数据库的实施216

12.7.2数据库的维护218

小结219

习题219第13章数据库安全性与完整性221

13.1数据库安全性221

13.1.1数据库安全的基本概念221

13.1.2用户管理223

13.1.3角色管理225

13.2数据库完整性226

13.2.1完整性约束的概念和类型227

13.2.2完整性约束的管理228

13.3TransactSQL基础233

13.3.1SQL对象的命名规则和注释233

13.3.2数据类型233

13.3.3变量237

13.3.4函数239

13.3.5批处理和流程控制242

13.4游标246

13.4.1游标的使用247

13.4.2当前游标集的修改250

13.5存储过程252

13.5.1存储过程概述252

13.5.2创建和执行存储过程252

13.5.3修改和删除存储过程254

13.6触发器255

13.6.1触发器概述255

13.6.2创建触发器256

13.6.3删除和修改触发器258

小结259

习题259第14章事务管理与恢复260

14.1事务260

14.1.1并发操作时产生的问题260

14.1.2事务的概念262

14.1.3事务的特性263

14.2并发控制264

14.3恢复与备份266

14.3.1数据库系统的故障266

14.3.2数据库备份267

14.3.3数据库恢复268

小结271

习题271第15章数据库应用开发272

15.1ADO.NET概述272

15.2系统分析276

15.2.1系统需求分析276

15.2.2系统用例分析277

15.2.3系统时序图278

15.3数据库分析和设计279

15.3.1数据库分析279

15.3.2数据库设计279

15.4数据库的连接和访问281

15.4.1数据库的连接281

15.4.2数据库的访问282

15.5系统界面设计及相关代码实现284

15.5.1酒店客房管理系统的首界面设计及其代码实现284

15.5.2客房信息管理界面的设计及其代码实现286

小结287参考文献288