版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计开篇导学培养目标专业培养要求人才培养目标应用型人才知识要求能力要求素质要求课程地位本课程是计算机专业的学科基础课,它主要讲授一种面向对象程序设计语言——C++。先修课程:要求学习者具备一定的C程序设计基础和离散数学,因此最好先修《C程序设计》和《离散数学》课程。课程目示学习面向对象程序设计的基本概念C++语言基础、类和对象的概念学习类的三大特性封装、继承、多态学习C++语言特性模板、输入输出、异常处理最终建立面向对象程序设计思想课程特点&学习方法课程特点细节内容繁多,部分知识有难度既包含过程化编程,又包含面向对象编程知识理论性不强,重在实践学习方法认真听讲,做好笔记勤思考,多动手,重视实验环节坚持自学课程内容面向对象程序设计概述C++语言基础函数扩展类与对象继承与派生多态与虚函数模板输入输出异常处理第1章~第3章第4章~第6章第7章~第9章推荐教材C++Primer中文版(第5版)王刚译
C++面向对象程序设计(第二版)李兰张艳任凤华著
参考书教材书关于开发平台VisualC++6.0VS2017等主流C++开发平台。CodeBlockWin-TCDev-C++Eclipse看一看DialogGameManagementInformationSystem(MIS)想知道学完C++都能做些啥?结合VisualC++可视化编程,可以做出如下几类程序;我们本次课程还是以控制台应用程序设计为主。大家课余可以自学VC可视化编程。(下面的例子是往届同学进行课程设计时完成的。)看一看这是学生学完后提效的作业看一看这是学生学完后提效的作业看一看这是学生学完后提效的作业看一看这是学生学完后提效的作业看一看这是学生学完后提效的作业你好夏天编程控制云台第1章C++语言概述主要内容●1.1程序设计语言发展●1.2面向过程VS面向对象●
1.3面向对象的特点●1.4C++应用●
1.5简单C++程序的结构1.1程序设计语言发展教学目标难点
了解程序设计方法的发展重点
熟记面向对象程序设计的特点掌握C++的编程环境面向对象程序设计思想继承、封装和多态特性1.1计算机程序设计语言的发展123高级语言汇编语言机器语言由二进制0、1代码指令构成,用机器指令编写的程序通常称为机器代码。优点:机器语言程序的效率高,占用存储空间小。缺点:机器语言程序难编写、难修改、难维护和难调试,汇编语言是机器指令的符号化,它用一个有意义的英文缩写代替机器指令,编写和调试相对容易。优点:可直接访问系统接口。缺点:存在着容易出错、维护困难等。高级语言编写程序时,编程者不需要考虑具体的计算机硬件系统的内部结构,采用具有一定含义的命名符号和容易理解的程序语句进行程序设计,至于用什么机器指令去完成,不需要编程者考虑。大大降低了程序设计的难度,使程序易被人们理解。高级语言程序的通用性和可移植性更高低级语言高级语言1.1计算机程序设计语言的发展图1编译、连接过程生成可执行程序——可执行程序可以在计算机中运行。高级语言容易学习,便于表达,但计算机不认识,无法在计算机中直接运行,怎么办?由“连接程序”——将目标程序与系统提供的标准函数的库程序连接,生成可执行程序。翻译程序——将它翻译成机器语言目标程序,这个翻译的过程称为编译,编译是由“编译程序”(也称为“编译器”)完成的。1.2面向过程与面向对象
程序设计1.2面向过程与面向对象程序设计1面向过程程序设计采用自顶向下、逐步求精及模块化、语句结构化的程序。加动画设计方法:程序结构:程序=(算法)+(数据结构)各模块功能上相对独立顺序、选择和循环程序=数据结构+算法数据结构算法算法1算法2描述问题解决问题算法优点:将较复杂的程序分解成许多易于控制和处理的子函数缺点:可重用性差、数据安全性差、模块化相互调用出现的复杂性,难以开发大型软件和图形界面的应用软件,不利于程序的维护和扩展的1.2面向过程与面向对象程序设计2面向对象程序设计数据和将要进行的操作看成一个整体,而不是把他们作为两个独立的实体。数据本身不能被外部程序和过程直接存取,数据更加安全。加动画将客观事物看作具有属性和行为的对象;构成问题事务分解成各个对象,通过抽象找出同一类对象的共同属性和行为以形成类,通过类的继承与多态实现代码重用;对象与对象之间通过消息进行通信
对象=(数据结构+算法),程序=对象+消息面向对象程序的基本元素是对象程序的操作是通过向对象发送消息来实现1.2面向过程与面向对象程序设计2面向对象程序设计程序=对象1+对象2+…数据2对象2算法1算法2描述问题解决问题数据1对象1classA{数据+方法…}classB{数据+方法…}intmain(){对象+消息…}1.2面向过程与面向对象程序设计程序设计方法对照图一种数学思维或计算机思维方法,与人们认识世界的方法不同以不稳定的、多变的“调用”和“函数”为中心构造系统可重用性较差建立在认识方法学基础上的一项技术科学,比较自然地模拟了人类认识客观世界的方式;以相对稳定的“对象”和“数据结构”为中心构造系统可重用性较好面向过程面向对象面向对象VS面向过程的1.3面向对象程序设计
语言的特点1.3面向对象程序设计的特点1.类抽象人的共同属性和行为抽象出来就可以构成---人类类是一个抽象的概念,而对象是类的具体实例,
人类,动物类,植物类,鱼类……汽车类,桥梁类,建筑类……1.3面向对象程序设计的特点对象的标识每一个对象必须要有一个名字以区别于其他对象在计算机中,使用“标识符”来完成这项工作对象的状态用状态(或叫属性)来描述对象的某些特征在计算机中,使用“数据类型”(可简单或复杂)来完成这项工作对象的行为由一组操作组成,每一个操作决定对象的一种行为在计算机中,使用“函数”来完成这项工作2.对象具体的“人”就是一个对象,是客观存在的实体。对象之间通过传递消息相互影响。描述人类:静态属性:有姓名、年龄、性别、身高和体重等描述人类:行为属性:有学习、思考、走路、说话和吃饭等。1.3面向对象程序设计的特点3.消息消息消息(Message):是描述事件发生的信息,是一个对象向另一个对象发出的请求。消息传递:面向对象程序设计技术所提供的一种允许一个对象与另一个对象交互的机制。组成1.接受消息的对象;2.消息名;3.零个或若干个参数。数据数据数据对象1对象2对象3消息消息消息函数函数函数1.3面向对象程序设计的特点4.抽象-类抽象(abstract)是指有意忽略问题的某些细节和与当前目标无关的方面,以便把问题的本质表达得更清楚。画一幅中国地图抽取特征隐藏细节把握本质抽象成属性状态数据抽象代码抽象例如:计算矩形面积(RectangleArea);数据抽象:floatlength,width,area;代码抽象:voidSetData(floatL,floatW);floatCompueterArea();voidOutputArea();//加动画1.3面向对象程序设计的特点5.封装性接口将数据和操作封装在一个对象中,形成一个基本单位,各对象之间相互独立,互不干扰将对象中某些部分对外隐藏,即隐藏其内部细节,只留下少量接口,以便与外界联系,接受外界的消息C++中的函数名就是对外接口,在类外不能直接访问它们,而只能通过}象的公有执行代码接口来间接访问对象内部的数据。外界可以通过函数名调用这些函数来实现某些行为。使用者关心:
功能
使用方式不关心:
电视机内部结构设计者:提供功能说明;给出使用接口;封装内部结构;1.3面向对象程序设计的特点
消息(message)是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。“接口”规定了能向某一对象发出什么请求。也就是说,类对每个可能的请求都定义了一个相关的函数,当向对象发出请求时,就调用这个函数。这个过程通常概括为向对象“发送消息”(提出请求),对象根据这个消息决定做什么(执行函数代码)。6.消息1.3面向对象程序设计的特点7.继承性继承性是从已有的对象类型出发建立一种新的对象类型,使它继承原对象的特点和功能。
继承是一个对象可以获得另一个对象的特性的机制,它支持层次类这一概念。通过继承,低层的类只须定义特定于它的特征,而共享高层类中的特征。加动画单继承多继承水果香蕉苹果橘子菠萝香蕉苹果富士苹果国光苹果金帅苹果轮船客轮油轮继承讨论的是:类与类的层次关系1.3面向对象程序设计的特点6.多态性函数模板类模板虚函数静态多态运算符重载函数重载动态多态多态含义:一个消息被不同的对象接收,会产生不同的响应效果。多态讨论:层次关系中成员函数之间的关系问题。一个名字,多种语义;或相同界面,多种实现。“双击”教练“开始!”上课铃声加动画1.3面向对象程序设计的特点诞生之初到1995年:传统的面向对象程序设计语言。1995年到2000年:引入泛型编程思想,增加了STL库。2000年至今:Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,又将C++提升到了新的高度。1.C++发展历程起源1979年,C++之父BjarneStroustrup为了分析Unix内核,编写了一个可以运行的预处理系统,在C的基础上仿照Simula语言增加了类机制,并开始着手研发新语言诞生C++语言在1982年诞生,最初它被称为newC,1983年12月正式更名为C++。三个发展阶段1.3面向对象程序设计的特点
2.C++特点(1)保持与C兼容(2)支持面向对象的机制(3)可重用性、可扩充性、可靠性和可维护性(4)代码性能高(5)丰富的运算符和数据类型(6)多种风格设计1.4C++语言的应用1.4C++语言的应用应用程序平台系统级框架机器人及工业控制系统高性能实时计算
手机智能设备
多媒体游戏航空航天系统工业控制计算C++编程1.5简单C++程序的结构
1.5简单C++程序的结构/*ch01-1.cpp*/#include<iostream>usingnamespacestd;voidmain(){intx,y,z;cout<<"pleaseinputtwointnumber:";cin>>x>>y;z=x+y;cout<<“x+y=”<<z<<endl;}/*ch01-2.cpp*/#include<iostream>usingnamespacestd;intadd(inta,intb);intmain(){intx,y,sum;cout<<“Entertwonumber:”;cin>>x>>y;sum=add(x,y);cout<<“x+y=”<<sum<<“\n”;return0;}intadd(inta,intb){intc;c=a+b;returnc;}简单的C++程序C++的函数相似于C语言的函数函数需要先声明后使用。如果函数定义在函数调用之后,则必须在前面声明函数原型1.5简单C++程序的结构1.编译预处理命令C++提供了三类预处理命令:文件包含命令、宏定义命令和条件编译命令。(1)文件包含命令
#include<文件名>
#include"文件名"(2)宏定义命令#define#undef(3)条件编译命令2.针对命名空间的指令usingnamespacestd所有的标准C++库都封装在一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025喷绘制作合同书(合同版本)
- 外贸合同模板中英文FOB
- 职业介绍居间合同
- 鞋子买卖合同
- 消防工程劳务分包合同模板
- 2025广告制作合作合同范本
- 2025郊区自有土地买卖合同
- 房屋买卖合同收据
- 山坪塘承包合同范本
- 2025富阳劳动合同样板范文
- 2025年个人土地承包合同样本(2篇)
- (完整版)高考英语词汇3500词(精校版)
- 2024年联勤保障部队第九四〇医院社会招聘笔试真题
- 网络货运行业研究报告
- 人教版七年级英语上册单元重难点易错题Unit 2 单元话题完形填空练习(含答案)
- 00015-英语二自学教程-unit1
- 新版建设工程工程量清单计价标准解读
- 2024-2025年突发紧急事故(急救护理学)基础知识考试题库与答案
- 左心耳封堵术护理
- 2024年部编版八年级语文上册电子课本(高清版)
- 合唱课程课件教学课件
评论
0/150
提交评论