河海大学软件工程导论考研讲义

上传人:a****c 文档编号:47734941 上传时间:2018-07-04 格式:PDF 页数:355 大小:2.31MB
返回 下载 相关 举报
河海大学软件工程导论考研讲义_第1页
第1页 / 共355页
河海大学软件工程导论考研讲义_第2页
第2页 / 共355页
河海大学软件工程导论考研讲义_第3页
第3页 / 共355页
河海大学软件工程导论考研讲义_第4页
第4页 / 共355页
河海大学软件工程导论考研讲义_第5页
第5页 / 共355页
点击查看更多>>
资源描述

《河海大学软件工程导论考研讲义》由会员分享,可在线阅读,更多相关《河海大学软件工程导论考研讲义(355页珍藏版)》请在金锄头文库上搜索。

1、第第 1 /38页页上一张下一张结上一张下一张结 束束第第1 1章章 程序设计导论程序设计导论专业课复习资料(最新版)专业课复习资料(最新版)封封面面第第 2 /38页页上一张下一张结上一张下一张结 束束学习目标与要求学习目标与要求重点重点 1)1)理解两种主要的程序设计方法理解两种主要的程序设计方法 2)2)掌握VC集成环境下C+程序开发的 基本流程掌握VC集成环境下C+程序开发的 基本流程难点难点 1)1)面向对象程序设计方法及基本概念面向对象程序设计方法及基本概念 2)2)VC集成开发环境VC集成开发环境第第 3 /38页页上一张下一张结上一张下一张结 束束本章要点本章要点本章将从介绍程

2、序设计语言的发展史开 始,阐述程序设计的两种主要方法本章将从介绍程序设计语言的发展史开 始,阐述程序设计的两种主要方法结构化程 序设计方法和面向对象程序设计方法,并介绍 几种常用的软件集成开发环境,最后简要介绍 网络程序设计的有关概念。结构化程 序设计方法和面向对象程序设计方法,并介绍 几种常用的软件集成开发环境,最后简要介绍 网络程序设计的有关概念。结构化程序设计 结构化程序设计 面向对象程序设计 面向对象程序设计 程序设计环境 程序设计环境 网络程序设计语言简介 网络程序设计语言简介第第 4 /38页页上一张下一张结上一张下一张结 束束1.1 结构化程序设计1.1 结构化程序设计程序设计思

3、想与计算机语言的发展程序设计思想与计算机语言的发展 程序的构成程序的构成计算机语言的发展计算机语言的发展 1. 机器语言2. 汇编语言3. 高级语言1. 机器语言2. 汇编语言3. 高级语言算法的集合 数据的集合算法的集合 数据的集合 结构化程序设计语言 函数式程序设计语言 逻辑式程序设计语言 面向对象程序设计语言结构化程序设计语言 函数式程序设计语言 逻辑式程序设计语言 面向对象程序设计语言 第第 5 /38页页上一张下一张结上一张下一张结 束束结构化程序设计方法结构化程序设计方法 1. 结构化程序设计的基本概念1. 结构化程序设计的基本概念自顶向下、逐步求精 自顶向下、逐步求精 模块化模块

4、化语句结构化语句结构化用程序流程图表示的三种程序结构 :用程序流程图表示的三种程序结构 : 语句语句语句语句假假真真语句语句语句语句条件条件假假真真语句语句条件条件(a) 顺序结构 (b) 选择结构 (c)循环结构(a) 顺序结构 (b) 选择结构 (c)循环结构第第 6 /38页页上一张下一张结上一张下一张结 束束2. 结构化程序设计的基本过程 2. 结构化程序设计的基本过程 针对具体问题建立相应的数学模型设计相应的算法编程实现算法测试与调试 针对具体问题建立相应的数学模型设计相应的算法编程实现算法测试与调试 程 序 设 计 的 一 般 过 程程 序 设 计 的 一 般 过 程第第 7 /3

5、8页页上一张下一张结上一张下一张结 束束【例1.1.1】编程实现求一元二次方程 ax【例1.1.1】编程实现求一元二次方程 ax2 2+bx+c=0的根+bx+c=0的根第一步:第一步:首先要确定求解的数学模型: 首先要确定求解的数学模型: 第二步:第二步:根据数学模型设计算法是关键的一步自然语言方式 算法的描述 伪代码方式 程序流程图方式 根据数学模型设计算法是关键的一步自然语言方式 算法的描述 伪代码方式 程序流程图方式 第三步: 第三步:根据算法按某种计算机语言编写出相应 的程序根据算法按某种计算机语言编写出相应 的程序第四步: 第四步:测试程序测试程序aacbbx242 , 12第第

6、8 /38页页上一张下一张结上一张下一张结 束束用伪代码描述的算法示例用伪代码描述的算法示例begininput number to a,b,c;s=b*b-4*a*c;if (s=0)p=-b/(2*a);q=sqrt(s)/(2*a);x1=p+q;x2=p-q;print(x1,x2);elseprint(begininput number to a,b,c;s=b*b-4*a*c;if (s=0)p=-b/(2*a);q=sqrt(s)/(2*a);x1=p+q;x2=p-q;print(x1,x2);elseprint(“errorerror”);endif; end);endif;

7、 end第第 9 /38页页上一张下一张结上一张下一张结 束束常用的流程图符号常用的流程图符号(a) 端点符 (b) 处理 (c) 判断 (d) 预定义处理 (e) 连接符 (a) 端点符 (b) 处理 (c) 判断 (d) 预定义处理 (e) 连接符 第第 10 /38页页上一张下一张结上一张下一张结 束束用流程图描述的算法示例用流程图描述的算法示例真真假假开始开始输入a,b,c输入a,b,cs=0s=0计算x1、x2的值计算x1、x2的值输出错误信息输出错误信息输出x1、x2的值输出x1、x2的值结束结束s=bs=b2 2-4ac-4ac第第 11 /38页页上一张下一张结上一张下一张结

8、束束结构化程序设计和一般的程序设计 过程主要不同点在于算法的设计结构化程序设计和一般的程序设计 过程主要不同点在于算法的设计 自顶向下、逐步求精的分析过程 自底向上、逐步实现的综合过程自顶向下、逐步求精的分析过程 自底向上、逐步实现的综合过程 分析过程分析过程是指通过对需要解决的问题的详细分 析,不断地将其进行分解,每分解一次都是对 问题的进一步细化 是指通过对需要解决的问题的详细分 析,不断地将其进行分解,每分解一次都是对 问题的进一步细化 实现过程实现过程与之相反,它从底层模块开始,每个 模块都由顺序、选择、循环三种结构实现,底 层模块同时也成为实现上层模块的基础 与之相反,它从底层模块开

9、始,每个 模块都由顺序、选择、循环三种结构实现,底 层模块同时也成为实现上层模块的基础 结 构 化 程 序 设 计 的 基 本过程结 构 化 程 序 设 计 的 基 本过程第第 12 /38页页上一张下一张结上一张下一张结 束束例:判断某数是否是素数的模块分解图例:判断某数是否是素数的模块分解图 判断某个范围的数哪 些是素数判断某个范围的数哪 些是素数判断素 数判断素 数输出结 果输出结 果输 入输 入第第 13 /38页页上一张下一张结上一张下一张结 束束1.2 面向对象程序设计1.2 面向对象程序设计 结构化设计存在的问题结构化设计存在的问题基于功能的设计方法 基于功能的设计方法 结构化程

10、序设计方法是基于功能的,功能是易变 的,因而程序具有不稳定性、易变性,难以适应系 统中的变动,往往功能的变化就意味着重新设计结构化程序设计方法是基于功能的,功能是易变 的,因而程序具有不稳定性、易变性,难以适应系 统中的变动,往往功能的变化就意味着重新设计 数据与处理数据的行为或方法(函数)相分离数据与处理数据的行为或方法(函数)相分离 结构化程序设计只是封装了各个功能模块,而每个 功能模块可以随意修改客体的属性,因此一旦某个 客体属性的表达方式发生了变化,或某个行为发生 了变化,就有可能影响整个系统 结构化程序设计只是封装了各个功能模块,而每个 功能模块可以随意修改客体的属性,因此一旦某个

11、客体属性的表达方式发生了变化,或某个行为发生 了变化,就有可能影响整个系统 可重用性差 可重用性差 结构化程序设计方法的可重用单位是模块 ,这样的 重用粒度显得非常不够 结构化程序设计方法的可重用单位是模块 ,这样的 重用粒度显得非常不够 第第 14 /38页页上一张下一张结上一张下一张结 束束面向对象设计方法的形成与发展面向对象设计方法的形成与发展1.1. 面向对象程序设计始于面向对象程序设计语言的出 现,它产生的直接原因是为了提高程序的抽象程度, 以控制软件的复杂性 面向对象程序设计始于面向对象程序设计语言的出 现,它产生的直接原因是为了提高程序的抽象程度, 以控制软件的复杂性 2.2.

12、面向对象程序设计的许多原始思想都来之于 Simula语言,并在Smalltalk语言的完善和标准化过 程中得到更多的扩展面向对象程序设计的许多原始思想都来之于 Simula语言,并在Smalltalk语言的完善和标准化过 程中得到更多的扩展3.3. 面向对象程序设计(OOP)为程序员提供了一种更加 抽象和易于理解的新的计算模型,不能期望OOP能解决 更多的问题,或者减少运算的复杂度。但OOP却能用 一种更容易被人们所理解和接受的方式去描述和解决 现实问题。 面向对象程序设计(OOP)为程序员提供了一种更加 抽象和易于理解的新的计算模型,不能期望OOP能解决 更多的问题,或者减少运算的复杂度。但

13、OOP却能用 一种更容易被人们所理解和接受的方式去描述和解决 现实问题。 4.4. 面向对象程序设计方法虽然比结构化方法能更自 然地表现现实世界,但它并不能解决所有问题,它本 身存在固有的局限性 面向对象程序设计方法虽然比结构化方法能更自 然地表现现实世界,但它并不能解决所有问题,它本 身存在固有的局限性 第第 15 /38页页上一张下一张结上一张下一张结 束束面向对象的主要概念面向对象的主要概念 1抽象(Abstract)1抽象(Abstract) 抽象是指忽略事物的非本质特征,只注意 那些与当前目标有关的本质特征,从而找 出事物的共性,把具有共同性质的事物划 分为一类,得出一个抽象的概念。

14、 抽象是指忽略事物的非本质特征,只注意 那些与当前目标有关的本质特征,从而找 出事物的共性,把具有共同性质的事物划 分为一类,得出一个抽象的概念。 抽象包括过程抽象和数据抽象两个部分。抽象包括过程抽象和数据抽象两个部分。 2封装(Encapsulation)2封装(Encapsulation)封装是指将现实世界中某个客体的属性与 行为集成在一个逻辑单元内部的机制封装是指将现实世界中某个客体的属性与 行为集成在一个逻辑单元内部的机制 第第 16 /38页页上一张下一张结上一张下一张结 束束3对象(Object)3对象(Object)面向对象程序设计中的对象是现实世界中 的客体在应用程序中的具体体

15、现,其中封 装了客体的属性信息和行为方式,并用数 据表示属性,用方法表示行为方式。面向对象程序设计中的对象是现实世界中 的客体在应用程序中的具体体现,其中封 装了客体的属性信息和行为方式,并用数 据表示属性,用方法表示行为方式。对象一般来说具有5个基本特征:自治性、封闭性、交互性 、被动性 、 暂存性对象一般来说具有5个基本特征:自治性、封闭性、交互性 、被动性 、 暂存性 4类(Class)4类(Class)类(Class),是面向对象程序设计中的一 个静态概念,它是对客观世界中一组具有 共同属性的事物的抽象,类提供的是对象 实例化的模板。 类(Class),是面向对象程序设计中的一 个静态概念,它是对客观世界中一组具有 共同属性的事物的抽象,类提供的是对象 实例化的模板。 第第 17 /38页页上一张下一张结上一张下一张结 束束类之间主要存在3种关系:关联、聚合和泛化。类之间主要存在3种关系:关联、聚合和泛化。关联是指两个类或多个类之间的一种广泛的关系,只 要几个类的对象之间具有某种(属性上的)依赖关 系,就称这几个类之间的关系为关联。 关联是指两个类或多个类之间的一种广泛的关系,只 要几个类的对象之间具有某种(属性上的)依赖关 系,就称这几个类之间的关系为关联。 聚

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究生/硕士 > 专业课

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号