1. 关于本书 随着计算机科学技术的迅速发展,程序设计技术和程序设计语言也得到不断发展。目前,面向对象程序设计是软件开发领域的主流技术。这种技术从根本上改变了人们以往设计软件的思维方式,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,极大地减少了软件开发的繁杂性,提高了软件开发的效率。C++(本书为方便将C++语言简称为C++)为面向对象技术提供全面支持,是主流的面向对象程序设计语言。因此C++在当前程序设计领域中的地位是很重要的。它是一个可编写高质量的用户自定义类型库的工具。其核心应用领域是最广泛意义上的系统程序设计。此外,C++还被成功地运用到系统程序设计的应用领域中。几乎所有操作系统上都有C++的应用。
C++是“带类的C" ,是面向对象的程序设计(object-oriented programming)语言。高等院校计算机专业和相关专业基本上都开设了该课程,其目的是让学生掌握面向对象程序设计的概念和方法,深刻理解面向对象程序设计的本质,并用面向对象技术来编写程序、开发软件。长期以来,通过教学实践发现学生在学习C++的过程中,普遍感觉到C++不好掌握,尤其是它的面向对象的设计思想及相关概念在接受时感到困难,实际动手编程的能力较差,更谈不上应用了。鉴于此,笔者结合十多年本课程的教学经验和体会,特编写这本符合当前学生接受能力的、通俗易懂的教材。
本书的目标是帮助读者深刻理解面向对象程序设计的思想,掌握C++程序分析能力和设计技能,学会运用MFC进行Windows程序设计。
2. 本书结构
本书共13章,分成如下三个部分。
第1部分(第1~第6章)概述了面向过程和面向对象技术的基本概念、不同的编程思维方式;介绍了如何利用Visual C++ 6.0调试C++控制台应用程序;讲授了C++面向过程编程部分,包括C++程序设计基础、程序流程控制、数组、模块设计和指针等内容。
第2部分(第7~第11章)主要讲授C++面向对象编程思想及方法,是本书的核心。这部分内容以面向对象技术的特征为线索展开对C++的讨论,为第3部分的应用奠定理论基础。
第3部分(第12章和第13章)是面向对象技术在Visual C++中的应用部分。这部分主要介绍了利用MFC开发Windows应用程序的基本编程模式和程序设计方法。为什么要加强本部分内容呢?原因是C++加入可视化概念后,并不像一些可视化程序设计语言(如VB、Delphi语言等)那样容易上手。Visual C++结构复杂,代码量大,专业化程度高,初学者很难把握Visual C++的脉搏。第12章通过循序渐进的方式讲述了利用MFC编程的模式、方法,配以具体应用的详细实训步骤,读者在学习了本章后即可基本入门,便于日后进阶。第13章给出了基于两种编程模式的综合实训,以提高读者的综合编程能力。
3. 本书特点
本书通过比较的方法介绍了面向过程和面向对象程序设计的概念和方法,读者可以从中理解到思维方式的变化;在讲授面向对象编程时,紧紧围绕面向对象程序设计的特征展开;在讲述每部分内容时,采用先说明开设这部分内容的理由的方法,使读者对所学概念有充分的理解;每部分在具体阐述的过程中既重点突出,又注重细节用法;为便于读者自学,全书采用了大量的注释;每部分都精选了大量的典型实例;为了与当前流行的可视化编程接轨,最后讲述了MFC编程模式,以使读者深刻地体会到Visual C++功能的强大,从而提高读者对软件编程的学习兴趣和能力,使读者感受到学习后的成就感。本书追求用通俗易懂的语言、生活中的现象来阐述基本理论,突出重点,解释到位,讲深讲透“难点”部分;所有内容均采用“提出问题,说明问题,解决问题”的模式编写,更多地考虑到学习者的接受能力和接受方式;采用先例题后理论的模式,用程序例子来说明难懂的抽象概念;对许多问题都描述多个编程方案,以使读者在比较中学习,进而深刻理解相关设计思想和分析相关算法;本书除了正面阐述说明什么是正确的,还注意从反面来说明什么是不正确的;在讲解MFC编程的过程中,注重操作步骤及细节,以便于读者模仿和操作。
本书内容丰富,结构紧凑,概念阐述清楚,例题典型丰富,注重能力培养。提供了大量实例、实训、习题和实验,突出实践环节,以期读者深刻理解编程思想和增强实际动手编程能力。
本书中所有的例程都在Visual C++ 6.0下调试通过。本书中的程序和算法较多,为方便阅读书中的变量均用正体。
4. 适用对象
本书是作者总结多年教学经验、参考大量的国内外有关资料并结合自身的实际工程项目经验编写而成,融会贯通了C++面向过程、C++面向对象以及利用VC++进行Windows程序设计三部分,内容丰富,结构紧凑,概念阐述清楚,注重能力培养,是一本内容全面的教材。可作为高等院校本科生程序设计基础教材,以及计算机爱好者自学用书和各类工程技术人员的参考书。
本书由郭有强编写第1、第7~第13章,并负责总体设计并统稿;王磊编写第4和第5章,并负责本书全部例题源代码的测试和电子讲稿的制作;姚保峰编写第2、第3和第6章。本教材电子讲稿与全部例题的源代码可从www.bbxy.edu.cn网站下载。
本书的编写大纲及内容均经合肥工业大学信息与计算机学院的王浩教授审阅,在此谨致谢忱。感谢胡学钢教授对本书给予了极大的关注和支持,提出了宝贵的建设性意见。感谢本书所列参考文献的作者!感谢清华大学出版社各位编辑,他们为本教材的出版倾注了大量的心血和热情。也正是由于他们前瞻性的眼光和忙碌,才让读者有机会看到本教材。
本书由郭有强主编(编写第1、8、9、10、11、12、13章),负责总体设计并统稿。参加本书编写工作的还有姚保峰(编写第2、3、6章),王磊(编写第4、5章),张怡文(编写第7章及本书全部例题源代码的测试)。以上人员在内容编写、程序测试、文字校对等工作中付出了辛勤劳动。参加与本书配套的《C++实验指导与课程设计》教材编写和文字工作的还有张怡文、叶家鸣、朱洪浩。编写组制作了电子讲稿,与本书全部例题的源代码一起放在网站 上,供教师下载。本教材中程序和算法较多,为方便阅读所涉及的变量的用正体。
感谢胡学钢教授、王浩教授,他们对该书给予了极大的关注和支持,提出了宝贵的建设性意见。感谢孙家启教授对本书的关心和帮助。感谢本书所列参考文献的作者!感谢清华大学出版社各位编辑,他们为本教材的出版倾注了大量的心血和热情,也正是由于他们前瞻性的眼光和忙碌,才让读者有机会看到本教材。
由于作者水平有限,加之时间仓促,错误与疏漏之处在所难免,敬请读者不吝赐正。在使用该书时如遇到什么问题需要与作者商榷,或想索取其他相关资料,请与作者联系。
郭有强2008年12月