首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 软件工程 >

高级程序设计技术

2010-04-05 
基本信息·出版社:人民邮电出版社 ·页码:329 页 ·出版日期:2009年11月 ·ISBN:7115214565/9787115214560 ·条形码:9787115214560 ·版本:第1版 · ...
商家名称 信用等级 购买信息 订购本书
高级程序设计技术 去商家看看
高级程序设计技术 去商家看看

 高级程序设计技术


基本信息·出版社:人民邮电出版社
·页码:329 页
·出版日期:2009年11月
·ISBN:7115214565/9787115214560
·条形码:9787115214560
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:嵌入式系统系列教材

内容简介 《高级程序设计技术》全面系统地阐述了C++语言的基本概念、语法和面向对象的编程方法;对C++语言面向对象的基本特征:类和对象、继承性、派生类、多态性和虚函数等内容作了详尽的介绍;从软件开发的实际需要出发,按照面向对象的程序设计思想,详细地介绍了线性表、查找、排序等数据结构及其算法实现。《高级程序设计技术》例举了丰富的例题,每章后面备有形式多样的练习题。在内容安排上循序渐进、深入浅出,力求通俗易懂、突出重点、侧重应用。
《高级程序设计技术》不仅可作为高职高专院校和培训机构C++语言程序设计的教材,也可作为自学C++语言的指导用书和计算机工程技术人员的参考书。
编辑推荐 《高级程序设计技术》:嵌入式系统系列教材
目录
第1章 C++语言概述 1
1.1 C++语言的起源与特点 1
1.1.1 从C到C++ 1
1.1.2 C++与C的关系 1
1.1.3 C++面向对象的特性 2
1.2 C++语言的基本符号与词法 3
1.2.1 C++的字符集 3
1.2.2 数据类型概述 4
1.2.3 常量 6
1.2.4 变量 9
1.2.5 运算符 11
1.2.6 表达式 17
1.2.7 数据类型转换 18
1.3 C++语言程序的结构 19
1.3.1 顺序结构 19
1.3.2 选择结构 25
1.3.3 循环结构 31
1.3.4 转移语句 35
1.4 C++语言程序的编辑及运行 38
1.4.1 Linux程序设计基础知识 38
1.4.2 Linux下C++语言编程环境概述 40
1.4.3 Linux下C++语言编码的风格 41
习题 42

第2章 类和数据抽象 44
2.1 类的定义 44
2.1.1 类的定义 44
2.1.2 类的成员函数 47
2.1.3 类和结构 49
2.2 对象的创建与成员引用 50
2.2.1 对象的说明 51
2.2.2 对象的生存期 53
2.2.3 类作用域 54
2.2.4 引用 56
2.2.5 常类型 61
2.3 构造函数与析构函数 69
2.3.1 构造函数 69
2.3.2 析构函数 71
2.3.3 缺省构造函数和缺省析构函数 74
2.3.4 带参数的构造函数 74
2.3.5 内联函数和外联函数 76
2.3.6 堆对象与拷贝构造函数 76
2.3.7 局部类和嵌套类 82
2.4 友元函数与友元类 83
2.4.1 友元函数的说明 84
2.4.2 友元函数的使用 86
2.4.3 友元类 90
2.5 静态成员 91
2.5.1 静态数据成员 92
2.5.2 静态成员函数 96
2.6 this指针 98
习题一 101
习题二 103

第3章 继承和派生 107
3.1 基类和派生类 107
3.1.1 派生类的定义格式 107
3.1.2 派生类的3种继承方式 109
3.1.3 访问控制 112
3.1.4 基类和派生类的关系 118
3.2 继承方式 118
3.2.1 单继承 118
3.2.2 多继承 130
3.2.3 虚基类 140
3.3 派生与继承应用实例 147
3.3.1 问题描述 147
3.3.2 算法分析 147
3.3.3 数据说明 147
3.3.4 功能说明:定义父类和相关的子类 149
3.3.5 参考程序:“院校管理系统”程序实例 155
习题 156

第4章 多态性与虚函数 159
4.1 重载 159
4.1.1 运算符重载 159
4.1.2 普通成员函数重载 179
4.1.3 构造函数重载 183
4.1.4 派生类指针 187
4.1.5 模板 191
4.2 虚函数 204
4.2.1 静态联编与动态联编 204
4.2.2 虚函数的概念 205
4.2.3 动态联编与虚函数 213
4.2.4 虚函数的限制 216
4.2.5 虚函数与重载函数的比较 216
4.3 纯虚函数和抽象类 216
4.3.1 纯虚函数 216
4.3.2 抽象类 218
4.3.3 虚析构函数 223
习题一 224
习题二 226
习题三 227

第5章 C++流 230
5.1 C++流类库 230
5.1.1 预定义流 230
5.1.2 C++中的流类库 232
5.2 C++输入/输出流 232
5.2.1 文件流 232
5.2.2 字符串流 243
5.3 C++IO流格式控制 246
5.3.1 ios类中的枚举常量 246
5.3.2 使用ios成员函数 248
5.3.3 使用I/O操作符 250
5.3.4 检测流操作的错误 252
习题 253

第6章 线性表 255
6.1 线性表的逻辑结构 255
6.1.1 线性表的定义 255
6.1.2 线性表的基本操作 255
6.2 线性表的顺序存储及运算实现 256
6.2.1 顺序表 256
6.2.2 顺序表上基本运算的实现 257
6.2.3 顺序表应用举例 261
6.3 线性表的链式存储和运算实现 263
6.3.1 单链表 263
6.3.2 单链表上基本运算的实现 264
6.3.3 循环链表 269
6.3.4 双向链表 270
6.3.5 静态链表 272
6.3.6 单链表应用举例 273
6.4 顺序表和链表的比较 275
习题 276

第7章 查找 278
7.1 基本概念与术语 278
7.2 静态查找表 280
7.2.1 静态查找表结构 280
7.2.2 顺序查找 280
7.2.3 有序表的折半查找 281
7.2.4 有序表的插值查找和斐波那契查找 283
7.2.5 分块查找 284
7.3 动态查找表 285
7.3.1 二叉排序树 285
7.3.2 平衡二叉树(AVL树) 288
7.3.3 B-树和B+树 293
7.4 哈希表查找(杂凑法) 298
7.4.1 哈希表与哈希方法 298
7.4.2 常用的哈希函数 299
7.4.3 处理冲突的方法 300
7.4.4 哈希表的查找分析 302
习题 303

第8章 排序 305
8.1 基本概念 305
8.2 插入排序 305
8.2.1 直接插入排序 305
8.2.2 折半插入排序 307
8.2.3 表插入排序 307
8.2.4 希尔排序(Shell's Sort) 310
8.3 交换排序 311
8.3.1 冒泡排序(Bubble Sort) 311
8.3.2 快速排序 312
8.4 选择排序 314
8.4.1 简单选择排序 314
8.4.2 树形选择排序 315
8.4.3 堆排序(Heap Sort) 315
8.5 二路归并排序 318
8.6 基数排序 319
8.6.1 多关键码排序 319
8.6.2 链式基数排序 320
8.7 外排序 323
8.7.1 外部排序的方法 323
8.7.2 多路平衡归并的实现 324
习题 326
参考文献 328
……
序言 C++语言是目前使用最为广泛的一种高效程序设计语言,它既可以进行过程化的程序设计,也可以用于面向对象的程序设计。C++是从C语言发展演变而来的,是C语言的超集。
它实现了类的封装、数据隐藏、继承及多态,使得其代码容易维护及高度可重用。
本书作为C++语言的入门教材,不仅详细地介绍了C++语言本身,还深入地阐述了面向对象的程序设计方法。本书的主要特点是语言流畅,简洁易懂,例题丰富,实用性强。这使读者不仅可以学会一门程序设计语言,还能初步掌握面向对象的程序设计方法。其中,丰富的例题使初学者可以在学习的同时就开始积累初步的编程经验,以尽快达到学以致用的目的。
本书共计8章。
第1章C++语言概述,主要介绍C++的发展历史,面向对象的程序设计概念,C++的词法与规则,C++程序的结构与实现;数据类型,常量、变量,运算符与表达式,流控制,数据的输入/输出;C++语句,顺序、分支和循环程序设计。
第2章类和数据抽象,主要介绍类、对象,对象的初始化,构造函数与析构函数,堆与拷贝构造函数,静态成员和静态成员函数,友元函数和友元类,this指针等。
第3章继承和派生,主要介绍基类和派生类,单继承、多继承和虚基类。
第4章多态性与虚函数,主要介绍模板的概念,函数模板和类模板,运算符重载,普通成员函数重载,构造函数重载,派生类指针,虚函数,纯虚函数和抽象类等。
第5章C++流,主要介绍I/0标准流类,键盘输入、屏幕输出,磁盘文件的输入和输出,字符串流等内容。
第6章线性表,主要介绍线性表的逻辑结构,线性表的顺序存储及运算实现,线性表的链式存储和运算实现及顺序表和链表的比较等内容。
第7章查找,主要介绍查找的基本概念,静态查找表,动态查找表,哈希表查找等内容。
第8章排序,主要介绍排序的基本概念,插入排序,交换排序,选择排序,二路归并排序,基数排序和外排序等内容。
附录中给出了Linux环境下C++编译系统提供的库函数和类库,以方便读者查阅。
本书中所有例题都在Linux环境下C++编译系统中运行通过,在其他版本的编译系统中一般也都可以运行。本书为高职高专院校的C++程序设计教材,建议教授课时为45课时,上机实践课时为45课时,课程设计课时为16课时。各院校可根据教学实际情况适当增删。
本书也可作为大中专院校的程序设计课程教材和各类培训机构培训教材,还可供从事计算机应用的工程技术人员参考。
本书在编写过程中,编者参阅了许多C++的参考书和有关资料,并参阅了一些翻译的书籍,现谨向这些书的作者和译者表示衷心的感谢。
由于编者水平所限,书中难免有不妥或错误之处,欢迎广大读者指正。
文摘 插图:


1.1.3 C++面向对象的特性
1.C++支持数据封装
支持数据封装就是支持数据抽象。在C++中,类是支持数据封装的工具,对象则是数据封装的实现。面向过程的程序设计方法与面向对象的程序设计方法对待数据和函数关系是不同的,在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义,数据将被隐藏在封装体中,该封装体通过操作接口与外界交换信息。对象被说明为具有一个给定类的变量,类似于C语言中的结构,在C语言中可以定义结构,但这种结构包含数据,而不包含函数。C++中的类是数据和函数的封装体。在C++中,结构可作为一种特殊的类,它虽然可以包含函数,但是它没有私有或保护的成员。
2.C++类中包含私有、公有和保护成员
C++类中可定义3种不同访控制权限的成员。一种是私有(priVate)成员,只有在类中说明的函数才能访问该类的私有成员,在该类外的函数不可以访问私有成员;另一种是公有(public)成员,类外面也可访问公有成员,成为该类的接口;还有一种是保护(protected)成员,这种成员只有该类的派生类可以访问,其余的在这个类外不能访问。
3.C++中通过发送消息来处理对象
C++中是通过向对象发送消息来处理对象的,每个对象根据所接收到的消息的性质来决定需要采取的行动,以响应这个消息。响应这些消息是一系列的方法,方法是在类定义中使用函数来定义的,使用一种类似于函数调用的机制把消息发送到一个对象上。
4.C++中允许友元破坏封装性
类中的私有成员一般是不允许该类外的任何函数访问的,但是友元可打破这条禁令,它可以访问该类的私有成员(包含数据成员和成员函数)。友元可以是在类外定义的函数,也可以是在类外定义的整个类,前者称为友元函数,后者称为友元类。友元打破了类的封装性,它是C++另一个面向对象的重要牲。
热点排行