首页 > 图书中心 >图书详情

C++程序设计(第4版)

谭浩强教授经典C++程序设计教材,全国高校出版社****书一等奖。提供课件。

作者:谭浩强
定价:59.90
印次:4-9
ISBN:9787302587613
出版日期:2021.10.01
印刷日期:2023.07.25

C++是近年来国内外广泛使用的现代计算机语言。它既支持基于过程的程序设计,也支持面向对象的程序设计。国内许多高校开设了“C++程序设计”课程。但是,由于C++涉及概念很多,语法比较复杂,内容十分广泛,使不少人感到学习难度较大,难以入门。 作者深入调查了大学的程序设计课程的现状和发展趋势,参阅了国内外数十种有关C++的教材,认真分析了读者在学习中的困难和认识规律,设计了读者易于学习的教材体系,出版了《C++程序设计》一书。广大师生用后反映该书定位准确,概念清晰,深入浅出,取舍合理,以通俗易懂的语言对C++的许多难懂的概念做了透彻而通俗的说明,大大降低了初学者学习的困难,是初学者学习C++的优秀教材。 根据教学实践的需要,作者对《C++程序设计》进行了多次修订,现在出版《C++程序设计(第4版)》。本书从零起点介绍程序设计和C++,包括基于过程的程序设计、基于对象的程序设计和面向对象的程序设计。学习本书不需要C语言的基础,书中基于过程的程序设计部分涵盖了C语言程序设计的基本内容,因此本书实际上是一本C/C++教材,学习本书后既可以用C语言进行程序设计,也可以用C++进行程序设计。 为了便于教学,本书有《C++程序设计 (第4版)学习辅导》和《C++程序设计实践指导》两本配套教材,旨在帮助学生通过实践掌握C++的编程方法。 本书内容全面,例题丰富,循序渐进,易于学习,即使没有教师讲授,读者也能看懂书中的大部分内容。本书可供各专业学生使用,也可作为计算机培训班的教材以及自学教材。

more >

前言 20世纪90年代,我曾经写过一本《C程序设计》(现已更新到第5版),由清华大学出版社出版。该书出版后,社会各界反响强烈,许多人说,C语言原来是比较难学的,自从《C程序设计》出版后,C语言变得不难学了。该书已累计发行逾1600万册,创造了科技书籍的发行纪录,成为广大初学者学习C语言的主要用书。这使我深受鼓舞和鞭策,感受到广大读者的殷切期望,也更加意识到了计算机教育工作者身上的重任。 近年来,支持面向对象程序设计的C++语言迅速地在国内推广,不少高校开设了C++课程,由于C++涉及概念很多,语法比较复杂,内容十分广泛,不少人(尤其是非计算机专业的初学者)感到学习难度较大,难以入门。许多热情的读者希望我能在《C程序设计》的基础上,再写一本易于入门的《C++程序设计》教材,以帮助更多的初学者更顺利地迈进C++的大门。 在动手写《C++程序设计》这本书之前,我认真考虑过怎样设计这本书的定位和内容。学习C++的读者有两类人: 一类人是先学习C语言,然后再学习C++;另一类人是直接学习C++。前者人数比较多,有了C语言的基础,再学C++相对容易些,但要先后学习两门课程,可能面临学时不够的问题;后者只需要学习一门课程,但要直接学习面向对象程序设计,入门的难度比较大。作者考虑:C++是由C语言发展而成的,它包含了C语言的主要内容。实际上C++既支持面向过程的程序设计,也支持面向对象的程序设计。对于程序设计的初学者来说,学习面向过程的程序设计是有好处的。因此,作者决定编写一本新的C++教材,不需要C语言的基础,直接学习C++。但和其他C++教材不同,本书先介绍C++面向过程程序设计,然后再介绍C++面向对象程序设计。学习了本书,既可以用C语言进行编程,也可以用C++进行编程。因此实际上本书是一本C/C++的教材。 基于以上考虑和设计,我于2004年编写了《C++程序设计》一书,由清华大学出版社正式出版。该书出版后,受到各高校的欢迎,许多师生认为该书定位准确,概念清晰,深入浅出,取舍合理,以通俗易懂的语言对C++许多难懂的概念做了透彻而通俗的说明,大大降低了初学者学习的困难程度,是一本初学者学习C++的好教材。根据教学的实践,我于2011年和2015年对该书进行了两次修订,现在再次修订出版《C++程序设计(第4版)》,内容更加精练,讲解更加清晰,学习更加容易。 要写好和教好C++程序设计,绝不是一个纯技术问题,需要综合考虑多方面因素,作出合理的决策和安排。我调查了我国大学的程序设计课程的现状和发展趋势,了解了国内外C++的教学和使用情况,认真分析了学习者在学习过程中遇到的困难,研究了初学者的认识规律,并且参阅了国内外数十种有关C++的教材,形成了以下几点看法,并体现在本教材中。 (1) 教材必须准确定位,要求恰当,合理取舍。写书首先要弄清楚本书是为什么人写的,他们学习C++的目的和要求是什么,应当学到什么程度。 目前学习C++的读者包括以下三部分人: ① 当前需要用C++编写面向对象程序的软件开发人员。 ② 将来有可能成为软件开发人员,需要熟练掌握面向对象程序设计的知识和C++语言工具,打好进一步发展基础的人员,其中包括部分计算机专业的学生。 ③ 希望初步学习面向对象程序设计的知识、了解用C++语言进行面向对象程序设计方法的人员。这部分人中的大多数将来并不是专业的软件开发人员,目前并不要求熟练掌握C++语言进行程序设计。 应当说明: 本书的对象不是C++软件开发专业人员,而是大学各专业(尤其是非计算机专业)的大学生,他们目前尚无程序设计的实际经验,将来也不一定从事C++程序开发工作。他们对C++程序设计的学习是入门性、基础性的,主要是初步了解软件开发的方法,了解C++语言的特点,扩大知识面,以利于将来的工作。 众所周知,研发C++的初衷是为了解决大型软件开发中遇到的问题,提高软件的开发效率。只有参加过研制大型软件的人才能真正体会到C++的优越性,并善于利用C++的独特机制进行软件开发。 对多数大学生(尤其是非计算机专业的学生)在校期间初学C++程序设计的要求要恰当。主要是初步学习面向对象程序设计方法,能够初步利用C++编写简单的程序,为以后进一步学习和应用打下初步的基础。不可能设想,通过几十个小时的学习,能使一个没有程序设计基础的人变成一个熟练的C++开发人员。应当有一个实事求是的分析和估计。因此,本书着力于使读者对面向对象程序设计的概念有清晰的了解,对C++语言的全貌和使用方法有基本的认识,用容易理解的方法讲清楚有关的基本概念和基本方法,而不去罗列C++语法中各种烦琐的细节,否则将会使篇幅过大,而且会使读者感到枯燥无味。 如果以后从事C++程序开发工作,应当在此基础上再深入学习C++程序设计提高课程。 (2) 需要选好学习C++的切入点。对于怎样介绍C++,国内外的教材有多种模式。有的不介绍基于过程的程序设计,一开始就直接介绍类和对象,有的先介绍基于过程的程序设计,然后介绍面向对象的程序设计。我认为: 不应当把基于过程和面向对象的程序设计对立起来,任何程序设计都需要用到过程化的知识。作为一个程序设计人员,要掌握过程化的程序设计,也要掌握面向对象的程序设计。以前,人们通过C语言学习过程化程序设计,再通过C++学习面向对象的程序设计。其实,C++并不是纯粹的面向对象的语言,它是一种混合语言。学习C++既可以编写过程化的程序,也可以编写面向对象的程序。C语言相当于C++的过程化部分。 综合以上看法,我确定了本书的结构。全书分为4部分: 第1部分介绍程序设计的基本知识;第2部分介绍C++基于过程的程序设计;第3部分介绍C++基于对象的程序设计;第4部分介绍C++面向对象的程序设计。 许多教师的实践表明,以基于过程的程序设计作为切入点,从编写简单的程序开始,循序渐进,由基于过程到面向对象,逐步深入,比较符合读者的认识规律,每一步的台阶都比较小,学习难度不大,读者容易理解。 为了适应不同读者的需要,我编写了两种教材:一是《C++程序设计》,即本书,学习本书不需要C语言基础;二是对于已经学过C语言的读者,不必再学面向过程的部分,因此,将本书面向对象的部分自成系统,单独成书,出版《C++面向对象程序设计》一书。以上两书均由清华大学出版社出版,供读者选用。 (3) 设计合适的教材体系。C++程序设计涉及面向对象程序设计的理论、C++语言的语法以及算法3方面的内容,其中每一方面都包含十分丰富的内容,都可以分别单独成书。显然在一本教材中深入、详细地介绍以上3方面的知识是不可能的,必须把它们有机地结合起来,综合应用。不同的书对此采取不同的写法,侧重点有所不同,适合于不同的读者。需要在教学实践中检验,不断完善。 要进行C++程序设计,当然需要了解面向对象程序设计的有关概念,但是本课程毕竟不是一门面向对象程序设计的理论课程,在本书中不是抽象地介绍面向对象程序设计的理论,而是结合C++的使用自然而然地引出面向对象程序设计的有关概念,通过C++的编程过程理解面向对象程序设计方法。在介绍程序设计的过程中,介绍有关算法,引导读者思考怎样构造一个算法。 要用C++编程序,最基本的要求是正确掌握和运用C++,由于C++语法复杂,内容又多,如果对它缺乏系统了解,将难以真正应用,编出来的程序将会错误百出,编译出错,事倍功半。本书的做法是比较全面地介绍C++的主要特点和功能,引导读者由简而繁地学会编写C++程序。有了C++编程的初步基础后,再进一步提高。这样的方法可能符合大多数学习者的情况。 决不能使读者陷于语法细节的汪洋大海之中。对于C++的众多功能和语法细节,在初学阶段没有必要全部细讲,必须有所选择,合理取舍,不应追求深而全。建议读者对于语言的细节不必深究,更不必死记,知道怎么用即可。有些细节,可以在以后编写程序遇到问题时回过头再查阅本书的介绍,这样可以有效地降低当前学习的难度。 (4) 重要的是要建立清晰的概念。由于人们过去习惯于过程化的编程方法,对面向对象的原理和实现机制理解不深,本书把面向对象程序设计划分为两个有机联系的阶段——基于对象的程序设计和面向对象的程序设计。从类和对象开始逐步深入地引出面向对象程序设计的各个概念以及用C++实现的方法。凡引入一个新的概念,都做了通俗而透彻的讲解,把来龙去脉交代清楚,讲清楚“这是什么”“为什么需要它” “怎样使用它”,并举例说明。使读者建立起清晰的概念,知其然也知其所以然,而不是盲目地照葫芦画瓢。 本书是入门性、基础性的教材,任务是帮助读者顺利入门,打好基础。以后根据需要再深入学习和实践,是不困难的。 (5) 努力化解难点,把复杂的问题简单化。为了使学习C++更容易,我在写作过程中花了很大的精力去考虑怎样使读者易于接受和理解。我一贯认为,教材编著者应当与读者换位思考,要站在读者的立场上思考问题,帮助他们排除学习中的困难,要善于把复杂的问题简单化,而不应把简单的问题复杂化,要善于化解难点,深入浅出。不要难倒读者,更不应吓跑读者。我们的任务是要使“难”变成“不难”,循序渐进地引导初学者进入C++的大门。 在学习过程中不要被一大堆高深莫测的名词术语吓唬住,有些问题看起来很深奥,其实换一个角度解释就很容易理解,甚至用一个通俗的例子就可以把问题说清楚。本书尽量用通俗易懂的方法和语言叙述复杂的概念,力求减少初学者学习C++的困难。 C++的名词术语很多,许多C++的教材的章节标题都是一些陌生的、深奥莫测的专业词汇,往往使人摸不着头脑,不知道要学的是什么,难以引发学习的兴趣和欲望。在这次修订中,作者改变了标题的写法,不是简单地列出一个专业术语,而是着重说明它是解决什么问题的。例如,原来有一节的标题是“带参的构造函数”,标题很技术,但读者不明白它是什么,为什么要学它。这次我把它改为“用带参的构造函数对不同对象进行初始化”,使读者从标题就可以知道带参的构造函数的作用。从前一节到下一节,前后连贯,承上启下,读者就会想看看究竟是怎样处理的。又如有一节的标题原来是“友元”,读者第一次听到这个术语,往往不知所云,这次我把标题改为“可以访问私有数据的‘朋友’——友元”,通俗易懂,具有目的性和启发性,使读者想去了解和学习。 在各章的叙述中,本书不是先给出一个新概念或新术语,再去解释它,而是先提出需要解决的问题,然后讨论用什么方法去处理它,从而引出新的概念和新的方法。使人感到自然而然,呼之欲出,不会感到突然而一头雾水。 传统的教学三部曲是:“提出概念—解释概念—举例说明”,我在多年的计算机教学实践中,采用了新的教学三部曲:“提出问题—分析和解决问题—归纳分析”。在引入每一个程序时,都按照以下步骤展开:提出问题—编写程序—运行结果—程序分析。由浅入深,逐步展开。不是先理论后实际,先抽象后具体,先一般后个别,而是从具体到抽象,从实际到理论,从个别到一般,从零散到系统。这样做,符合初学者的认知规律。 本书便于自学,即使没有老师讲解,读者也能看懂本书的大部分内容。这样,老师教学时就可以不必完全按照教材的内容和顺序详细讲解,而可以有选择地重点讲授,其余内容由学生自学。 (6) 按照教学的特点组织教材。不应当把教材写成手册,教材的任务是用读者容易理解的方法讲清基本的概念和方法,而手册的任务则是给出一个包罗万象的备查资料。读者在学习时应重点掌握基本的概念和方法,以后如果从事软件开发,在遇到具体问题时,进一步学习或查阅手册即可。 本教材所举的程序,是从教学的角度考虑的,是为了帮助读者更好地理解和应用某一方面的教学内容而专门编写的,并不一定是实际应用的程序。一个实际的C++程序需要考虑许多因素,综合各部分知识,有许多注释行,而且一般是多文件的程序,篇幅较长,往往不适合作为教学程序。教学程序对问题做了简化,尽量压缩不必要的语句,减少注释行,篇幅一般不长,力求使读者能读懂程序。在初步掌握C++编程方法后,可以逐步使程序复杂些,长一些,更接近真实程序一些。 考虑到教学的不同要求,我们提供了3个层次的程序实例: (1) 教材各章中的例题。这是最基本的,对此做了比较详细的分析介绍,读者容易理解与掌握。 (2) 教材各章所给出的习题。由于教材的篇幅有限,有些很好的例子无法在教材中列出,则将其作为习题,习题的难度比例题大一些,希望读者在学习教材的基础上自己完成。在本书的配套教材《C++程序设计(第4版)学习辅导》中提供了全部习题的参考解答。教师可以从中选择一些习题作为例题讲授。建议读者除了完成教师指定的习题外,把习题解答中的程序全部看一遍,以更好地理解C++程序。 (3) 为了提供更丰富、更贴近实际的实例,在本书的另一本配套教材《C++程序设计实践指导》中提供了一批C++应用程序。教师可以指定学生阅读其中一些程序实例,也可选择一些在课堂上讲授。使学生扩大眼界,启迪思路,丰富知识,增长能力。 关于如何使用本教材: (1) 学习本教材可以有两个入口: 未学过C语言的读者从第1章学起;已学过C语言的读者可以从第8章学起。由于C++是从C语言发展而来的,它保留了C语言的大部分内容。本书第1~7章介绍的内容主要是C++从C语言继承来的部分,因此,学过C语言的读者可以跳过这几章,而直接学习第8章。但最好在学习第8章之前,简单浏览前7章,以对C++与C的异同有所了解。尤其应看前7章中带星号()的部分,它们是C++对C语言的发展,是C语言中没有的。 无论学过C语言还是未学过C语言的读者都会感到本教材容易入门,易于学习。 (2) 本教材提供两本配套参考书: ①《C++程序设计(第4版)学习辅导》,谭浩强编著,清华大学出版社出版。除了提供教材各章中的全部习题解外,还介绍在3种典型的环境下运行C++程序的方法: Windows环境下的Visual C++ 2010、在线编译器和GCC。GCC是自由软件,可以在Windows环境或非Windows环境(如DOS, UNIX, Linux)下使用。此外,该书还给出上机实践任务,指导学生完成课后上机实践。 ②《C++程序设计实践指导》,陈清华、朱红编著,清华大学出版社出版。书中精心选择了五十多个不同类型、不同难度的C++程序。可以供学生进一步深入学习的参考,以提高编程能力。 本书由谭浩强编著,谭亦峰高级工程师参加了部分编写工作。全国高等院校计算机基础教育研究会以及全国各高校老师几年来对本书的编写始终给予了热情的支持,清华大学出版社对本书的出版十分重视,使本书在短时间内得以出版。对一切曾经鼓励、支持和帮助过我的领导、组织、专家、朋友和读者,在此谨表示真挚的谢意。 本书肯定会有不妥甚至错误之处,诚盼专家和广大读者不吝指正。 2021年8月于清华园

more >
扫描二维码
下载APP了解更多

同系列产品more >

C++面向对象程序设计(第4版)

谭浩强
定 价:59.90元

查看详情
基于Web标准的网页设计与制作(微...

唐四薪、唐琼、李浪
定 价:59.90元

查看详情
C++面向对象程序设计(第4版)学习...

谭浩强
定 价:46元

查看详情
C程序设计教程(第4版)

谭浩强
定 价:49.90元

查看详情
C程序设计教程(第4版)学习辅导

谭浩强
定 价:45元

查看详情
图书分类全部图书
more >
  • 谭浩强,我国著名计算机教育专家,全国高等学校计算机基础教育研究会名誉理事长。著有《C程序设计》等经典教材多部。
  • 本书定位准确,概念清晰,深入浅出,取舍合理,以通俗易懂的语言对C++的许多难懂的概念作了透彻而通俗的说明,大大降低了初学者学习的困难,是初学者学习C++的优秀教材,荣获全国高校出版社****书一等奖。本书可供各专业学生使用,也可作为计算机培训班的教材以及自学教材。
more >
  • 目录

    第1篇基 本 知 识

    第1章C++的初步知识3

    1.1从C到C++3

    1.2最简单的C++程序5

    1.3C++程序的构成和书写形式11

    1.4C++程序的编写和实现13

    1.5关于C++上机实践14

    习题15

    第2章数据的存储、表示形式和基本运算18

    2.1C++的数据类型18

    2.2常量20

    2.2.1什么是常量20

    2.2.2数值常量20

    2.2.3字符常量22

    2.2.4符号常量25

    2.3变量26

    2.3.1什么是变量26

    2.3.2变量名规则26

    2.3.3定义变量27

    2.3.4对变量赋初值28

    2.3.5常变量28

    2.4C++的运算符29

    2.5算术运算符与算术表达式30

    2.5.1基本的算术运算符30

    2.5.2算术表达式和运算符的优先级与结合性30

    2.5.3表达式中各类数值型数据间的混合运算30

    2.5.4自增(++)和自减(--)运算符31

    2.5.5强制类型转换运算符32

    2.6赋值运算符和赋值表达式33

    2.6.1赋值运算符33

    2.6.2赋值过程中的类型转换33

    2.6.3复合赋值运算符35

    2.6.4赋值表达式35

    2.7逗号运算符和逗号表达式36

    习题37

    第2篇基于过程的程序设计

    第3章C++程序设计初步41

    3.1基于过程的程序设计和算法41

    3.1.1算法的概念41

    3.1.2算法的表示42

    3.2C++的程序结构和C++语句43

    3.3赋值操作46

    3.4C++的输入与输出46

    3.4.1输入流与输出流的基本操作47

    3.4....

精彩书评more >

标题

评论

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘