C++程序设计教程

出版时间:2010-8  出版社:华中科技大学出版社  作者:瞿绍军,刘宏  页数:265  
Tag标签:无  

前言

  C++语言是目前最流行的面向对象的程序设计语言之一。它既支持传统的面向过程的程序设计方法,也支持面向对象的程序设计方法。它是Linux和Unix下编程的最主要的语言之一,也是嵌入式开发最常用的编程语言之一。C++全面兼容C,熟悉C的程序员仅需学习C++语言的面向对象特征,就可很快地用C++编写程序。  本书是一本通过编程实践引导学生掌握C++程序开发的教材。我们组织了多位长期从事程序设计、数据结构、面向对象程序设计和计算机算法设计课程教学的老师参与本书编写,其中部分老师还是本校的ACM国际大学生程序设计竞赛集训队的教练和指导老师,他们都有着丰富的教学和编程经验。本书在编写过程中力求将复杂的概念用简洁、通俗的语言来描述,做到深入浅出、循序渐进,从而使学生能体会到学习编程的乐趣。  本书将ACM国际大学生程序设计竞赛引入课程学习之中,使学生从编程入门开始就养成良好的编程习惯和编程思维,强化学生对实际问题分析能力和解决问题能力的培养,激发学生对编程的兴趣,达到以教学促竞赛,以竞赛强化教学的目的。  ACM国际大学生程序设计竞赛是由国际计算机界具有悠久历史的权威性组织ACM学会(Association for Computing Machinery)主办的,是目前世界上公认的规模最大、水平最高、参与人数最多的大学生程序设计竞赛之一,其宗旨是使大学生能通过计算机充分展示自己分析问题和解决问题的能力。现在各个高校都非常重视计算机程序设计竞赛。  与本书配套的教材《C++程序设计教程习题答案和实验指导》提供了本课程的实验内容、习题参考答案和模拟试卷。所有习题和程序均按照ACM国际大学生程序设计竞赛要求进行设计,编者进行了严格的测试,验证了程序的正确性。  参与本书编写的人员有瞿绍军、刘宏、邱建雄、谢中科、何迎生、张楚才、戴经国、唐赞玉、张引琼、张历卓、彭华。  本书吸收了国内外近几年出版的同类教材的优点,内容丰富,特别适合用做计算机专业和相关专业的教材,作为ACM国际大学生程序设计竞赛入门教材,也可作为各类考试培训和C++自学教材。

内容概要

本书紧密结合目前高等学校计算机教学的发展趋势,将ACM国际大学生程序设计竞赛的相关内容引入教材,对学生养成良好的编程习惯和编程思维,提高分析和解决问题的能力大有帮助-这是本书的创新之处。    全书共分12章,各章节内容由浅入深、相互衔接、前后呼应、循序渐进。第1~6章介绍了C+十程序设计的基础、函数与程序结构、数组与字符串、指针、结构体与共用体、ACM国际大学生程序设计竞赛相关知识和竞赛中的输入/输出等;第7~11章介绍了C++面向对象的特性,包括类与对象及封装性、类的深入、运算符重载和模板、继承性、多态性;第12章介绍了C++输入/输出流和ACM国际大学生程序设计竞赛中的文件输入/输出;附录A列出了ASCⅡ码对照表;附录B列出了C/C++与标准C++头文件对照表,方便学习和参考;附录C介绍了Linux、Unix下编译和调试C++程序的方法。    与本书配套的教材《C++程序设计教程习题答案和实验指导》提供了本课程的实验内容、习题参考答案和模拟试卷。所有习题和程序均按照ACM国际大学生程序设计竞赛要求进行设计,并进行了严格的测试,验证了程序的正确性。本课程设有专门的课程学习网站,具有丰富的学习参考资料,所有的习题均可在学习网站进行测试。    本书特别适合用做计算机专业和相关专业的教材,作为ACM国际大学生程序设计竞赛入门教材,也可作为各类考试培训和C++程序设计自学教材。

书籍目录

第1章 C++语言概述  1.1 C++语言简介    1.1.1 C++语言的发展    1.1.2 C++语言的特点  1.2 C++程序基本结构  1.3 C++程序的开发环境    1.3.1 Turbo C++    1.3.2 Visual C++    1.3.3 Dev-C++  1.4 ACM国际大学生程序设计竞赛    1.4.1 ACM国际大学生程序设计竞赛简介    1.4.2 竞赛规则    1.4.3 自动评测系统    l.4.4 竞赛学习资源  习题1第2章 C++语言编程基础  2.1 C++语言词法    2.1.1 注释    2.1.2 关键字    2.1.3 标识符    2.1.4 常量    2.1.5 变量    2.1.6 运算符    2.1.7 分隔符  2.2 基本数据类型    2.2.1 整型    2.2.2 浮点型    2.2.3 字符型    2.2.4 布尔型    2.2.5 类型转换  2.3 运算符与表达式    2.3.1 算术运算符及其表达式    2.3.2 赋值运算符及其表达式    2.3.3 关系运算符及其表达式    2.3.4 逻辑运算符及其表达式    2.3.5 位运算符    2.3.6 条件运算符    2.3.7 运算符的优先级  2.4 流程控制语句    2.4.1 C++语句    2.4.2 if语句与条件选择控制    2.4.3 条件表达式    2.4.4 switch语句与多项选择    2.4.5 while语句    2.4.6 do while语句    2.4.7 for语句    2.4.8 break语句和continue语句    2.4.9 循环嵌套    2.4.10 return语句    2.4.11 程序设计综合举例  2.5 ACM-ICPC中的输入/输出  习题2第3章 函数与程序结构  3.1 函数与程序结构概述  3.2 函数的定义与声明    3.2.1 函数的定义    3.2.2 函数声明与函数原型  3.3 函数参数和函数调用    3.3.1 函数形式参数和实际参数    3.3.2 函数的返回值    3.3.3 函数调用  3.4 函数的嵌套与递归调用    3.4.1 函数的嵌套调用    3.4.2 递归调用  3.5 变量作用域和存储类型    3.5.1 局部变量与全局变量    3.5.2 静态存储变量和动态存储变量  3.6 内联函数  3.7 重载函数与默认参数函数    3.7.1 重载函数    3.7.2 默认参数函数  3.8 编译预处理    3.8.1 文件包含    3.8.2 宏定义    3.8.3 条件编译  习题3第4章 数组与字符串  4.1 数组的概念  4.2 数组的定义    4.2.1 一维数组    4.2.2 二维数组  4.3 数组作为函数的参数    4.3.1 用数组元素做函数实参    4.3.2 用数组名做函数参数    4.3.3 用多维数组名做函数参数  4.4 数组应用举例  4.5 字符串    4.5.1 字符串概念    4.5.2 字符串函数    4.5.3 字符串应用举例  习题4第5章 指针  5.1 指针的概念  5.2 指针变量    5.2.1 指针定义    5.2.2 指针运算符    5.2.3 引用变量    5.2.4 多级指针与指针数组    5.2.5 指针与常量限定符  5.3 指针与数组    5.3.1 指针与一维数组    5.3.2 指针与二维数组    5.3.3 指针与字符数组    5.3.4 指针与函数  5.4 指针运算  5.5 动态存储分配    5.5.1 new操作符    5.5.2 delete操作符  习题5第6章 结构体与共用体  6.1 结构体    6.1.1 结构体的声明    6.1.2 结构体变量的引用及初始化赋值  6.2 嵌套结构体  6.3 结构体数组    6.3.1 结构体数组的定义和初始化    6.3.2 结构体数组成员的引用  6.4 结构体指针    6.4.1 指向结构体变量的指针    6.4.2 指向结构体数组的指针    6.4.3 用结构体变量和指向结构体变量的指针作为函数参数  6.5 链表的基本操作    6.5.1 链表基本知识    6.5.2 内存动态管理函数    6.5.3 建立链表    6.5.4 输出链表    6.5.5 对链表的删除操作    6.5.6 对链表的插入操作    6.5.7 对链表的综合操作  6.6 共用体    6.6.1 共用体的概念    6.6.2 共用型变量的定义    6.6.3 共用型变量的引用    6.6.4 共用型数据的特点    6.6.5 共用型变量的应用  6.7 枚举类型  6.8 用typedef定义  习题6第7章类与对象及封装性  7.1 类的抽象  7.2 类的定义与对象的生成  7.3 构造函数和析构函数  7.4 构造函数的重载  7.5 对象指针  习题7第8章类的深入  8.1 友元函数  8.2 对象传入函数的讨论  8.3 函数返回对象的讨论  8.4 拷贝构造函数  8.5 this关键字  习题8第9章运算符重载和模板  9.1 使用成员函数的运算符重载  9.2 友元运算符函数  9.3 重载关系运算符  9.4 进一步考查赋值运算符  9.5 重载new和delete  9.6 重载[]  9.7 重载其他运算符  9.8 模板    9.8.1 模板的概念    9.8.2 函数模板    9.8.3 类模板  习题9第10章继承性  10.1 对继承性的理解  10.2 类的继承过程  10.3 基类访问控制  10.4 简单的多重继承  10.5 构造函数/析构函数的调用顺序  10.6 给基类构造函数传递参数  10.7 访问的许可  10.8 虚基类  习题10第11章多态性  11.1 指向派生类型的指针  11.2 虚函数  11.3 继承虚函数  11.4 多态性的优点  11.5 纯虚函数和抽象类  习题11第12章输入/输出流  12.1 C++的输入/输出  12.2 标准输入/输出流  12.3 文件操作与文件流  12.4 串流类  12.5 格式控制    12.5.1 格式控制符    12.5.2 流对象的成员函数  12.6 ACM-ICPC中的文件输入/输出  习题12附录A ASCⅡ码对照表附录B C/C++与标准C++头文件对照表附录C Linux、Linix下编译C++程序参考文献

章节摘录

  [本章主要内容]本章主要介绍C++语言的发展、特点,面向对象程序设计的基本概念,C++程序的基本结构,几种常用的C++开发环境,以及ACM国际大学生程序设计竞赛的基本情况。  1.1 C++语言简介  1.1.1 C++语言的发展  C语言是贝尔实验室于20世纪70年代初研制出来的,后来又被多次改进,并出现了多种版本。C语言既具有高级语言的特点,即表达力丰富,可移植性好,又具有低级语言的一些特点,即能够很方便地实现汇编级的操作,目标程序效率较高。刚开始形成的C语言受到那些想建立更快、更有效的代码的程序员欢迎。有一位名为Bjarne Stroustrup的人却不满足于仅仅是快速生成代码,他想创建面向对象的C语言。他开始对C语言的内核进行必要的修改,使其能满足面向对象模型的要求,C++从此产生。  C++语言自诞生以来,经过开发和扩充,已成一种完全成熟的编程语言。现在C++已被ANSI、BSI、DIN、一些国家标准机构和ISO定为标准。  C++标准演变了许多年。C++模板则是近几年来对此语言的一种扩展。模板是根据类型参数来产生函数和类的机制的,有时也称模板为“参数化的类型”。使用模板,可以设计一个对许多类型的数据进行操作的类,而不需要为每个类型的数据建立一个单独的类。标准模板库(standardtemplate1mrary,STL)和微软的活动模板库(activetem platelibrary,ATL)都是基于这个C++语言扩展的。  C++标准可分为两部分:C++语言本身和C++标准库。C++标准库提供了标准的输入/输出、字符串、容器(如矢量、列表和映射等)、非数值运算(如排序、搜索和合并等)和对数值计算的支持。应该说,C/C++包含了相对少的关键字,很多最有用的函数都来源于库,用C++标准库实现容器和部分算法就是标准模板库。1.1.2 C++语言的特点  C++语言之所以被人们广泛认可,是因为它具有许多先进的技术特点。  1.优越的性能  性能包含两方面:算法速度和机器代码效率。通俗地讲,算法是指解决问题的一种方法或一个过程。严格地定义,算法是由若干条指令组成的有穷序列。例如,一个算法定义为获取一个字符串,计算字符串中的字符个数,并作为结果返回的过程。所以在编程之前必须设计算法,编写一个快速程序的第一个步骤是设计良好的算法,以最少的操作步骤得出问题的答案。第二个步骤是选择语言,这也影响程序的速度。

图书封面

图书标签Tags

评论、评分、阅读与下载


    C++程序设计教程 PDF格式下载


用户评论 (总计2条)

 
 

  •   本书紧密结合目前高校计算机教学和发展趋势,将ACM国际大学生程序设计竞赛引进教材,对学生养成良好的编程习惯和编程思维,提高分析和解决问题能力大有帮助,这是本教材的创新之处。

    本书的配套教材《C++程序设计教程习题答案和实验指导》提供了本课程的实验内容、参考答案和模拟试卷。所有习题和程序均按照ACM国际大学生程序设计竞赛要求进行设计,并进行了严格的测试,验证了程序的正确性。本课程设有专门的课程学习网站,具有丰富的学习参考资料,所有的习题均可在学习网站(****://acm.hunnu.edu***/online/c++/Index.htm)进行测试。
  •   给别人买的,还不错。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7