已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计,任课教师:马钦,网站:1/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年制定了ANSI C+标准草案。以后又经过不断完善,成为目前的C+。,C+语言程序的开发,C+的特点,全面兼容C 它保持了C的简洁、高效和接近汇编语言等特点 对C的类型系统进行了改革和扩充 C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言 支持面向对象的方法,C+语言程序的开发,/* /* ch1_1.cpp #include /预处理命令,以#开始,常见 void main( ) cout“I am a student.n” ; ,运行结果: I am a student.,C中注释以/* 和 */分界 如/* This is a comment.*/,C+中允许以/开始一条注释,到行尾自动结束 如 Value = max(a,b); /This is a comment.,文件包含语句include 或 include” ”;用户常用函数说明代码可写成.h头文件,需要时使用include;,系统定义的头文件通常用include,头文件在编译 系统的include目录中查找; 自定义的头文件通常用include”*.h”,头文件先在当前 目录中查找,然后在编译系统的include目录中查找;,#include void main( ) ,a.cpp,iostream.h, ,/* /* ch1_2.cpp #include void main( ) int a,b,result; coutab; result=3*a-2*b+1; cout“result is”resultendl; ,C中的输入/输出使用函数scanf()和printf() 如 printf(“Enter new tag: ”); scanf(“%d”, ,在iostream.h中定义两个对象:标准输入对象cin和标准输出对象cout;cin用于从标准输入设备读入数据(键盘),cout用于向标准输出设备写出数据(屏幕)。,endl表示回车换行结束,注意的方向。,/* /* ch1_3.cpp * /* #include #include double max(double x, double y); void main() double a,b,c; cout a b; c = max(a,b); cout y) return x; else return y; ,C+程序的结构与基本组成 简单的C+程序,是由若干函数构成的,有且仅有一个名称为main的函数存在,下图C+程序的基本结构:,1声明区处在程序文件的所有函数的外部。 (1)包含头文件:如#include (2)宏定义:如#define PI 3.1415926 (3)函数声明:如void print(); (4)全局变量声明:如float H=2.58;,2主程序区:以main()函数开始,是整个程序运行的入口,该函数中可能包含的内容主要有: (1)局部变量的声明:如:int i=1; (2)函数调用:如:y=sin(x); (3)一般运算:如:a=b+c+d/3; (4)结构控制:如:if(ab) 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 如:上例中的语句couts“ is ”i“ years old.”; 表示同时输出了变量s的值、字符串“is”、变量i的值和字符串“years old.”,应用程序开发的基本步骤,1、编辑:输入、修改源程序; 输入:键盘等 输出:源程序文件(扩展名为cpp),2、编译:分析源程序,生成目标程序; 输入:源程序文件 输出:目标程序(扩展名为obj),3、连接:为所有的函数、变量等分配具体地址,生成可 执行程序; 输入:目标程序文件、程序库文件 输出:可执行程序(扩展名为exe),4、运行:即执行程序;(问题?),C+程序开发必须有C+编译器和文本编辑器。一个C+编 译器包括C+的编译程序和调试程序,它可是Turbo C+ ,Visual C+ 或 Linux 下的 gcc 。文本编辑器可以是 MS-DOS的edit 、windows的记事本、word 。某些编译器 包含有文本编辑器,这样,只需一个编译器就可 以开始程序了。 用文本编辑器输入+源程序,存为文件prog1.cpp, 然后利用+编译器对源程序文件进行编译,生成目标 文件prog1.obj,再利用连接程序连接成可执行文件。,应用程序的集成化开发环境,集文字处理、编译、连接、项目管理、程序排误等多功 能为一体的软件开发工具,最常见的有visual c+6.0, Turbo c+3.0,Borland C+ Builder等。,visual c+6.0:Microsoft公司产品,应用广泛,与 Windows以及Microsoft公司的其他软件产品配合较好。,2003年5月,微软推出三个企业级产品:Microsoft Windows Server 2003,Visual Studio.NET 2003和SQL Server 2000 企业版64位。Visual Studio .NET 2003是 Microsoft 的第二代开发工具,用于构建和部署Microsoft .NET 的软件。这个平台包括了Visual C+ .NET 、Visual Basic和Visual C#等工具。,链接,VC+6.0操作演示,上机步骤,1.启动VC6.0 开始菜单程序Microsoft Visual Studio 6.0 Microsoft Visual C+ 6.0 2.建立工程 文件(File)新建(new)在弹出的对话框中选择工程标签(Project) 选中选项:Win32 Console Application(不能选别的)输入工程名(Project Name)选择工程的存放位置(Location)单击“确定”按钮(OK)在弹出的对话框中选中选项:An Empty Project单击“完成”按钮(Finish)在弹出的对话框中单击“确定”按钮( OK )。,3.创建源程序文件 文件(File)新建(new)在弹出的对话框中选择文件标签(Files) 选中选项:C+ Source File选中“填加到工程”复选框(Add to project)并在下拉框中选择工程名(Project Name)输入源程序文件名(File)选择文件的存放位置(Location)单击“确定”按钮(OK)。 4.输入(编辑)源程序内容 5.保存源程序文件 文件(File) 保存 (Save) 或者 用快捷键:ctrl+s 或者 单击工具栏的保存按钮 6.编译源程序文件 建立(Build)全部建立(Build All) 执行此步时注意观察有无错误提示,如有,则返回第4步;如无错再执行第7步。,7.执行程序 建立(Build)执行(Execute xxx.exe) 或者用快捷键:ctrl+F5 注意:在6、7两步中的任何一步如果发现程序有错误,应立即返回步骤4修改源程序并重复57步。 8.开始另一个程序 调试下一个程序有两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年足跟骨折科普解读培训课件
- 2026年护士三基考试模拟试题(含答案)
- 2026年生产现场异常模拟题及答案详解
- 废旧轮胎资源再生循环利用生产线建设项目可行性研究报告
- 2026年各种求职模拟试卷(含答案)
- 2026年护理分级护理模拟试题(含答案)
- 2026年生物科技创新应用考试模拟题及答案详解
- 2026年生物科学原理模拟试题(含答案)
- 2026年西双版纳州公务员考试行测试卷历年模拟题及答案详解
- 2026年高炉矿渣矿粉模拟试题(含答案)
- 甘肃张掖市肃南裕固族自治县马蹄学校2026-2027学年度第一学期七年级英语课后综合作业(一)(含答案)
- 2026年发展对象培训结业测试及答案解析
- 2026道路运输行业安全隐患排查对标手册
- 2026年第一季度家庭医生签约服务培训试卷及答案
- 2026“弘扬长征精神 奋进新征程”知识竞赛题库(含答案解析)
- 2026中国工业具身智能产业发展蓝皮书
- 湖北某厂房施工组织设计-完整版
- 2026-2027学年教科版四年级上册科学第一单元《空气》单元素养测评卷含答案
- GB/T 47962-2026移相变压器的应用、规范和试验导则
- QC/T 901-2026汽车发动机产品质量检验评定方法
- 医疗器械生产质量手册
评论
0/150
提交评论