资源预览内容
第1页 / 共1095页
第2页 / 共1095页
第3页 / 共1095页
第4页 / 共1095页
第5页 / 共1095页
第6页 / 共1095页
第7页 / 共1095页
第8页 / 共1095页
第9页 / 共1095页
第10页 / 共1095页
亲,该文档总共1095页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1,程序设计与语言(),培养目标 课程简介 实验 学时 考核形式 教材,主讲:何洁月,2,培养目标,1.建立基本的计算机程序设计概念体系和基本的程序设计方法。 2.理解和掌握C+语言的基本语法和语义,初步理解面向对象的思想,初步掌握面向对象程序设计的方法。 3. 逐步提高学生的编程能力和调试程序的能力。 为后面的学习打好基础。,3,课程简介,第章 概述 计算机程序设计语言的发展(一般了解) 面向对象的方法(一般了解) 面向对象的软件开发(一般了解) 信息的表示与存储(理解) 程序的开发过程(一般了解) 小结,4,课程简介,第章 简单程序设计 语言概述(一般理解) 基本数据类型和表达式(掌握) 数据的输入与输出(掌握) 算法的基本控制结构(掌握) 自定义数据类型(掌握) 小结,5,课程简介,第章 函数 函数的定义与使用(掌握) 内联函数(掌握) 带默认形参值的函数(掌握) 函数重载(掌握) 函数模板(掌握) 使用系统函数(掌握) 小结,6,课程简介,第章 类与对象 面向对象的思想(理解) 面向对象程序设计的基本特点(理解) 类和对象(掌握) 构造函数和析构函数(掌握) 类的组合(掌握) 类模板(掌握) 面向对象标记(一般了解) 小结,7,课程简介,第章 程序的结构 程序的结构(理解) 生存期(掌握) 数据和函数(掌握) 静态成员(掌握) 友元(掌握) 共享数据的保护(掌握) 多文件结构和编译预处理命令(掌握) 小结,8,课程简介,第章 数组、指针与字符串 数组(掌握) 指针(掌握) 动态内存分配(掌握) 字符串(掌握),9,实验,实验共分次,每次小时,实验环境为:visual c+6.0 实验:visual c+6.0开发环境应用入门 实验:简单程序设计 实验:函数的应用 实验:类与对象 实验:程序的结构 实验:数组、指针与字符串,10,教材,教材: C+语言程序设计 C+语言程序设计习题与实验指导,11,考核,总评成绩=平时作业+上机实验+期末笔试成绩(闭卷)期末上机成绩(闭卷) 平时作业占 10% 平时上机实验占 10% 期末笔试成绩(闭卷)占 60% 期末上机成绩(闭卷)占 20%,12,第一章 绪论,计算机程序设计语言的发展 面向对象的方法 面向对象的软件开发 信息的表示与存储 程序的开发过程,13,1.1计算机语言的发展,计算机的工作是用程序来控制的 程序是指令的集合。 指令是计算机可以识别的命令。,计算机程序,14,机器语言,由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。 计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。 例如 1011 1111 1101 缺点:难懂,不易修改,移植性差,15,汇编语言,汇编语言将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。 此时编程语言与人类自然语言间的鸿沟略有缩小,但仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。 例如 ADD CX,DX 将DX的内容加进CX 。不能立即执行,需要汇编,变成目标程序。,16,高级语言,高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。 例如 if y3 z=x+y; 类似英语和数学表达式,17,高级语言,分成 解释方式与编译方式,解 释 程 序,运 行 结 果,编 译 程 序,目 标 程 序,初 始 数 据,目 标 程 序,源 程 序,源程序,初始数据,运 行 结 果,18,高级语言发展:,第一代语言是对数学表达式有很强的运算处理能力 代表是Fortran 和Algol 60 第二代语言的重点如何有效地表达算法 代表是Pascal 和C 第三代语言引入抽象数据类型的程序设计语言 代表是被认为是基于对象的语言 第四代面向对象程序设计语言 代表是Smalltalk、Eiffel、c+、Java,19,面向对象的语言,出发点: 更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。 特点: 是高级语言。 将客观事物看作具有属性和行为的对象。 通过抽象找出同一类对象的共同属性和行为,形成类。 通过类的继承与多态实现代码重用,20,面向对象的语言,优点: 使程序能够比较直接地反问题域的本来面目,软件开发人员能够利用人类认识事物所采用的一般思维方法来进行软件开发。,21,语言的鸿沟,面向对象的语言,自然语言,非面向对象的语言,汇编语言,机器语言,对问题域的认识(人,语言的鸿沟,编程(人,程序的理解和执行(机器,22,程序的目的:用于数学计算 主要工作:设计求解问题的过程 缺点:对于庞大、复杂的程序难以开发和维护,1.2 面向对象的方法,面向对象方法的由来 一、程序设计方法的发展历程 面向过程的程序设计方法,23,二、程序设计方法的发展历程面向过程的结构化程序设计方法,设计思路 自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。 程序结构: 按功能划分为若干个基本模块,形成一个树状结构。 各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。 其模块化实现的具体方法是使用子程序。,24,25,优点: 有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。,26,缺点:可重用性差、数据安全性差、难以开发图形界面的应用 把数据和处理数据的过程分离为相互独立的实体。 当数据结构改变时,所有相关的处理过程都要进行相应的修改。 每一种相对于老问题的新方法都要带来额外的开销。 图形用户界面的应用,很难用过程来描述和实现,开发和维护都很困难。,27,三、程序设计方法的发展历程 面向对象的方法,将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体对象。 对同类型对象抽象出其共性,形成类。 类通过一个简单的外部接口,与外界发生关系。 对象与对象之间通过消息进行通讯。,28,优点: 程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。 通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。,29,面向对象的基本概念 对象,一般意义上的对象: 是现实世界中一个实际存在的事物。 可以使有形的(比如一辆汽车),也可以是无形的(比如一项计划)。 是构成世界的一个独立单位,具有: 静态特征:可以用某种数据来描述 动态特征:对象所表现的行为或具有的功能,30,面向对象方法中的对象: 是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。 属性:用来描述对象静态特征的数据项。 行为:用来描述对象动态特征的操作序列。,31,面向对象的基本概念 类,分类人类通常的思维方法 分类所依据的原则抽象 忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。 例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象出的概念。,32,面向对象方法中的类 具有相同属性和服务的一组对象的集合 为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。 类与对象的关系:犹如模具与铸件之间的关系,一个属于某类的对象称为该类的一个实例。,集合成员 抽象描述具体实例,集合成员 抽象描述具体实例,33,面向对象的基本概念 封装,把对象的属性和服务结合成一个独立的系统单位。 尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏障),只保留有限的对外接口使之与外部发生联系。,34,封装,顾客,35,面向对象的基本概念 继承,继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。 定义:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。 例如:将轮船作为一个一般类,客轮便是一个特殊类。,36,哺乳动物 热血、有毛发、用奶哺育幼仔,狗 有犬牙、食肉、特定的骨骼结构、群居,柯利狗 尖鼻子、身体颜色红白相间、适合放牧,37,面向对象的基本概念 多态性,多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。 例如: 数的加法-实数的加法 -复数的加法 例动物叫,38,面向对象的软件工程,面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程(OOP) 面向对象的测试(OOT) 面向对象的软件维护(OOSM),面向对象的软件开发,39,传统的软件工程方法,面向对象的软件工程方法,自然语言,分析与设计的鸿沟,编程语言,自然语言,面向对象的编程语言,40,系统分析,系统分析阶段应该扼要精确地抽象出系统必须做什么,但是不关心如何去实现。 面向对象的系统分析,直接用问题域中客观存在的事物建立模型中的对象,对单个事物及事物之间的关系,都保留他们的原貌,不做转换,也不打破原有界限而重新组合,因此能够很好地映射客观事物。,41,设计,针对系统的一个具体实现运用面向对象的方法。其中包括两方面的工作: 把OOA模型直接搬到OOD,作为OOD的一部分 针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分。,42,编程,OOP工作就是用一种面向对象的编程语言把OOD模型中的每个成分书写出来,是面向对象的软件开发最终落实的重要阶段。,43,测试,测试的任务是发现软件中的错误。 在面向对象的软件测试中继续运用面向对象的概念与原则来组织测试,以对象的类作为基本测试单位,可以更准确的发现程序错误并提高测试效率。,44,维护,将软件交付使用后,工作并没有完结,还要根据软件的运行情况和用户的需求,不断改进系统。 使用面向对象的方法开发的软件,其程序与问题域是一致的,因此,在维护阶段运用面向对象的方法可以大大提高软件维护的效率。,45,信息的表示和存储,信息的分类 计算机的数字系统 程序设计中常用的数制 不同进位计数制间的转换 信息的存储单位 二进制数的编码表示 小数的表示方法 非数值信息的表示,46,信息的分类, 指令 控制信息 控制字 信息 定点数 数值信息 数据信息 浮点数 字符数据 非数值信息 逻辑数据,47,计算机的数字系统,计算机采用的是二进制数字系统。 基本符号:0、1 进位原则:逢二进一 优点: 易于物理实现 二进制数运算简单 机器可靠性高 通用性强 缺点:对人来说可读性差,48,程序设计中常用的数制,49,不同进位计数制间的转换 R 进制十进制,各位数字与它的权相乘,其积相加。 例如: (11111111.11)2=1*27 + 1*26 + 1* 25 +1* 24 + 1* 23 + 1* 22 +1* 21+ 1* 20+1*2-1+1*2-2 =(255.75)10 (3506.2)8=3*83 + 5*82 + 0*81 + 6*80 +2*8-1=(1862.25)10 (0.2A)16=2*16-1 +10*16-2=(0.1640625)10,50,不同进位计数制间的转换 十进制 R 进制,十进制整数转换成R进制的整数 “除R取余”法,例如: 2 68 余 数 2 34 0 低位 2 17 0 2 8 1 2 4 0 2 2 0 2 1 0 0 1 高位 所以 681010001002,51,不同进位计数制间的转换 十进制 R 进制,十进制小数转换成R进制小数 “乘 R 取
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号