C++是近年来国内外广泛使用的高级计算机语言,它既包含了面向过程的程序设计,也包含了面向对象的程序设计,国内外许多大中专院校都开设了“C++面向对象程序设计”这门课程。但是,C++中概念较多、知识面覆盖较广、需要C语言作为基础等特点,使得基础薄弱的学生在学习过程中吃力,掌握起来难度较大。
本书从初学者的需求出发,配合高校应用型人才的培养目标,培养嵌入式专业的学生掌握交互式界面开发的基础知识,以及解决专业领域实际问题的能力。同时,本书注重教材的可读性和实用性,以理论讲解结合案例分析和编程实例的方式组织内容,循序渐进,符合读者的认知过程。本书内容全面细致,构架清晰完整,实用性强,特别适合编程的初学者,可作为大中专应用型电子、计算机类相关专业教材和学习参考资料。
本书从初学者的需求出发,配合高校应用型人才的培养目标,培养嵌入式专业的学生掌握交互式界面开发的基础知识,以及解决专业领域实际问题的能力。同时,本书注重教材的可读性和实用性,以理论讲解结合案例分析和编程实例的方式组织内容,循序渐进,符合读者的认知过程。
面向对象程序设计以其显著的优势成为计算机软件领域的主流技术。产业界需要大量掌握面向对象方法和技术的人才,这些人才不仅能够使用面向对象语言进行编程,更重要的是能运用面向对象方法进行系统建模。集合面向对象方法之长,使用多的就是MFC技术,这是一种定义良好、易于表达、功能强大、随时代发展且适用于各种应用领域的面向对象的编程技术。掌握MFC编程,不仅有助于理解面向对象的分析与设计方法,也有助于理解软件开发全过程。
本书在系统地介绍面向对象技术的基本概念和方法的基础上,重点介绍MFC及其技术、方法与应用,以及得到业界广泛认同的软件设计模式,软件开发的过程、规程与实践。本书是作者多年来进行软件系统开发实践和教学的一次经验总结。教材中的诸多实际问题和应用案例,都取材于软件系统开发的实践,并按照教学的要求进行了模型简化与规范。显然,这些源于实践的工程问题,对提高软件系统分析与设计的教学的实践性和实用性,将具有很好的示范效应。
我们希望本书不仅可以作为高等院校计算机或软件工程专业的大中专的教学参考读物,而且可以作为从事软件系统的研制、开发、管理和维护的软件人员的参考书。
全书共18章,由基础篇、提高篇和实践篇三大部分组成,基础篇包括第1章到第7章,提高篇包括第8章到第13章,实践篇包括第14章到第18章。各章节主要内容如下:
基础篇
第1章C++的初步认识,主要介绍了C++的概述、使用C++编写的第1个程序和C++上机实践入门。
第2章数据类型和运算规则,主要介绍了数据与数据类型、常量与变量、C++中的运算符等。
第3章基础的程序设计结构,主要介绍了程序设计和算法,C++程序结构、语句和注释,C++的输入和输出,顺序、选择、循环结构程序设计。
第4章数组的使用,主要介绍了一维数组、二维数组和字符数组的使用。
第5章函数的使用,主要介绍了函数的定义和调用、函数间的参数传递、函数的嵌套调用和递归调用、函数模板、函数重载等内容。
第6章指针的使用,主要介绍了地址和指针的概念、const指针、指针变量的引用等内容。
第7章结构体和共用体,主要介绍了结构体类型、共用体类型、枚举类型和自定义类型。
提高篇
第8章类和对象,主要介绍了类的声明和对象的定义、类的成员、对象成员的引用,类的封装性和隐蔽性。
第9章类和对象的使用,主要介绍了构造函数和析构函数、常对象、new和delete的使用、静态成员、友元等内容。
第10章继承与派生,主要介绍了派生类的构成和声明、多重继承、赋值兼容性规则等内容。
第11章多态性与虚函数,主要介绍了多态性的概念、虚函数的使用、纯虚函数和抽象类。
第12章运算符重载,主要介绍了运算符重载的方法和规则,重载单目、双目运算符。
第13章输入输出流,主要介绍了C++的输入输出流、文件流和对数据文件的操作等内容。
实践篇
第14章MFC编程概述,主要介绍了MFC的设计运行原理、Visual C++常用操作、MFC的Hello World程序等内容。
第15章窗口和对话框,主要介绍了框架窗口、通用对话框和消息对话框等内容。
第16章常用控件,主要介绍了静态控件和按钮、编辑框和旋转按钮控件、列表框、进度条和日历控件、滚动条和滑动条等内容。
第17章基本界面元素,主要介绍了图标和光标、菜单、交互对象的动态更新等内容。
第18章基于对话框的编程,主要介绍了创建基于对话框的应用、应用界面的可视化设计、菜单的创建和应用,并设计了一个简单的计算器程序。
由于时间仓促,编者水平有限,书中难免存在不足及疏漏之处,欢迎读者批评指正,提出宝贵的意见。
第1篇基础篇
第1章C++的初步认识/2
1.1关于面向对象程序设计/2
1.2第1个程序/4
1.3C++程序的构成和书写形式/7
1.4C++程序的编写和实现/8
1.5关于C++上机实践/9
第2章数据类型和运算规则/12
2.1数据与数据类型/12
2.2常量/14
2.3变量/19
2.4C++中的运算符/21
2.5算术运算符与算术表达式/22
2.6赋值运算符与赋值表达式/25
2.7关系运算、逻辑运算和位运算/27
2.8其他运算/30
第3章基础的程序设计结构/34
3.1程序设计和算法/34
3.2C++程序结构、语句和注释/35
3.3C++的输入与输出/38
3.4顺序结构程序设计/44
3.5选择结构程序设计/45
3.6循环结构程序设计/53
第4章数组的使用/65
4.1使用数组的好处/65
4.2一维数组的使用/66
4.3二维数组的使用/69
4.4字符数组/73
4.5用数组做函数参数/80
4.6字符串类和字符串变量/83
第5章函数的使用/91
5.1使用函数的好处/91
5.2函数的定义和调用/92
5.3函数间的参数传递/95
5.4函数的嵌套调用和递归调用/97
5.5局部变量和全局变量/102
5.6变量的作用域和变量存储类别/105
5.7内置函数/113
5.8函数的重载/114
5.9函数模板/115
5.10有默认参数的函数/116
5.11内部函数和外部函数/118
第6章指针的使用/123
6.1使用指针的好处/123
6.2地址和指针的概念/123
6.3变量与指针/124
6.4数组与指针/130
6.5字符串与指针/142
6.7返回指针值的函数/147
6.8const指针/148
6.9指针变量的引用/151
第7章结构体和共用体/155
7.1结构体类型/155
7.2共用体类型/169
7.3枚举类型和自定义类型/171
第2篇提高篇
第8章类和对象/180
8.1面向对象的程序设计方法/180
8.2类的声明和对象的定义/185
8.3类的成员/191
8.4对象成员的引用/194
8.5类的封装性和隐蔽性/196
8.6类和对象的应用举例/200
第9章类和对象的使用/205
9.1构造函数/205
9.2析构函数/212
9.3调用构造函数和析构函数的顺序/214
9.4对象数组/215
9.5对象指针/216
9.6常对象/219
9.7new和delete的使用/221
9.8对象的赋值和复制/222
9.9静态成员/227
9.10友元/231
9.11类模板/235
第10章继承与派生/246
10.1什么是继承与派生/246
10.2派生类的构成和声明/247
10.3派生类的成员访问控制属性/248
10.4派生类的构造函数和析构函数/255
10.5多重继承/261
10.6赋值兼容性规则/269
10.7继承与聚合/272
第11章多态性与虚函数/281
11.1多态性的概念/281
11.2虚函数的使用/281
11.3纯虚函数和抽象类/286
第12章运算符重载/296
12.1运算符重载的概念/296
12.2运算符重载的方法和规则/297
12.3运算符重载函数作为类成员函数和友元函数/300
12.4重载单目、双目运算符/302
第13章输入输出流/310
13.1C++的输入输出流/310
13.2标准输出流/311
13.3标准输入流/315
13.4文件流和对数据文件的操作/318
13.5字符串流/326
第3篇实践篇
第14章MFC编程概述/330
14.1什么是MFC/330
14.2MFC的设计运行原理/331
14.3MFC的优点/332
14.4MFC的层次结构/333
14.5消息和消息映射/334
14.6MFC基于框架的Hello World程序/338
14.7AppWizard和ClassWizard的用法/340
第15章窗口和对话框/348
15.1框架窗口/348
15.2创建对话框/351
15.3使用对话框/353
15.4通用对话框和消息对话框/358
第16章常用控件/360
16.1创建和使用控件/360
16.2静态控件和按钮/364
16.3编辑框和旋转按钮控件/369
16.4列表框/375
16.5组合框/382
16.6进度条和日历控件/386
16.7滚动条和滑动条/389
第17章基本界面元素/398
17.1图标/398
17.2光标/399
17.3菜单/401
17.4工具栏/406
第18章基于对话框的编程/415
18.1创建计算器应用程序/415
18.2绘制应用程序界面/416
18.3按钮响应行为的编码/419
18.4计算功能的实现/422
18.5菜单功能的实现/429