出版时间:2009-3 出版社:机械工业出版社 作者:皮德常 页数:312
前言
C++是一种实用的程序设计语言,是高校学生学习程序设计的一门必修专业课程,同时也是编程人员最广泛使用的语言。学好C++,可以很容易地触类旁通其他语言,如Java和C#等。 本书主要是针对C++初学者和自学者而编写的,结合实例讲解了C++的基本概念和方法,力求将复杂的概念用简洁、通俗的语言描述,做到深入浅出、循序渐进。本书适合用于大学计算机专业和非计算机专业,也可供具有C语言基础的自学者使用。本书的特点如下: 1.本书主要讲解了C++程序设计的编程方法,它是计算机科学与技术专业学生的编程基础。 2.本书是作者教学经验的结晶。作者10多年来一直从事程序设计方面的教学和科研工作,主讲过程序设计方面的多门课程,积累了丰富的教学经验。“从实践到理论,再从理论到实践,循序而渐进”是作者教学的心得体会,编写教材也不例外。了解学生的薄弱环节和学习特点,将自己的知识、授课方法和教学经验整理成书,使更多的学生受益,是作者的梦想和追求。 3.在内容安排上,本书尽量提前讲解文件操作(许多书都是在最后讲解)这部分内容。因为文件是很实用、也是比较难学的一章,所以这种安排也为学生进行课程设计和实验做了铺垫。 4.在作业安排上,从易到难,环环相扣。作者在教学中发现,许多学生学过C++,却不会编程。因此,本书设计了许多与实际有关的习题,并且它们彼此相关。 5.强调课程设计。C++课程应该有课程设计,在本书的最后给出了一个课程设计要求,希望学生能独立、认真地完成。这对提高学生的编程能力,巩固学过的知识大有裨益。 6.力求通俗易懂。编写本书的目的是让学生通过自学或在教师的讲授下,能够运用C++语言的核心要素,进行程序设计。因此,本书围绕着如何进行C++编程展开。为了便于学生的学习,作者力求语言通俗易懂,将复杂的概念采用浅显的语言描述,做到易学、易用、有趣,从而便于读者理解和掌握C++编程思想和方法。
内容概要
《C++程序设计教程》针对初学者和自学者的特点,在总结过去的教学和实践经验的基础上,编写而成。写作风格别具一格,语言流畅,风趣,恰如其分的举例易于读者理解和掌握C++程序设计,同时,在写作中还特别注重培养学生的独立思考能力。教材结合实例讲解了C++的基本概念和方法,力求将复杂的概念用简洁、通俗、有趣的语言描述,做到了深入浅出、循序渐进,从而使学生能体会学习的快乐,及在快乐中学习。 C++是一种实用的程序设计语言,是高校学生学习程序设计的一门必修专业课程,同时也是编程人员最广泛使用的工具。学好C++,可以很容易地触类旁通其他语言,如Java和C#等。 全书共11章,主要包括C++基本数据类型、流程控制、函数、数组、指针、结构体、文件操作、类的基础部分、类的高级部分、继承、多态、虚函数、异常处理、课程设计要求等。书中列举了数百个可供直接使用的程序示例代码,并给出了运行结果,使学生在学习时更为直观。 《C++程序设计教程》配有适当的习题,并提供了该书的电子教案,特别适合用作大学计算机专业和非计算机专业的程序设计课程教材,也非常适合那些具有C编程经验,又想转向C++编程的读者阅读。
书籍目录
前言第1章 C++程序设计基础1.1 为什么要学习C++程序设计1.2 简单的C++程序举例1.3 注释方法1.4 编程风格1.5 C++程序的词法单位1.5.1 C++程序中的字符1.5.2 标识符1.5.3 关键字1.6 C++的基本数据类型1.7 变量与常量1.7.1 变量1.7.2 文字常量1.7.3 符号常量1.7.4 常变量1.8 运算符和表达式1.8.1 算术运算符和算术表达式1.8.2 运算符的优先级和结合性1.8.3 赋值运算符和赋值表达式1.8.4 自增、自减运算1.8.5 关系运算符和关系表达式1.8.6 逻辑运算符和逻辑表达式1.8.7 位运算和算术表达式1.8.8 逗号运算符与逗号表达式1.8.9 sizeof运算符1.8.10 C++的运算符、优先级和结合性1.9 语句1.10 类型转换1.10.1 赋值时的类型转换1.10.2 混合运算时的类型转换1.10.3 强制类型转换1.11 简单的输出和输入方法1.11.1 cout对象和cin对象1.11.2 格式化输出1.11.3 采用函数成员实现格式化输出1.11.4 对函数成员的初步讨论1.11.5 指定输入域宽1.11.6 读取一行1.11.7 读取一个字符1.11.8 读取字符时易出错的地方1.12 枚举类型1.12.1 枚举类型的定义1.12.2 枚举类型的变量1.12.3 枚举类型的应用思考与练习第2章 C++的流程控制2.1 算法的基本概念和表示方法2.1.1 算法的基本概念2.1.2 算法的表示2.1.3 算法的三种基本结构2.2 选择结构程序设计2.2.1 基本的if语句2.2.2 嵌套的if语句2.2.3 条件运算符2.3 switCh语句2.4 循环结构程序设计2.4.1 while循环2.4.2 do—while循环2.4.3 for循环2.4.4 循环嵌套2.4.5 break语句2.4.6 Continue语句2.4.7 应该少用的goto语句2.5 程序设计应用举例思考与练习第3章 函数3.1 函数的定义和调用3.1.1 概述3.1.2 定义函数3.1.3 调用函数3.2 函数的声明3.3 函数的参数传递和返回值3.3.1 函数参数的传递方式3.3.2 函数的返回值3.4 局部变量和全局变量3.4.1 内存存储区的布局3.4.2 局部变量3.4.3 全局变量3.4.4 局部变量与栈3.5 变量的存储类别3.5.1 auto修饰的变量3.5.2 register修饰的变量3.5.3 static修饰的变量3.5.4 extern修饰的变量3.6 默认参数3.7 引用作参数3.8 函数重载3.9 函数模板3.9.1 从函数重载到函数模板3.9.2 定义函数模板的方法3.9.3 在函数模板中使用多种类型3.9.4 函数模板重载3.10 内联函数3.11 函数的递归调用3.12 函数的调试方法3.13 编译预处理3.13.1 宏定义3.13.2 文件包含3.13.3 条件编译思考与练习第4章 数组4.1 一维数组4.1.1 一维数组的定义和应用4.1.2 引用一维数组元素4.1.3 数组无越界检查4.1.4 数组初始化4.2 多维数组4.2.1 二维数组的定义4.2.2 二维数组的初始化4.2.3 引用二维数组元素4.3 数组作函数参数4.3.1 数组元素作函数参数4.3.2 数组名作函数参数4.4 常用算法举例4.5 字符数组与字符串4.5.1 字符数组的定义4.5.2 字符数组的初始化4.5.3 字符串4.5.4 字符数组的输入和输出4.6 处理字符和字符串4.6.1 处理字符的宏4.6.2 处理c风格字符串的函数4.6.3 自定义字符串处理的函数4.7 标准c++的string4.7.1 如何使用string类型4.7.2 string对象的比较4.7.3 string对象的初始化4.7.4 string的函数成员4.7.5 string对象应用举例思考与练习第5章 指针5.1 指针的概念5.2 指针变量5.2.1 定义指针变量5.2.2 运算符&和5.2.3 引用指针变量5.3 指针与数组5.3.1 指向数组元素的指针5.3.2 指针的运算5.3.3 二维数组与指针5.4 指针与函数5.4.1 基本类型的变量作函数形参5.4.2 引用作函数形参5.4.3 指针变量作函数形参5.4.4 返回指针的函数5.4.5 指向函数的指针5.5 指针数组与指向指针的指针5.5.1 指针数组5.5.2 main函数的参数5.5.3 指向指针的指针5.5.4 再次讨论main函数的参数5.6 内存的动态分配和释放5.7 void和const修饰指针变量5.7.1 void修饰指针5.7.2 const修饰指针5.8 对容易混淆概念的总结思考与练习第6章 结构体与链表6.1 抽象数据类型6.2 结构体的定义及应用6.2.1 定义结构体类型6.2.2 定义结构体类型的变量6.2.3 初始化结构体类型的变量6.2.4 结构体类型变量及其成员的引用6.2.5 结构体数组与指针6.3 用typedef定义类型6.4 单向链表6.4.1 链表的概念6.4.2 带头结点的单向链表常用算法思考与练习第7章 文件操作7.1 文件的基本概念7.1.1 文件命名的原则7.1.2 使用文件的基本过程7.1.3 文件流类型7.2 打开文件和关闭文件7.2.1 打开文件7.2.2 文件的打开模式7.2.3 定义流对象时打开文件7.2.4 测试文件打开是否成功7.2.5 关闭文件7.3 采用流操作符读写文件7.3.1 采用“>”从文件读数据7.3.4 检测文件结束7.4 流对象作参数7.5 出错检测7.6 采用函数成员读/写文件7.6.1 采用“>>”读文件的缺陷7.6.2 采用函数getline读文件7.6.3 采用函数get读文件7.6.4 采用函数put写文件7.7 多文件操作7.8 二进制文件7.8.1 二进制文件的操作7.8.2 读/写结构体记录7.9 随机访问文件7.9.1 顺序访问文件的缺陷7.9.2 定位函数seekp和seekg7.9.3 返回位置函数tellp和tellg7.10 输入/输出二进制文件综合举例思考与练习第8章 类的基础部分8.1 面向过程的程序设计与面向对象程序设计的区别8.1.1 面向过程的程序设计的缺陷8.1.2 面向对象程序设计的基本思想8.2 类的基本概念8.3 定义函数成员8.4 定义对象8.4.1 访问对象的成员8.4.2 指向对象的指针8.4.3 引入私有成员的原因8.5 类的多文件组织8.6 私有函数成员的作用8.7 内联函数8.8 构造函数和析构函数8.8.1 构造函数8.8.2 析构函数8.8.3 带参构造函数8.8.4 构造函数应用举例——输入有效的对象8.8.5 重载构造函数8.8.6 缺省构造函数的表现形式8.9 对象数组8.10 类的应用举例8.11 抽象数组类型8.11.1 创建抽象数组类型8.11.2 扩充抽象数组类型思考与练习第9章 类的高级部分9.1 静态成员9.1.1 静态数据成员9.1.2 静态函数成员9.2 友元函数9.2.1 外部函数作为类的友元9.2.2 类的成员函数作为另外一个类的友元9.2.3 一个类作为另外一个类的友元9.3 对象赋值问题9.4 拷贝构造函数9.4.1 缺省的拷贝构造函数9.4.2 调用拷贝构造函数的情况9.4.3 拷贝构造函数中的常参数9.5 运算符重载9.5.1 重载赋值运算符9.5.2 this指针9.5.3 重载双目算术运算符9.5.4 重载单目算术运算符9.5.5 重载关系运算符9.5.6 重载流操作符“>”9.5.7 重载类型转换运算符9.5.8 重载操作符9.5.9 重载运算符时要注意的问题9.5.10 运算符重载综合举例——自定义string类9.6 对象组合思考与练习第10章 继承、多态和虚函数10.1 继承10.2 保护成员和类的访问10.3 构造函数和析构函数10.3.1 缺省构造函数和析构函数的调用10.3.2 向基类的构造函数传参数10.3.3 初始化列表的作用10.4 覆盖基类的函数成员10.5 虚函数10.6 纯虚函数和抽象类10.6.1 纯虚函数10.6.2 抽象类10.6.3 指向基类的指针10.7 多重继承10.8 多继承10.9 类模板10.9.1 定义类模板的方法10.9.2 定义类模板的对象10.9.3 类模板与继承思考与练习第11章 异常处理11.1 异常11.1.1 抛出异常11.1.2 处理异常11.2 基于对象的异常处理11.3 捕捉多种类型的异常11.4 通过异常对象获取异常信息11.5 再次抛出异常思考与练习课程设计参考文献
章节摘录
第1章 C++程序设计基础 C++是在C的基础上扩充而成的,以其独特的机制广泛地应用在计算机领域。本章主要讲述C++的基本知识,先主要介绍词法单位、数据类型、运算符、变量和常量、表达式和语句等基础知识,然后介绍简单的输入与输出方法。 1.1 为什么要学习C++程序设计 随着计算机软硬件技术的发展,计算机应用规模不断提高,在软件开发语言和工具方面不断地推陈出新,新语言、新工具层出不穷。目前,国内许多高校,无论是计算机专业还是非计算机专业,都开设了C++语言课程,并且将它作为一门专业必修课程。 C++是C的扩充版本。C++对C的扩充是由Bjarne Stroustrup于1980年在美国新泽西州玛瑞惠尔的贝尔实验室提出来的,起初,他把这种语言称为“带类的C”,到1983年才改名为C++。 在计算机刚发明时,人们采用打孔机直接进行机器指令程序设计,当程序长度有几百条指令时,采用这种方法就困难了。后来人们设计了用符号表示机器指令的汇编语言,从而能够处理更大更复杂的程序。到了20世纪60年代出现了结构化程序设计方法(目前的C就采用这种方法),这使得人们能够容易编写较为复杂的程序。但是,一旦程序设计达到一定的程度,即使结构化程序设计方法也变得无法控制,其复杂性超出了人的管理限度。例如,一旦C程序代码达到T25 000~100 000行,系统就变得十分复杂,程序员很难控制,而C++的目的就是为了解决这个问题,其本质就是让程序员理解和管理更大、更复杂的程序。因此,采用支持面向对象的C++是时代发展的需要。 ……
编辑推荐
《C++程序设计教程》以“程序设计”为主线,从材料取舍、内容表达方式、实例选取到习题和课程设计配置都以读者掌握“程序设计”的基本概念、方法和技巧为重点,并融入了作者多年的C++教学经验和软件工程实践经验。 《C++程序设计教程》特色: 内容充实,取材适中。涵盖了“C++程序设计”必要的基础知识,系统地介绍了C++程序设计的基本概念、方法和技术。而且,由于C++兼备面向过程和面向对象的“程序设计”特征,涉及很多的概念和语言机制,作者选取了其中最实用的部分。 以教授“程序设计”的基本概念、方法和技巧为主线。全书的文字表述中除了引入基本概念外,主要介绍如何编写优质程序;还以“警告”、“注意”、“思考”和“知识点”等醒目的形式辟专栏讲授编程方法、技巧和经验。 在内容安排上,尽量提前讲解文件操作一,以便尽早学习这部分既实用又比较难掌握的内容,又为学生进行课程设计和实验做了辅垫;在作业安排上,从易到难,环环相扣;强调课程设计。 力求语言通俗易懂,将复杂的概念采用浇显的语言描述,做到易学、易用、有趣,从而便于读者理解和掌握C++编程。 包含大量的程序示例,并给出了运行结果;强调程序的可读性,书中的程序全部采用统一的程序设计风格。
图书封面
评论、评分、阅读与下载