搜档网
当前位置:搜档网 › 中国石油大学(华东)软件工程导论复习资料

中国石油大学(华东)软件工程导论复习资料

中国石油大学(华东)软件工程导论复习资料
中国石油大学(华东)软件工程导论复习资料

软件工程的定义:

◆传统定义

为了经济地获得可靠的和能在实际机器上有效运行的软件,确立并应用健全的工程原理

◆IEEE 定义

软件工程是

.将系统的、规范的和可计量的方法应用于软件的开发、操作和维护,即将工程化应用于软件

软件的构成要素:

软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。程序:是按事先设计的功能和性能要求执行的指令序列;

数据:是使程序能正常操纵信息的数据结构;

文档:是与程序开发、维护和使用有关的图文材料。

软件的特点:

1.软件是一种逻辑实体,具有抽象性;

2.是开发的,而不是制造的

3.具有柔性

4.不磨损

软件工程的范围:

每个软件项目都是为某种商业需要而设计的

已经成为基于计算机的系统和产品演变过程中的关键因素

已经从专门问题的解决方案和分析信息的工具,转变为完整的结构良好的行业

涉及广泛的技术和应用领域,然而所有软件的演变都遵循着30 多年来一成不变的规律

软件工程为构建高质量的软件提供基础框架

软件工程的三个要素是方法、工具、过程。

瀑布模型的特点:

1.阶段间具有顺序性和依赖性

2.推迟实现的观点

3.质量保证的观点

快速原型模型的特点:

◆快速原型模型先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后

逐步完善,最终获得满意的软件产品。

◆快速实现和提交一个有限的版本,可以应付市场竞争的压力。

螺旋模型的特点:

◆对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的

一个重要目标;

◆减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险;

◆更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。

◆螺旋模型的主要优势在于它是风险驱动的,但这也是其一个弱点,要求开发人员具有丰富的

风险评估经验和这方面的专门知识。

螺旋模型主要适用于内部开发的大规模软件项目

增量模型的特点:

◆采用瀑布模型和快速原形模型等开发软件时,目标都是一次就把一个满足所有需求的产品提

交给用户。而增量模型则是一个构件接一个构件地提交,因此能在较短的时间内向用户提交可完成部分工作的产品;

◆逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品;

◆开发人员既要把软件看作一个整体,又要把它分解成合适的构件序列,每个构件本质上都独

立于另一个构件,这一点较难做到

喷泉模型特征:

◆喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开

发过程

◆软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,

类似一个喷泉。

◆各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其

他任何开发阶段中的遗漏

可行性分析考虑的方面:

技术,经济,操作,法律,时间,社会等;

可行性研究的步骤:

1、复查确认系统的目标规模,明确限制的约束

2、研究目前正在使用的系统

3、导出新系统的高层逻辑模型(conceptual design)

4、重新定义

5、导出和评价供选择的方案

6、推荐可行的方案

7、草拟开发计划(粗略)

8、编写可行性研究报告、审查、存档

需求分析的任务:

一、确定对系统的综合要求

二、分析系统的数据要求

三、导出系统的逻辑模型

四、修正系统开发计划

数据建模:

数据模型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。数据对象是对软件必须理解的复合信息的抽象。所谓复合信息是指具有一系列不同性质或属性的事物,仅有单个值的事物不是数据对象。由一组属性来定义的实体都可以被认为是数据对象。

属性定义了数据对象的性质。必须把一个或多个属性定义为“标识符”,也就是说,当我们希望找到数据对象的一个实例时,用标识符属性作为“关键字”(通常简称为“键”)。应该根据对所要解决的问题的理解,来确定特定数据对象的一组合适的属性。

数据建模

数据对象彼此之间相互连接的方式称为联系,也称为关系。联系可分为以下3种类型:

(1) 一对一联系(1∶1)

(2) 一对多联系(1∶N)

(3) 多对多联系(M∶N)

联系也可能有属性。

在需求分析阶段,通常使用E-R图(entity-relationship diagram)来建立数据模型,描述数据对象和它们之间的关系。

相应地可把用E-R图描绘的数据模型称为E-R模型。

E-R模型使用简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它,因此,ER模型可以作为用户与分析员之间有效的交流工具。

E-R图中包含了实体(即数据对象)、关系和属性等3种基本成分。通常用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆形或圆角矩形表示实体(或关系)的属性,并用直线把实体(或关系)与其属性连接起来。

例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的数据对象(实体型)有学生、教师和课程。

数据流图

数据流图(DFD)是一种图形化技术,它描绘数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。

数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,是分析员与用户之间极好的通信工具。

设计数据流图时只需考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能,所以它也是今后进行软件设计的很好的出发点。

数据流图的基本要点是描绘“做什么”而不考虑“怎样做”。

数据流图(DFD)中的主要图形元素

数据加工(数据变换)

数据源点或终点(外部实体)

数据流

数据存储

注意:在数据流图中,应该描绘所有可能的数据流向,而不应该描绘出现某个数据流的条件。

数据字典

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

数据流图描述了系统的“分解”;

依靠“词典”来说明各个成分的含义;

数据流图中所有名字的定义就构成一本词典;

数据字典和数据流图共同构成系统的逻辑模型。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明;

数据流图中出现的每一个数据流名、每一个文件名和每一个加工名在词典中都应该有一个条目给出这个名字的定义。

行为建模

行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种建模的符号。状态转换图提供了行为建模机制。

状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。

状态图还指明了作为特定事件的结果系统将做哪些动作。

1.状态

状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。系统对事件的响应,既可以是做一个(或一系列)动作,也可以是仅仅改变系统本身的状态,还可以是既改变状态又做动作。

在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。

2. 事件

事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。

3. 表示符号

在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。

中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态

的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。

行为建模

活动表的语法格式如下:

事件名(参数表)/动作表达式

其中:

“事件名”可以是任何事件的名称。在活动表中经常使用下述3种标准事件:entry,exit和do。entry事件指定进入该状态的动作,exit事件指定退出该状态的动作,而do事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。

事件表达式的语法如下:

事件名(参数表)[守卫条件]/动作表达式

其中:

守卫条件是一个布尔表达式。

如果同时使用事件名(参数表)和守卫条件,则当且仅当事件发生且守卫条件的布尔表达式为真时,状态转换才发生。

如果只有守卫条件,没有事件名(参数表),则只要守卫条件为真状态转换就发生。

动作表达式是一个过程表达式,当状态转换开始时执行该表达式。

1、耦合

◆耦合是对一个软件结构内不同模块之间的互相连接的紧密程度的度量。

◆耦合强弱取决于各个模块之间接口的复杂程度、调用模块的方式以及哪些信息通过接口。

◆一般模块间可能的连接方式有7种,构成耦合性的7种类型:

(1)非直接耦合(Nondirect Coupling)

?两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。

?非直接耦合的模块独立性最强。

(2)数据耦合 (Data Coupling)

一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的,称此为数据耦合。

数据耦合是松散的耦合,模块间的独立性比较强,在软件程序结构中至少必须有这种耦合。

(3)标记耦合 (Stamp Coupling)

一组模块通过参数表传递记录信息,就是标记耦合。这组模块共享了这个记录,它是某一数据结构的子结构,而不是简单变量。

在设计中应尽力避免这种耦合(但允许使用),它使在数据结构上的操作复杂化了。

(4)控制耦合 (Control Coupling)

?如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,

就是控制耦合。

?控制耦合意味着控制模块必须知道所控制模块内的一些逻辑关系,这样会降低模块的独立

性。

去除模块间控制耦合的方法

控制耦合增加了理解和编程的复杂性,调用模块必须知道被调模块的内部逻辑,增加了相互依赖。去除方法:

◆将被调用模块内的判定上移到调用模块中进行;

◆被调用模块分解成若干单一功能模块。

(5)外部耦合(External Coupling)

?一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递

该全局变量的信息,则称之为外部耦合。

例如:C语言程序中各个模块都访问被说明为extren类型的外部变量。

(6)公共耦合(Common Coupling)

若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

只有在模块之间共享的数据很多,而且通过参数表传递不方便时,才使用公共耦合,否则,还是使用模块独立性比较高的数据耦合较好些。

这种耦合会引起下列问题:

?所有公共耦合模块都与某一个公共数据环境内部各项的物理安排有关,若修改某个数据的

大小,将会影响到所有的模块;

?无法控制各个模块对公共数据的存取,严重影响软件模块的可靠性和适应性;

?公共数据名的使用,明显降低了程序的可读性。

慎用公共数据区和全程变量!!!

公共耦合的复杂程度随耦合模块的个数增加而显著增加。若只是两模块间有公共数据环境,则公共耦合有两种情况,即松散公共耦合和紧密公共耦合。

(7)内容耦合 (Content Coupling)

如果发生下列情形,两个模块之间就发生了内容耦合:

?一个模块直接访问另一个模块的内部数据;

?一个模块不通过正常入口转到另一模块内部;

?两个模块有一部分程序代码重迭;

?一个模块有多个入口。

模块独立性比较强的模块应是低耦合的模块。

耦合是影响软件复杂程度的一个重要因素。应该采取下述设计原则:

尽量使用数据耦合,少用控制耦合和标记耦合,限制公共耦合的范围,完全不用内容

耦合。

2、内聚

◆内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量;

◆内聚是信息隐藏和局部化概念的自然扩展,它标志一个模块内部各成分彼此结合的紧密程度;

◆一般模块的内聚性分为七个类型:

(1)功能内聚 (Functional Cohesion)

一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。

功能内聚模块的优点是模块的内聚程度最高,容易修改和维护,模块间的耦合是简单的。(2)信息内聚(Sequential Cohesion)

亦称顺序内聚,模块中所有处理元素和同一个功能密切相关,且这些处理必须顺序执行。

通常,信息内聚的模块,其前一成分的输出是后一成分的输入。

(3)通信内聚(Communication Cohesion)

如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。

(4)过程内聚(Procedural Cohesion)

?如果一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为过程内聚。

?使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚

模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。

(5) 时间内聚(Classical Cohesion)

时间内聚又称为经典内聚。这种模块大多为多功能模块,但模块的各个功能的执行与时间有关,通常要求所有功能必须在同一时间段内执行。例如初始化模块、终止模块、紧急故障处理模块等均是时间性聚合模块。

(6)逻辑内聚

(Logical Cohesion)

这种模块把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行哪一种功能。

(7)巧合内聚

亦称偶然内聚

当模块内各部分之间没有联系,或者即使有联系,这种联系也很松散,则称这种模块为巧合内聚模块,它是内聚程度最低的模块。

模块独立性比较强的模块应是高内聚的模块。

总体设计准则

1、改进软件结构,提高模块独立性

2、模块规模适中,功能单一

3、模块的深度、宽度、扇出和扇入

4、模块的作用域应该在控制域之内

5、力争降低模块接口的复杂程度

6、设计单入口单出口的模块

7、模块功能应该可以预测

过程设计

1.程序流程图也称为程序框图,有五种基本控制结构:

顺序型、先判断重复型、选择型、后判断重复型、多分支选择型

2.n-s图N-S图也叫做盒图

程序复杂程度的定量度量

程序复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。

◆减少程序复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,

软件内部潜藏错误减少。

一、代码行度量法

◆统计一个程序的源代码行数,以源程序行数作为程序复杂程度的量度,源程序代码行数越大

认为越复杂。

◆源代码行数度量法基于两个前提: 程序复杂性随着程序规模的增加而均衡地增长; 控制

程序规模的方法最好是采用分而治之的办法。将一个大程序分解成若干个简单的可理解的程

序段。

二、McCabe度量法

◆McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程

序的环形复杂

度。

◆为了突出表示程序的控制流,通常使用流图(也称为程序图)。所谓流图实质上是“退化了

的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。

流图的表示:

◆在流图中用圆表示结点,一个圆代表一条或多条语句。程序流程图中的一个顺序的处理框

序列和一个菱形判定框,可以映射成流图中的一个结点。

◆流图中的箭头线称为边,它和程序流程图中的箭头线类似,代表控制流。在流图中一条

边必须终止于一个结点,即使这个结点并不代表任何语句(实际上相当于一个空语句)。

◆由边和结点围成的面积称为区域,当计算区域数时应该包括图外部未被围起来的那个区域。

当过程设计中包含复合条件时,生成流图的方法稍微复杂一些。所谓复合条件,就是在条件中包含了一个或多个布尔运算符。

在这种情况下,应该把复合条件分解为若干个简单条件,每个简单条件对应流图中一个结点。包含条件的结点称为判定节点,从每个判定结点引出两条或多条边。下图是由包含复合条件的PDL片断翻译成的流图。

计算环形复杂度的方法

可以用下述3种方法中的任何一种来计算环形复杂度:

(1) 流图中的区域数等于环形复杂度。

(2) 流图G的环形复杂度V(G)=E-N+2,其中,E是流图中有向边的条数,N是结点数。

(3) 流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。

三、Halstead方法

采用程序中运算符和操作数的总数来度量程序复杂程度

(1)实际的Halstead 长度:

N=N1+N2

N1:为运算符出现的总次数。

N2:为操作数出现的总次数。

在定义中,运算符包括:

算术运算符赋值符(=或:=)

逻辑运算符分界符(,或;或:)

关系运算符括号运算符

子程序调用符数组操作符

循环操作符等。

特别地,成对的运算符,例如

begin…end、if…then…else、for…to、

repeat …until、while…do、(…)

等都当做单一运算符。

运算对象包括变量名和常数。

(2)预测的Halstead 长度公式:

H= n1log2n1 +n2log2n2

n1: 为运算符的数量(不同类型)

n2: 为操作数的数量(不同类型)

H: 为预测程序长度。

(3)实践验证表明,预测长度与实际长度非常接近。

一、软件维护的类型

◆完善性维护(Perfective Maintenance)

扩充原有系统的功能,提高原有系统的性能,满

足用户的实际需要。

◆纠错性维护(CorrectiveMaintenance)

对在测试阶段未能发现的,在软件投入使用后才逐渐暴露出来的错误的测试、诊断、定位、纠错以及验证、修改的回归测试过程。

◆适应性维护(AdaptiveMaintenance)

要使运行的软件能适应运行环境的变动而修

改软件的过程。

◆预防性维护(PreventiveMaintenance)

为了进一步改善软件的可靠性和易维护性,

或者为将来的维护奠定更好的基础而对软件进

行修改。

软件测试方法分为两类:白盒测试法、黑盒测试法

白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确的。

①语句覆盖:选择足够的测试用例,使得程序中每个语句至少都能被执行一次。

②判定覆盖:执行足够的测试用例,使得程序中每个判定至少都获得一次“真”

值和“假”值。

③条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结

果。

④判定/条件覆盖:执行足够的测试用例,使得判定中每个条件取到各种可能的

值,并使每个判定取到各种可能的结果。

⑤条件组合覆盖:执行足够的例子,使得每个判定中条件的各种可能组合都至

少出现一次。

例:用白盒法测试以下程序段:

Procedure(VAR A,B,X:REAL);

BEGIN

IF (A>1) AND (B=0)

THEN X:=X/A ;

IF (A=2) OR (X>1)

THEN X:=X+1

END;1)选择逻辑覆盖标准。

2)按照覆盖标准列出所有情况。

3选择确定测试用例。

4)验证分析运行结果与预期结果。

小结:逻辑覆盖测试的5种标准

独立路径是指包括一组以前没有处理的语句或条件的一条路径。用流图术语描述,一条独立路径是至少包含有一条在定义该路径之前不曾用过的边。

用于测试循环结构的有效性。

在结构化程序中,循环通常有三类:简单循环

嵌套循环

串接循环

1.调试技术①输出存储器内容(memory dump): 以八进制或十六进制的

形式印出存储器的内容。

缺点:

?输出信息量极大,不易解读且大多无用;

?输出的是程序在某一时刻的静态情况,且往往不是出错时的状态。

②插入“watch points”(或称“spy

points”)

缺点:

改动源代码,增加了出错机会;

打印信息有可能太多

自动调试工具——无须打印额外信息,且不改动源代码

2.调试策略。主要有:

①试探法凭经验猜测

②回溯法:由症状(symptom)最先出现的地方,沿

control flow向回检查。适用于小型程序。

③对分法:在关键点插入变量的正确值,则:

④归纳法:从错误症状中找出规律,推断根源。

⑤演绎法:普通→

特殊

从假设中逐步排除、精化,从而导出错误根源。

7.5 软件可靠性(Reliability)

?可靠性(Reliability):程序在给定的时间间隔内,按照说明书的规定,成功地运行的概率。

?可用性(Usability):程序在给定的时间点,按照说明书的规定,成功地运行的概率。

?正确性(Correctness):程序的功能正确。

设系统故障停机时间为td1, td2, …; 正常运行时间为tu1, tu2, …; 则系统的“稳态可用性”为

MTTF 平均无故障时间MTTR 平均维修时间

其中:K为经验常数(典型值约在200左右);

ET为测试前故障总

数;

IT为程序长度(机器指令总数);

τ为测试(包括调试)时间;

EC(τ)为时间从0至τ期间改正的错误数。

①ET/IT≈Constant (通常为0.5 ~ 2%)

②试中没有引入新故障(即ET与时间τ无关)

③MTTF与剩余故

障成反比

意义:可根据对软件平稳运行时间的要求,估算需改正多少个错误后才能结束测试。

软件工程导论复习资料全

名词解释: 1.软件生命周期模型 软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。 软件生存周期主要模型:瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等 2. 模块独立性 模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且 接口简单。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。 3. 软件的可维护性 软件可维护性指软件能够被理解、校正、适应及增强功能的容易程度。 4. 软件工程 软件工程指用科学知识和技术原理来定义、开发、维护软件的一门学科。或者说,软件工程就是运用工程学的基本原理和方法来组织管理软件的生产、研究、开发、管理、维护的过程、方法和技术。 5.数据字典 字据字典:简称DD,就是用来定义数据流图中的各个成分具体含义的,它以一种准确的\无二义性的说明方式为系统的分析\设计及维护提供了有关元素的一致的定义和详细 的描述。 6、静态测试 静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。 7、面向对象:面向对象OO=类+对象+继承+通信 8、需求分析 需求分析是指:开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求述转化为完整的需求定义,再由需求定义转换到相应的形式主义功能规约(需求规格说明)的过程。 9、软件危机 软件危机(Software Crisis) 是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。概括地说,主要包含两方面的问题:如何开发软件,怎样满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 10、软件生存周期 软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等。 简答: 1.软件生存周期有哪几个阶段? ①可行性研究②需求分析③总体设计④详细设计⑤编码⑥测试⑦维护 2.白盒测试法有哪些逻辑覆盖标准? ① 语句覆盖②判定覆盖③条件覆盖④判定/条件覆盖⑤条件组合覆盖⑥点覆盖、边覆盖、路径覆盖 3.软件的维护有哪4种类型?①校正性维护②适应性维护③完善性维护④ 预防性维护。4.软件成分的重用有哪3个级别?:①代码重用②设计结果重用③分析结果重用 5.设计任务管理子系统有哪7个任务?

中国石油大学华东历年模拟电路期末试卷及复习题

中国石油大学华东历年模拟电路期末试卷及复习题 篇一:中国石油大学(华东)《模拟电子技术》2015年秋季在线作业(一)及答案《模拟电子技术》2015年秋季在线作业(一)篇二:中国石油大学(华东)高等数学习题集(期末题库) 习题一一、填空题1.设f(x)?ln(1?x)? ?5x? 23?x,则此函数的定义域是___________. 2. 极限lim?3xx?0x?2x?.________________. 3. 设f(x)=arcsinx,?(x)=lnx,则?[f(x)]的定义域是_______________. 1?a??x?1?cos4. 设f(x)??x?1 ?0?x?1x?1,,在x?1处连续, 则a的值为_______________. 5 当x?x0时,f(x)是比g(x)高阶的无穷小,则当x?x0时, 无穷小f(x)+g(x) 与无穷小g(x)的关系是_______________. 6. lima2x?1 x?04x?_______________.?a?0,a?1?. 7. f(x)=arcsin(2x-1)的定义域是_____________. 8. f?x?? 9. limlnxsin?xarcsinx x的一个可去间断点x?______________. 的值等于_______________. 2x?010. f(x)?arctan?x?3?的定义域是______________. 11. 若当x?x0时,??x?,??x?是等价无穷小,??x?是比??x?高阶的无穷小,则当x?x0时,函数??x????x???x????x? ?1的极限是___________. 12. 设f(x)的定义域是[1,2],则f???的定义域是_____________. ?x?1? 13. f?x??x?2 lnx?1的一个无穷间断点=_____________. 14.f(x)?ln?4?x 15. f?x??3?x x?22?在区间_____________是连续的。的定义域是_____________.16. 极限lim 17. f(x)?xxxxxx????___________________ xx?3_的定义域是_____________. 18. 极限lim 19. lim3x?2?2x?2x?2?____________________. ln?3x?1? 6x 的值等于_________________. x?3的定义域是__________________ x?020. f?x??arccos 21. 设f?x??arcsinx,??x??lnx,则??f?x??的定义域是_____________. 22. 要使函数f?x??1?x? x?x在x=0处连续,则须定义f(0)的值为_____________ 23. 极限lim2sinn??nx2n?1?____________________. 24.f?x??ln?2?x?x2?的定义域是

软件工程导论期末复习

第一章软件工程学概述 1.什么是软件危机(概念) 在计算机软件的开发和维护过程中所遇到的一系列严重问题 2.软件工程学科出现的主要原因:软件危机的出现 3.什么是软件工程?(概念) ①把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件; ②研究①中提到的途径。 4.简述结构化范型和面向对象范型的要点,并分析他们的优缺点 目前使用得最广泛的软件工程方法学(2种): ⑴传统方法学:也称为生命周期方法学或结构化范型。 优点:把软件生命周期划分成基干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发过程的困难程度。 缺点:当软件规模庞大时,或者对软件的需求是模糊的或会承受时间而变化的时候,开发出的软件往往不成功;而且维护起来仍然很困难。 ⑵面向对象方法学 优点:降低了软件产品的复杂性;提高了软件的可理解性;简化了软件的开发和维护工作; 促进了软件重用。 5.软件生命周期每个阶段的基本任务 问题定义:准确地回答“要解决的问题是什么” 可行性研究:确定问题是否值得去解决 需求分析:准确地回答“系统必须做什么” 总体设计:①设计出实现目标系统的几种可能的方案 ②确定程序由哪些模块组成以及模块间的关系 详细设计:把解法具体化(设计出程序的详细规格说明) 编码和单元测试:写出正确的容易理解、容易维护的程序模块 综合测试:通过各种类型测试(及相应的调试)使软件达到预期的要求 软件维护:通过各种必要的维护活动使系统持久地满足用户的需要 软件生命周期由软件定义、软件开发和运行维护(也成为软件维护)3个时期组成 ①软件定义时期:问题定义、可行性研究和需求分析 ②软件开发时期:总体设计、详细设计、编码和单元测试、综合测试 ③软件维护时期

中国石油大学数据结构上机实验8

《数据结构》实验报告 学号2015011512 姓名胡明禹专业数学与应用数学时间2018.6.5 一、实验题目: 实验八最短路径 二、实验目的 1. 掌握杰斯特拉算法 2. 利用迪杰斯特拉算法计算途中一点到其他各顶点的最短路径 三、算法设计分析 实验由4个函数共同组成。其功能描述如下: (1)主函数:统筹调用各个函数以实现相应功能 void main() (2)创建有向图的邻接矩阵函数 Status CreateDG(MGraph &G) { int i,j,k,w; char v1,v2; printf("请输入顶点数和边数:"); scanf("%d%d",&G.vexnum,&G.arcnum); printf("\n请按次序输入%d个顶点字母标号(如ABCD等):",G.vexnum); getchar(); //弹出缓冲区中上次最后出入的换行符,即最后按下的回车键 for (i=0;i

中国石油大学(华东)实验报告

2014—2015学年第3学期传感器课程设计实习报告 专业班级 姓名 学号 报告日期 2015年7月20日

传感器课程设计暑期实习报告 第一部分变送器电路实验 一:实验仪器和设备 DT9208万用表一只、+5/24V直流电源一台、万能电路板一块、镊子一只、导线若干、XTR106等芯片、常用电子元器件若干。 二:实验步骤 2、了解电阻式传感器原理、测量转换线路。 把压力、温度、流量、液位等物理信号转换成电阻值变化的传感器,电阻式传感器具有结构简单、输出精度高、线性和稳定性好的特点。主要包括电阻应变式传感器、压阻式传感器等。 测量转换线路:桥路电阻(以应变片式压力传感器为例) 图1全桥式应变片测量电路 当作用在应变片上的压力发生变化时,其阻值也随之发生变化,从而引起输出电压的变化,其中R1和R3、R2和R4的阻值变化方向一致(变化方向如上图所示)。 3、阅读XTR106芯片厂家英文资料,掌握其工作基本原理。 XTR106 是高精度、低漂移、自带两路激励电压源、可驱动电桥的4 ~ 20 mA 两线制集成单片变送器,,它的最大特点是可以对不平衡电桥的固有非线性进行二次项补偿,。它可以使桥路传感器的非线性大大改善,,改善前后非线性比最大可达20:1。

4、分析图3电路的工作原理。 图2 XTR外部电路连接示意图 原理:通过改变电阻的阻值,使桥路产生相应的mV级压差,桥路的输出分别连到运放的两个正输入端,经运放以后产生V级电压差。运放的输出再进入到XTR106芯片进行线性化调整(阻值和输出电流值之间)之后产生4~20mA电流输出。其中桥路需要的5V和运放需要的5.1V供电电压由XTR106芯片提供,而XTR106芯片需要的24V供电电压由实验台提供。 5、利用万能电路板搭建上述电路,要求分部分搭建,分成电阻桥路部分、差动放大部分、XTR本体部分,要求对前两部分电路线进行测试,确认符合相关要求时方可接入第三部分电路。 在本案例中,我们完成桥路和差动放大部分的搭建后,对桥路和差动放大部分进行了测试。 当电桥平衡时: 桥路部分:,桥路的两端分别都有电压,但桥路输出为零。 差动放大部分:输入分别对应桥路两端的电压值且相等,输出为零。 电桥不平衡时: 桥路部分:桥路的输出不为零,最大时压差为0.6mV。 差动放大部分:对压差进行放大后产生V级压差,本案例中,我们的放大倍

软件工程导论复习资料解答

软件工程导论复习题汇总 一、选择题 1.软件重用的单位是A。 A.软件模块B.功能 C.系统D.语句 2.软件生存周期借用了 D 中产品生存周期的概念。 A.计算机科学B.需求 C.数学D.工程 3.项目开发计划是 D 文档。 A.技术性B.管理性 C.设计D.需求分析 4.在结构化分析(SA)中, C 与数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。 A.模块图B.E-R图 C.数据字典D.程序流程图 5.为了提高模块的独立性,模块之间最好是A 。 A.数据耦合B.控制耦合 C.公共耦合D.内容耦合 6.对一个开始是模糊的模块进行处理过程分解时,下面说法错误的是 D 。 A.用顺序方式对过程分解,确定各部分的执行顺序 B.用选择方式对过程分解,确定某个部分的执行条件 C.用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件 D.对处理过程仍然模糊的部分反复使用循环方式对过程进行分解 7.软件测试的关键问题是A 。 A.如何选择测试用例B.如何采用综合策略 C.如何验证程序的正确性D.如何组织软件评审 8.软件生存期的 D 工作与软件的可维护性有密切的关系。 A.详细设计阶段B.编码阶段 C.测试阶段D.每个阶段 9.增量模型属于一种 B 模型。 A.整体开发B.非整体开发 C.较早产生工作软件D.灵活性差 10.下列说法正确的是 D 。 A.动态模型指出发生了什么 B.对象模型确定什么时候发生 C.功能模型确定发生的客体 D.动态模型描述的系统属性是触发事件、事件序列、状态、事件与状态的组织11.用类库这种机制和结构来实现 D 中的信息共享。 A.同一应用B.不同应用 C.同一个类D.不同类

《数据结构》期末复习题_15021457072916549

中国石油大学(北京)远程教育学院期末复习题 一、选择题(本大题共15小题,每小题2分,共30分) 1.以下与数据的存储结构无关的术语是() A、循环队列 B、链表 C、哈希表 D、栈 2.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是() A、110 B、108 C、100 D、120 3.假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是() A、head= =NULL B、head–>next= =NULL C、head–>next= =head D、head!=NULL 4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是() A、2,4,3,1,5,6 B、3,2,4,1,6,5 C、4,3,2,1,5,6 D、2,3,5,1,6,4 5.下列关键字序列中,构成小根堆的是() A、{12,21,49,33,81,56,69,41} B、{81,69,56,49,41,33,21,12} C、{81,49,69,41,21,56,12,33} D、{12,21,49,33,81,41,56,69} 6.下列数据结构中,不属于二叉树的是() A、B树 B、AVL树 C、二叉排序树 D、哈夫曼树 7.用顺序存储的方法来存储一棵二叉树,存放在一维数组A[1..N]中,若结点A[i]有右孩子,则其右孩 子是()。 A、A[2i] B、A[2i-1] C、A[2i+1] D、A[i/2] 8.设树T的高度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1,则T中叶子数为() A、 5 B、 6 C、7 D、 8 9.有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高 度最小,则应选择下面哪个序列输入() A、45,24,53,12,37,96,30 B、37,24,12,30,53,45,96 C、12,24,30,37,45,53,96 D、30,24,12,37,45,96,53 1

中国石油大学华东历年考研专业课真题和答案

中国石油大学(华东)历年考研专业课真题目录: 中国石油大学(华东)历年考研 代码 真题年代 专业课真题科目 211 翻译硕士英语2011 212 翻译硕士俄语2011 242 俄语2008---2011 243 日语2008---2011 244 德语2011 245 法语2008---2011 357 英语翻译基础2011 358 俄语翻译基础2011 448 汉语写作与百科知识2011 703 公共行政学2011 704 数学分析2011 705 普通物理2011 706 有机化学2000,2005---2009,2011 707 无机及分析化学2007---2009,2011 708 生物化学2011 法学基础(法理学、民法学、刑 2011 710 法学)

711 中国古代文学2011 715 中国化马克思主义原理2008,2011 体育学专业基础综合(体育教育 2011 716 学、运动生理学、运动训练学) 801 沉积岩石学2005---2008 802 构造地质学2003---2010 803 地震勘探2003---2009,2011 805 电子技术基础2011 806 软件技术基础2011 808 地理信息系统2011 809 石油地质学2001---2011 810 测井方法与原理2005---2011 811 工程流体力学2001---2009,2011 812 理论力学2008---2011 813 材料力学2006---2011 814 物理化学1999---2009,2011 815 渗流物理2001---2009,2011 816 油田化学基础2011 817 工程热力学2008---2011 818 化工原理1999---2009,2011 819 生物工程2011

软件工程导论复习知识点

一、软件: 软件定义: 软件=程序+文档+数据 软件特点: 1、具有抽象性 2、没有明显的制造过程 3、软件的维护比硬件的维护要复杂得多 4、对计算机系统有着不同程度的依赖性 5、尚未完全摆脱手工艺的开发方式 6、软件本身是复杂的 7、软件成本相当昂贵 8、相当多的软件工作涉及到社会因素软件的发展: 程序设计、程序系统、软件工程 软件危机: 软件危机指的是软件开发和维护过程中遇到的一系列严重问题。 软件危机的问题: 如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机表现: 1.开发成本难以控制,进度不可预计; 2.软件系统的质量和可靠性很差,难以满意; 3.软件文档相当缺乏,软件系统不可维护; 4.软件开发生产率很低,软件产品供不应求。 5.软件产品成本十分昂贵。

软件危机产生原因: 1、软件本身的特点 2、对软件开发与维护存在许多错误认识和做法 3、软件开发与维护的方法不正确 解决软件危机途径: 1、将软件开发看成是一种组织严密、管理严格、各类人员协同配合共同完成的工程项目。 2、研究和推广成功的软件开发技术和方法。 3、开发和使用好的软件工具。 软件生命周期: 软件所经历的定义、开发、使用和维护直到废弃所经历的时期。 程序设计环境: 源程序编辑,编译或解释,链接,调试和运行工具的集合 软件工程环境: 软件定义,设计和实现,测试和维护等各个阶段所使用的软件工具的集合 二、软件工程: 软件工程定义: 研究如何应用一些科学理论和工程上的技术来指导软件的开发,用较少的投资获得高质量的软件的一门学科。 软件工程性质: 涉及计算机科学、工程科学、管理科学、数学等领域,着重于如何建造一个软件系统。用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。用管

中国石油大学(华东)本科毕业设计(论文)参考模板(2017)

本 科 毕 业 设 计(论文) 题 ——副标题 学生姓名:张 三 学 号:1301013101 专业班级:电气工程及其自动化13-5班 指导教师:李 四 2017年 6月15日

——副标题 要 数据结构算法设计和演示(C++)树和查找是在面向对象思想和技术的指导下,采用面向对象的编程语言(C++)和面向对象的编程工具(Borland C++ Builder 6.0)开发出来的小型应用程序。它的功能主要是将数据结构中链表、栈、队列、树、查找、图和排序部分的典型算法和数据结构用面向对象的方法封装成类,并通过类的对外接口和对象之间的消息传递来实现这些算法,同时利用C++ Builder 6.0中丰富的控件资源和系统 解、辅助教学和自我学习的作用。 关键词:

The design and implementation of the linear form ——副标题 Abstract 外文摘要要求用英文书写,内容应与“中文摘要”对应。使用第三人称。 “Abstract” 字体:Times New Roman,居中,三号,加粗,1.5倍行距,段前、段后0.5行间距,勾选网格对齐选项。 “Abstract”上方是论文的英文题目,字体:Times New Roman,居中,小二,加粗,1.5倍行距,间距:段前、段后0.5行间距,勾选网格对齐选项。 Abstract正文选用设置成每段落首行缩进2字符,字体:Times New Roman,字号:小四,1.5倍行距,间距:间距:段前后0.5行间距,勾选网格对齐选项。 Keywords与Abstract之间空一行,首行缩进2字符。Keywords与中文“关键词”一致,加粗。词间用分号间隔,末尾不加标点,3-5个,Times New Roman,小四。如需换行,则新行与第一个关键词首字母对齐。 Keywords:Write Criterion;Typeset Format;Graduation Project (Thesis)

2020中国石油大学(华东)数据结构考研初试考试大纲

一、考试要求 1.理解数据结构、存储结构、算法、数据类型、抽象数据类型(ADT)等基本概念及它们之间的关系。2.掌握线性表、树、图等基本数据结构的ADT 定义以及基于不同存储方式(顺序、链式等)的实现,并能对占用存储空间情况和算法的时间复杂度进行分析。3.掌握典型的查找结构(静态表、搜索树、散列等)、查找算法的基本思想及性能分析。4.掌握内部排序(选择、插入、交换、归并等)的重要算法的基本思想、特点及性能分析。5.能够运用学习的数据结构及算法的知识和技能进行问题的分析与求解,即能对问题进行抽象建模,能熟练使用高级语言(C 或C++或JAVA 等)进行模型的具体实现(编程)。 二、考试内容 1.数据结构和算法的重要性(1)基本概念及它们之间的关系(2)各种存储结构的空间占用情况及映射逻辑关系的方式(3)算法的评价及对算法渐近时间复杂性的理解2.一般线性表(1)一般线性表ADT 的定义(2)线性表ADT 基于顺序存储的实现(存储方式、特点、重要操作的算法,下同)(3)线性表ADT 基于链式存储的实现(存储方式、特点、重要操作的算法,下同)3.特殊线性表(栈、队列、字符串、数组)(1)栈的特点及栈ADT 的定义(2)栈ADT 基于顺序存储的实现(3)栈ADT 基于链式存储的实现(4)栈ADT 的应用(表达式求值、递归处理、迷宫问题)(5)队列的特点及队列ADT

的定义(6)队列ADT 基于顺序存储的实现(7)队列ADT 基于链式存储的实现(8)队列ADT 的应用(广度遍历、资源分配问题)(9)字符串特点及串ADT 的定义(10)字符串ADT 基于顺序存储的实现(重点掌握经典的模式匹配算法:BF,KMP)(11)数组的特点及ADT 定义(12)数组ADT 基于顺序存储的实现(重点掌握多维数组的存储结构)(13)特殊矩阵的存储及操作实现(重点掌握分布有规律的特殊矩阵和分布无规律的稀疏矩阵如何高效存储及矩阵典型操作的实现)4.树与二叉树(1)二叉树的特点及ADT 定义(2)二叉树的重要性质及证明(3)二叉树基于顺序存储的实现(4)二叉树基于链式存储的实现(重点掌握重要操作:建立、遍历、求深度、计算叶子等等)(5)线索二叉树的基本概念(为什么加线索?如何记录线索?如何使用线索?)(6)建立(画)线索二叉树(7)树、森林的定义及特点(8)树的存储结构(重点掌握子女-兄弟表示)(9)树、森林与二叉树的相互转换(10)树和森林的遍历(11)哈夫曼(Huffman)树和哈夫曼编码的构造过程(12)二叉排序树的定义及建立(重点掌握结点的插入和删除的思想和过程)(13)平衡二叉树的定义及建立(平衡的目的?如何达到平衡?)(14)堆的定义及建立和调整(堆的构造和调整过程)5.图(1)图的基本概念及ADT 定义(2)图的ADT 的实现(存储方式及基本操作实现)①邻接矩阵存储(无向图、有向图、无向带权图、有向带权图)②邻接表存储(无向图、有向图、无向带权图、有向带权图)③各种存储方式下操作的算法实现(图的建立、遍历、插入边、删除边等)(3)图的遍历及生成树①

软件工程导论复习试题库完整

a(1)在软件工程中,白盒测试法可用于测试程序的内部结构。此方法将程序看作是 A) 路径的集合B)循环的集合C)目标的集合D)地址的集合 c(2)在下述哪一种测试中,测试程序的设计者必须接触到源程序 I.功能测试Ⅱ. 结构测试 A)均不须B)只有ⅠC)只有ⅡD)Ⅰ和Ⅱ a(3)检查软件产品是否符合需求定义的过程称为 A)确认测试B)集成测试C)验证测试D)验收测试 c(4)下述陈述中,哪一个不是软件健壮性的度量指标? A)失败后重新启动所需的时间B)引起失败的时间所占的百分比 D)失败前的平均工作时间D)在一次失败中数据恶化的概率 b(5)对软件是否能达到用户所期望的要求的测试称为 A) 集成测试B) 有效性测试C) 系统测试D) 验收测试 a(6)在面向数据流的软件设计方法中,一般将信息流分为 A)变换流和事务流B)变换流和控制流 C)事务流和控制流D)数据流和控制流 d(7)软件需求说明书是软件需求分析阶段的重要文件,下述哪个(些)是其应包含的内容 I.数据描述Ⅲ. 模块描述 II.功能描述Ⅳ. 性能描述 A)ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅱ和ⅢD)Ⅰ、Ⅱ和Ⅳ (8)软件测试一般分为三类,即 I.静态测试Ⅱ. 动态测试Ⅲ. 正确性测试

设计测试用例对程序进行测试,应属于 A)ⅠB)ⅡC)Ⅰ和ⅡD)Ⅲ (9)模块独立性是由内聚性和耦合性来度量的,其中内聚性是度量____,耦合性是度量____。 A)模块间联系程度B)模块的功能强度 C)信息隐蔽程度D)模块的复杂程度 (10)软件设计中一般将用到图形工具,下述哪种(些)工具可用作设计的图形工具 I.结构图Ⅱ. 实体关系图Ⅲ. IPO图 II.Ⅳ. 流程图Ⅴ. N-S图 A)Ⅰ和ⅡB)Ⅲ和ⅣC)Ⅰ、Ⅲ、Ⅳ和ⅤD)全部 A (2)C (3)A (4)C (5) B (6)A (7)D (8)B (10) C (11)试判断下列论述中哪个(些)是正确的 I.软件系统中所有的信息流都可以认为是变换流 II.软件系统中所有的信息流都可以认为是事务流 III.事务分析和变换分析的设计步骤基本类似 A)ⅠB)ⅡC)ⅢD)Ⅰ和Ⅲ (12)软件的有效性测试是验证软件的运行是否达到用户的期望,用户的期望应体现于A)详细设计报告B)软件需求说明书 C)总体设计报告D)有效性测试要求 (13)软件设计中的软件过程其主要描述的是 A)模块间关系B)模块操作细节 C)模块控制方法D)模块类型

软件工程导论第五版复习重点(必考题)

(最后部分为每年必考题) 第一章 1. .软件工程的定义:软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的. 2. 软件危机的概念:软件危机是指计算机软件的开发和维护过程中所遇到的一系列严重的问题。 3. 产生软件危机的原因:(1) 开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性。 (2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。 4. 面向对象方法学的四个要点:1.把对象作为融合了数据及在数据上的操作行为的统一的软件构件 2.把所有对象都划分成类3.按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。4.对象彼此间仅能通过发送消息互相联系。 5. 软件生命周期:软件定义(问题定义,可行性研究,需求分析)、软件开发(总体设计,详细设计,编码,单元测试,总体测试)、运行维护(持久地满足用户的需要) 6. 瀑布模型,快速原型模型,增量模型,螺旋模型,喷泉模型,概念.方法.优缺点.区别。 7. 微软过程把软件生命周期划分为成5个阶段:规划阶段,设计阶段,开发阶段,稳定阶段,发布阶段。 第二章 1.可行性包括:技术可行性,经济可行性,操作可行性。 2. 系统流程图是概括地描绘物理系统的传统工具。它的基本思想是用图形符号以黑盒子形势描绘组成系统的每个部件(程序,文档,数据库,人工过程等)。系统流程图表达的是数据在系统各部件之间流动的情况,而不是对数据加工处理的控制过程,因此尽管系统流程图的某些符号和程序流程图的符号形式相同,但是它却是物理数据流图而不是程序流程图。4. 书库流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何具体的物理部件,它只描绘数据在软件中流动和被处理的逻辑过程。数据流图是系统逻辑功能的图形表示。 5. 用系统流程图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。有数据元素组成的数据的方式只有下述3种基本类型:顺序(即以确定次序连接两个或多个分量)。选择即从两个或多个可能的元素中选取一个重复即把指定的分量重复零次或多次

中国石油大学远程教育学院《数据结构课程设计》课程设计报告模板

中国石油大学(北京) 远程教育学院 《数据结构》课程设计报告 课程设计题目 学生姓名 学号 专业班级 2019 年月

题目要求:设计一个稀疏矩阵计算器,实现两个稀疏矩阵的加法、减法、乘法以及矩阵的转置运算。采用菜单为应用程序的界面,用户通过对菜单进行选择,分别实现矩阵的相加、相减、相乘以及矩阵转速运算。 1需求分析 1. 稀疏矩阵是指稀疏因子小于等于0.5的矩阵。利用“稀疏”特点进行存储和计算可以大大节省存储空间,提高计算效率。实现一个能进行稀疏矩阵基本运算的运算器。 2. 以“带行逻辑链接信息”的三元组顺序表表示稀疏矩阵,实现矩阵转置,以及两个矩阵的加、减、乘的运算。稀疏矩阵的输入形式采用三元组表示,运算结果以阵列形式列出。 3. 演示程序以用户和计算机的对话方式进行,数组的建立方式为边输入边建立。首先输入矩阵的行数和列数,并判别给出的两个矩阵的行列数是否与所要求的运算相匹配。 4. 程序可以对三元组的输入属性不加以限制;根据对矩阵的行列,三元组作之间插入排序,从而进行运算时,不会产生错误。 5. 在用三元组表示稀疏矩阵时,相加、相减和相乘所产生的结果矩阵另外生成。 6. 运行环境:VC6.0++。 2概要设计 稀疏矩阵元素用三元组表示: typedef struct{ int i; //非零元的行下标 int j; //非零元的列下标 int e; //矩阵非零元 }Triple; 稀疏矩阵采用三元组顺序表存储: #define MSXSIZE 12500 //假设非零元个数的最大值为200 #define MAXRC 10 //假定矩阵的最大行数为10 typedef struct { int mu ; //矩阵的行数 int nu ; //矩阵的列数 int tu ; //矩阵的非零元素个数 Triple data[MAXSIZE+1]; //非零元三元组表,data[0]没有用 int rpos[MAXRC+1]; //各行第一个非零元素的位置表 }Tabletype; 系统主要函数及功能如下: Menu( ):主控菜单,接收用户的选项; Input_Matrix( ):输入矩阵; Print_matrix( ):输出矩阵; Cal_matrix( ):计算矩阵每行第一个非零元在三元组中的位序号; TransposeMatrix( ):矩阵转置; Add_Matrix( ):矩阵加法运算;

中国石油大学(华东)软件工程导论复习资料

软件工程的定义 : ◆传统定义 为了经济地获得可靠的和能在实际机器上有效运行的软件,确立并应用健全的工程原理 ◆ IEEE 定义 软件工程是 . 将系统的、规范的和可计量的方法应用于软件的开发、操作和维护,即将工程化应用于软件 软件的构成要素 : 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。 程序:是按事先设计的功能和性能要求执行的指令序列; 数据:是使程序能正常操纵信息的数据结构; 文档:是与程序开发、维护和使用有关的图文材料。 软件的特点: 1. 软件是一种逻辑实体,具有抽象性; 2. 是开发的,而不是制造的 3. 具有柔性 4. 不磨损 软件工程的范围: 每个软件项目都是为某种商业需要而设计的 已经成为基于计算机的系统和产品演变过程中的关键因素 已经从专门问题的解决方案和分析信息的工具,转变为完整的结构良好的行业 涉及广泛的技术和应用领域,然而所有软件的演变都遵循着 30 多年来一成不变的规律 软件工程为构建高质量的软件提供基础框架 软件工程的三个要素是方法、工具、过程。

瀑布模型的特点: 1. 阶段间具有顺序性和依赖性 2. 推迟实现的观点 3. 质量保证的观点 快速原型模型的特点: ◆快速原型模型先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。 ◆快速实现和提交一个有限的版本,可以应付市场竞争的压力。 螺旋模型的特点: ◆对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要目标; ◆减少了过多测试(浪费资金)或测试不足(产品故障多)所带来的风险; ◆更重要的是,在螺旋模型中维护只是模型的另一个周期,在维护和开发之间并没有本质区别。 ◆螺旋模型的主要优势在于它是风险驱动的,但这也是其一个弱点,要求开发人员具有丰富的风险评估经验和这方面的专门知识。 螺旋模型主要适用于内部开发的大规模软件项目 增量模型的特点: ◆采用瀑布模型和快速原形模型等开发软件时,目标都是一次就把一个满足所有需求的产品提交给用户。而增量模型则是一个构件接一个构件地提交,因此能在较短的时间内向用户提交可完成部分工作的产品; ◆逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品; ◆开发人员既要把软件看作一个整体,又要把它分解成合适的构件序列,每个构件本质上都独立于另一个构件,这一点较难做到 喷泉模型特征: ◆喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程 ◆软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。

中国石油大学(华东)本科毕业设计(论文)模板(2014)

本科毕业设计(论文)题目:春风油田沙一段储层夹层研究 学生姓名: 学号: 专业班级:资源勘查1005 指导教师: 2014年 6月20日

摘要 钙质砂岩是一种致密性的岩石,一般存在于干层中,是现在油田开发中尽可能避开的开发位置,因此能够正确的预测钙质砂岩的分布能够增加打到油气层的几率,减少经济损失。主要以P609区块为研究主体,首先分析钙质砂岩的成因,统计区块内钙质砂岩的物性,然后分析其影响因素,正确预测钙质砂岩的分布。研究区内浅滨湖提供了良好的钙质砂岩来源,水下分流河道将钙质砂岩输送到目的区内,然后在沉积环境作用下形成了钙质砂岩。 论文降低重复率、论文排版、答辩幻灯片制作请联系Q2861423674 诚信服务,通过后付款https://www.sodocs.net/doc/c37042378.html, 关键词:钙质砂岩;分布;沉积条件;P609区块

Study on Reservoir and Mezzanine of N1s in Chunfeng Oilfield Abstract Calcareous is a kind of sandstone rocks,which generally present in the dry layer is now possible to avoid the development of oilfield development position, and therefore able to correctly predict the distribution of calcareous sandstone reservoirs can increase the chance of hitting, reduce economic losses. This paper mainly P609 blocks for the study subjects, the first analysis of the causes of calcareous sandstone, calcareous sandstone within the statistical properties of the block, and then analyze the influencing factors, correctly predict the distribution of calcareous sandstone. Shallow Lake study area provides a good source of calcareous sandstone, calcareous sandstone underwater distributary channel will be transported to the target area, then at ambient role in the formation of calcareous sandstone. 论文降低重复率、论文排版、答辩幻灯片制作请联系Q2861423674 诚信服务,通过后付款https://www.sodocs.net/doc/c37042378.html, Keywords:distribution of calcareous sandstone; blocks P609; deposition conditions

软件工程导论最全复习总结

1、软件危机是指在计算机开发过程中的开发和维护过程中所遇到的一系列的 严重问题。 2、软件是程序、数据及相关文档的完整集合,程序是能够完成预定功能和性能的可执行的 程序序列;数据是是使程序能够适当的处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料。 3、软件工程学包含3个要素:方法、工具、过程。 4、目前使用最广泛的软件工程方法学是传统方法学和面向对象方法学。 5、软件工程方法学的软件过程基本上可以用瀑布模型来描述。 6、瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型。 7、Rup把软件生命周期划为:初始、精化、构建、移交阶段。 8、可行性研究的三方面:技术可行性、经济可行性、操作可行性。 9、数据流图(DFD是一种图形化技术,他描绘信息流和数据从输入移动到输出的过程中 所经受的变化。 10、数据字典是关于数据信息的集合,也就是对数据流程图中所包含的所有元素的定义 的集合。 11、数据流图和数据字典共同构成系统的逻辑模型,没有数据字典,数据如就不严格, 没有流程图,数据字典也难以发挥作用。

12、需求分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准 确的描述软件需求。 13、9、结构化分析方法就是面向数据流自顶向下逐步求精进行需求分析的方法。 14、ER图中包含了实体、关系和属性,矩形代表实体,菱形表示关系,椭圆或圆角矩 形表示属性,用直线把实体和其属性连接。 15、验证软件需求的正确性:一致性、完整性、现实性、有效性。 总体设计又称 16、总体设计的基本目的是回答“概括地说,系统应该如何实现?”, 为 概要设或初步设计。 17、模块的独立程度可以有两个定性标量度量:内聚和耦合。 18、软件测试的目标:(1测试是为了发现程序中的错误而执行程序的过程;(2好的 测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3成功的测试是发现可至今为止尚未发现的错误的测试。 19、软件测试步骤:模块测试、子系统测试、系统测试、验收测试、平行运 行。 20、软件可靠性是程序在给定的时间点,按照规格说明书的规定,成功的运行的概率。

2015(1)年度中国石油大学数据结构试题及答案

数据结构试题 一、单选题 1、在数据结构的讨论中把数据结构从逻辑上分为() A 内部结构和外部结构 B 静态结构和动态结构 C 线性结构和非线性结构 D 紧凑结构和非紧凑结构。 2、采用线性链表表示一个向量时,要求占用的存储空间地址() A 必须是连续的 B 部分地址必须是连续的 C 一定是不连续的 D 可连续可不连续 3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为()。 A n B n/2 C (n-1)/2 D (n+1)/2 4、在一个单链表中,若q结点是p结点的前驱结点,若在q和p之间插入结点s,则执行()。 A s→link= p→link;p→link= s;

B p→link = s; s→link = q; C p→link= s→link;s→link= p; D q→link = s;s→link = p; 5、如果想在4092个数据中只需要选择其中最小的5个,采用()方法最好。 A 起泡排序 B 堆排序 C 锦标赛排序 D 快速排序 6、设有两个串t和p,求p在t中首次出现的位置的运算叫做()。 A 求子串 B 模式匹配 C 串替换 D 串连接 7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字数是()。 A 80 B 100 C 240 D 270 8、将一个递归算法改为对应的非递归算法时,通常需要使用()。 A 栈 B 队列 C 循环队列 D 优先队列 9、一个队列的进队列顺序是1, 2, 3, 4,

软件工程导论复习重点总结很全(第六版)(精)

第1章软件工程学概述 1.1 软件危机 1.1.1 软件危机的介绍 软件危机(软件萧条、软件困扰:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 软件危机包含下述两方面的问题: 如何开发软件,满足对软件日益增长的需求; 如何维护数量不断膨胀的已有软件。 软件危机的典型表现: (1对软件开发成本和进度的估计常常很不准确; (2用户对“已完成的”软件系统不满意的现象经常发生; (3软件产品的质量往往靠不住; (4软件常常是不可维护的; (5软件通常没有适当的文档资料; (6软件成本在计算机系统总成本中所占的比例逐年上升; (7软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 1.1.2 产生软件危机的原因 (1与软件本身的特点有关 (2与软件开发与维护的方法不正确有关

1.1.3 消除软件危机的途径 对计算机软件有正确的认识。 认识到软件开发是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。应该推广使用在实践中总结出来的开发软件的成功技术和方法,并继续研究探索。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施(方法和工具,又要有必要的组织管理措施。 1.2 1.2.1 软件工程的介绍 软件工程:是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。(期中考 软件工程的本质特性: 软件工程关注于大型程序的构造 软件工程的中心课题是控制复杂性 软件经常变化 开发软件的效率非常重要 和谐地合作是开发软件的关键 软件必须有效地支持它的用户

相关主题