《大学计算机规划教材:C++程序设计基础(第4版)(下)》的例程以VC 2010为运行环境,全书分为上、下两册。上册在第3版的基础上增加了位运算和利用位运算的集合实现。下册介绍Visual C++在.Net环境下的Windows应用程序设计。
《大学计算机规划教材:C++程序设计基础(第4版)(下)》为下册,共分7章,主要内容包括:C++/CLI托管编程、控制台程序设计、常用控件、复杂界面设计、图形图像应用、数据库应用、网络编程。
《大学计算机规划教材:C++程序设计基础(第4版)(下)》可以作为高等学校计算机类、信息类、电类专业本科生高级语言程序设计课程教材,也可以作为教师、学生和C++语言爱好者的参考书。
C++语言是优秀的计算机程序设计语言,它的功能相当强大。我们编写这本书的目的是,为没有任何程序设计基础的理工科大学生提供一本适用教材,使他们掌握从理论到实践都要求很高的C++语言。
一门课程的设置应该放在整个教学培养计划中统筹考虑。我们的教学目标不是马上培养一个会使用某种语言(例如C++语言)的程序员,而是强调对程序设计语言的理解和应用,“计算机语言”的角色是第一位的。所以,在教材编写和组织教学的过程中,我们力图通过对基本语法现象的剖析,由浅入深地让学生理解、掌握语言规则的原理,懂得用计算机指令的模式去分析和求解问题,并在机器上实现简单的程序。至于深入的算法及大程序的组织讨论,将由相关的后续课程(例如,数据结构、算法分析、计算方法、软件工程等)完成。因此,对高级程序设计语言规则的理解和应用是本教材编写的立足点。
我们根据多年从事计算机程序设计教学的经验,按照学生学习的认知规律,精心构造整本教材的体系和叙述方式,原则是:循序渐进、难点分散、通俗而不肤浅。本教材以语法范畴和程序组织为脉络,清晰渐进,从字、词、数据、表达式、语句,到函数、类,是语法范畴构成的基本脉络;在程序功能方面,则以组织数据和组织程序为另外一条基本脉络,并以渐进的、粒度扩大的方式逐步导入分析。
例如,数据的组织方式:基本数据类型—数组—结构—链表,体现如何利用基本数据类型根据需要组织数据;程序的组织方式:语句—函数—类,体现结构化思想和面向对象思想对程序不同的组织方式。
指针是C++语言的重要概念,是操作对象的有力工具。本书没有一般C语言、C++语言教材中专门的“指针”一章。我们从最简单的变量开始,建立对象的名和地址的概念,用对象的不同访问方式贯穿于各章节。从结构化程序设计到面向对象程序设计,采取了比较平滑的过渡。首先,在一开始介绍基本数据类型、程序流程控制、函数等结构化程序设计的基本知识时,就非正式地使用“对象”这个术语(从计算机程序的角度,任何占有存储空间的实体都是对象);继而,掌握结构到类的演变,给出对象的准确定义;进一步,展开介绍面向对象程序的几个基本特性,即封装、继承、多态和类属在C++语言中的实现方法。同时,我们在本书的阐述中体现一个思想:没有一种对所有问题都是最好的程序设计方法,对特定问题,选择合适的解决方案是程序员必备的素质。
本书之所以取名为《C++程序设计基础》,原因有二:第一,它不是一本C++语言手册,不可能包罗所有语法规则和特定版本提供的各种功能;第二,它没有涉及复杂的算法和工程化的面向对象分析设计方法。这两个问题与教材的定位相关。对第一个原因,我们认为学生在掌握了程序设计的基本概念和基本方法之后,可以通过语言平台(例如VisualC++)或者其他资料学习,拓展对语言功能的了解。我们在有关章节中,也做了类似的引导,例如,STL标准类库的介绍,这些内容提供给教师选择或学生自学。至于第二个原因,那些是计算机专业后续课程的教学内容。本书介绍的程序设计方法和使用到的算法都立足于基本概念和方法,所以,例程通常是简单和小规模的。
本书分别在2003年、2006年和2009年出版了1~3版。目前修订的第4版教材的例程以VC2010为运行环境,全书分为上、下两册。上册在第3版的基础上增加了位运算和利用位运算的集合实现。下册介绍VisualC++在.Net环境的Windows应用程序设计。编写下册教材的原因是学生在掌握了C++程序设计基本语法之后,希望能够设计一个Windows界面的完整的应用程序。
下册共分7章,主要内容包括:C++/CLI托管编程、简单Windows应用程序、常用控件、复杂界面、图形图像、数据库应用、网络编程。
本书中配套的电子课件和例程的源代码,请登录华信教育资源网免费下载。
本书可以作为高等学校计算机类、信息类、电类专业本科生高级语言程序设计课程教材,也可以作为教师、学生和C++语言爱好者的参考书。
本书的编写过程,是作者不断向学生学习,向同行学习,向C++语言学习的过程。在此,对所有使用本书的教师、学生,以及热心向我们提出宝贵意见的读者致以诚挚的感谢!希望继续得到读者的支持和帮助。本书参考了MSDN的部分内容。
作者
第1章 C++/CLI托管编程
1.1 .NET框架
1.2 简单控制台程序
1.2.1 一个简单程序
1.2.2 格式串
1.3 C++/CLI数据
1.3.1 基本数据类型
1.3.2 枚举类型
1.3.3 字符与字符串
1.3.4 日期时间
1.3.5 数组
1.4 句柄
1.4.1 句柄操作
1.4.2 托管引用
1.4.3 函数的句柄参数与引用参数
1.5 托管类
1.5.1 托管类定义
1.5.2 托管类属性
1.5.3 继承
1.6 C++/CLI中的多态
1.6.1 虚函数
1.6.2 重写约束
1.6.3 纯虚函数和抽象类
1.6.4 接口
1.6.5 模板与泛型
1.7 .NET的文件和流
1.7.1 文件系统管理
1.7.2 文件操作
本章小结
习题1
第2章 简单Windows应用程序
2.1 Windows窗体设计器
2.2 建立应用程序
2.2.1 主要工作步骤
2.2.2 一个简单例子
2.2.3 添加文件
2.3 使用控件输入/输出数据
本章小结
习题2
第3章 常用控件
3.1 控件概述
3.2 窗体和消息框
3.2.1 窗体
3.2.2 消息框
3.3 文本控件
3.3.1 标签
3.3.2 网页浏览控件
3.3.3 文本框
3.3.4 关联文本控件
3.4 图像控件
3.4.1 图片框
3.4.2 图片列表
3.5 键盘和鼠标事件
3.5.1 焦点和Tab顺序
3.5.2 键盘事件
3.5.3 鼠标事件
3.6 按钮
3.6.1 命令按钮
3.6.2 复选框
3.6.3 单选按钮
3.7 容器
3.7.1 分组框
3.7.2 其他容器控件
3.8 列表
3.8.1 标准列表框
3.8.2 复选列表框
3.8.3 组合框
3.9 滚动条
3.10 计时器
3.11 对话框
3.11.1 颜色对话框
3.11.2 字体对话框
3.11.3 文件对话框
3.12 剪贴板
本章小结
习题3
第4章 复杂界面
4.1 菜单
4.1.1 菜单的形式
4.1.2 菜单栏
4.1.3 快捷菜单
4.2 工具栏
4.3 状态栏
4.4 视图
4.4.1 树视图
4.4.2 列表视图
4.5 多窗体
4.5.1 多重窗体界面
4.5.2 多文档界面
4.5.3 窗体之间的数据传递
4.5.4 窗体之间的关系
本章小结
习题4
第5章 图形图像
5.1 基础
5.1.1 图形与图像
5.1.2 GDI+简介
5.1.3 像素
5.1.4 坐标系
5.1.5 绘图元素
5.2 绘图
5.2.1 绘图基本方法
5.2.2 画笔
5.2.3 绘制图形
5.2.4 图像刷新
5.3 填充
5.3.1 画刷
5.3.2 填充方法
5.4 图像处理
5.4.1 Bitmap类
5.4.2 坐标变换
5.4.3 颜色变换
5.5 文本输出
5.5.1 简单文本输出
5.5.2 输出格式化文本
5.6 图像编辑器
本章小结
习题5
第6章 数据库应用
6.1 数据库基础知识
6.1.1 数据、数据库、数据库管理系统
6.1.2 关系数据库
6.2 SQL简介
6.2.1 数据检索
6.2.2 表的连接
6.2.3 记录的排序
6.3 MySQL数据库管理系统
6.3.1 什么是MySQL
6.3.2 MySQL的安装与配置
6.3.3 启动服务并登录MySQL数据库
6.3.4 创建数据库
6.3.5 创建数据表
6.3.6 插入数据
6.4 数据库与ADO.NET
6.4.1 ADO.NET概述
6.4.2 使用DataReader
6.4.3 使用DataSet
6.4.4 在DataSet中访问多个表
6.4.5 使用数据控件
本章小结
习题6
第7章 网络编程
7.1 有关网络编程的一些基本概念
7.1.1 ISO/OSI网络模型
7.1.2 TCP/IP
7.1.3 Socket(套接字)
7.2 单线程套接字编程
7.2.1 建立TCP服务器
7.2.2 建立TCP客户端
7.2.3 使用Socket建立客户-服务器交互
7.3 多线程套接字编程
7.3.1 多线程的概念
7.3.2 多线程套接字网络通信程序
7.3.3 带心跳检测的网络通信程序
7.3.4 多客户端网络通信程序
7.4 综合示例:网络井字棋
7.4.1 概要设计
7.4.2 服务器端代码
7.4.3 客户端代码
本章小结
习题7
……