面向对象的程序设计(C++).ppt_第1页
面向对象的程序设计(C++).ppt_第2页
面向对象的程序设计(C++).ppt_第3页
面向对象的程序设计(C++).ppt_第4页
面向对象的程序设计(C++).ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计 任课教师 马钦 网站 http 202 205 87 81 c C 课堂讲授部分 第一章面向对象的基本思想 第二章C语言的基本成分 自学 第三章C 对C的非面向对象扩充 第四章类 第五章继承性与派生类 第六章多态性 第七章C 的I O流库 第八章类库和基于C 的良好OOP风格 教材 参考书与课时安排 教材C 程序设计教程钱能编著清华大学出版社参考书C 程序设计实验指导钱能编著清华大学出版社C 程序设计习题集钱能编著清华大学出版社课时安排授课 28学时上机 12学时书中所有程序下载网址 课程要求 课前请做好预习保持课堂安静 头脑清醒 思维活跃认真 独立 按时完成并提交作业重视上机实践 有效利用宝贵的上机时间掌握用TC3 0或者VC 6 0开发C 程序 考核形式 作业和实验任务必须按时完成 占总成绩的20 期末考试成绩占总成绩的80 第一章绪论 本章主要内容 计算机程序 计算机的工作是用程序来控制的程序是指令的集合 指令是计算机可以识别的命令 计算机语言的发展 机器语言与汇编语言 由计算机硬件系统可识别的二进制指令组成的语言称为机器语言 计算机发展初期 软件工程师只能用机器语言编写程序 在人类自然语言和计算机编程语言间存在着巨大的鸿沟 汇编语言将机器指令映射为可被人读懂的助记符 如ADD SUB等 编程语言与人类自然语言间的鸿沟略有缩小 因为它的抽象层次太低 程序员需要考虑大量的机器细节 高级语言 高级语言屏蔽了机器的细节 提高了语言的抽象层次 程序中可以采用具有一定涵义的数据命名和容易理解的执行语句 这使得在书写程序时可以联系到程序所描述的具体事物 计算机语言的发展 面向对象的语言 出发点 更直接地描述客观世界中存在的事物 对象 以及它们之间的关系 特点 是高级语言 将客观事物看作具有属性和行为的对象 抽象同一类对象的共同属性 行为 形成类 通过类的继承与多态实现代码重用 计算机语言的发展 优点 程序能够比较直接地反映问题域的本来面目 软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发 程序设计方法的发展历程 面向过程的程序设计方法 程序目的 用于数学计算主要工作 设计求解问题的过程缺点 庞大 复杂的程序难以开发和维护 面向对象的方法 面向过程的结构化程序设计方法 设计思路自顶向下 逐步求精 分而治之 程序结构 按功能划分为若干模块 形成树状结构 各模块间关系尽可能简单 功能上独立 模块内均是由顺序 选择和循环三种基本结构组成 模块化实现方法是使用子程序 主功能 子功能1 子功能2 子功能3 分功能21 分功能22 文件一数据定义与说明main func1 文件二数据定义与说明func2 func3 结构化程序设计 程序 数据 函数 操作 调用 程序设计方法的发展历程 面向过程的结构化程序设计方法 优点 有效地将较复杂的程序系统设计任务分解成许多易于控制和处理的子任务 便于开发和维护 面向对象的方法 缺点 可重用性差 数据安全性差 难以开发图形界面的应用把数据和处理数据的过程分离为相互独立的实体 当数据结构改变时 所有相关的处理过程都要进行相应的修改 每种相对于老问题的新方法都要带来额外的开销 图形用户界面的应用 很难用过程来描述和实现 开发和维护都很困难 程序设计方法的发展历程 面向对象的方法 将数据及对数据的操作方法封装在一起 作为一个相互依存 不可分离的整体 对象 对同类型对象抽象出其共性 形成类 类通过一个简单的外部接口 与外界发生关系 对象与对象之间通过消息进行通讯 面向对象的方法 程序 类 对象 继承 消息 自然思维 对象为本 对象 对象 对象 对象 对象 程序设计方法的发展历程 面向对象的方法 优点 程序模块间的关系更为简单 程序模块的独立性 数据的安全性就有了良好的保障 通过继承与多态性 可以大大提高程序的可重用性 使得软件的开发和维护都更为方便 面向对象的方法 面向对象的基本概念 对象 对象 可以是有形的 汽车 也可是无形的 比如一项计划 面向对象的方法 对象 对问题领域内人 物 事情等的抽象 是一组属性 状态 特征 成员 和在这些属性上的行为 修改属性 访问属性 执行命令 的封装体 是用来构成系统的一个基本单位 对象由一组属性和一组行为构成 属性 用来描述对象静态特征的数据项 行为 用来描述对象动态特征的操作序列 面向对象的基本概念 类 分类 人类的思维方法 分类原则 抽象忽略事物非本质特征 只注意与当前目标有关的本质特征 找出事物的共性 把具有共同性质的事物划分为一类 得出一个抽象的概念 面向对象的方法 抽象 现实中的物体抽象成对象 现实世界的物体之间的关系抽象成软件系统中对象之间的关系 具有共同特征的对象抽象成类 具有共同特征的类抽象出基类和派生类 面向对象的基本概念 类 面向对象方法中的 类 具有相同属性和服务的一组对象的集合为属于该类的全部对象提供了抽象的描述 包括属性和行为两个主要部分 面向对象的方法 类 具有相似特征对象的抽象 类是抽象的 对象是具体的 类是类型 对象是变量 类是模型 对象是实例 不同程度的抽象可得到不同层次的分类 运输工具 火车 汽车 飞机 卡车 轿车 轮船 车辆 面向对象的基本概念 封装 把对象的属性和操作结合成一个独立的系统单位 尽可能隐蔽对象的内部细节 对外形成一个边界 或者说一道屏障 只保留有限的对外接口使之与外部发生联系 面向对象的方法 封装 类自成一体 和数据隐藏 封装的作用 使对象能够集中而完整地描述并对应一个具体的事物 体现了事物的相对独立性 使对象外部不能随意存取对象的内部数据 避免了外部错误对它的 交插感染 对象的内部修改对外部的影响很小 减少了修改引起的 波动效应 面向对象的基本概念 继承 继承对于软件复用有着重要意义 是面向对象技术能够提高软件开发效率的重要原因之一 定义 特殊类的对象拥有其一般类的全部属性与服务 称作特殊类对一般类的继承 例 轮船作为一个一般类 客轮便是一个特殊类 面向对象的方法 即若类A的全部对象是类B的对象 而类B中存在不属于类A的对象 则A是B的特殊类 B是A的一般类 面向对象的基本概念 多态性 多态是指在一般类中定义的属性或行为 被特殊类继承之后 可以具有不同的数据类型或表现出不同的行为 这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义 例如 数的加法 实数的加法 复数的加法 面向对象的方法 面向对象不仅是具体的软件开发技术 而是一整套关于如何看待软件系统与现实世界关系 以何种观点来研究问题并进行求解 及如何进行系统构造的软件方法学 用对象 类 继承 封装 消息 多态性等基本概念进行程序设计 面向对象的软件工程 面向对象的软件工程是面向对象方法在软件工程领域的全面应用 它包括 面向对象的分析 OOA 面向对象的设计 OOD 面向对象的编程 OOP 面向对象的测试 OOT 面向对象的软件维护 OOSM 面向对象的软件开发 系统分析 系统分析阶段应该扼要精确地抽象出系统必须做什么 但是不关心如何去实现 面向对象的系统分析 直接用问题域中客观存在的事物建立模型中的对象 对单个事物及事物之间的关系 都保留他们的原貌 不做转换 也不打破原有界限而重新组合 因此能够很好地映射客观事物 面向对象的软件开发 设计 针对系统的一个具体实现运用面向对象的方法 其中包括两方面的工作 把OOA模型直接搬到OOD 作为OOD的一部分针对具体实现中的人机界面 数据存储 任务管理等因素补充一些与实现有关的部分 面向对象的软件开发 编程 OOP工作就是用一种面向对象的编程语言把OOD模型中的每个成分书写出来 是面向对象的软件开发最终落实的重要阶段 面向对象的软件开发 测试 测试的任务是发现软件中的错误 在面向对象的软件测试中继续运用面向对象的概念与原则来组织测试 以对象的类作为基本测试单位 可以更准确的发现程序错误并提高测试效率 面向对象的软件开发 维护 将软件交付使用后 工作并没有完结 还要根据软件的运行情况和用户的需求 不断改进系统 使用面向对象的方法开发的软件 其程序与问题域是一致的 因此 在维护阶段运用面向对象的方法可以大大提高软件维护的效率 面向对象的软件开发 C 语言的产生 C 是从C语言发展演变而来的 首先是一个更好的C 引入了类的机制 最初的C 被称为 带类的C 1983年正式取名为C C 语言的标准化工作从1989年开始 于1994年制定了ANSIC 标准草案 以后又经过不断完善 成为目前的C C 语言程序的开发 C 的特点 全面兼容C它保持了C的简洁 高效和接近汇编语言等特点对C的类型系统进行了改革和扩充C 也支持面向过程的程序设计 不是一个纯正的面向对象的语言支持面向对象的方法 C 语言程序的开发 ch1 1 cpp include 预处理命令 以 开始 常见voidmain cout Iamastudent n 运行结果 Iamastudent C中注释以 和 分界如 Thisisacomment C 中允许以 开始一条注释 到行尾自动结束如Value max a b Thisisacomment 文件包含语句include或include 用户常用函数说明代码可写成 h头文件 需要时使用include 系统定义的头文件通常用include 头文件在编译系统的include目录中查找 自定义的头文件通常用include h 头文件先在当前目录中查找 然后在编译系统的include目录中查找 includevoidmain a cpp iostream h ch1 2 cpp includevoidmain inta b result cout a b result 3 a 2 b 1 cout resultis result endl C中的输入 输出使用函数scanf 和printf 如printf Enternewtag scanf d 在iostream h中定义两个对象 标准输入对象cin和标准输出对象cout cin用于从标准输入设备读入数据 键盘 cout用于向标准输出设备写出数据 屏幕 endl表示回车换行结束 注意 的方向 ch1 3 cpp include includedoublemax doublex doubley voidmain doublea b c cout a b c max a b couty returnx elsereturny C 程序的结构与基本组成简单的C 程序 是由若干函数构成的 有且仅有一个名称为main的函数存在 下图C 程序的基本结构 1 声明区处在程序文件的所有函数的外部 1 包含头文件 如 include 2 宏定义 如 definePI3 1415926 3 函数声明 如voidprint 4 全局变量声明 如floatH 2 58 2 主程序区 以main 函数开始 是整个程序运行的入口 该函数中可能包含的内容主要有 1 局部变量的声明 如 inti 1 2 函数调用 如 y sin x 3 一般运算 如 a b c d 3 4 结构控制 如 if a b c a 3 函数定义区 除了main函数之外 还可以包含其它的函数 每个函数是由函数说明和函数体两部分构成的 从上例可以看出 1 C语言中原有规则和语句在C 中仍可继续使用 但C 又增添了很多新的风格 2 一个C 的程序是由一到若干个函数构成的 但其中必须有且仅有一个名称为main的函数存在 3 不管一个程序中有多个函数 只有main函数整个程序运行时的入口 程序运行时从此函数开始执行 但在程序中 main函数所处的位置可以任意 4 一个C 的函数是由两部分构成的 即函数的说明部分和函数体 函数的说明部分包括了函数的返回值的类型 函数的名称 圆括号 形参及形参的类型说明 函数体由一对大括号 括起来 其内容是由若干条语句构成 函数体的内容决定了该函数的功能 5 C 对程序中的名称是大小写 敏感 的 除特殊情况下 应一律小写 6 程序中的注释 可以用 或 单行注释 对程序中的内容进行注释 二者的区别在于 采用 方法时 注释可以写成多行 而采用 方法时 注释只能写成一行 它可单独占一行 也可写在某行程序代码的末尾 7 数据输出 除了使用printf 函数 还可使用功能更强大 更方便的cout对象进行输出数据 格式如下 cout 数据1 数据2 数据n如 上例中的语句cout s is i yearsold 表示同时输出了变量s的值 字符串 is 变量i的值和字符串 yearsold 应用程序开发的基本步骤 1 编辑 输入 修改源程序 输入 键盘等输出 源程序文件 扩展名为cpp 2 编译 分析源程序 生成目标程序 输入 源程序文件输出 目标程序 扩展名为obj 3 连接 为所有的函数 变量等分配具体地址 生成可执行程序 输入 目标程序文件 程序库文件输出 可执行程序 扩展名为exe 4 运行 即执行程序 问题 C 程序开发必须有C 编译器和文本编辑器 一个C 编译器包括C 的编译程序和调试程序 它可是TurboC VisualC 或Linux下的gcc 文本编辑器可以是MS DOS的edit windows的记事本 word 某些编译器包含有文本编辑器 这样 只需一个 编译器就可以开始 程序了 用文本编辑器输入 源程序 存为文件prog1 cpp 然后利用 编译器对源程序文件进行编译 生成目标文件prog1 obj 再利用连接程序连接成可执行文件 应用程序的集成化开发环境 集文字处理 编译 连接 项目管理 程序排误等多功能为一体的软件开发工具 最常见的有visualc 6 0 Turboc 3 0 BorlandC Builder等 visualc 6 0 Microsoft公司产品 应用广泛 与Windows以及Microsoft公司的其他软件产品配合较好 2003年5月 微软推出三个企业级产品 MicrosoftWindowsServer2003 VisualStudio NET2003和SQLServer2000企业版64位 VisualStudio NET2003是Microsoft的第二代开发工具 用于构建和部署Microsoft NET的软件 这个平台包括了VisualC NET VisualBasic和VisualC 等工具 链接 VC 6 0操作演示 上机步骤 1 启动VC6 0开始菜单 程序 MicrosoftVisualStudio6 0 MicrosoftVisualC 6 02 建立工程文件 File 新建 new 在弹出的对话框中选择工程标签 Project 选中选项 Win32ConsoleApplication 不能选别的 输入工程名 ProjectName 选择工程的存放位置 Location 单击 确定 按钮 OK 在弹出的对话框中选中选项 AnEmptyProject 单击 完成 按钮 Finish 在弹出的对话框中单击 确定 按钮 OK 3 创建源程序文件文件 File 新建 new 在弹出的对话框中选择文件标签 Files 选中选项 C SourceFile 选中 填加到工程 复选框 Addtoproject 并在下拉框中选择工程名 ProjectName 输入源程序文件名 File 选择文件的存放位置 Location 单击 确定 按钮 OK 4 输入 编辑 源程序内容5 保存源程序文件文件 File 保存 Save 或者用快捷键 ctrl s或者单击工具栏的保存按钮6 编译源程序文件建立 Build 全部建立 BuildAll 执行此步时注意观察有无错误提示 如有 则返回第4步 如无错再执行第7步 7 执行程序建立 Build 执行 Executexxx exe 或者用快捷键 ctrl F5注意 在6 7两步中的任何一步如果发现程序有错误 应立即返回步骤4修改源程序并重复5 7步 8 开始另一个程序调试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论