首页>参考读物>计算机科学与技术>软件与程序设计

零基础学Visual C++ 第4版
作者 : 申远 古万荣 等编著
丛书名 : 零基础学编程
出版日期 : 2014-07-07
ISBN : 978-7-111-46860-8
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 518
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

本书特色
⊙ 由浅入深,循序渐进,从零开始学VC,一点都不难
⊙ 编程基础、编程进阶、编程应用、项目实战、上机练习、面试指南
⊙ 150个实例、1个案例、93个练习题、56个面试题

超值、大容量DVD
⊙ 本书教学视频
⊙ 本书源代码
⊙ 本书教学PPT
⊙ 本书习题答案

本书技术支持
⊙ 论坛:http://www.rzchina.net

丛书特色
⊙ 零门槛学习,没有任何基础便可轻松掌握 ⊙ 每个知识点都对应相应的实例讲解,容易理解
⊙ 给出编程经验、编程陷阱、编程技巧和编程谬误 ⊙ 提供上机实践练习题和常见面试题及解答
⊙ 源代码提供了详细的注释,阅读起来无障碍 ⊙ 提供典型案例帮助读者提高开发水平
⊙ 提供配套的多媒体教学视频,学习效果更好 ⊙ 提供了专门的售后服务论坛:http://www.rzchina.net

本书精华内容
● Visual C++6.0开发环境和应用程序框架
● C++语法基础
● Windows编程和MFC基础
● 键盘和鼠标消息
● 菜单、工具栏和状态栏编程
● Windows标准控件
● MFC的通用类
● 文本、图形输出
● 文档/视图结构的应用程序开发
● 对话框的应用
● 动态链接库编程
● 多线程程序开发
● Visual C++数据库编程
● Visual C++网络编程
● 使用Visual C++ 6.0开发家庭财务管理系统
● 面试题

图书前言

随着计算机软件的高速发展,各行各业也以信息化作为企业扩张的开路先锋。而相对于企业信息化的高速发展,研发型人才数量和质量的相对滞后导致软件设计企业人才供应紧张。C++在大中型软件应用研发中具有得天独厚的优势,而Visual C++是在Windows应用环境中最主流的集成开发环境。
  Visual C++是开发Win32应用程序的最重要的可视化编程工具之一,它为软件开发人员提供了完整的编辑、编译和调试工具以及建立于Win32 API基础上的MFC类库,从而有效缩短了Windows应用程序的开发周期。Windows操作系统本身大部分是使用C/C++语言写成的,而Visual C++正是使用C/C++语言的Win32应用程序集成开发环境,因此,使用Visual C++来开发Windows应用程序便有着得天独厚的优势。学习和掌握Visual C++,也自然地成为广大程序设计和开发人员的迫切需要。
  现在越来越多的人正在加入Visual C++程序员的行列。由于前一段时间.NET的盛行,Visual C++ .NET、Visual C++ 2010、Visual C++ 2012的相继推出,使得Visual C++的经典版本Visual C++ 6.0有些受到冷落。但经过一段时间的摸索,C++程序员又一致认为Visual C++ 6.0仍然是开发C++ Windows应用程序最理想的工具。
本书特色
  虽然本书是Visual C++ 6.0的基础教程,但内容丰富,几乎涵盖了Visual C++程序开发的各个方面,而且具有一定的深度。本书完全从一个Visual C++初学者的角度出发,通过大量实例讲解相关开发知识点,对每个实例均按照开发顺序给出了完整的开发过程,易学易用。本书的主要特色如下。
  1.注重基础
  本书的宗旨就是为Visual C++初学者打开通往Visual C++工程开发的大门,因此本书着重介绍使用MFC的基本类库开发应用程序,对于类库的二次开发不做讨论。
  2.注重实例
  本书通过实例来讲述Visual C++开发的主要知识点,同时给出每个实例的详细实现过程,而且均是按照开发顺序给出,便于读者学习、实践。
  3.循序渐进
  在编写本书的过程中,无论全书还是每章、每个知识点都尽量按照“由浅入深”的顺序编写,便于读者学习。
  4.知识速查
  对Visual C++编程的基本知识点都做了说明,以备读者速查,同时也便于初学者学习。
  5.内容全面
  本书涵盖了Visual C++基础开发的各个方面内容,同时对常用的高级应用程序也做了一定的介绍。本书涵盖的内容让读者可以全面、深入、透彻地理解Visual C++开发的各种应用。
本书内容
  全书共分为16章,涵盖了四篇内容,分别如下。
  第一篇“ Visual C++和C++基础篇”,包括第1~3章,介绍了使用Visual C++进行Windows程序开发的必备基础知识。
  第二篇“Visual C++常用类、控件、资源篇”,包括第4~8章,介绍了Visual C++开发Windows应用程序经常用到的类、控件、资源等的使用方法。
  第三篇“Visual C++基本应用程序开发篇”,包括第9~11章,介绍了Visual C++基本应用程序,包括对话框、文档/视图结构以及DLL程序的开发。
  第四篇“Visual C++程序开发提高篇”,包括第12~16章,介绍了Visual C++一些常用的高级开发技术,包括多线程、网络开发和数据库等,最后一章还提供一些常见面试题和面试技巧。
读者对象
  本书作为Visual C++ 6.0的基础教程,适合以下读者。
   Visual C++初学者。
   大中专院校刚学习完C++语言的低年级学生。
   各种C++培训机构的学员。
   具备一定C语言基础的Visual C++爱好者。
本书作者
  本书第1~10章由平顶山学院的申远编写,第11~16章由古万荣编写,其他参与编著和资料整理的人员有冯华君、刘博、刘燕、叶青、张军、张立娟、张艺、彭涛、徐磊、戎伟、朱毅、李佳、李玉涵、杨利润、杨春娇、武鹏、潘中强、王丹、王宁、王西莉、石淑珍、程彩红、邵毅、郑丹丹、郑海平和顾旭光。

上架指导

计算机\程序设计

封底文字

放同套系图书宣传页

作者简介

申远 古万荣 等编著:暂无简介

图书目录

前言
第一篇 Visual C++和C++基础篇
第1章 Visual C++ 6.0开发环境和应用程序框架 1
1.1 安装并测试Visual C++ 6.0 1
1.1.1 Visual C++ 6.0的安装 1
1.1.2 Visual C++ 6.0开发环境 4
1.1.3 Visual C++ 6.0应用程序向导和项目创建 5
1.2 Visual C++ 6.0简介 7
1.2.1 C/C++编译器 7
1.2.2 代码编辑器 7
1.2.3 资源编辑器和资源符号 8
1.2.4 连接器和调试器 9
1.2.5 Visual C++ 6.0的主要菜单项 9
1.2.6 项目和解决方案 15
1.2.7 本机帮助和联机帮助 15
1.3 Visual C++ 6.0中的编程库 16
1.3.1 C++标准库 16
1.3.2 C运行时库 18
1.3.3 活动模板库 18
1.3.4 微软基础类库 19
1.4 Win32基本应用程序的创建 19
1.4.1 AppWizard应用程序向导 19
1.4.2 生成Win32应用程序 20
1.4.3 Visual C++ 6.0的调试:变量跟踪和函数调用栈 24
1.5 Microsoft应用程序框架 25
1.5.1 全局对象 25
1.5.2 MFC的消息映射和消息分类 26
1.6 实例:编写第一个C++程序:Hello,C++! 26
1.7 实例:创建第一个MFC程序:Hello,MFC! 28
1.8 小结 29
1.9 习题 29
第2章 C++语法基础 30
2.1 C++简介 30
2.2 数据类型定义和使用 31
2.2.1 简单变量 31
2.2.2 算术运算符 35
2.2.3 枚举、指针和数组 36
2.2.4 string类和C风格字符串 39
2.2.5 结构体类型 41
2.2.6 类类型 42
2.2.7 实例:成绩管理系统(1.0版) 46
2.3 运算符、表达式和语句 49
2.3.1 几种常用的运算符 49
2.3.2 循环语句 51
2.3.3 判断语句 53
2.3.4 实例:成绩管理系统(2.0版) 56
2.4 函数定义和调用 59
2.4.1 定义函数和函数原型 59
2.4.2 函数通过指针调用数组 60
2.4.3 函数指针 61
2.4.4 具有引用参数的函数 62
2.4.5 函数重载 64
2.4.6 函数模板的定义和使用 66
2.4.7 实例:成绩管理系统(3.0版) 67
2.5 类的定义和对象构造 69
2.5.1 自然界中的类型和C++的类定义 69
2.5.2 实现类成员函数 71
2.5.3 实例化类对象并使用 72
2.5.4 类的构造函数和析构函数 73
2.5.5 运算符重载与this指针的使用 75
2.5.6 友元函数和友元类 77
2.5.7 实例:成绩管理系统(4.0版) 79
2.6 类继承 83
2.6.1 is-a关系 83
2.6.2 多态公有继承 85
2.6.3 protected访问控制 87
2.6.4 抽象基类 89
2.6.5 私有继承和保护继承 89
2.6.6 多继承 90
2.6.7 类模板 91
2.7 C++异常机制 91
2.7.1 异常处理类型 92
2.7.2 exception类 93
2.8 标准模板库 94
2.8.1 auto_ptr类的使用 94
2.8.2 vector模板类的定义和使用 94
2.8.3 通用算法 96
2.8.4 实例:使用STL和通用算法开发成绩管理系统(5.0版) 97
2.9 I/O流和文件 102
2.9.1 C++的输入和输出 102
2.9.2 文件输入和输出 103
2.9.3 实例:在Visual C++ 6.0环境下创建C++源文件,使用磁盘文件读写 103
2.10 小结 104
2.11 习题 105
第3章 Windows编程与MFC基础 107
3.1 Windows编程基础 107
3.1.1 Windows API函数 107
3.1.2 窗口与句柄 107
3.1.3 事件与消息 108
3.1.4 常用的Windows数据类型 109
3.2 Windows应用程序分析 109
3.2.1 WinMain()函数 110
3.2.2 创建窗口 110
3.2.3 消息循环 111
3.2.4 WinProc窗口函数 112
3.2.5 Windows编程实例 113
3.3 MFC基础 115
3.3.1 MFC概述 115
3.3.2 MFC基础类及其层次结构 115
3.3.3 MFC中的全局函数 116
3.4 MFC应用程序框架分析 117
3.4.1 入口函数 117
3.4.2 应用程序对象 119
3.4.3 InitInstance()函数 119
3.4.4 Run()函数 120
3.4.5 MFC的消息映射 121
3.4.6 MFC消息分类 122
3.4.7 在Visual C++ 6.0中添加消息映射 123
3.5 小结 125
3.6 习题 125
第二篇 Visual C++常用类、控件、资源篇
第4章 基本输入——键盘和鼠标消息 127
4.1 键盘消息及其处理 127
4.1.1 键盘消息 127
4.1.2 键盘消息处理 128
4.1.3 按键消息处理 129
4.1.4 按键消息处理函数 131
4.1.5 字符消息处理 133
4.1.6 创建键盘插入符 136
4.2 鼠标消息及其处理 138
4.2.1 鼠标消息 138
4.2.2 鼠标消息处理函数 138
4.2.3 鼠标消息处理实例 139
4.2.4 鼠标光标的创建与使用 142
4.2.5 捕捉鼠标 143
4.2.6 锁定鼠标的作用区域 144
4.3 自定义发送窗口消息 145
4.4 小结 147
4.5 习题 148
第5章 菜单、工具栏和状态栏编程 149
5.1 菜单及其相关资源的使用 149
5.1.1 菜单的种类及开发步骤 149
5.1.2 菜单的创建与编辑 150
5.1.3 菜单消息 151
5.1.4 菜单命令消息的处理 152
5.1.5 菜单更新消息的处理 154
5.1.6 为菜单项设置快捷键 156
5.1.7 弹出菜单的创建与使用 157
5.2 工具栏的使用 160
5.2.1 工具栏的功能 160
5.2.2 工具栏的创建 160
5.2.3 编辑工具栏 162
5.2.4 工具栏命令处理 163
5.2.5 工具栏类CToolBar的简单介绍 163
5.3 状态栏的使用 164
5.3.1 状态栏的功能 164
5.3.2 状态栏的创建 164
5.3.3 状态栏编程 166
5.3.4 状态栏类CStatusBar的简单介绍 168
5.4 小结 169
5.5 习题 169
第6章 使用Windows标准控件 171
6.1 Windows标准控件 171
6.1.1 Windows控件简介 172
6.1.2 使用对话框编辑器创建控件 172
6.1.3 控件类的基类CWnd 174
6.1.4 控件的消息及其处理 175
6.1.5 Visual C++ 6.0的控件工具箱 175
6.2 按钮控件 177
6.2.1 按钮控件简介 177
6.2.2 按钮控件类CButton 178
6.2.3 按钮控件的属性与消息 178
6.2.4 按钮状态的确定 180
6.2.5 按钮控件使用实例 182
6.3 静态控件与编辑控件 186
6.3.1 静态控件的创建与使用 186
6.3.2 静态控件类CStatic 187
6.3.3 编辑控件的创建 187
6.3.4 编辑控件类CEdit 188
6.3.5 编辑控件的消息 190
6.3.6 编辑控件的应用实例 190
6.4 列表框控件和组合框控件 192
6.4.1 列表框控件的创建 192
6.4.2 列表框控件类CListBox 193
6.4.3 列表框控件的消息 195
6.4.4 列表框控件实例 195
6.4.5 组合框控件的创建 197
6.4.6 组合框控件类CComboBox 198
6.4.7 组合框控件的消息 199
6.5 微调控件、滑块控件和进度条 200
6.5.1 微调控件的创建 200
6.5.2 微调控件的使用 201
6.5.3 滑块控件的创建 203
6.5.4 滑块控件的使用 203
6.5.5 进度条控件的创建及使用 205
6.5.6 微调控件、滑块控件和进度条编程实例 206
6.6 列表视图控件 207
6.6.1 列表视图控件的创建 207
6.6.2 列表视图控件类CListCtrl 208
6.6.3 列表视图控件的通知消息 210
6.7 树形视图控件 211
6.7.1 树形视图控件的创建 211
6.7.2 树形视图控件类CTreeCtrl 212
6.7.3 树形视图控件的消息 214
6.8 列表视图和树形视图编程实例 214
6.9 动态创建Windows控件 218
6.10 ActiveX控件的使用 219
6.10.1 ActiveX控件的结构 219
6.10.2 Visual C++中的组件和控件库 220
6.10.3 MFC程序中ActiveX控件的使用 221
6.10.4 ActiveX控件使用实例 222
6.11 小结 226
6.12 习题 226
第7章 MFC常用的通用类 228
7.1 字符串类 228
7.1.1 CString对象的创建 228
7.1.2 CString类的成员函数 229
7.1.3 CString类的常用操作 230
7.1.4 CString的格式化与类型转换 232
7.2 集合类 234
7.2.1 数组类 234
7.2.2 数组类的使用实例 235
7.2.3 链表类 237
7.2.4 链表类使用实例 239
7.3 日期、时间类 241
7.3.1 CTime类 241
7.3.2 CTime对象的格式化 242
7.3.3 CTimeSpan类 243
7.3.4 计时器的使用 245
7.4 MFC文件操作类(CFile) 246
7.4.1 构造文件对象并打开文件 246
7.4.2 文件的读写操作 247
7.4.3 文件的定位操作 248
7.4.4 文件的管理操作 249
7.4.5 使用CFile类进行文件操作实例 250
7.4.6 使用CStdioFile类操作文件 252
7.5 异常类 253
7.5.1 异常类简介 253
7.5.2 文件异常类CFileException 254
7.5.3 异常的捕获 255
7.6 小结 256
7.7 习题 257
第8章 文本、图形输出 258
8.1 基础知识 258
8.1.1 GDI绘图的实现 258
8.1.2 MFC图形对象类 259
8.1.3 库存GDI对象 260
8.1.4 与图形绘制有关的简单数据类型 260
8.1.5 MFC应用程序框架中的图形绘制与刷新 262
8.2 MFC设备描述表(CDC类) 263
8.2.1 CDC及其派生类 263
8.2.2 输出文本 265
8.2.3 CDC的常用绘图函数 267
8.3 使用画笔和画刷进行绘图 269
8.3.1 画笔对象及其使用 269
8.3.2 使用画笔绘图实例 270
8.3.3 画刷对象及其使用 271
8.3.4 使用画刷绘图实例 272
8.4 小结 274
8.5 习题 274
第三篇 Visual C++基本应用程序开发篇
第9章 文档/视图结构的应用程序开发 275
9.1 文档/视图结构概述 275
9.2 单文档界面应用程序 276
9.2.1 单文档界面简介 276
9.2.2 创建单文档程序框架 276
9.2.3 程序框架中的主要类及其相互关系 280
9.2.4 文档类、视图类核心函数及作用 281
9.2.5 新建、保存和打开的实现 282
9.3 多文档界面应用程序 284
9.3.1 多文档界面简介 284
9.3.2 多文档应用程序的框架 284
9.4 文档/视图结构应用程序的开发 285
9.4.1 实现目标 285
9.4.2 创建基本的程序框架 286
9.4.3 创建文档数据 287
9.4.4 在视图类中实现绘图操作 288
9.4.5 文档的序列化 290
9.4.6 对例程数据进行序列化 294
9.4.7 让文档程序支持滚动条 297
9.5 小结 299
9.6 习题 299
第10章 对话框的应用 301
10.1 对话框的工作方式、种类和创建方法 301
10.1.1 对话框在应用程序中的工作方式 301
10.1.2 模态对话框 301
10.1.3 非模态对话框 302
10.1.4 对话框模板的创建与编辑 302
10.2 对话框与程序连接 304
10.2.1 创建对话框类 305
10.2.2 为对话框类添加成员变量 305
10.2.3 对话框数据交换与验证 306
10.2.4 对话框控件通知消息的处理 308
10.3 对话框的创建与显示 310
10.3.1 创建模态对话框 310
10.3.2 创建非模态对话框 312
10.3.3 非模态对话框创建实例 313
10.3.4 基于对话框的应用程序 317
10.4 消息对话框与公用对话框 319
10.4.1 消息对话框 320
10.4.2 颜色对话框 322
10.4.3 文件对话框 323
10.4.4 字体对话框 324
10.4.5 查找、替换对话框 326
10.4.6 打印对话框 329
10.4.7 公用对话框使用实例 330
10.5 小结 335
10.6 习题 335
第11章 动态链接库编程 336
11.1 认识动态链接库 336
11.1.1 动态链接库的概念 336
11.1.2 动态链接库的优点 337
11.1.3 Visual C++ 6.0可开发的DLL类型 338
11.1.4 DLL文件的组成 338
11.2 DLL的创建与调用 339
11.2.1 Win32 DLL的创建 340
11.2.2 DLL的导出 341
11.2.3 应用程序链接DLL 342
11.2.4 隐式链接 342
11.2.5 显式链接 344
11.3 MFC常规DLL 345
11.3.1 MFC常规DLL的概念 346
11.3.2 MFC常规DLL的创建 346
11.3.3 MFC常规DLL创建实例 347
11.3.4 MFC常规DLL的调用 349
11.4 MFC扩展DLL 350
11.4.1 MFC扩展DLL的创建 350
11.4.2 MFC扩展DLL的创建实例 351
11.4.3 MFC扩展DLL的调用 354
11.5 DLL的查看与调试 355
11.5.1 查看DLL 355
11.5.2 调试DLL 355
11.6 小结 356
11.7 习题 356
第四篇 Visual C++程序开发提高篇
第12章 多线程程序开发 358
12.1 多线程的引入 358
12.1.1 单线程程序的不足 358
12.1.2 问题的解决 359
12.2 多线程编程的基础知识 360
12.2.1 进程和线程 360
12.2.2 Spy++工具 360
12.2.3 Win32 API对多线程编程的支持 361
12.2.4 MFC对多线程编程的支持 364
12.3 多线程程序开发 367
12.3.1 使用Win32 API函数开多线程程序 368
12.3.2 MFC用户界面线程的开发 370
12.3.3 MFC工作者线程的开发 374
12.4 线程间的通信 374
12.4.1 使用全局变量实现线程间的通信 374
12.4.2 使用事件对象实现线程间的通信 377
12.4.3 使用自定义的消息实现线程间的通信 378
12.5 线程的同步 381
12.5.1 等待函数 381
12.5.2 使用CEvent类实现线程同步的方法 382
12.5.3 使用CEvent类实现线程同步的实例 383
12.5.4 使用CCriticalSection类实现线程同步 385
12.5.5 使用CCriticalSection类实现线程同步的实例 387
12.6 线程和进程的优先级 390
12.6.1 优先级的意义 390
12.6.2 进程的优先级 390
12.6.3 线程的优先级 391
12.6 小结 392
12.7 习题 392
第13章 Visual C++数据库编程 394
13.1 数据库基础 394
13.1.1 数据库的基本概念 394
13.1.2 数据库管理系统 395
13.1.3 几种流行的数据库 395
13.1.4 结构化查询语言(SQL) 397
13.2 数据库开发技术简介 400
13.2.1 ODBC技术 400
13.2.2 DAO技术 402
13.2.3 ADO技术 402
13.3 在Visual C++中使用ADO开发数据库应用程序 404
13.3.1 Visual C++对ADO的支持 404
13.3.2 创建数据库与实例工程 405
13.3.3 引入ADO对象 408
13.3.4 连接数据源 408
13.3.5 开发技术——连接对象 409
13.3.6 创建表并添加数据 411
13.3.7 开发技术——ADO对象命令的执行 412
13.3.8 开发技术——Recordset对象 413
13.3.9 遍历、删除、编辑记录的实现 419
13.4 使用ODBC数据源连接数据库 423
13.4.1 手动实现设置ODBC数据源 423
13.4.2 ADO连接ODBC数据源 425
13.4.3 Visual C++程序实现设置ODBC数据源 425
13.4.4 使用Visual C++程序设置ODBC数据源实例 426
13.5 小结 427
13.6 习题 427
第14章 Visual C++网络编程 430
14.1 网络通信及开发基础 430
14.1.1 网络传输协议 430
14.1.2 TCP/IP协议 432
14.1.3 Windows Sockets基础 432
14.1.4 客户端/服务器模式 433
14.2 基本网络通信开发 433
14.2.1 CAsyncSocket类及常用成员函数的使用 433
14.2.2 使用WinSock进行无连接的通信 437
14.2.3 无连接通信实例 438
14.2.4 使用WinSock进行有连接的通信 442
14.2.5 有连接通信实例 443
14.3 网络程序设计与开发 447
14.3.1 网络程序的一些概念 447
14.3.2 Socket事件 447
14.3.3 Socket事件的激发控制 448
14.3.4 Socket信息的获取与处理 449
14.3.5 网络程序开发实例 451
14.4 WinInet开发Internet客户端程序 458
14.4.1 MFC WinInet开发包 458
14.4.2 WinInet开发客户端程序的流程 460
14.4.3 WinInet开发HTTP客户端程序实例 461
14.6 实现点对点通信 463
14.6.1 什么是点对点通信 463
14.6.2 什么是UDP协议 464
14.6.3 UDP点对点实例 465
14.7 小结 468
14.8 练习 468
第15章 使用Visual C++ 6.0开发家庭财务管理系统 470
15.1 提出问题:设计一个家庭财务管理系统 470
15.1.1 功能概述 470
15.1.2 界面需求 471
15.2 数据库设计 471
15.2.1 数据关系分析 471
15.2.2 E-R图设计 472
15.2.3 数据库表的生成 473
15.3 算法设计 474
15.3.1 连接数据库 474
15.3.2 添加数据 475
15.3.3 修改数据库内容 475
15.3.4 统计数据库信息 476
15.4 软件项目开发过程 476
15.4.1 开发家庭财务管理系统项目的流程 476
15.4.2 根据E-R图创建数据库表 476
15.4.3 功能研发的准备工作 478
15.4.4 实现算法设计 481
15.4.5 测试 484
15.5 小结 485
第16章 常见的面试题及解答技巧 486
16.1 理论基础知识:数学、智力题 486
面试题1:请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份 486
面试题2:小猫奔跑问题 486
面试题3:4、4、10和7,各出现一次,运用加、减、乘、除,怎么得出24 486
面试题4:为什么下水道的盖子是圆的 486
面试题5:美国有多少辆私家车 487
面试题6:为什么镜子中的影像可以颠倒左右,却不能颠倒上下 487
面试题7:请估算一下密西西比河的水的总质量 487
16.2 程序设计问答题 487
面试题8:如何理解面向对象和面向过程?用C++编写的程序就是面向对象程序吗 487
面试题9:在C/C++程序设计中,局部变量能否和全局变量重名 488
面试题10:如何引用一个已经定义过的全局变量 488
面试题11:全局变量可不可以定义在可被多个.C文件包含的头文件中 488
面试题12:static全局变量与普通的全局变量有什么区别 488
面试题13:对于一个频繁使用的短小函数,在C和C++语言中分别用什么 488
面试题14:关键字const有什么含义 488
面试题15:虚函数和普通函数有什么不同 488
面试题16:抽象基类不能实例化,为什么还有抽象基类这个语法特性 489
面试题17:在C++程序设计语言中,vector和数组有何不同 489
面试题18:C++编译器自动完成和调用了哪些函数 489
面试题19:为什么要定义拷贝构造函数 489
面试题20:名称空间有何作用 489
面试题21:在构造函数中初始化和使用初始化列表有什么不同 490
面试题22:为什么要避免数据成员放在公共域中 490
面试题23:为什么要尽量定义const 490
面试题24:C和C++的注释风格有何不同,为什么尽量选择C++风格的注释 490
面试题25:程序编译时编译器会有一些警告信息,你如何看待这些警告信息 491
16.3 计算机理论知识题 491
面试题26:基本的数据结构有哪些类型 491
面试题27:什么是平衡二叉树(AVL树) 491
面试题28:给出一系列的二进制码,如何判断这些编码是前缀码 492
面试题29:什么是左式堆 492
面试题30:请简单阐述3NF(第三范式)和BCNF(巴克斯范式)的基本概念 492
面试题31:数据库并发操作可能会带来什么问题?如何防止这些问题 492
面试题32:简述CMM和CMMI 492
面试题33:在一个查询中,使用哪一个关键字能够除去重复列值 493
面试题34:什么是快照?它的作用是什么 493
面试题35:简述存储过程和触发器的相关概念 493
面试题36:SQL Server 2000是否支持行级锁定,有什么好处 493
面试题37:事务是什么?事务具备哪些特性 493
面试题38:事前触发和事后触发有何区别?语句级触发和行级触发有何区别 494
面试题39:解决死锁的方法有哪些 494
面试题40:提高数据库运行效率的办法有哪些 494
面试题41:根据你的工作经验,简述数据库的设计过程 495
面试题42:在为视图创建索引前,视图本身必须满足哪些条件 495
面试题43:什么是SQL Server的确定性函数和不确定性函数 495
面试题44:哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明 495
面试题45:是否所有视图都可以更新?为什么 495
面试题46:什么是基本表?什么是视图 496
面试题47:数据库中为什么要有视图,试述视图的优点 496
16.4 程序设计与算法题 496
面试题48:使用C++,输入一个字符串,将其逆序后输出 496
面试题49:判断给定代码是否有问题 496
面试题50:用C++编写判断操作系统是16位还是32位的程序,不能用sizeof() 497
面试题51:在不用第三方参数的情况下交换两个参数的值 497
面试题52:程序解读,判断问题 497
面试题53:使用SQL语句进行数据库建表与查询 498
面试题54:编写一个算法,利用栈的基本运算返回指定栈的栈底元素 498
面试题55:请写出两种中序遍历二叉树的方法 499
面试题56:请简述哈夫曼树的意义及其创建过程 499
16.5 小结 500

教学资源推荐
作者: [美] 陆永祥(Yung-Hsiang Lu) 著
作者: [美] 凯·霍斯特曼(Cay Horstmann) 著
作者: [美]本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup)著
参考读物推荐
作者: 谢佳标 著
作者: [美] 道格·赫尔曼(Doug Hellmann)著
作者: 张秀宏 著