东南大学C课件.ppt
《东南大学C课件.ppt》由会员分享,可在线阅读,更多相关《东南大学C课件.ppt(1095页珍藏版)》请在三一文库上搜索。
1、程序设计与语言(),培养目标 课程简介 实验 学时 考核形式 教材,主讲:何洁月,培养目标,1. 建立基本的计算机程序设计概念体系和基本 的程序 设计方法。 2.理解和掌握C+语言的基本语法和语义,初步 理解面 向对象的思想,初步掌握面向对象程序 设计的方法。 3. 逐步提高学生的编程能力和调试程序的能力。 为后面的学习打好基础。,课程简介,第章 概述 计算机程序设计语言的发展(一般了解) 面向对象的方法(一般了解) 面向对象的软件开发(一般了解) 信息的表示与存储(理解) 程序的开发过程(一般了解) 小结,课程简介,第章 简单程序设计 语言概述(一般理解) 基本数据类型和表达式(掌握) 数据
2、的输入与输出(掌握) 算法的基本控制结构(掌握) 自定义数据类型(掌握) 小结,课程简介,第章 函数 函数的定义与使用(掌握) 内联函数(掌握) 带默认形参值的函数(掌握) 函数重载(掌握) 函数模板(掌握) 使用系统函数(掌握) 小结,课程简介,第章 类与对象 面向对象的思想(理解) 面向对象程序设计的基本特点(理解) 类和对象(掌握) 构造函数和析构函数(掌握) 类的组合(掌握) 类模板(掌握) 面向对象标记(一般了解) 小结,课程简介,第章 程序的结构 程序的结构(理解) 生存期(掌握) 数据和函数(掌握) 静态成员(掌握) 友元(掌握) 共享数据的保护(掌握) 多文件结构和编译预处理命
3、令(掌握) 小结,课程简介,第章 数组、指针与字符串 数组(掌握) 指针(掌握) 动态内存分配(掌握) 字符串(掌握),实验,实验共分次,每次小时,实验环境为:visual c+6.0 实验:visual c+6.0开发环境应用入门 实验:简单程序设计 实验:函数的应用 实验:类与对象 实验:程序的结构 实验:数组、指针与字符串,教材,教材: C+语言程序设计 C+语言程序设计习题与实验指导,考核,总评成绩=平时作业+上机实验+期末笔试成绩 (闭卷)期末上机成绩(闭卷) 平时作业占 10% 平时上机实验占 10% 期末笔试成绩(闭卷)占 60% 期末上机成绩(闭卷)占 20%,第一章 绪论,计
4、算机程序设计语言的发展 面向对象的方法 面向对象的软件开发 信息的表示与存储 程序的开发过程,1.1计算机语言的发展,计算机的工作是用程序来控制的 程序是指令的集合。 指令是计算机可以识别的命令。,计算机程序,机器语言,由计算机硬件系统可以识别的二进制指令组成的语言称为机器语言。 计算机发展的初期,软件工程师们只能用机器语言来编写程序。这一阶段,在人类的自然语言和计算机编程语言之间存在着巨大的鸿沟。 例如 1011 1111 1101 缺点:难懂,不易修改,移植性差,汇编语言,汇编语言将机器指令映射为一些可以被人读懂的助记符,如ADD、SUB等。 此时编程语言与人类自然语言间的鸿沟略有缩小,但
5、仍与人类的思维相差甚远。因为它的抽象层次太低,程序员需要考虑大量的机器细节。 例如 ADD CX,DX 将DX的内容加进CX 。不能立即执行,需要汇编,变成目标程序。,高级语言,高级语言屏蔽了机器的细节,提高了语言的抽象层次,程序中可以采用具有一定涵义的数据命名和容易理解的执行语句。这使得在书写程序时可以联系到程序所描述的具体事物。 例如 if y3 z=x+y; 类似英语和数学表达式,高级语言,分成 解释方式与编译方式,解 释 程 序,运 行 结 果,编 译 程 序,目 标 程 序,初 始 数 据,目 标 程 序,源 程 序,源程序,初始数据,运 行 结 果,高级语言发展:,第一代语言是对数
6、学表达式有很强的运算处理能力 代表是Fortran 和Algol 60 第二代语言的重点如何有效地表达算法 代表是Pascal 和C 第三代语言引入抽象数据类型的程序设计语言 代表是被认为是基于对象的语言 第四代面向对象程序设计语言 代表是Smalltalk、Eiffel、c+、Java,面向对象的语言,出发点: 更直接地描述客观世界中存在的事物(对象)以及它们之间的关系。 特点: 是高级语言。 将客观事物看作具有属性和行为的对象。 通过抽象找出同一类对象的共同属性和行为,形成类。 通过类的继承与多态实现代码重用,面向对象的语言,优点: 使程序能够比较直接地反问题域的本来面目,软件开发人员能够
7、利用人类认识事物所采用的一般思维方法来进行软件开发。,语言的鸿沟,面向对象的语言,自然语言,非面向对象的语言,汇编语言,机器语言,对问题域的认识(人,语言的鸿沟,编程(人,程序的理解和执行(机器,程序的目的:用于数学计算 主要工作:设计求解问题的过程 缺点:对于庞大、复杂的程序难以开发和维护,1.2 面向对象的方法,面向对象方法的由来 一、程序设计方法的发展历程 面向过程的程序设计方法,二、程序设计方法的发展历程 面向过程的结构化程序设计方法,设计思路 自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。 程序结构: 按功能划分为若干个基本模块,形成一个树状结构。 各模块间的关系尽
8、可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。 其模块化实现的具体方法是使用子程序。,优点: 有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。,缺点:可重用性差、数据安全性差、难以开发图形界面的应用 把数据和处理数据的过程分离为相互独立的实体。 当数据结构改变时,所有相关的处理过程都要进行相应的修改。 每一种相对于老问题的新方法都要带来额外的开销。 图形用户界面的应用,很难用过程来描述和实现,开发和维护都很困难。,三、程序设计方法的发展历程 面向对象的方法,将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体
9、对象。 对同类型对象抽象出其共性,形成类。 类通过一个简单的外部接口,与外界发生关系。 对象与对象之间通过消息进行通讯。,优点: 程序模块间的关系更为简单,程序模块的独立性、数据的安全性就有了良好的保障。 通过继承与多态性,可以大大提高程序的可重用性,使得软件的开发和维护都更为方便。,面向对象的基本概念 对象,一般意义上的对象: 是现实世界中一个实际存在的事物。 可以使有形的(比如一辆汽车),也可以是无形的(比如一项计划)。 是构成世界的一个独立单位,具有: 静态特征:可以用某种数据来描述 动态特征:对象所表现的行为或具有的功能,面向对象方法中的对象: 是系统中用来描述客观事物的一个实体,它是
10、用来构成系统的一个基本单位。对象由一组属性和一组行为构成。 属性:用来描述对象静态特征的数据项。 行为:用来描述对象动态特征的操作序列。,面向对象的基本概念 类,分类人类通常的思维方法 分类所依据的原则抽象 忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,把具有共同性质的事物划分为一类,得出一个抽象的概念。 例如,石头、树木、汽车、房屋等都是人们在长期的生产和生活实践中抽象出的概念。,面向对象方法中的“类“ 具有相同属性和服务的一组对象的集合 为属于该类的全部对象提供了抽象的描述,包括属性和行为两个主要部分。 类与对象的关系: 犹如模具与铸件之间的关系,一个属于某
11、类的对象称为该类的一个实例。,集合成员 抽象描述具体实例,集合成员 抽象描述具体实例,面向对象的基本概念 封装,把对象的属性和服务结合成一个独立的系统单位。 尽可能隐蔽对象的内部细节。对外形成一个边界(或者说一道屏障),只保留有限的对外接口使之与外部发生联系。,封装,顾客,面向对象的基本概念 继承,继承对于软件复用有着重要意义,是面向对象技术能够提高软件开发效率的重要原因之一。 定义:特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。 例如:将轮船作为一个一般类,客轮便是一个特殊类。,哺乳动物 热血、有毛发、用奶哺育幼仔,狗 有犬牙、食肉、特定的骨骼结构、群居,柯利狗 尖鼻子
12、、身体颜色红白相间、适合放牧,面向对象的基本概念 多态性,多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。 例如: 数的加法-实数的加法 -复数的加法 例 动物叫,面向对象的软件工程,面向对象的软件工程是面向对象方法在软件工程领域的全面应用。它包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程(OOP) 面向对象的测试(OOT) 面向对象的软件维护(OOSM),面向对象的软件开发,传统的软件工程方法,面向对象的软件工程方法,自然语言,分析与设计的鸿沟,编程语言,
13、自然语言,面向对象的编程语言,系统分析,系统分析阶段应该扼要精确地抽象出系统必须做什么,但是不关心如何去实现。 面向对象的系统分析,直接用问题域中客观存在的事物建立模型中的对象,对单个事物及事物之间的关系,都保留他们的原貌,不做转换,也不打破原有界限而重新组合,因此能够很好地映射客观事物。,设计,针对系统的一个具体实现运用面向对象的方法。其中包括两方面的工作: 把OOA模型直接搬到OOD,作为OOD的一部分 针对具体实现中的人机界面、数据存储、任务管理等因素补充一些与实现有关的部分。,编程,OOP工作就是用一种面向对象的编程语言把OOD模型中的每个成分书写出来,是面向对象的软件开发最终落实的重
14、要阶段。,测试,测试的任务是发现软件中的错误。 在面向对象的软件测试中继续运用面向对象的概念与原则来组织测试,以对象的类作为基本测试单位,可以更准确的发现程序错误并提高测试效率。,维护,将软件交付使用后,工作并没有完结,还要根据软件的运行情况和用户的需求,不断改进系统。 使用面向对象的方法开发的软件,其程序与问题域是一致的,因此,在维护阶段运用面向对象的方法可以大大提高软件维护的效率。,信息的表示和存储,信息的分类 计算机的数字系统 程序设计中常用的数制 不同进位计数制间的转换 信息的存储单位 二进制数的编码表示 小数的表示方法 非数值信息的表示,信息的分类, 指令 控制信息 控制字 信息 定
15、点数 数值信息 数据信息 浮点数 字符数据 非数值信息 逻辑数据,计算机的数字系统,计算机采用的是二进制数字系统。 基本符号:0、1 进位原则:逢二进一 优点: 易于物理实现 二进制数运算简单 机器可靠性高 通用性强 缺点:对人来说可读性差,程序设计中常用的数制,不同进位计数制间的转换 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 +
16、6*80 +2*8-1 =(1862.25)10 (0.2A)16=2*16-1 +10*16-2=(0.1640625)10,不同进位计数制间的转换 十进制 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,不同进位计数制间的转换 十进制 R 进制,十进制小数转换成R进制小数 “乘 R 取整”法,例如: 高位 0.31252 = 0 .625 0.625 2 = 1 .25 0.25 2 = 0 .5 0.5 2 = 1 .0 所以
17、0.312510 = 0.01012,不同进位计数制间的转换 二、八、十六进制的相互转换,每位八进制数相当于三位二进制数 每位十六进制数相当于四位二进制数 (1011010.10)2=(001 011 010 .100)2 =(132.4)8 (1011010.10)2=(0101 1010 .1000)2 =(5A.8)16 (F7)16(1111 0111)2(11110111)2,信息的存储单位,位(bit):度量数据的最小单位,表示一位二进制信息。 字节(byte):由八位二进制数字组成(1 byte = 8 bit)。 K 字节 1 K = 1024 byte M 字节 1 M =
18、1024 K G 字节 1 G = 1024 M,二进制数的编码表示: 原码,“符号绝对值表示“的编码 例如: X=+0101011 X原 = 0 0101011 X=-0101011 X原 = 1 0101011 符号位 缺点: 零的表示不唯一: +0原 =000.0 -0原 =100.0 进行四则运算时,符号位需单独处 理,且运算规则复杂。,二进制数的编码表示:反码,正数的反码与原码表示相同。 负数的反码与原码有如下关系: 符号位相同(仍用1表示),其余各位取反(0变1,1变0)。例如: X=-1100110 X原 =11100110 X反 =10011001 X=+0000000 X原
19、=00000000 X反 =00000000 反码中零的表示也不唯一 X=-0000000 X原 =10000000 X反 =11111111 反码只是求补码的中间码,二进制数的编码表示:补码,模数: n位整数(包括一位符号位),则它的模数为 2n 。 n位小数,小数点前一位为符号位,则它的模数为 2。 补数: 一个数减去另一个数,或者说一个数加上一个负数,等于第一个数加上第二个数的补数。例:8+(-2)=8+10 ( mod 12 ) 一个二进制负数可用其模数与真值做 加法 (模减去该数的绝对值) 求得其补 码。,二进制数的编码表示:补码,计算机中的补码表示法 负数的补码由该数反码的末位加
20、1 求得 对补码再求补即得到原码 补码运算规则p14 符号位可作为数值参加运算 减法运算可转换为加法运算: 加上一个负数等于加上该数的补码 补码运算的结果仍为补码 运算结果溢出: 负数之和得正数,或正数之和得负数,小数的表示方法,计算机中通常采用浮点方式表示小数 一个数 N 用浮点形式表示可以写成: N=M2E E表示2的幂,称为数N的阶码。阶码确定了数N的小数点的位置,其位数反映了该浮点数所表示的数的范围。 M表示数N的全部有效数字,称为数N的尾数。其位数反映了数据的精度。 p15,非数值信息的表示,西文字符: ASCII码:用7位二进制数表示一个字符,最多可以表示27=128个字符 EBC
21、DIC码:用8位二进制数表示一个字符,最多可以表示28=256个字符 汉字: 应用较为广泛的是“国家标准信息交换用汉字编码“(GB2312-80标准),简称国标码。是二字节码,用二个七位二进制数编码表示一个汉字。,程序的开发过程,源程序、目标程序、翻译程序 三种不同类型的翻译程序: 汇编程序、编译程序、解释程序 程序的开发过程 编辑、编译、连接、运行调试,基本术语,源程序: 用源语言写的,有待翻译的程序 目标程序: 也称为“结果程序“,是源程序通过翻译程序加工以后所生成的程序。 翻译程序: 是指一个把源程序翻译成等价的目标程序的程序。,基本术语 三种不同类型的翻译程序,汇编程序: 其任务是把用
22、汇编语言写成的源程序,翻译成机器语言形式的目标程序。 编译程序: 若源程序是用高级程序设计语言所写,经翻译程序加工生成目标程序,那么,该翻译程序就称为“编译程序“。,基本术语 三种不同类型的翻译程序,解释程序: 这也是一种翻译程序,同样是将高级语言源程序翻译成机器指令。它与编译程序不同点就在于:它是边翻译边执行的,即输入一句、翻译一句、 执行一句,直至将整个源程序翻译并执行完毕。,程序的开发过程,编辑 将源程序输入到计算机中,生成后缀为cpp的磁盘文件。 编译 将程序的源代码转换为机器语言代码。 连接 将多个源程序文件以及库中的某些文件连在一起,生成一个后缀为exe的可执行文件。 运行调试,程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东南大学 课件
链接地址:https://www.31doc.com/p-2496486.html