编辑推荐
1. 本书基于C++语言程序设计教学大纲,结合面向市场应用型人才需求现状,教材内容编排具有很强的针对性。2. 注重编程实践能力的培养,把跨操作系统平台程序设计、图形界面程序设计和面向对象的程学设计与C++语言的基本概念和基本知识有机结合.3. 全书内容注重易用性,知识完善,案例丰富,即使没有任何程序设计基础,也可以通过本书的学习,循序渐进、由浅入深的掌握C++程序设计语言的语法、面向对象程学设计的方法和跨平台图形界面程序设计技能。
内容简介
本书是为高等院校面向应用型人才培养编写的C++语言程序设计教材。全书共分9章,主要内容包括QtC++开发环境介绍、C++程序设计基础、类与对象、继承与派生、虚函数与多态、运算符重载、模板和异常处理、输入输出流与命名空间、图形界面程序设计基础以及图形界面编程综合实例。本书采用Qt跨平台C++程序开发框架,结合“案例驱动”编写方式,语法介绍语言精练、内容深入浅出、循序渐进、程序案例生动易懂,以规则几何图形面积和体积计算程序设计案例贯穿本书,既传授给学生C++语言的基本概念和知识,又传授给学生使用C++语言进行图形界面程序设计的基本方法及基本技能。
本书既可以作为高等院校本科及专科学生C++语言程序设计的教材,又可以作为教师、自学者的参考用书,同时也可供各类软件开发设计人员学习参考。
本书配有电子教案及相关教学资源,读者可从网站www.tup.com.cn下载。
目录
目录
第1章走进Qt/1
1.1Qt简介/1
1.1.1认识Qt/1
1.1.2Qt开发环境简介/2
1.1.3使用Qt开发C++应用程序的优势/4
1.2Qt的下载、安装与配置/5
1.2.1Windows平台下第4版Qt C++语言集成开发环境的安装与配置/5
1.2.2Windows平台下第5版Qt C++语言开发环境的安装与配置/31
1.2.3Linux平台下Qt的C++语言开发环境的安装与配置/41
1.3Qt Creator集成开发环境/47
1.3.1Qt Creator集成开发环境/47
1.3.2Qt Creator常用菜单功能介绍/48
1.4Qt Creator的基本操作/49
1.4.1Qt Creator的启动与退出/49
1.4.2使用Qt创建、打开和关闭项目/51
1.4.3Qt Creator的编辑器、项目视图的
操作/55
1.4.4文件的打开、编辑、保存与关闭/56
1.4.5项目编译模式及其配置/58
1.4.6编译、连接生成项目的可执行文件/58
1.4.7纠正编译或连接出现的错误/59
1.4.8Qt工具栏的使用/59
1.5Qt Creator联机帮助系统/59
1.5.1Qt中如何寻求帮助/59
1.5.2帮助文件的打开及使用源代码
编辑器/60
1.5.3缩小查找范围/61
1.6使用Qt开发C++语言程序/62
1.6.1Windows平台下使用Qt第4版开发C++语言程序/62
1.6.2Windows平台下使用Qt第5版开发C++语言程序/71
1.6.3Linux平台下使用Qt开发C++语言程序/82
1.7Qt5简要介绍/87
1.7.1Qt5简介/87
1.7.2Qt4平台项目向Qt5平台移植/89
1.8习题/91第2章C++程序设计基础/92
2.1C++语言简介/92
2.1.1认识C++语言/92
2.1.2C++的标准化/93
2.2C++控制台应用程序/93
2.2.1C++控制台程序举例/93
2.2.2C++控制台源程序的结构/96
2.3C++语言的基本语法成分/96
2.3.1C++语言字符集/97
2.3.2C++语言的基本语法单位/97
2.4基本数据类型与表达式/99
2.4.1数据类型/99
2.4.2常量、变量/101
2.4.3运算符与表达式/103
2.4.4数据类型的转换/108
2.5C++控制台程序常用的输入输出/109
2.6结构化程序设计/112
2.6.1结构化程序设计概述/112
2.6.2顺序结构/112
2.6.3选择结构/113
2.6.4循环结构/118
2.6.5其他控制语句/124
2.6.6常用算法程序举例/125
2.7函数/130
2.7.1函数概述/130
2.7.2函数的其他特性/133
2.7.3变量的作用域与存储类别/136
2.8数组与字符串/141
2.8.1数组/141
2.8.2字符串与string类/146
2.9指针与引用/149
2.9.1指针/149
2.9.2引用/151
2.10const修饰符/156
2.11动态内存管理/158
2.12习题/161
2.12.1选择题/161
2.12.2填空题/162
2.12.3编程题/164第3章类与对象/165
3.1面向对象程序设计概述/165
3.1.1面向对象的基本概念/165
3.1.2面向对象的基本特征/168
3.1.3面向对象的计算机语言简介/169
3.2类与对象的定义/170
3.2.1类的定义/170
3.2.2对象的定义与使用/178
3.2.3类的作用域/182
3.2.4类的封装性和信息隐藏——公有接口与私有实现的分离/184
3.3构造函数与析构函数/186
3.3.1构造函数/186
3.3.2复制构造函数/196
3.3.3析构函数/200
3.4对象的深复制/203
3.5静态成员/205
3.5.1静态数据成员/205
3.5.2静态成员函数/208
3.6常类型/210
3.6.1类的常数据成员/210
3.6.2类的常成员函数/212
3.6.3常对象/213
3.7友元/215
3.7.1友元函数/215
3.7.2友元类/220
3.7.3友元应用举例/221
3.8对象数组与类的组合/224
3.8.1对象数组/224
3.8.2类的组合/227
3.9程序举例/232
3.10习题/234
3.10.1选择题/234
3.10.2分析程序题/236
3.10.3问答题/238
3.10.4编程题/239第4章Qt GUI图形界面程序设计基础/240
4.1图形界面程序设计基础知识/240
4.1.1Qt C++中的对象/240
4.1.2Qt C++中的窗体/241
4.1.3Qt内置的窗口部件和对话框类/241
4.2Qt的信号和槽/247
4.3Qt的元对象系统/248
4.4Qt命令行方式开发C++语言图形
界面程序/249
4.4.1程序的编辑、编译和运行/249
4.4.2Qt C++图形界面程序如何响应用户的操作/252
4.4.3Qt中如何实现窗口部件的布局/253
4.5命令行方式下对话框程序设计/255
4.6可扩展的对话框设计/264
4.7规则几何图形面积和体积计算之菜单、工具栏的设计——Qt4 Creator开发图形界面程序综合案例/279
4.7.1关于Qt的项目/279
4.7.2创建项目ReFigCalculator/279
4.7.3创建项目程序的菜单、子菜单及其工具栏按钮/283
4.8规则几何图形面积和体积计算之三角形面积计算——Qt4 Creator开发图形界面程序综合案例/301
4.8.1三角形面积计算对话框的设计与
实现/301
4.8.2设计三角形类,实现面积计算功能/316
4.9规则几何图形面积和体积计算之圆面积计算——Qt5 Creator开发图形界面程序综合案例/321
4.9.1Qt4平台项目导入Qt5平台的步骤和
方法/321
4.9.2圆面积计算对话框的设计与实现/324
4.9.3增加圆形类,实现面积计算功能/328
4.10习题/334第5章继承与派生/336
5.1继承概述/336
5.2基类与派生类/337
5.2.1派生类的定义/337
5.2.2访问控制/340
5.2.3重名的成员/346
5.2.4派生类中访问静态成员/348
5.3派生类的构造函数与析构函数/349
5.3.1构造函数和析构函数的执行顺序/350
5.3.2派生类构造函数的定义/351
5.3.3派生类析构函数的定义/355
5.3.4程序举例/356
5.4多继承/359
5.4.1派生类的定义/359
5.4.2虚继承/361
5.5Qt5 Creator开发图形界面程序综合案例——规则几何图形面积和体积计算之圆柱体体积计算/362
5.5.1圆柱体体积计算对话框的设计与
实现/362
5.5.2增加圆柱体类,实现体积计算功能/366
5.6习题/372
5.6.1选择题/372
5.6.2问答及编程题/373第6章虚函数与多态/375
6.1静态联编和动态联编/375
6.2类指针的关系/378
6.3虚函数/380
6.4纯虚函数和抽象类/386
6.5规则几何图形面积和体积计算之矩形、正方形、梯形面积计算——Qt5 Creator开发图形界面程序综合案例/393
6.5.1矩形面积计算对话框的设计与
实现/393
6.5.2正方形面积计算对话框的设计
与实现/397
6.5.3梯形面积计算对话框的设计与
实现/401
6.5.4添加矩形、正方形和梯形对话
框类/406
6.5.5实现矩形、正方形和梯形对话框的面积计算功能/409
6.6习题/411
6.6.1选择题/411
6.6.2填空题/412
6.6.3编程题/414第7章运算符重载/415
7.1运算符重载概述/415
7.2运算符重载的规则/417
7.3友元或成员函数重载运算符/418
7.3.1友元函数重载运算符/419
7.3.2成员函数重载运算符/421
7.3.3友元函数和成员函数重载的区别/424
7.4常用运算符的重载/425
7.4.1自增/自减(++/--)运算符的重载/425
7.4.2赋值运算符(=)的重载/429
7.4.3下标运算符([])的重载/432
7.5习题/434
7.5.1选择题/434
7.5.2编程题/434第8章模板和异常处理/436
8.1模板的概念/436
8.2函数模板/436
8.2.1函数模板的定义/436
8.2.2函数模板的实例化/438
8.2.3函数模板应用举例/439
8.3类模板/441
8.3.1类模板的定义/441
8.3.2类模板的实例化/442
8.3.3类模板的应用举例/443
8.4标准模板库/447
8.4.1容器/447
8.4.2算法/451
8.4.3迭代器/454
8.5异常处理/455
8.5.1异常处理概述/455
8.5.2异常处理的实现/456
8.5.3标准库中的异常类型/460
8.6习题/462
8.6.1选择题/462
8.6.2编程题/463第9章输入输出流与命名空间/464
9.1I/O流概述/465
9.2标准I/O流/466
9.2.1标准I/O流对象/466
9.2.2标准输入输出/467
9.2.3重载插入/提取运算符/471
9.2.4输入输出流的成员函数/474
9.3流格式控制/478
9.3.1ios成员函数/478
9.3.2操纵算子/483
9.4文件的输入输出/485
9.4.1文件/485
9.4.2文件的打开和关闭/486
9.4.3文本文件/489
9.4.4二进制文件/492
9.5命名空间/500
9.6规则几何图形面积和体积计算之圆柱体体积的保存/503
9.6.1圆柱体体积计算和保存对话框的设计与实现/503
9.6.2实现圆柱体体积计算结果的保存
功能/506
9.6.3实现圆柱体体积计算结果的查询
功能/513
9.7习题/515附录AC++常用关键字/516附录BC++运算符/517附录CC/C++常用库函数/518
参考文献/521
精彩书摘
第3章类与对象
本章主要内容:
(1)面向对象程序设计的基本思想。
(2)类与对象、抽象、封装、继承与多态的含义。
(3)类、对象的定义和使用。
(4)类的构造函数、析构函数与复制构造函数。
(5)静态成员、常成员、友元的应用。
(6)对象数组、类的组合应用。从20世纪90年代开始,面向对象编程(Object�睴rientedProgramming,OOP)已成为程序设计的主流技术,该技术提高了大型软件的开发效率,并使程序易于维护。C++语言既支持面向过程的程序设计方法,也支持面向对象的程序设计方法。前面实现的面向过程的程序设计中,编写的程序是由一个或多个函数组成的。从本章开始,我们将学习面向对象的程序设计,在程序中定义类和对象,应用封装、继承和多态实现程序设计。
3.1面向对象程序设计概述〖1〗3.1.1面向对象的基本概念前面介绍的结构化程序设计(StructuredProgramming,SP)是以解决问题的过程作为出发点,其方法是面向过程的。结构化程序设计是以功能为核心,基本方法是将问题分解成模块,每个模块尽可能相对独立地解决一个子问题,整个程序是模块功能的集合。在C语言中,一个模块可用一个函数描述,多个函数构成一个源程序,多个源程序构成一个完整的C程序,实现问题的求解。所以,C语言的源程序是由一个个函数构成的。因为各模块可以分别编程,使程序易于阅读、开发和维护。
但是,这种结构化程序设计把程序看成是“数据结构+算法”,程序中数据与处理这些数据的算法(过程)是分离的。这样,当数据结构改变时,所有相关的处理过程都要进行相应的修改。同时,由于这种分离,导致了数据可能被多个模块使用和修改,难以保证数据的安全性和一致性。另外,当前广泛应用的图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。所以,结构化程序设计方法难以适应大型软件和图形界面的应用软件开发。
面向对象程序设计是应用面向对象的思想指导软件开发的过程,简称OO(Object�睴riented)方法,是建立在“对象”概念基础上的方法学。面向对象的思想认为客观世界是由各种各样的对象组成,每种对象都有各自的内部状态和运动规律,不同对象间的相互作用和联系就构成了各种不同的系统,构成了客观世界。由此,解决现实世界问题的计算机程序也与此相对应,是由一个个对象组成,这些程序就称为面向对象的程序。
面向对象编程的关注点在于对象本身,对象包含对象的属性和行为两个构成要素。C语言中结构类型的变量包含不同数据类型的成员,用于描述事物的属性,实现了把各种数据的集合用于表示一个事物,而对数据操作的函数(事物的行为)需要单独定义在结构之外,如果将数据和操作的函数都封装为一个整体,就是C++中的对象。在面向对象程序设计中,对象是构成软件系统的基本单元,并从相同类型的对象中抽象出类,对象是类的实例。类的成员中不仅包含描述类对象属性的数据,还包含对这些数据进行处理的程序代码(这些程序代码被称为对象的行为或操作)。面向对象程序设计是把数据及其操作封装为一个整体对待,数据本身不能被外部函数直接存取。
面向对象程序设计的程序一般由类的定义和类的使用两部分组成,主程序中定义各个类的对象并规定它们之间传递消息的规律,程序中的一切操作都通过向对象发送消息来实现,对象接收到消息后,调用有关对象的行为来完成相应的操作。面向对象方法更接近于人类的自然思维方式,用这种方法开发的软件可维护性和可复用性更高。
面向对象程序设计中的概念主要包括对象、类、抽象、封装、继承、多态、消息等。通过这些概念面向对象的思想得到了具体的体现。
1.对象
1)现实世界的对象
在现实世界中,我们所见到的任何事物都可以看成对象,如一个人、一个工厂、一只狗、一辆汽车、一台计算机等都是对象,这些是有形的具体存在的事物;对象也可以是一个无形的抽象的行为,如一次演出、一次出差等。
对象是现实世界中的实体。对象多种多样,各种对象具有不同的属性特征。有的对象有生命,有的对象没有生命,有的对象有固定的形状,有的对象没有固定的形状……例如,球都具有圆形、半径的属性,而人具有姓名、性别、年龄的属性,即使同一类对象其属性值也是不同的。各个对象也有自己的行为。例如,球的滚动、弹跳,人的走路、眨眼、学习,汽车的加速、刹车和转弯,等等。所以,一个对象是由一组静态的属性和一组动态的行为组成。对象可以很简单,也可以很复杂,复杂的对象可由若干个简单对象组成。
总的来说,现实世界中的对象,具有以下特性。
(1)每个对象都有一个用于与其他对象相区别的名字。
(2)具有某些特征,称它为属性或状态。
(3)有一组行为,决定了对象能干什么。
(4)对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。
2)面向对象中的对象
面向对象中的对象是对现实世界的对象的映射,是由描述其属性的数据和定义在数据上的一组操作组成的实体,即将数据和对数据的操作封装在一起构成一个整体。在C++中,每一个对象都是由数据和函数两部分组成,函数用来实现对数据的操作。
例如,学生“李明”是一个对象,他的数据和他能提供的一组操作表示如下:
对象名:李明
对象的属性:
年龄:20
性别:男
身高:175cm
专业:信息管理与信息系统
对象的操作:
运动
上课
这里的属性说明了李明这个对象的特征,操作说明了李明能做什么。
2.类
1)现实世界中的类
在现实世界中,人们是通过研究对象的属性和观察它们的行为而认识对象的。人们可以把对象分成很多类。类是对一组具有共同属性和行为的对象的抽象。例如,学生这个类是对小学生、中学生、大学生、研究生等学生群体的统称,具体的学生个体则是这个类的一个实例,就是一个学生对象。类和对象是抽象和具体的关系。
学生类还可以再分成小学生类、中学生类……即每一大类中还可再分成若干小类,也就是说,类是分层的。同一类的对象具有许多相同的属性和行为。
2)面向对象中的类
面向对象中的类是一组对象的抽象,为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。类是创建对象的模板,它没有具体的值和具体的操作,只有以它为模板创建的对象才有具体的值和操作。类用类名来相互区别。对象是类的一个实例,有了类才能创建对象。
在C++中,就是用类来描述对象的,类是对现实世界的对象进行抽象得到的。例如,在现实世界中,同是学生类
Qt C++跨平台图形界面程序设计基础(第2版)/计算机系列教材 电子书 下载 mobi epub pdf txt