出版社:机械工业出版社
年代:2014
定价:59.0
本书站在零基础学习的角度,使初学者能尽快掌握Visual C++程序设计的精髓。在讲解知识点时,笔者采用从无到有、由浅入深的逐级递进学习方式。本书涵盖了Visual C++所有语法知识,包括基础数据类型、类与对象、函数与模板、继承与多态、标准模板库、文件读写等。在MFC类库应用,本书还详细介绍了菜单、控件、消息映射、工具栏、状态栏、通用类、文本、图形、动态链接库、多线程、网络编程、数据库编程等高级知识。本书对Visual C++的每个知识点的讲解均通过最基本、最常用的方案实现,并辅以简单易懂而贴近工程应用的实例来阐明。本书还附赠1张DVD,内容为笔者为本书录制的全程多媒体语音教学视频及本书所涉及的源代码。
前言第一篇 Visual C++和C++基础篇第1章 Visual C++ 6.0开发环境和应用程序框架1.1 安装并测试Visual C++ 6.01.1.1 Visual C++ 6.0的安装1.1.2 Visual C++ 6.0开发环境1.1.3 Visual C++ 6.0应用程序向导和项目创建1.2 Visual C++ 6.0简介1.2.1 C/C++编译器1.2.2 代码编辑器1.2.3 资源编辑器和资源符号1.2.4 连接器和调试器1.2.5 Visual C++ 6.0的主要菜单项1.2.6 项目和解决方案1.2.7 本机帮助和联机帮助1.3 Visual C++ 6.0中的编程库1.3.1 C++标准库1.3.2 C运行时库1.3.3 活动模板库1.3.4 微软基础类库1.4 Win32基本应用程序的创建1.4.1 AppWizard应用程序向导1.4.2 生成Win32应用程序1.4.3 Visual C++ 6.0的调试:变量跟踪和函数调用栈1.5 Microsoft应用程序框架1.5.1 全局对象1.5.2 MFC的消息映射和消息分类1.6 实例:编写第一个C++程序:Hello,C++!1.7 实例:创建第一个MFC程序:Hello,MFC!1.8 小结1.9 习题第2章 C++语法基础2.1 C++简介2.2 数据类型定义和使用2.2.1 简单变量2.2.2 算术运算符2.2.3 枚举、指针和数组2.2.4 string类和C风格字符串2.2.5 结构体类型2.2.6 类类型2.2.7 实例:成绩管理系统(1.0版)2.3 运算符、表达式和语句2.3.1 几种常用的运算符2.3.2 循环语句2.3.3 判断语句2.3.4 实例:成绩管理系统(2.0版)2.4 函数定义和调用2.4.1 定义函数和函数原型2.4.2 函数通过指针调用数组2.4.3 函数指针2.4.4 具有引用参数的函数2.4.5 函数重载2.4.6 函数模板的定义和使用2.4.7 实例:成绩管理系统(3.0版)2.5 类的定义和对象构造2.5.1 自然界中的类型和C++的类定义2.5.2 实现类成员函数2.5.3 实例化类对象并使用2.5.4 类的构造函数和析构函数2.5.5 运算符重载与this指针的使用2.5.6 友元函数和友元类2.5.7 实例:成绩管理系统(4.0版)2.6 类继承2.6.1 is-a关系2.6.2 多态公有继承2.6.3 protected访问控制2.6.4 抽象基类2.6.5 私有继承和保护继承2.6.6 多继承2.6.7 类模板2.7 C++异常机制2.7.1 异常处理类型2.7.2 exception类2.8 标准模板库2.8.1 auto_ptr类的使用2.8.2 vector模板类的定义和使用2.8.3 通用算法2.8.4 实例:使用STL和通用算法开发成绩管理系统(5.0版)2.9 I/O流和文件2.9.1 C++的输入和输出2.9.2 文件输入和输出2.9.3 实例:在Visual C++ 6.0环境下创建C++源文件,使用磁盘文件读写2.10 小结2.11 习题第3章 Windows编程与MFC基础3.1 Windows编程基础3.1.1 Windows API函数3.1.2 窗口与句柄3.1.3 事件与消息3.1.4 常用的Windows数据类型3.2 Windows应用程序分析3.2.1 WinMain()函数3.2.2 创建窗口3.2.3 消息循环3.2.4 WinProc窗口函数3.2.5 Windows编程实例3.3 MFC基础3.3.1 MFC概述3.3.2 MFC基础类及其层次结构3.3.3 MFC中的全局函数3.4 MFC应用程序框架分析3.4.1 入口函数3.4.2 应用程序对象3.4.3 InitInstance()函数3.4.4 Run()函数3.4.5 MFC的消息映射3.4.6 MFC消息分类3.4.7 在Visual C++ 6.0中添加消息映射3.5 小结3.6 习题第二篇 Visual C++常用类、控件、资源篇第4章 基本输入--键盘和鼠标消息4.1 键盘消息及其处理4.1.1 键盘消息4.1.2 键盘消息处理4.1.3 按键消息处理4.1.4 按键消息处理函数4.1.5 字符消息处理4.1.6 创建键盘插入符4.2 鼠标消息及其处理4.2.1 鼠标消息4.2.2 鼠标消息处理函数4.2.3 鼠标消息处理实例4.2.4 鼠标光标的创建与使用4.2.5 捕捉鼠标4.2.6 锁定鼠标的作用区域4.3 自定义发送窗口消息4.4 小结4.5 习题第5章 菜单、工具栏和状态栏编程5.1 菜单及其相关资源的使用5.1.1 菜单的种类及开发步骤5.1.2 菜单的创建与编辑5.1.3 菜单消息5.1.4 菜单命令消息的处理5.1.5 菜单更新消息的处理5.1.6 为菜单项设置快捷键5.1.7 弹出菜单的创建与使用5.2 工具栏的使用5.2.1 工具栏的功能5.2.2 工具栏的创建5.2.3 编辑工具栏5.2.4 工具栏命令处理5.2.5 工具栏类CToolBar的简单介绍5.3 状态栏的使用5.3.1 状态栏的功能5.3.2 状态栏的创建5.3.3 状态栏编程5.3.4 状态栏类CStatusBar的简单介绍5.4 小结5.5 习题第6章 使用Windows标准控件6.1 Windows标准控件6.1.1 Windows控件简介6.1.2 使用对话框编辑器创建控件6.1.3 控件类的基类CWnd6.1.4 控件的消息及其处理6.1.5 Visual C++ 6.0的控件工具箱6.2 按钮控件6.2.1 按钮控件简介6.2.2 按钮控件类CButton6.2.3 按钮控件的属性与消息6.2.4 按钮状态的确定6.2.5 按钮控件使用实例6.3 静态控件与编辑控件6.3.1 静态控件的创建与使用6.3.2 静态控件类CStatic6.3.3 编辑控件的创建6.3.4 编辑控件类CEdit6.3.5 编辑控件的消息6.3.6 编辑控件的应用实例6.4 列表框控件和组合框控件6.4.1 列表框控件的创建6.4.2 列表框控件类CListBox6.4.3 列表框控件的消息6.4.4 列表框控件实例6.4.5 组合框控件的创建6.4.6 组合框控件类CComboBox6.4.7 组合框控件的消息6.5 微调控件、滑块控件和进度条6.5.1 微调控件的创建6.5.2 微调控件的使用6.5.3 滑块控件的创建6.5.4 滑块控件的使用6.5.5 进度条控件的创建及使用6.5.6 微调控件、滑块控件和进度条编程实例6.6 列表视图控件6.6.1 列表视图控件的创建6.6.2 列表视图控件类CListCtrl6.6.3 列表视图控件的通知消息6.7 树形视图控件6.7.1 树形视图控件的创建6.7.2 树形视图控件类CTreeCtrl6.7.3 树形视图控件的消息6.8 列表视图和树形视图编程实例6.9 动态创建Windows控件6.10 ActiveX控件的使用6.10.1 ActiveX控件的结构6.10.2 Visual C++中的组件和控件库6.10.3 MFC程序中ActiveX控件的使用6.10.4 ActiveX控件使用实例6.11 小结6.12 习题第7章 MFC常用的通用类7.1 字符串类7.1.1 CString对象的创建7.1.2 CString类的成员函数7.1.3 CString类的常用操作7.1.4 CString的格式化与类型转换7.2 集合类7.2.1 数组类7.2.2 数组类的使用实例7.2.3 链表类7.2.4 链表类使用实例7.3 日期、时间类7.3.1 CTime类7.3.2 CTime对象的格式化7.3.3 CTimeSpan类7.3.4 计时器的使用7.4 MFC文件操作类(CFile)7.4.1 构造文件对象并打开文件7.4.2 文件的读写操作7.4.3 文件的定位操作7.4.4 文件的管理操作7.4.5 使用CFile类进行文件操作实例7.4.6 使用CStdioFile类操作文件7.5 异常类7.5.1 异常类简介7.5.2 文件异常类CFileException7.5.3 异常的捕获7.6 小结7.7 习题第8章 文本、图形输出8.1 基础知识8.1.1 GDI绘图的实现8.1.2 MFC图形对象类8.1.3 库存GDI对象8.1.4 与图形绘制有关的简单数据类型8.1.5 MFC应用程序框架中的图形绘制与刷新8.2 MFC设备描述表(CDC类)8.2.1 CDC及其派生类8.2.2 输出文本8.2.3 CDC的常用绘图函数8.3 使用画笔和画刷进行绘图8.3.1 画笔对象及其使用8.3.2 使用画笔绘图实例8.3.3 画刷对象及其使用8.3.4 使用画刷绘图实例8.4 小结8.5 习题第三篇 Visual C++基本应用程序开发篇第9章 文档/视图结构的应用程序开发9.1 文档/视图结构概述9.2 单文档界面应用程序9.2.1 单文档界面简介9.2.2 创建单文档程序框架9.2.3 程序框架中的主要类及其相互关系9.2.4 文档类、视图类核心函数及作用9.2.5 新建、保存和打开的实现9.3 多文档界面应用程序9.3.1 多文档界面简介9.3.2 多文档应用程序的框架9.4 文档/视图结构应用程序的开发9.4.1 实现目标9.4.2 创建基本的程序框架9.4.3 创建文档数据9.4.4 在视图类中实现绘图操作9.4.5 文档的序列化9.4.6 对例程数据进行序列化9.4.7 让文档程序支持滚动条9.5 小结9.6 习题第10章 对话框的应用10.1 对话框的工作方式、种类和创建方法10.1.1 对话框在应用程序中的工作方式10.1.2 模态对话框10.1.3 非模态对话框10.1.4 对话框模板的创建与编辑10.2 对话框与程序连接10.2.1 创建对话框类10.2.2 为对话框类添加成员变量10.2.3 对话框数据交换与验证10.2.4 对话框控件通知消息的处理10.3 对话框的创建与显示10.3.1 创建模态对话框10.3.2 创建非模态对话框10.3.3 非模态对话框创建实例10.3.4 基于对话框的应用程序10.4 消息对话框与公用对话框10.4.1 消息对话框10.4.2 颜色对话框10.4.3 文件对话框10.4.4 字体对话框10.4.5 查找、替换对话框10.4.6 打印对话框10.4.7 公用对话框使用实例10.5 小结10.6 习题第11章 动态链接库编程11.1 认识动态链接库11.1.1 动态链接库的概念11.1.2 动态链接库的优点11.1.3 Visual C++ 6.0可开发的DLL类型11.1.4 DLL文件的组成11.2 DLL的创建与调用11.2.1 Win32 DLL的创建11.2.2 DLL的导出11.2.3 应用程序链接DLL11.2.4 隐式链接11.2.5 显式链接11.3 MFC常规DLL11.3.1 MFC常规DLL的概念11.3.2 MFC常规DLL的创建11.3.3 MFC常规DLL创建实例11.3.4 MFC常规DLL的调用11.4 MFC扩展DLL11.4.1 MFC扩展DLL的创建11.4.2 MFC扩展DLL的创建实例11.4.3 MFC扩展DLL的调用11.5 DLL的查看与调试11.5.1 查看DLL11.5.2 调试DLL11.6 小结11.7 习题第四篇 Visual C++程序开发提高篇第12章 多线程程序开发12.1 多线程的引入12.1.1 单线程程序的不足12.1.2 问题的解决12.2 多线程编程的基础知识12.2.1 进程和线程12.2.2 Spy++工具12.2.3 Win32 API对多线程编程的支持12.2.4 MFC对多线程编程的支持12.3 多线程程序开发12.3.1 使用Win32 API函数开多线程程序12.3.2 MFC用户界面线程的开发12.3.3 MFC工作者线程的开发12.4 线程间的通信12.4.1 使用全局变量实现线程间的通信12.4.2 使用事件对象实现线程间的通信12.4.3 使用自定义的消息实现线程间的通信12.5 线程的同步12.5.1 等待函数12.5.2 使用CEvent类实现线程同步的方法12.5.3 使用CEvent类实现线程同步的实例12.5.4 使用CCriticalSection类实现线程同步12.5.5 使用CCriticalSection类实现线程同步的实例12.6 线程和进程的优先级12.6.1 优先级的意义12.6.2 进程的优先级12.6.3 线程的优先级12.6 小结12.7 习题第13章 Visual C++数据库编程13.1 数据库基础13.1.1 数据库的基本概念13.1.2 数据库管理系统13.1.3 几种流行的数据库13.1.4 结构化查询语言(SQL)13.2 数据库开发技术简介13.2.1 ODBC技术13.2.2 DAO技术13.2.3 ADO技术13.3 在Visual C++中使用ADO开发数据库应用程序13.3.1 Visual C++对ADO的支持13.3.2 创建数据库与实例工程13.3.3 引入ADO对象13.3.4 连接数据源13.3.5 开发技术--连接对象13.3.6 创建表并添加数据13.3.7 开发技术--ADO对象命令的执行13.3.8 开发技术--Recordset对象13.3.9 遍历、删除、编辑记录的实现13.4 使用ODBC数据源连接数据库13.4.1 手动实现设置ODBC数据源13.4.2 ADO连接ODBC数据源13.4.3 Visual C++程序实现设置ODBC数据源13.4.4 使用Visual C++程序设置ODBC数据源实例13.5 小结13.6 习题第14章 Visual C++网络编程14.1 网络通信及开发基础14.1.1 网络传输协议14.1.2 TCP/IP协议14.1.3 Windows Sockets基础14.1.4 客户端/服务器模式14.2 基本网络通信开发14.2.1 CAsyncSocket类及常用成员函数的使用14.2.2 使用WinSock进行无连接的通信14.2.3 无连接通信实例14.2.4 使用WinSock进行有连接的通信14.2.5 有连接通信实例14.3 网络程序设计与开发14.3.1 网络程序的一些概念14.3.2 Socket事件14.3.3 Socket事件的激发控制14.3.4 Socket信息的获取与处理14.3.5 网络程序开发实例14.4 WinInet开发Internet客户端程序14.4.1 MFC WinInet开发包14.4.2 WinInet开发客户端程序的流程14.4.3 WinInet开发HTTP客户端程序实例14.6 实现点对点通信14.6.1 什么是点对点通信14.6.2 什么是UDP协议14.6.3 UDP点对点实例14.7 小结14.8 练习第15章 使用Visual C++ 6.0开发家庭财务管理系统15.1 提出问题:设计一个家庭财务管理系统15.1.1 功能概述15.1.2 界面需求15.2 数据库设计15.2.1 数据关系分析15.2.2 E-R图设计15.2.3 数据库表的生成15.3 算法设计15.3.1 连接数据库15.3.2 添加数据15.3.3 修改数据库内容15.3.4 统计数据库信息15.4 软件项目开发过程15.4.1 开发家庭财务管理系统项目的流程15.4.2 根据E-R图创建数据库表15.4.3 功能研发的准备工作15.4.4 实现算法设计15.4.5 测试15.5 小结第16章 常见的面试题及解答技巧16.1 理论基础知识:数学、智力题面试题1:请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份面试题2:小猫奔跑问题面试题3:4、4、10和7,各出现一次,运用加、减、乘、除,怎么得出24面试题4:为什么下水道的盖子是圆的面试题5:美国有多少辆私家车面试题6:为什么镜子中的影像可以颠倒左右,却不能颠倒上下面试题7:请估算一下密西西比河的水的总质量16.2 程序设计问答题面试题8:如何理解面向对象和面向过程?用C++编写的程序就是面向对象程序吗面试题9:在C/C++程序设计中,局部变量能否和全局变量重名面试题10:如何引用一个已经定义过的全局变量面试题11:全局变量可不可以定义在可被多个.C文件包含的头文件中面试题12:static全局变量与普通的全局变量有什么区别面试题13:对于一个频繁使用的短小函数,在C和C++语言中分别用什么面试题14:关键字const有什么含义面试题15:虚函数和普通函数有什么不同面试题16:抽象基类不能实例化,为什么还有抽象基类这个语法特性面试题17:在C++程序设计语言中,vector和数组有何不同面试题18:C++编译器自动完成和调用了哪些函数面试题19:为什么要定义拷贝构造函数面试题20:名称空间有何作用面试题21:在构造函数中初始化和使用初始化列表有什么不同面试题22:为什么要避免数据成员放在公共域中面试题23:为什么要尽量定义const面试题24:C和C++的注释风格有何不同,为什么尽量选择C++风格的注释面试题25:程序编译时编译器会有一些警告信息,你如何看待这些警告信息16.3 计算机理论知识题面试题26:基本的数据结构有哪些类型面试题27:什么是平衡二叉树(AVL树)面试题28:给出一系列的二进制码,如何判断这些编码是前缀码面试题29:什么是左式堆面试题30:请简单阐述3NF(第三范式)和BCNF(巴克斯范式)的基本概念面试题31:数据库并发操作可能会带来什么问题?如何防止这些问题面试题32:简述CMM和CMMI面试题33:在一个查询中,使用哪一个关键字能够除去重复列值面试题34:什么是快照?它的作用是什么面试题35:简述存储过程和触发器的相关概念面试题36:SQL Server 2000是否支持行级锁定,有什么好处面试题37:事务是什么?事务具备哪些特性面试题38:事前触发和事后触发有何区别?语句级触发和行级触发有何区别面试题39:解决死锁的方法有哪些面试题40:提高数据库运行效率的办法有哪些面试题41:根据你的工作经验,简述数据库的设计过程面试题42:在为视图创建索引前,视图本身必须满足哪些条件面试题43:什么是SQL Server的确定性函数和不确定性函数面试题44:哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明面试题45:是否所有视图都可以更新?为什么面试题46:什么是基本表?什么是视图面试题47:数据库中为什么要有视图,试述视图的优点16.4 程序设计与算法题面试题48:使用C++,输入一个字符串,将其逆序后输出面试题49:判断给定代码是否有问题面试题50:用C++编写判断操作系统是16位还是32位的程序,不能用sizeof()面试题51:在不用第三方参数的情况下交换两个参数的值面试题52:程序解读,判断问题面试题53:使用SQL语句进行数据库建表与查询面试题54:编写一个算法,利用栈的基本运算返回指定栈的栈底元素面试题55:请写出两种中序遍历二叉树的方法面试题56:请简述哈夫曼树的意义及其创建过程16.5 小结
《零基础学编程:零基础学Visual C++(第4版)》站在零基础学习的角度,使初学者能尽快掌握VisualC++程序设计的精髓。在讲解知识点时,笔者采用从无到有、由浅入深的逐级递进学习方式。本书涵盖了VisualC++所有语法知识,包括基础数据类型、类与对象、函数与模板、继承与多态、标准模板库、文件读写等。在MFC类库应用,本书还详细介绍了菜单、控件、消息映射、工具栏、状态栏、通用类、文本、图形、动态链接库、多线程、网络编程、数据库编程等高级知识。本书对VisualC++的每个知识点的讲解均通过最基本、最常用的方案实现,并辅以简单易懂而贴近工程应用的实例来阐明。本书还附赠1张DVD,内容为笔者为本书录制的全程多媒体语音教学视频及本书所涉及的源代码。