图书前言

第2版前言

软件技术发展的一个主要表现就是程序设计方法的不断改进,从早期的结构化程序设计到现在的面向对象程序设计,程序设计方法一直处于发展之中。面向对象程序设计语言自身也在不断发展与变革,例如,从最早的Smalltalk到现在广泛使用的C++、Java和C#。作为C语言的继承者,C++目前仍然是应用最广泛的面向对象程序设计语言,而Visual C++则是使用人数最多的C++编程环境。

本书是作者在从事多年软件开发和讲授C++语言的基础上撰写而成的,吸收了面向对象程序设计的最新发展成果,自第1版出版以来已被很多高等院校选为教材,且取得了良好的教学效果。本书先后经过多次重印,得到了很多教师、大学生和读者的广泛认可,并被评为“北京市高等教育精品教材”。从服务教学、服务读者的角度考虑,本书在这次再版中,广泛听取了国内一线教师、同行和读者的意见和建议,保留了第1版的基本风格、基本框架和基本内容,并对面向对象技术的相关内容进行加强,新增和调整了少量例题和习题。

   本书共12章,在内容安排上按照循序渐进的原则,依次介绍C++语言的基本概念、原理、程序设计要点及Visual C++的典型应用程序设计方法。在各章节内容的安排上,本书充分考虑了C++语言的逻辑进程、程序设计规律、读者的学习习惯和接受能力,使整个学习过程按照从简单到复杂的顺序进行。C++语言是为处理大规模程序的开发而推出的程序设计语言,是典型且得到广泛应用的面向对象的程序设计语言。如何学好C++语言是广大读者非常关心的问题,也是作者一直在思考的问题。作者认为,要学好C++语言,应注意以下两点:

一是深刻地理解C++面向对象的基本思想和概念(如类的封装性、继承性和多态性等),如不能真正地掌握和理解C++的基本思想和概念,程序设计将难以深入。

二是要在应用中学习,要结合具体应用进行学习。学习C++语言的目的是为了应用和解决实际问题,在掌握C++语言的基本理论之后,还需加强实践和练习,因此,建议读者一边学习,一边上机实践,只有这样,才能加快学习进度、提高学习效率。

   为了实现这个目标,使读者能够尽快地应用C++解决实际问题,本书每一章均给出了大量具有代表性、应用性的例题和习题,所有例题和习题均在Visual C++环境下测试完成。这些例题对于读者掌握C++的语法、深刻理解其特点和程序设计的要领是非常有益的,希望读者通过完成这些习题,进一步熟悉和加深对面向对象程序设计要点的理解,并能举一反三、活学活用。

   无论是国内还是国外,程序设计都是信息类专业大学生的一项基本技能,随着社会经济的发展和信息技术的深入应用,社会对软件人才需求的质量要求越来越高。君欲善其事,必先利其器,要想成为一名优秀的软件开发人员,需要在程序设计语言、算法、程序设计环境等方面训练有素。现行高校开设的“C++面向对象程序设计”符合这3个方面的需要,本书正是为满足这一要求而编写的。

在本书再版过程中,清华大学出版社给予了很大的帮助,在本书写作及再版过程中,中国高等教育学会教育信息化分会理事长、清华大学蒋东兴主任给予了大力支持和帮助,在此一并表示衷心的感谢。

由于计算机科学与技术一直处于快速发展之中,加之作者水平有限,书中缺点和疏漏之处在所难免,恳请读者不吝赐教。

作者

2013年9月

第1版前言

随着信息技术和计算机科学的发展,计算机技术已渗透到各学科的研究和应用之中,C++语言不再像诞生的初期,只被少数专业开发人员使用,而已经被各专业的工程技术人员广泛应用于国民经济的各行各业之中。

面向对象程序设计方法所强调的基本原则之一是直接面对客观世界中存在的问题进行软件开发,使软件开发方法更符合人类的思维习惯。由于面向对象编程语言所具有的许多优点,目前它已经成为开发大型软件的主流方法,而C++是面向对象的程序设计语言中应用最广泛的一种,成为了国内外高等院校程序设计的一门专业必修课程,同时也是编程人员最广泛使用的工具。学好C++,可以很容易地触类旁通Java、C#等其他语言。Visual C++是具有强大功能的可视化开发工具,它将面向对象、网络技术、事件驱动、数据库及应用程序向导完美地结合在一起,使用户可以快捷、可视化地开发应用程序,它已经成为基于Windows应用程序开发的主流平台。本书较好地实现了将C++面向对象编程语言与可视化工具的结合,力求使学生具有良好的程序设计素养和能力。

许多学生虽学过C++,却疏于编程,作者在教学中深刻地认识到了这一点。要学好程序设计,学生不仅需要掌握编程语言,也需要掌握基本的数据结构和程序设计方法,才能更好地分析问题和解决问题。面向对象程序设计方法是软件分析、设计和实现的一种新方法,本书以面向对象的程序设计方法贯穿始终,不仅详细介绍了C++语言本身,而且剖析了常用的数据结构和算法,着重从程序设计方法的角度介绍语法及应用,力求使读者既能熟练掌握C++程序设计语言,也能具有运用面向对象方法解决实际问题的能力。

本书共12章,从内容上可以分为三大部分。第一部分(第1章~第3章)是面向对象程序设计的基本概念和基本方法,介绍从C语言到C++语言的过渡及C++语法。第二部分(第4章~第10章)是C++语言实现面向对象程序设计的基本方法,通过对概念和原理的准确描述,并结合典型的例题,由浅入深地介绍C++的类与对象、数组与指针、继承与派生、多态性、模板、I/O流库、异常处理机制等概念,通过实例掌握面向对象程序设计的原理、思想和方法内核。第三部分(第11章~第12章)是Visual C++6.0平台下Windows应用程序的开发,在介绍Windows程序设计的基本理论与概念的基础上,详细介绍了包括输入输出处理(文本输入输出及绘图)、菜单、工具栏、状态栏、对话框、控件及数据库应用程序的设计方法,通过典型的实例和详细的步骤,掌握基于MFC的各种典型Windows应用程序设计的方法,为Windows程序的深入应用奠定坚实的基础。

本书作者一直从事和面向对象程序设计及相关的教学与科研工作,主讲过程序设计方面的多门课程,深刻了解学生在学习中的难点和对教材内容的需求。本书凝集了作者多年教学和科研实践经验,全书以面向对象的思维贯穿始终,选材新颖,注重内容的科学性、适应性和针对性,符合当今计算机科学的发展趋势。本书设计了许多与实际有关的例题和习题,并且它们彼此相关,环环相扣。全部程序都在Visual C++6.0调试通过,并给出了程序运行结果。全部程序风格统一,对关键性语句进行了注释,对类名、函数名等标识符的命名做到“见名知义”,且绝大多数程序给出了设计要点分析。

本书内容深入浅出,将复杂的概念用简洁浅显的语言来讲述,使读者可轻松入门,循序渐进地提高,在有限的学时中,全面掌握基本理论和基础知识。在此基础上,再进一步通过实验熟练掌握开发环境的使用以及程序设计的技巧和方法。面向对象程序设计课程是一门既要求理论,又强调实践的课程。希望读者认真实践教材的每一道例题与习题。

为方便读者使用本书,《面向对象程序设计与Visual C++6.0教程题解与实验指导》将与本书配套出版,与此同时,还提供与教材配套的电子教案及教材的全部源程序。

本书可以作为高等院校计算机、电子技术、通信、信息工程、自动化、电气及相关专业的面向对象程序设计课程教材,也可作为IT业工程技术人员或其他相关人员的参考书。

使用本教材约需80学时,其中实验30学时左右,各学校可根据实际情况和内容安排学时。在本书的写作过程中得到了清华大学计算机与信息管理中心蒋东兴主任的大力支持和帮助,此外,周玉英、陈茜、丁灿飞、文静、陈鸣红、吴玑中、周海英、宋义召、樊星、谢娇颖、杨成、王蜀毅、林欣欣、王娟、许飞、倪国英等同志在文稿录入和校对方面承担了许多工作,在此表示衷心的感谢。

由于作者水平有限,缺点和疏漏之处在所难免,恳请读者批评指正。欢迎读者对本书提出任何意见和建议。

作者

2005年8月