《C++语言程序设计》课程参考文献:《面向对象的C++》书籍PDF电子版

第一章面向对象 第一部分C+基础 第一章面向对象 1.1简介 面向对象(Object-0 riented)已经成为90年代重要主题词之 可用如下说法简单地 表达面向对象的整体思路:先对特定问题建立通用的解决方案,然后再改制这些方案以适 应特定需要,这样的设计方法内在的优点是: ·能够直接地再利用他人已经设计并编写成功的程序,而不需要再作广泛的重新测试 。能够由基本而通用的解决方案派生出新的解决方案 ■能够建立一个由模块组成的系统 用实物作比拟会有助于弄清模块化系统的概念。比如一种组合型长椅,是按这样的结 构设计制造:适合某种特定需要,其中的一块或几块既可以加到长椅的椅架上且可以从椅 架上拿开,又不影响长椅本身的性能和设计上的美观.又比如 个模块化的房间,可以设 计得既容易得到扩展又不影响房子的基本结构。模块化系统与上述所列的比拟很相似,是 由包含系统基本功能的固定基组成的。这个固定基是待完善系统的构件,它容易扩展,新 的功能可从这个基派生出来,无需进行广泛的重新测试和编码。 面向对象的系统的主要缺点(如果称之为缺点的话),就是无法正确地设计一个足够 通用的解决方案来构成系统的基。因此,要建立一个强大而有用的面向对象的系统,使系 统具有长期的可用性是至关重要的。 C+是一种面向对象的编程语言。但如果系统没有采用面向对象的技术, C+只能 作为面向过程的语言来使用。为了将C+带人生活,读者必须考虑面向对象。在编写第 一行程序之前,必须尽力地花时间去思考系统的设计、 系统的基以及期望由系统基所派生 出来的解决方案。如果没有考虑到面向对象和模块化,那C+这种工具的面向对象强大 之处将变得毫无用处,因为没有去正确使用它。本章将教会读者在编程之前如何构思 1.2抽象 抽象是面向对象设计的核心思想.抽象的艺术在于抓住一个系统最核心的特性,这些 特性是能够表述以后发生的任何事情的构件,虽然抽象是一个简单易懂的概念,但读者会 惊讶地发现,在设计一些系统的时候,使用这种方法的频度几乎微乎其微!本章提供了 个极复杂系统的极简单的设计.我们的目的是要说明怎样把一个极复杂的问题更好地分: 成一些最简单的组成部分,又如何建立并修改一个已经用模块化风格分解产生的系统。 为简化起见,我们只考虑系统最通用的特性

第一章面向对象 1.3设计一个电讯系统 当您拿起话简给别人打电话时,在您和另一方之间就建立了一个连接。简单说,这 就是两点间的连接。您的目标就是要设计一个能获得这种连接的系统. 当然,实际生活中不会有这样简单的两点间的直接连接。所以我们要给系统增加一 些复杂性, 例如,假设您要给尼古拉挂个电话,通话线路可能有几种不同方式: ·您非常幸运地有一条直达热线接到尼古拉那里。在这种情况下,电话线路直接联接读 者和尼古拉: 读者 +尼古拉 (无问顺) ■您不得不经过另外一个地点的线路才可最终与尼古拉相接通,即: 卖者 太德 尼吉拉 在这种情况下,您到太德那里有一条直达线,而太德到尼古拉那里又有一条直达线。 为了将您和尼古拉连通,必须先经过太德 ■如果太德的线路处于忙的状态又会怎样呢?那就不能通过它来与尼古拉相连,这就必 须考虑其复杂性。读者的呼叫经由另外一条绕过太德的线路到达尼古拉那里.如: 读者一一一一一一+太铺 一+尼古拉 -(忙) +汤组 ■现在,看看最复杂的情况。在现实生活中,象我们刚才谈到的这些不同的连接(您。 太德,汤姆,尼古拉 实际上可认为是物理的硬连接的机器。用某种方式对这些机 器编程,使之能接受某种类型的电话呼叫,再将呼叫导向目的地。这种逻辑被编人机 器(从现在起,我们称这些机器为设备),以便能理解那些对它们的呼叫的类型.然 而,如果这些呼叫类型不同,那么设备就不知道如何处理,因而拒绝这些呼叫。从技 术上讲,不同类型的设备具有理解不同类型协议的能力,如果一个电话呼叫在逻辑上 不遵守这个设备能理解的协议,则该呼叫就会遭到拒绝 这样,在为某一呼叫进行路由选择的时候,必须鉴别一下要通过设备的性质,以确保 该设备确实有能力处理该呼叫并为之选择路径。 1.4电讯系统的再思考 如果读者再花点时间去重读上一段落,会发现在设计该系统的时候需要涉及以下几个 问题: ■怎样获得可能毗连或非眦连的两点间的连接 ■ 怎样获知不同设备的不同行为特及这些设备能确定连接的不同类型? ■如果在正常情况下选择的逻辑连接不可用,那么如何将该呼叫导向另外的设备? 下一步的任务就要把跟光集中在为实现本系统而要明确表达的各种不同类型对象的基 本特性上.我们试图简化上述问题的复杂性,简化结果如下:

第一章面向对象 3 。两点间最简单的连接就是彼此间毗连的两点的连接,它们之间就可以直通,因而要确 定的第一个对象是获得这种连接的本质 ·所有的设备的都要求最终能实现一种主要功能:将一个呼叫向前传递给下一点。因而 要确定的另一个对象是获得一个基本设备这一特征的本质。 ■反呼叫从一个设备导向另一个设备之前,第一个设备必须向下一个设备发送信息以询 问将呼叫发给下一个点是否可行. 下一个设备也必须给这个设各回送一个话当的应答 信息。如果该设备可行,发送呼叫的设备就将这个呼叫传递给它。如果不可行,那么 发送呼叫的设备戴要试图找到另一条路径.这样,就可以归纳成一种机制,在这种机 制下,上面所确定的对象彼此间能进行通讯 刚才所罗列的简单概括可以构成整个系统的骨架。 一且一个系统设计得能够满足所列 的要求,就有足够能力处理以后的复杂问题,在下一小节再详述. 1.5在基本抽象基础上建立系统 现在总结一下分析结果.在上一小节里,我们列举了两种对象的功能。在C+中,对 象的功能用一种称作类(C1ass)的形式来表达.用来构成其它类的类叫作基类(Base C1ass).在上 小节中,我们认定了两种用来确定该系统骨架的基类,这两种基类将构 成所有由它们派生出来的其它类。对这两种基类规定如下 ■获取在毗邻两点间传递呼叫所需规则的类。称之为C1asSA, ■获取用作呼叫路由选择的最基本设备的功能的类.称之为C1sB。 此外,我们还认定了这些类的对象彼此间进行通讯的机制,通过这些机制,完成呼叫 的完整路程 有了这些基本构成,我们就可以使系统更复杂些,并看到所设计的这些基类怎样成功 地处理这些情况。下面是该系统所要求的另外一些特性 ■一个呼叫可以在非毗连的两点间漫游,这是经过了其它连接才链在一起的。 我们从C1a55A派生出一个类来完成这种功能。这个派生类继承了明确表达两点间 一对一连接所要求的规则。但是,它包含有另外的方法,此方法中有明确表达更复杂的连 接所要求的规则。 ■各种不同类型的设备都可以加人到该系统中,用不同的方式来为一个呼叫选择路径。 然而,为呼叫进行路由选择的基本机制总是相同的, 我们通过从C1a5sB中派生出一些类的办法来完成该特性.这些派生类将继承最基本 设备的功能。然而,每一个派生类都应该增加一些独特的属性或方法来将该设备与其它设 备区分开。类之间彼此通讯的机制也就被确定下来 这就应该是在设计一个大系统时所用的基本思维模式。本系统将能足够灵活地处理完 整的路由选择和改变设备的属性所需的变化规则。这些变化将简单地通过修改派生类的应 用代码来实现 每个设备的方法都封装(encapsulate)在它所属的类中,如果系统中加人了新的 设备,而该设备没有明确描述的属性,那么它可以利用基类中说明的功能。这种特性通过 虚函数(virtual function)来表达. 一且这个新设备的属性通过多态性(polymor phism)被确定下来,那么这些虚函数就可被废弃(override)

4 第一章面向对象 现在我们调一下几个关键的短语和词汇,它们是:对象,类,基类,派生类,虚函 数以及多态性。 1.6结论 尽管这里对一个复杂系统作了极其简单的表达,但这正是我们所要阑明的观点。尽 可能地将复杂问题简化.在初始设计阶段把精力集中在主要的特性和需求上,而不是陷人 到不重要的细节中】 定要从系统的最根本处人手 一旦当读者能并用这种方法分析并获 得所需系统,读者会觉得,在系统的强大的基上构造系统是一件多么容易的事.系统的复 杂性往往掩盖了潜在的,用经建立和实现系统时的简单性。需要设计者花时间努力地思考 如何反复杂问题分解成最简单的形式,一旦能这样做,就会觉得其它什么事情都可按部就 班了. 另一方面,如果设计中有缺陷,那么就会感到,试图在这样的设计上构造系统会混乱 不堪。一个好的系统总是遵循正确的规则而一个设计得不好的系统最终将混乱得几乎无 法收拾,通常的结果是完全重来, 尽管本章是预备性的,建议读者在学习第二章之前能把第一章重读一遍(最好要慢 些)).我们在第二章讨论语言本身

第二章C+及编程基础 5 第二章C+及编程基础 2.1简介 在编写程序之前,必须懂得程序如何存储以及如何在计算机上运行.本章将描述什么 是程序,程序如何被计算机处理和执行,然后,我们格编写并执行一个简短的C艹程序。 2.2什么是程序设计? 。程序是用能够被计算机理解的一种语言编写的语句的集合 程序的正确执行通常会通过计算机得到某种输出结果。 C++程序包含对预先写好的代码的引用,这些预先写好的代码以库(libraries)的形 式存储.。可通讨特殊的语句把这些库包含到C++代码中 程序要经过编译器、链接器和装载器的处理 这些个别的实体只不过是存储在计算机中的不同类型的软件,是专门用来处理程序代 码的。所有这些处理的最终结果是产生能被计算机所认识并能被计算机运行的代码。 程序设计从开始到完成所需的步骤如下 第一步程序员进行计算机登录。 第二步程序员用喜爱的系统的编辑器编辑源程序。 第三步程序员把编辑好的源程序存人文件中,这个文件叫做源代码文件。 第四步程序员用适当的命令指示计算机编译源代码文件. 用来编译程序的命令因编程语言的不同而不同。例如,用来编译C+程序的命令与用 来编译BASIC程序的命令不同.如果使用的是菜单驱动系统,那么编译和运行程序的处 理只不过是在适当的菜单选项上敲击一下。 我们再继续前面的步骤,这就是编译开始后将会发生什么事情。 第五步编译器将源程序代码翻译成汇编语言格式,然后传给计算机汇编器。 第六步汇编器将汇编语言代码翻译成可重定位的目标码,并将这些目标码传送给链接 第七步链接器将程序引用的所有支持例程连接在一起。这些例程存在于运行库中或早已 存在于被程序所引用的预编译程序中,然后链接器产生源代码的最终版本,我们把它叫做 可执行代码。该代码被传给执行程序的装载器。 第八非运行程序 虽然,整个处理过程显得很长,但是这些步骤对于程序员来说大多数是透明的。需要 程序员做的只是以下几个步骤: 第一非产生一个包含源代码的文件 第二步输入编译命令,得到编译结果 第三步运行程序. 下面将要讨论源代码文件命名的约定,在保存源代码文件时,要遵守这些约定

6 第二章C+及编程基础 2.3源代码文件的命名约定 不同的操作系统有各自不同的C+程序源文件命名规则,应参照系统手册来决定。 般来讲,C+艹程序用“·C”作后缀(大写C:如果后缀是小写字母c,编译器将认为该程 序是一个C语言程序) 2.4编译器 本书中所有的程序都是在IB删PC机的MS indows环境下用Turbo C+编译器 (V3.1版)编译并运行通过的, 本书中所用的程序都是可移植的.实际上,可移植性也正是使C+语言颇具实力的原 因之一,这些程序可以用任何一种C艹的编译器编译并运行,可以在idos环境下 也可以不在Windows环境下进行。 Borland C+的编译器用.c后缀来识别C语言程序,用,cpp后缀来识别C+程 序.在本书中采用同样的约定.若使用其它的操作系统或编译器,那么只需参阅相关资料 中的适用说明。 般说来,程序能象在本系统上一样正确地编译并运行。代码和输出都会 是相同的。尽管出错信息的措辞会因使用不同的编译器而变化,但这些信息的含义是相同 的。 2.5程序的产生和执行 要运行一个程序,必须先用程序员所喜爱(或不甚喜爱)的编译器将程序敲进去,并 保存在文件中。 一旦文件建立之后,就可以按照正在使用的特定工具的要求去编译、链接 和运行.有些工具允许在操作系统命令行提示符下键人命令来完成上述步骤,而另一些系 统则允许通过菜单和对话框的形式来完成整个过程。木书所用的系统,全部是由菜单驱动 的使用户可在一个集成的环境里编 、编译并运行程序.对于其它类型的系统只需根据 系统资料提供的说明来编译并运行. 2.68 orland C+3.1编译器 下面的章节将逐步讲述Borland公司的Turbo C+V3.1编译器提供的集成开发环 境中的编辑、编译和运行过程。读者可以通过定位并单击鼠标左边按钮来选择选项,或简 单地用键盘上的方向键移动高亮光条到相关选项并按Eter键,本书采用后一种方法。 选项也可以通过与之相关联的热键或敲击标明该命令的字母来选择。 集成开发环境(IDE)是Borland的程序员开发平台。对其作简短的介绍以开始我们 的讨论。 2.7 Borland的程序管理器 在使用编译器之前,必须将它安装到PC上,必须执行编译器提供的1STAL程序将 所有可用文件装入计算机.该程序要求PC机中已经装人了Microsoft Windows,当启动 Windows后,进人程序管理器.安装成功后,先退出,再重新进人ind0s环境 B0r1andC4+将自动建立一个新的程序管理器组,组中包含与该平台相关联的一组图 标,在以Borland C+3.1为标题的窗口中共有20个图标,如图2.1所示

第二章C+及编程基础 Program Manager 昌星凰黑恩 图2.1 BorlandC+3.1图标组 我们只探讨用于Borland C+for Windows编译器的菜单选项(左起第二个图 标)。我们鼓励读者探索用于其余功能的图标。详细的说明,请参阅其它C艹资料. 在图2.1的窗口中,将光标移到标有BC的图标(最上一行左起第二个图标)上,双 击鼠标左按钮,就进人了E平台,这个环境包括窗口、菜单、对话框、加速条、卷演 条、编辑状态行。 2.81DE平台 在1DE平台的顶部是菜单选项,后面将详细讨论。在菜单选项下面是加速条。加速条 包含一组图标,这些图标为频繁使用的任务提供捷径。将鼠标箭头定位在其中任何一个图 标上,都会在状态域中显示出该图标功能的简短描述。当鼠标箭头定位在?(帮助)图标 (左起第一个)时,可见到图2.2的信息显示(Display Context Sensitive Help), 窗口底都的箭头钮允许左右滚动,窗口右边的箭头钮允许上下滚动, 窗口本身可极大化(覆盖终端屏幕的整个区城);或极小化(变成一个图标),当 单击窗口左上角的按钮时,从显示出的菜单中选择相关的项目即可实现极大化和极小化. 2.8.1编辑窗日 再次观察编辑窗口时,就会注意到窗口顶部的标题行写着: C:\borlande\bin\noname00.cpp

第二章C+及编程基础 编译器自动打开一个编辑会话窗口,并把要创建的C+文件取名为noname00.cpP, 可以使用这个默认文件名,也可以通过Fi1©菜单选项政变该文件名.这一点我们后面会 解释 关于基础就讲这些.下面让我们浏览一下可显示各种选项的菜单条。 将鼠标箭头放在Fi1©选项(左起第一个莱单选项)上,单击它(或通过健盘上的方 向键移动光标定位并敲回车键).下i1©菜单条将显示出来。如图2.3所示。 可以用下面三种方式之一选择菜单条中的任一选项 ■把鼠标移到要选择的菜单项上,然后单击鼠标。 ■如果莱单项中含有带下划线的字母,则可键入该宇母 例如要选File菜单条中的New菜单项,健人N即可。 ■如果存在热键(hotkey},可键入菜单项的热健. 例如对于FiI菜单条中的Exit,可按住A1t销的同时被F4镜 后面带有省略号(.)的每个菜单命令隐含着一个对话框,如果选择该命令,将激活 对话框。该对话框叠加在当前窗口上。例如,如果读者选择File菜单条中的0pen 命令,0 pen a Fi1e(打开-个文件)对话框就显示出来.如图2.4所示. Borland C 图2.2Bor1andC+3.1编译器的IDE环境 对每个打开的对话框,健人适当的信息,然后单击K按钮使系统接受所蔽人的信 息,或者单击Canc©l按钮使系统废弃所键人的信息.单击Help按钮可以得到本窗口相 关的帮助信息

第二章C+及编程基础 orland C 图2,3IDE中的Fi1e(文件)菜单条 Open a File vor 7- 图2.4 0 pen a Fi1e(打开一个文件)对话框 图2.5~图2.13显示了所有可用菜单项的菜单条

10 第二章C+及编程基础 Borland C Bedo At+Shift+BkSp C.Sh+0el Clear CirHDel 图2.了1E中的Edit装单条 Go to lige numher. Next error 图2.6IDE中的Search莱单条
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C++语言程序设计》课程教学资源(学习资料)Visual C++MFC简明教程.doc
- 齐齐哈尔大学:《C++语言程序设计》课程授课教案(讲义).pdf
- 齐齐哈尔大学:《C++语言程序设计》课程教学大纲 C++ Programming.pdf
- GoldWave教程.doc
- 《多媒体技术》课程教学大纲 Multimedia Technique.docx
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第13章 Visual Basic多媒体程序设计.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第12章 Visual Basic高级界面设计.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第11章 数据库技术.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第10章 文件.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第9章 菜单、对话框及多重窗体.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第8章 过程.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第7章 数组.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第6章常用控件.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第5章 Visual Basic控制结构.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第4章 数据输入输出.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第3章 Visual Basic语言基础.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第2章 Visual Basic程序设计概述.ppt
- 十一五国家级规划教材:《Visual Basic程序设计教程》教学资源(PPT课件,第4版)第1章 Visual Basic简介(主编:蒋加伏、张林峰).ppt
- 《VB程序设计基础》课程PPT教学课件(第3版)第9章 Visual Basic常用控件.ppt
- 《VB程序设计基础》课程PPT教学课件(第3版)第8章 过程.ppt
- 中国水利水电出版社:《C++实用培训教程》书籍PDF电子版(共十章,编著:李国权).pdf
- 清华大学出版社:《Visual.C++面向对象与可视化程序设计》书籍教材PDF电子版(第2版,编著:黄维通).pdf
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第三章 函数.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第九章 群体类和群体数据的组织.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第二章 C++简单程序设计.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第五章 C++程序的结构.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第八章 多态性.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组、指针与字符串.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第四章 类与对象.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第十章 C++标准模板库.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入输出.ppt
- 广东金融学院:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt
- 齐齐哈尔大学:《C++语言程序设计》课程教学课件(PPT讲稿)第1章 C++程序设计概述.pptx
- 《C++语言程序设计》课程教学资源(学习指导)第1章 C++语言概述.pdf
- 齐齐哈尔大学:《C++语言程序设计》课程教学课件(PPT讲稿)第2章 数据类型运算符表达式 2.1 数据类型、常量、变量.ppt
- 《C++语言程序设计》课程教学资源(学习指导)第2章 数据类型运算符表达式 2.1 数据类型、常量、变量.pdf
- 齐齐哈尔大学:《C++语言程序设计》课程教学课件(PPT讲稿)第2章 数据类型运算符表达式 2.2 算术、关系、逻辑运算符.ppt
- 《C++语言程序设计》课程教学资源(学习指导)第2章 数据类型运算符表达式 2.2 算术、关系、逻辑运算符.pdf