商家名称 |
信用等级 |
购买信息 |
订购本书 |
|
|
C++面象对象与Visual C++程序设计案例教程 |
|
|
|
C++面象对象与Visual C++程序设计案例教程 |
|
基本信息·出版社:北京大学出版社
·页码:346 页
·出版日期:2009年03月
·ISBN:7301145047
·条形码:9787301145043
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:21世纪全国应用型本科计算机案例型规划教材
内容简介 《C++面向对象与Visual C++程序设计案例教程》综合了c++基础知识、Windows程序设计和MFC编程基础,精选各个常用的知识点。贯穿全书的应用案例是一个完整的以Visual Studio 2005为开发平台的点对点通信程序。《C++面向对象与Visual C++程序设计案例教程》适用于高等院校学生,既可以作为单独的教材使用,也可以作为参考教材,供学生在“C++面向对象程序设计”实验和课程设计中使用,也可供工程技术人员参考使用。阅读《C++面向对象与Visual C++程序设计案例教程》需要有一定的C语言基础。
编辑推荐 《C++面向对象与Visual C++程序设计案例教程》是21世纪全国应用型本科计算机案例型规划教材之一。
目录 第1章 概述
1.1 c++语言程序设计的特点
1.1.1 抽象性
1.1.2 封装性
1.1.3 继承性
1.1.4 多态性
1.2 类与对象
1.2.1 类
1.2.2 对象
1.2.3 类和对象的关系
1.3 本书的目标及结构
1.3.1 C++、MFC和Windows程序设计
1.3.2 示例系统概述
1.3.3 本书的结构安排
1.4 示例系统开发前的准备
1.4.1 数据类型和数据结构的定义
1.4.2 示例系统高层协议设计
1.4.3 创建服务端项目
1.5 本章小结
1.6 思考与练习
第2章 C++基础
2.1 C++语言基础
2.1.1 字符串类型
2.1.2 const限定修饰符
2.1.3 引用类型
2.1.4 sizeof操作符
2.1.5 new和delete表达式
2.1.6 类型转换
2.2 函数
2.2.1 函数参数类型检查
2.2.2 参数传递
2.2.3 返回一个值
2.2.4 inline函数
2.3 重载函数
2.3.1 重载函数声明
2.3.2 重载函数的解析步骤
2.4 函数模板
2.4.1 函数模板的定义
2.4.2 函数模板的实例化
2.5 本章小结
2.6 思考与练习
第3章 类
3.1 类和对象
3.1.1 类定义
3.1.2 类对象
3.1.3 类成员函数
3.1.4 隐含的this指针
3.1.5 静态类成员
3.2 类的初始化、赋值和析构
3.2.1 类的显式初始化
3.2.2 类的构造函数
3.2.3 类的析构函
3.2.4 类对象数组
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.7 思考与练习
第4章 类的继承和多态性
4.1 继承和多态的概念
4.2 基类和派生类
4.2.1 定义基类
4.2.2 定义派生类
4.3 基类成员访问
4.4 基类和派生类的构造
4.4.1 基类构造函数
4.4.2 派生类构造函数
4.4.3 析构函数
4.5 基类和派生类中的虚拟函数
4.5.1 纯虚拟函数在基类中的应用
4.5.2 虚拟函数的静态调用
4.5.3 虚拟析构函数
4.6 多重继承
4.6.1 多重继承的定义
4.6.2 多重继承的构造函数和析构函数
4.6.3 虚继承
4.7 本章小结
4.8 思考与练习
第5章 C++的输入,输出流
5.1 概述
5.2 输出操作符<<
5.2.1 常见的输入/输出
5.2.2 变量地址输出
5.2.3 输出操作符的优先级
5.3 输入操作符>>
5.4 其他输入/输出方式
5.4.1 get()和put()函数
5.4.2 read()和write()函数
5.4.3 其他函数
5.5 重载输出操作符<<
5.6 重载输入操作符>>
5:7文件输入和输出
5.7.1 ofstream类
5.7.2 ifstream类
5.7.3 使用open()函数打开文件
5.7.4 fstream类
5.7.5 文件的随机读/写
5.8 格式控制
5.8.1 布尔量的输出控制操作符
5.8.2 带进制整数的输出控制操作符
5.8.3 浮点数输出控制操作符
5.8.4 输入控制操作符
5.8.5 刷新缓冲区操作符
5.8.6 填充字符设置操作符
5.9 示例系统输入/输出类的设计
5.9.1 输入/输出需求
5.9.2 输入/输出类的实现
5.10 本章小结
5.11 思考与练习
第6章 Windows应用程序
6.1 Windows编程基础
6.1.1 窗口
6.1.2 事件驱动
6.1.3 句柄和Windows消息
6.2 Windows应用程序常用消息
6.3 Windows中的事件驱动程序设计
6.4 Windows应用程序的基本结构
6.4.1 Windows应用程序的组成
6.4.2 源程序的组成结构
6.5 应用程序举例
6.6 本章小结
6.7 思考与练习
第7章 Windows中的键盘与鼠标消息
7.1 键盘消息
7.2 键盘消息应用举例
7.3 鼠标消息
7.4 鼠标消息应用程序实例
7.5 本章小结
7.6 思考与练习
第8章 Windows编程中资源的应用
8.1 菜单和加速键资源及其应用
8.1.1 菜单的创建过程
8.1.2 菜单项的操作
8.1.3 菜单的动态创建
8.1.4 加速键资源的创建过程
8.1.5 菜单加速键资源应用示例
8.2 位图资源及其应用
8.2.1 位图的概念
8.2.2 位图的操作过程
8.2.3 位图操作实例
8.3 对话框资源及其应用
8.3.1 模态对话框的编程方法
8.3.2 模态对话框应用实例
8.3.3 非模态对话框的编程方法
8.4 图标资源的应用
8.4.1 图标资源的操作
8.4.2 图标资源应用举例
8.5 本章小结
8.6 思考与练习
第9章 MFC基础
9.1.MFC概述
9.2 MFC类的组织结构及主要类的简介
9.2.1 MFC类的组织结构
9.2.2 根类
9.2.3 应用程序体系结构类
9.2.4 可视对象类
9.2.5 通用类
9.2.6 OLE类
9.2.7 ODBC数据库类
9.3 MFC中的全局函数与全局变量
9.4 应用程序向导
9.5 本章小结
9.6 思考与练习
第10章 MFC中Windows标准控件的应用
10.1 概述
10.2 按钮控件及其应用
10.2.1 按钮控件的使用
10.2.2 按钮控件示例
10.3 滚动条控件
10.3.1 滚动条类的结构及其方法
10.3.2 滚动条类编程实例
10.4 列表框控件
10.4.1 列表框控件的类结构
10.4.2 列表框控件类的成员函数
10.4.3 列表框和应用程序之间的消息传递
10.4.4 列表框应用举例
10.5 编辑框控件
10.5.1 编辑框控件简介
10.5.2 编辑框与应用程序间的消息传递
10.5.3 编辑框类编程实例
10.6 组合框控件
10.6.1 组合框类的结构及组合框的特点
10.6.2 组合框与应用程序之间的消息传递
10.6.3 组合框控件应用举例
10.7 对话框通用控件
10.7.1 Picture控件的使用
10.7.2 Spin控件的使用
10.7.3 Progress控件的使用
10.7.4 Slider控件的使用
10.7.5 DateTimePicker控件的使用
10.7.6 IJstControl控件的使用
10.7.7 TreeControl控件的使用
10.8 本章小结
10.9 思考与练习
第11章 简单MFC应用程序开发
11.1 文档/视图概述
11.1.1 单文档界面与多文档界面
11.1.2 文档/视图结构
11.1.3 SDI程序中文档、视图对象的创建过程
11.1.4 文档/视图结构程序的消息传递过程
11.2 文档/视图结构程序的主要成员
11.2.1 CWinApp类
11.2.2 CDocument类
11.2.3 CView类
11.2.4 CDocTemplate类
11.2.5 CFrameWnd类
11.2.6 串行化处理
11.3 SDI编程实例
11.4 对话框应用程序设计
11.4.1 对话框和控件的基本概念
11.4.2 对话框模板的设计
11.4.3 对话框类的设计
11.4.4 完善示例系统的客户端
11.5 本章小结
11.6 思考与练习
第12章 MFC数据库应用程序开发
12.1 数据库系统的基本概念
12.2 ODBC基本概念
12.3 MFC的ODBC类简介
12.4 CDatabase类
12.5 CRecordset类
12.5.1 动态集、快照、光标和光标库
12.5.2 SQL查询
12.5.3 记录集的建立和关闭
12.5.4 滚动记录
12.5.5 修改、添加和删除记录
12.6 示例系统中数据库操作类的设计
12.6.1 数据库设计
12.6.2 注册数据源
12.6.3 数据库操作类实现
12.7 本章小结
12.8 思考与练习
第13章 Windows多线程应用程序开发
13.1 多任务、进程和线程
13.1.1 Windows95/NT的抢先式多任务
13.1.2 进程与线程
13.1.3 线程的创建和终止
13.2 线程同步
13.2.1 为什么需要同步
13.2.2 事件对象
13.2.3 临界段
13.2.4 互斥体
13.2.5 信号计数器
13.3 线程通信
13.3.1 利用全局变量进行通信
13.3.2 利用自定义的消息进行通信
13.4 示例系统多线程设计
13.4.1 服务端多线程的设计
13.4.2 客户端多线程的设计
13.5 本章小结
13.6 思考与练习
第14章 WinSock编程基础
14.1 网络原理和协议
14.1.1 协议的特征
14.1.2 Win32支持的协议
14.1.3 WinSoek2协议信息
14.1.4 Windows套接字
14.1.5 选择合适的协议
14.2 网际协议
14.2.1 TCP和UDP
14.2.2 定址
14.2.3 创建套接字
14.3 WinSock基础
14.3.1 WinSoek的初始化
14.3.2 错误检查和控制
14.3.3 面向连接的协议
14.3.4.无连接协议
14.4 示例系统中通信协议的实现
14.4.1 完善基础类
14.4.2 收发消息类的实现
14.4.3 完善服务端收发消息线程
14.4.4 完善消息处理线程
14.4.5 完善服务端主函数
14.4.6 完善客户端消息处理线程
14.5 本章小结
14.6 思考与练习
附录
参考文献
……
序言 北京大学出版社第六事业部在2005年组织编写了《21世纪全国应用型本科计算机系列实用规划教材》,至今已出版了50多种。这些教材出版后,在全国高校引起热烈反响,可谓初战告捷。这使北京大学出版社的计算机教材市场规模迅速扩大,编辑队伍茁壮成长,经济效益明显增强,与各类高校师生的关系更加密切。
2008年1月北京大学出版社第六事业部在北京召开了“21世纪全国应用型本科计算机案例型教材建设和教学研讨会”。这次会议为编写案例型教材做了深入的探讨和具体的部署,制定了详细的编写目的、丛书特色、内容要求和风格规范。在内容上强调面向应用、能力驱动、精选案例、严把质量;在风格上力求文字精练、脉络清晰、图表明快、版式新颖。这次会议吹响了提高教材质量第二战役的进军号。
案例型教材真能提高教学的质量吗?
是的。著名法国哲学家、数学家勒内·笛卡儿(Rene Descartes,1596-1650)说得好:“由一个例子的考察,我们可以抽出一条规律。(From the consideration of an example we call form a rule.)”事实上,他发明的直角坐标系,正是通过生活实例而得到的灵感。据说是在1619年夏天,笛卡儿因病住进医院。中午他躺在病床上,苦苦思索一个数学问题时,忽然看到天花板上有一只苍蝇飞来飞去。当时天花板是用木条做成正方形的格子。笛卡儿发现,要说出这只苍蝇在天花板上的位置,只需说出苍蝇在天花板上的第几行和第几列。当苍蝇落在第四行、第五列的那个正方形时,可以用(4,5)来表示这个位置……由此他联想到可用类似的办法来描述一个点在平面上的位置。他高兴地跳下床,喊着“我找到了,找到了”,然而不小心把国际象棋撒了一地。当他的目光落到棋盘上时,又兴奋地一拍大腿:“对,对,就是这个图”。笛卡儿锲而不舍的毅力,苦思冥想的钻研,使他开创了解析几何的新纪元。千百年来,代数与几何,井水不犯河水。17世纪后,数学突飞猛进的发展,在很大程度卜归功于笛卡儿坐标系和解析几何学的创立。
这个故事,听起来与阿基米德在浴池洗澡而发现浮力原理,牛顿在苹果树下遇到苹果落到头上而发现万有引力定律,确有异曲同工之妙。这就证明,一个好的例子往往能激发灵感,由特殊到一般,联想出普遍的规律,即所谓的“一叶知秋”、“见微知著”的意思。
回顾计算机发明的历史,每一台机器、每一颗芯片、每一种操作系统、每一类编程语言、每一个算法、每一套软件、每一款外部设备,无不像闪光的珍珠串在一起。每个案例都闪烁着智慧的火花,是创新思想不竭的源泉。在计算机科学技术领域,这样的案例就像大海岸边的贝壳,俯拾皆是。
文摘 插图:
第2章 C++基础
C++语言与C语言兼容,用c语言编写的程序基本上可以不加修改地在C++中使用。C++扩充和新增了许多功能,既可用于面向过程的程序设计又可用于面向对象的程序设计。重载函数和函数模板在c++中占有非常重要的地位。重载函数允许定义多个同名的函数,它们在参数列表上有所区别,编译器通过检查参数类型、个数和顺序来决定调用哪一个函数。函数模板是一个通用函数,函数类型和形参类型都可以用一个符号或虚拟的类型来替代,编译时再用具体参数代替。本章首先从数据类型及其转换、函数等方面来介绍C++与c语言的不同,然后再介绍c++中的重载函数和函数模板。
2.1 C++语言基础
C++作为一门编程语言,沿袭了大部分c语言的知识,所以在C++编译器中同样可以编译c程序代码。但是,c++又从方便的角度和面向对象的角度对C语言进行了扩充,本节主要介绍C++在C语言基础上的一些特殊之处。
2.1.1 字符串类型
c++提供了两种类型字符串的表示方法:C风格的字符串和标准C++r引入的strin9类型的字符串。C风格的字符串起源于C语言,并在C++中继续得到支持,但是为了将程序员从许多“与使用C风格字符串相关的错误”中解脱出来,C++标准库提供了字符串类型数据抽象的一个公共实现,它主要由以下基本行为集合构成。
(1)查询字符串长度。对于c风格字符串,字符串长度由库函数strlen0返回。
(2)判断字符串是否为空。对于C风格字符串,通过下面两步条件测试来完成。