浅显易懂,零门槛学习VisualC++开发,真的很简单
娓娓道来,亲切自然,老鸟带领菜鸟,快速跨入VisualC++的大门
18小时高清多媒体教学视频
以学懂、学透、学会用为目标,带你快速步入VisualC++开发的大门!
以通俗的言语从基础讲解,彻底解决学习过程中将会遇到的各种疑难问题!
以实践性教学为导向,讲解了X个典型实例和X个综合项目案例开发!
以贴近生活、幽默风趣为宗旨,讲解时多用生活中的好玩事例加以类比!
《入门很简单丛书:Visual C++入门很简单》是一本与众不同的面向初学者的Visual C++读物,不需要读者有太多的计算机基础知识。《入门很简单丛书:Visual C++入门很简单》讲解通俗易懂,循序渐进。《入门很简单丛书:Visual C++入门很简单》语言轻松活泼,用类比、对比、比喻等写作手法,并配合图解教学,对难点又给出了必要提示;书中的每个知识点都有对应的编程实例,便于读者一边学习一边动手实践,既可以提高读者的动手能力,也可以激发学习兴趣。
《入门很简单丛书:Visual C++入门很简单》配1张DVD光盘,内容为《入门很简单丛书:Visual C++入门很简单》配套教学视频及源代码。另外,光盘中还赠送了Visual C++项目开发的源代码及教学视频。
《入门很简单丛书:Visual C++入门很简单》介绍Visual C++的函数调用形式、面向对象编程、MFC工作原理、开发软件流程及一些实用开发技巧。全书共15章,分为4篇。第1篇介绍Visual C++开发环境、C++语法基础及MFC运行机制;第2篇介绍利用Visual Studio开发工具进行图形界面的开发,涉及Windows控件、菜单、工具栏和状态栏、图形图像;第3篇介绍Visual C++应用程序开发的基础,涉及数据文件的读写和动态链接库;第4篇对前面知识进行总结和扩展,涉及多线程、网络编程、数据库编程及STL等关键技术,最后用一个电子书管理系统带领读者掌握项目开发的过程和技巧。
《入门很简单丛书:Visual C++入门很简单》最适合没有基础的Visual C++新手阅读;有一定基础的读者,也可通过本书进一步理解Visual C++的各个重要概念及知识点;对于大、中专院校的学生和培训班的学员,本书也不失为一本好教材。
超值大容量DVD光盘,你值得拥有!
7.4小时本书配套教学视频及源代码
13个Visual C++开发模块源代码及7.6小时教学视频
3个Visual C++项目案例源代码及3小时教学视频
第3章 C++面向对象编程基础
读者在第2章的指导下逐渐了解了C++的一些基础知识,其实它就是C这个面向过程的编程语言的基本东西。同时读者从第1章的学习中知道了C++是C和类的组合体,有了类概念的语言就可以被用来进行面向对象的编程。面向对象编程的3大最重要特征就是多态、继承和封装,下面就对其一一展开介绍。
本章主要涉及到的知识点有:
*面向对象编程的本质。
*面向对象编程所涉及的具体概念。
*类:结构与编写规则。
*类的派生:如何被派生、派生类的新规则。
*友元:关联函数和类的新特征。
*重载:函数与运算符的重载。
3.1什么是面向对象编程
在了解一个新事物前,读者首先要做到知道它的本质,即当看到1个苹果(不管它是否是被牛顿碰过的苹果的后代,也不管它的意义有多么不同),读者第一印象应该是它其实就是水果的一种,水果就是它的本质属性。
提示:此处的面向对象编程,它面向的是具有同一种属性的事物,而程序员在运用面向对象思想进行编程时应该如何着手,这就涉及到同一种属性是按什么标准被提取的。
这里有两种提取方法,一是从上向下分类,比如水果就是一个抽象名词,它并不是一个真实存在的果实。而在现实生活中桃、梨、苹果等都被分为水果这一类是因为人类约定俗成地从这些果实提取了一个概念,那就是水果。水果的特征就是它们共有的特性,因此提取这个过程就是将事物的共有属性拿出来放到一起,进而形成一个特有的抽象指代名词,而暂时忽略每个事物的个性。而当个性被派上用场时,再从底层相同性中派生出个性(这也就是派生类的由来,后面将详细介绍),如图3.1所示。
图3.1从上向下分类
另一种方法是从下向上总结,为了管理一些看起来好像毫不相关的东西,程序员需要总结它们的相似性以利于面向对象编程的思想得以施展(这里概念的理解正确有利于对多态的了解)。比如,图3.1中的桃、梨、苹果都是有核的,但水果中还有无核的呢(香蕉)。因此将桃、梨、苹果这3者总结一个类别为有核类,在它的同一级中加上无核类,而有核类和无核类又共同属于水果,如图3.2所示。
图3.2从下向上总结
因此找事物间的相似性非常重要,但事物间的相似性不仅仅包括它们的内在属性还有外在形象。即如果两个事物本质上不是属于同一种,但它们有同样的外表、类似的动作行为,这些都可以称为一种共性。总之,面向对象编程的中心思想就是将看似复杂的事物提取出相似的特征,然后再处理不同的个性特征。
3.2面向对象编程的基本内容
说完面向对象编程的实质是提取相似性,那接下来讨论与此实质内容相关的几个概念,即哪些名词能表达出面向对象编程的思想。既然是面向对象的编程,肯定得有对象这块内容,而类又是实现此种编程方式的必要条件。另外后几个小节中讲到的封装、继承、多态和消息传递就是具体实现的操作过程和模式。这一节理解起来可能没有之前内容来得容易,但也不是很难(此节很重要),请读者细细阅读、慢慢琢磨,另外本节会配有大量图示以做解释。
3.2.1程序运行期的基本实体——对象
简单地讲,对象就是客观存在的一种实物,对比的“类”就是从各种对象中抽象出来的总结名词,如图3.2中有核类代表一个类,读者可以将桃、梨、苹果理解为具有有核类中属性的对象。或者将桃当成是一个被提前声明的类,这个名为“桃”的类它也可以有自己的对象,比如胖桃、瘦桃、扁桃等。又或者举个更具体的例子,如图3.3所示。
虽然是在同一时刻被同一人买的,但它们不可能是一模一样,只不过都是扁桃(有扁桃的性质),同时又会有各自的特性,比如扁桃1比较硬、不好吃;扁桃2已经坏了(当时眼神不好没看见);扁桃3很脆很甜(读者应该知道我为啥一次就能吃3个了吧)。这几个特性又不是扁桃共有的属性,因此这3个具体对象就必须被具体对待。同时这3个扁桃被吃的方式也不尽相同,可以是切成块吃、整个吞下又或者是直接扔了。因此程序的实现靠的是具体对象,而它拥有抽象名词的共有属性加上自己的个性。
图3.3对某年某月某日某时所买桃子的归类
换另一种简单的说法,第2章中讲到数据类型,而变量的定义形式为:
数据类型修饰符变量名;
而此处的对象就在充当“变量名”这个角色,而如果把对象作为一个变量描述它所属的数据类型就是类,也就是下一小节的主角。
3.2.2实现面向对象编程的必要条件——类
承接上一节,类似地读者可以把类当成是一种数据类型修饰符,但是这种类型修饰符不像基本数据那样被事实约定好的,类的修饰符是由程序员自己设定的。比如定义了一个名为Dog的类,Dog就是一种类型修饰符。
换言之,类就是具体对象所属的一个派别名称,比如,8大行星包括金星、水星、地球、火星、木星、土星、天王星、海王星。而这8个星是具体对应行星不是恒星的对象,行星就是它们所属的类,如图3.4所示。
图3.4类与对象间的包含关系
类拥有自己的成员变量和成员函数,它是一些事物相同特性的体现者。下面说一下类的声明及定义一个类对象的形式,而其中的具体内容放到下一节中介绍。
……
第1篇 Visual C++开发环境及语言基础
第1章 开发环境及常用应用程序框架( 教学视频:21分钟)
1.1 安装并测试开发环境
1.1.1 安装开发环境
1.1.2 安装开发环境的帮助文件(MSDN)
1.1.3 测试开发环境实例:新建一个"HelloWorld"控制台程序
1.2 Visual C++的发展史
1.2.1 C发展为C++
1.2.2 Visual C++ 6.0的发展
1.2.3 了解Visual C++新版本的特点
1.2.4 MFC类库(Microsoft Foundation Classes)简述
1.3 开发环境介绍
1.3.1 C/C++编译器简述
1.3.2 了解Visual C++界面、菜单、工具栏
1.3.3 了解项目和项目工作区
1.4 调试程序
1.4.1 查找源程序中的语法错误
1.4.2 运用调试器
1.4.3 跟踪调试程序
1.5 Visual C++常用应用程序框架
1.5.1 简述Win32应用程序(Win32 Application)
1.5.2 简述Win32控制台程序(Win32 Console Application)
1.5.3 简述MFC应用程序(MFC Application)
1.5.4 创建MFC动态链接库(MFC DLL)
1.6 开发环境的快捷方式简介
1.7 本章总结
1.8 课后练习
第2章 C++入门基础( 教学视频:62分钟)
2.1 C++基础知识
2.1.1 学习C++的必要性
2.1.2 学习C++有何优势
2.1.3 学习C++应具备什么素质
2.1.4 C++会带给我们什么
2.2 数据类型
2.2.1 基础数据类型——常量和变量
2.2.2 小议简单类型
2.2.3 对比分析共用体(union)和结构体(struct)
2.2.4 在实例中简单应用指针类型
2.2.5 实现面向对象编程的必要条件——类
2.2.6 简单应用string类
2.3 能减少代码行数的数据类型——数组
2.3.1 应用读写数据——一维数组
2.3.2 应用图像处理——二维数组
2.3.3 应用处理字符串——字符型数组
2.4 运算符应用
2.4.1 各种运算符优先级
2.4.2 应用"="——赋值运算符
2.4.3 应用"+、-、*、/、%、++、——"——算术运算符
2.4.4 应用"&&、||、!"——逻辑运算符
2.4.5 应用"<、<=、>、>=、==、!="——关系运算符
2.5 C++的流程控制语句
2.5.1 实现程序的选择结构——if语句和switch语句
2.5.2 实现程序的循环结构——for语句、while语句和do…while语句
2.5.3 实例:一个工科生的每星期中选穿T恤颜色
2.6 函数
2.6.1 什么是函数
2.6.2 创建一个函数
2.6.3 函数的参数和返回值
2.7 实例详解函数的调用
2.7.1 函数的嵌套调用
2.7.2 函数的递归调用
2.8 本章总结
2.9 课后练习
第3章 C++面向对象编程基础( 教学视频:34分钟)
3.1 什么是面向对象编程
3.2 面向对象编程的基本内容
3.2.1 程序运行期的基本实体——对象
3.2.2 实现面向对象编程的必要条件——类
3.2.3 实现程序的模块化——封装
3.2.4 实现系统的可重用及可扩充性——继承
3.2.5 同一消息为不同对象接受时产生完全不同的行为——多态
3.2.6 对象之间沟通的途径——消息传递
3.3 讨论类的结构及编写规则
3.3.1 构造函数
3.3.2 默认参数的构造函数
3.3.3 析构函数
3.3.4 实例:介绍重载构造函数和复制构造函数
3.3.5 虚函数
3.3.6 虚基类
3.4 详解派生类
3.4.1 派生类从何而来
3.4.2 派生类如何访问基类成员
3.4.3 实例:如何写一个派生类
3.4.4 派生类的构造和析构函数的执行顺序
3.5 友元
3.5.1 应用友元函数
3.5.2 应用友元类
3.6 重载
3.6.1 什么是重载
3.6.2 分析重载与重写的不同
3.6.3 实例:函数的重载
3.6.4 实例:运算符的重载
3.7 实例:具体实现封装、继承
3.7.1 创建一个父类
3.7.2 编写父类内函数
3.7.3 创建一个子类——实现继承功能
3.7.4 封装类和函数
3.8 本章总结
3.9 课后练习
第4章 MFC运行机制( 教学视频:19分钟)
4.1 什么是MFC
4.1.1 MFC基础知识
4.1.2 新建单文档MFC应用程序的4个类
4.2 MFC程序运行顺序
4.3 消息
4.3.1 消息的定义
4.3.2 消息中有什么
4.3.3 消息的分类
4.4 消息队列及消息处理
4.4.1 对比介绍队列消息和非队列消息
4.4.2 消息的发送方式——发送、寄送和广播
4.4.3 描述接收消息的函数
4.4.4 详解具体实例——消息的处理
4.5 实现窗口实时更新的必要条件——消息循环
4.5.1 非对话框程序的消息循环机制
4.5.2 对话框程序的消息循环机制
4.6 本章总结
4.7 课后练习
第2篇 Visual Studio图形编程
第5章 结合实例详解Windows标准控件( 教学视频:37分钟)
5.1 简单介绍Windows标准控件
5.2 学习按钮控件
5.2.1 创建一个按钮
5.2.2 编辑按钮的属性与消息类型
5.2.3 响应按钮的消息
5.2.4 调试及效果图
5.3 学习静态控件
5.3.1 创建一个静态文本框
5.3.2 编辑静态框的属性与消息类型
5.3.3 响应控件的消息
5.3.4 调试并展示效果图
5.4 学习编辑框控件
5.4.1 创建一个编辑框
5.4.2 编辑控件的属性与消息类型
5.4.3 响应控件的消息
5.4.4 调试并展示效果图
5.5 学习组合框控件
5.5.1 创建一个组合框
5.5.2 编辑控件的属性与消息类型
5.5.3 响应控件的消息
5.5.4 调试并展示效果图
5.6 学习进度条、滑块控件
5.6.1 创建进度条
5.6.2 使用进度条
5.6.3 创建滑块控件
5.6.4 使用滑块控件
5.6.5 进度条、滑块控件编程实例
5.7 简单应用ActiveX控件
5.7.1 应用注册表中已有的ActiveX控件
5.7.2 应用新下载的ActiveX控件
5.8 本章总结
5.9 课后练习
第6章 菜单( 教学视频:17分钟)
6.1 建立菜单
6.1.1 认识菜单的响应顺序
6.1.2 新建菜单
6.1.3 添加菜单项
6.1.4 加入菜单项的消息响应
6.2 关联菜单项的各种动作
6.2.1 标记菜单项
6.2.2 设置默认菜单项
6.2.3 创建图形标记菜单
6.2.4 屏蔽子菜单的菜单选项
6.2.5 取消整个菜单
6.3 给菜单项设置快捷键
6.4 调用对话框
6.4.1 调用系统对话框
6.4.2 调用自建对话框
6.5 实例——动态创建菜单
6.6 本章总结
6.7 课后练习
第7章 编辑工具栏和状态栏( 教学视频:26分钟)
7.1 编辑工具栏
7.1.1 认识工具栏
7.1.2 增加和删除工具栏按钮
7.1.3 编辑工具栏按钮图标
7.1.4 响应工具栏按钮
7.2 设置工具栏的其他功能案例
7.2.1 给工具栏设标题
7.2.2 为工具栏按钮添加下拉箭头
7.2.3 为工具栏添加背景图片
7.2.4 为工具栏按钮设置热点图像
7.2.5 添加按钮提示信息
7.2.6 为工具栏关联控件
7.3 编辑状态栏
7.3.1 创建状态栏
7.3.2 在状态栏中添加进度条
7.3.3 在状态栏中添加时间
7.4 本章总结
7.5 课后练习
第8章 图形图像( 教学视频:31分钟)
8.1 图形设备接口和设备环境
8.1.1 图形设备接口
8.1.2 设备环境
8.1.3 MFC设备环境类对比分析
8.1.4 GDI坐标系的映射模式
8.2 绘图工具——画笔和画刷
8.2.1 画笔及应用
8.2.2 详解运用画笔实例
8.2.3 画刷及其应用
8.2.4 详解运用画刷实例
8.3 文本与字体
8.3.1 绘制文本
8.3.2 文本字符属性信息的TEXTMETRIC结构
8.3.3 字体的属性
8.3.4 运用字体实例
8.4 位图、图标和光标
8.4.1 MFC处理位图实例
8.4.2 MFC处理图标实例
8.4.3 MFC处理光标实例
8.5 本章总结
8.6 课后练习
第3篇 Visual C++程序开发基础篇
第9章 数据文件读写( 教学视频:53分钟)
9.1 运用CFile类实现数据文件读写
9.1.1 认识CFile类
9.1.2 读写文件
9.1.3 文件的打开/保存对话框
9.1.4 复制、删除和重命名文件
9.1.5 移动文件指针
9.1.6 查找文件内容
9.2 运用CArchive类实现数据文件读写
9.2.1 认识CArchive类
9.2.2 缓冲区数据
9.2.3 基本数据读写
9.3 运用流对象实现数据文件读写
9.3.1 文件输入/出流
9.3.2 打开/关闭文件
9.3.3 打开文件模式
9.3.4 读写文本文件
9.3.5 读写二进制文件
9.3.6 设置输出数据的格式和结束标志量
9.3.7 移动读写文件指针
9.4 本章总结
9.5 课后练习
第10章 动态链接库( 教学视频:25分钟)
10.1 概论
10.2 静态链接库
10.3 非MFC DLL
10.3.1 声明导出函数
10.3.2 声明导出类
10.3.3 DLL的调用方式
10.3.4 _stdcall约定
10.4 MFC规则DLL
10.4.1 对比介绍MFC规则DLL的两种类型
10.4.2 创建并调用MFC规则DLL
10.5 MFC扩展DLL
10.6 本章总结
10.7 课后练习
第4篇 Visual C++程序开发提高篇
第11章 多线程( 教学视频:29分钟)
11.1 认识多线程
11.1.1 什么是进程
11.1.2 什么是线程
11.1.3 应用多线程的好处
11.1.4 应用多线程的一些缺点
11.1.5 MFC对多线程编程的支持
11.2 线程的管理和操作
11.2.1 创建多线程
11.2.2 线程的优先级
11.2.3 线程的悬挂和恢复
11.2.4 结束线程
11.3 线程的同步
11.3.1 提出问题——线程不同步怎么办
11.3.2 实现线程同步对象一:临界区(CCriticalSection)
11.3.3 实现线程同步对象二:事件(CEvent)
11.3.4 实现线程同步对象三:互斥量(CMutex)
11.3.5 实现线程同步对象四:信号量(CSemaphone)
11.4 线程间通信
11.4.1 线程间通信的目的
11.4.2 利用用户定义的消息通信
11.4.3 利用事件对象实现通信
11.5 分析简单的多线程程序
11.5.1 一个简单多线程应用程序——卖票
11.5.2 MFC多线程编程实例
11.6 本章总结
11.7 课后练习
第12章 网络编程( 教学视频:20分钟)
12.1 介绍基础知识
12.1.1 什么是网络编程
12.1.2 网络编程涉及的知识点
12.2 网络协议
12.2.1 什么是网络协议
12.2.2 介绍网络分层模型——ISO/OSI
12.2.3 最流行的网络协议——TCP/IP
12.3 套接字
12.3.1 什么是套接字
12.3.2 套接字进行数据处理的两种模式:同步和异步
12.4 套接字的编程
12.4.1 两个服务器/客户端模型
12.4.2 套接字编程要用的函数
12.4.3 套接字编程实例
12.5 进程间通信
12.5.1 使用Windows剪贴板通信
12.5.2 使用匿名管道通信
12.5.3 使用命名管道通信
12.5.4 使用邮件槽通信
12.6 本章总结
12.7 课后练习
第13章 数据库编程( 教学视频:32分钟)
13.1 数据库的基础知识
13.1.1 数据库的定义
13.1.2 数据库的发展简史
13.1.3 介绍常用数据库
13.2 常用的数据库编程技术
13.2.1 MFC ODBC数据库开发技术
13.2.2 ADO数据库开发技术
13.3 新建数据库
13.4 数据库访问控件
13.4.1 添加ADO数据控件
13.4.2 添加DataGrid控件
13.4.3 添加DataCombo和DataList控件
13.5 本章总结
13.6 课后练习
第14章 标准模板库(STL)( 教学视频:14分钟)
14.1 概述STL
14.1.1 什么是标准模板库STL
14.1.2 STL和C++标准库的关系
14.1.3 STL的不同实现版本
14.2 容器
14.2.1 容器的概念
14.2.2 容器的分类
14.2.3 顺序式容器
14.2.4 关联式容器
14.3 迭代器
14.3.1 迭代器的概念
14.3.2 迭代器的基本操作
14.3.3 编程实例
14.4 算法
14.4.1 copy算法
14.4.2 sort算法
14.4.3 应用示例
14.5 本章总结
14.6 课后练习
第15章 电子书管理系统( 教学视频:25分钟)
15.1 系统设计
15.1.1 系统设计思想
15.1.2 系统功能模块划分
15.2 项目开发初期规划阶段
15.3 分析系统登录模块
15.3.1 添加并编辑各个控件的属性
15.3.2 实现绘制文本功能
15.3.3 响应"退出"按钮功能
15.3.4 响应"修改登录信息"按钮功能
15.3.5 响应"登录"按钮功能
15.4 分析用户资料管理模块
15.5 分析电子书管理模块
15.5.1 实现文本绘制及对话框的初始化
15.5.2 实现连接数据库的功能
15.5.3 实现查询功能
15.5.4 实现添加功能
15.5.5 实现删除功能
15.5.6 实现修改功能
15.5.7 实现确定和取消功能
15.6 常见问题
15.6.1 E_bookDlg类
15.6.2 Book_material类