第五章详细设计

上传人:仙*** 文档编号:52180911 上传时间:2022-02-07 格式:PPT 页数:93 大小:304KB
收藏 版权申诉 举报 下载
第五章详细设计_第1页
第1页 / 共93页
第五章详细设计_第2页
第2页 / 共93页
第五章详细设计_第3页
第3页 / 共93页
资源描述:

《第五章详细设计》由会员分享,可在线阅读,更多相关《第五章详细设计(93页珍藏版)》请在装配图网上搜索。

1、第五章、详细设计第五章、详细设计 结构化程序设计 详细设计的工具 Jackson程序设计方法:结构化程序设计主要包括两方面:结构化程序设计主要包括两方面:(1) (1) 在设计程序时,强调在设计程序时,强调,通过组合嵌套,形成程序的,通过组合嵌套,形成程序的控制结构。尽可能避免使用控制结构。尽可能避免使用GOTOGOTO语句。语句。(2) (2) 在程序设计过程中,尽量采用自顶在程序设计过程中,尽量采用自顶向下和逐步细化的原则,向下和逐步细化的原则,。结构化程序设计的主要原则结构化程序设计的主要原则 使用语言中的、等有限的基本控制结构表示程序逻辑。 选用的控制结构只准许有和。 程序语句组成,每

2、块只有和。 复杂结构应该用基本控制结构进行组合嵌套来实现。结构化程序设计的主要原则结构化程序设计的主要原则 语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致。 ,仅在下列情形才可使用: 用一个非结构化的程序设计语言去实现一个结构化的构造。 若不使用GOTO语句就会使程序功能模糊。 在某种可以改善而不是损害程序可读性的情况下。结构化程序设计的主要原则结构化程序设计的主要原则 if ( A B ) goto b12; if ( B C ) goto b11; b10: printf (“%d”, C ); goto b14; b11: printf (“%d”,

3、 B ); goto b14; b12: if ( A C ) goto b13; goto b10; b13: printf (“%d”, A ); b14: if ( A B and A C ) printf (“%d”, A ); else if ( A B and B C ) printf (“%d”, B ); else printf (“%d”, C ); 自顶向下,逐步求精自顶向下,逐步求精 在详细设计和编码阶段,应当采取自在详细设计和编码阶段,应当采取自顶向下,逐步求精的方法。顶向下,逐步求精的方法。 把一个模块的功能逐步分解,细化为把一个模块的功能逐步分解,细化为一系列具体的

4、步骤,进而翻译成一系列一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。用某种程序设计语言写成的程序。自顶向下,逐步求精自顶向下,逐步求精 筛选法就是从筛选法就是从2 2到到100100中去掉中去掉2,3,2,3,9,10,9,10的倍数,剩下的就是的倍数,剩下的就是100100以以内的素数。内的素数。 为了解决这个问题,可先按程序功能为了解决这个问题,可先按程序功能写出一个框架。写出一个框架。main ( ) / 建立2到100的数组A ,其中Aii; -1 建立2到10的素数表 B ,其中存放2 到10以内的素数;-2 若Aii是B 中任一数的倍数,则 剔除Ai;-3 输出A

5、 中所有没有被剔除的数; -4main ( ) /*建立2到100的数组A ,其中Aii*/for ( i = 2;i = 100;i+ ) Ai = i;/* 建立2到10的素数表B ,其中存放2到10以内的素数*/B1 =2;B2 = 3;B3 = 5;B4 = 7;/*若Aii是B 中任一数的倍数,则剔除Ai*/for ( j = 1;j = 4;j+ ) 检查A 所有的数能否被Bj整除并将 能被整除的数从A 中剔除; -3.1 /*输出A 中所有没有被剔除的数*/ for ( i = 2;i = 100;i+ ) 若Ai没有被剔除,则输出之 -4.1main ( ) /*建立2到100

6、的数组A ,其中Aii*/for ( i = 2;i = 100;i+ ) Ai = i;/* 建立2到10的素数表B ,其中存放2到10以内的素数*/B1 =2;B2 = 3;B3 = 5;B4 = 7;/*若Aii是B 中任一数的倍数,则剔除Ai*/for ( j = 1;j = 4;j+ ) /*检查A 所有的数能否被Bj整除并将能被整除的数从A 中剔除*/for ( i = 2;i = 100;i+) if ( AiBj * Bj = Ai ) Ai = 0; /*输出A 中所有没有被剔除的数*/ for ( i = 2; i = 100;i+) /*若Ai没有被剔除,则输出之*/ i

7、f ( Ai != 0 ) printf ( “A%d%dn”,i,Ai ); 符合人们解决复杂问题的普遍规律。符合人们解决复杂问题的普遍规律。可提高软件开发的成功率和生产率可提高软件开发的成功率和生产率 用先全局后局部,先整体后细节,先用先全局后局部,先整体后细节,先抽象后具体的逐步求精的过程开发出来抽象后具体的逐步求精的过程开发出来的程序具有清晰的层次结构,程序容易的程序具有清晰的层次结构,程序容易阅读和理解阅读和理解自顶向下,逐步求精方法的优点自顶向下,逐步求精方法的优点: 程序自顶向下,逐步细化,分解成一个树程序自顶向下,逐步细化,分解成一个树形结构。在同一层的节点上的细化工作相互形结

8、构。在同一层的节点上的细化工作相互独立。有利于编码、测试和集成独立。有利于编码、测试和集成 程序清晰和模块化,使得在修改和重新设程序清晰和模块化,使得在修改和重新设计一个软件时,可复用的代码量最大计一个软件时,可复用的代码量最大 每一步工作仅在上层节点的基础上做不多每一步工作仅在上层节点的基础上做不多的设计扩展,便于检查的设计扩展,便于检查 有利于设计的分工和组织工作。有利于设计的分工和组织工作。自顶向下,逐步求精方法的优点自顶向下,逐步求精方法的优点: 在详细设计阶段,要决定各个模块的在详细设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。表实现算法,并精确地表达这些算法。表达过程规

9、格说明的工具叫做详细设计工达过程规格说明的工具叫做详细设计工具,它可以分为以下三类具,它可以分为以下三类: : 图形工具图形工具 表格工具表格工具 语言工具语言工具 程序流程图也称为程序框图,程序流程序流程图也称为程序框图,程序流程图使用程图使用五种基本控制结构五种基本控制结构是是: :程序流程图程序流程图N- -S图:图:1973年,年,Nassi和和Shneiderman发表了发表了题为题为“结构化程序的流程图技术结构化程序的流程图技术”的文章,的文章,提出用方框图(提出用方框图(block diagram)来代替)来代替传统的流程图,引起了人们的重视,根据传统的流程图,引起了人们的重视,

10、根据这两位创始人的名字,许多人把它简称为这两位创始人的名字,许多人把它简称为NS图(图(NS chart)。)。NS的主要特色,就是只能描述结构化的主要特色,就是只能描述结构化程序所允许的标准结构,根本取消了表现程序所允许的标准结构,根本取消了表现诸如含有诸如含有GOTO语句的非标准结构的手段。语句的非标准结构的手段。N- -S图:图:优点是:优点是: (1)所有的程序结构均用方框来表示,所有的程序结构均用方框来表示,无论并列或者嵌套,程序的结构清晰可无论并列或者嵌套,程序的结构清晰可见。见。 (2).不可能任意转移控制。不可能任意转移控制。 (3).很容易确认局部和全局数据的作很容易确认局部

11、和全局数据的作用域。用域。(4).很容易表示嵌套关系。很容易表示嵌套关系。 N-SN-S图也叫做盒图。五种基本控制结构由五种图形构件表示。N- -S图:图:问题分析图问题分析图(PAD)问题分析图问题分析图(PAD) PADPAD也设置了五种基本控制结构的图式,也设置了五种基本控制结构的图式,并允许递归使用。并允许递归使用。PAD对应于增量型循环结构for i := n1 to n2 step n3 do在PAD中有相应的循环控制结构 判定表用于表示程序的判定表用于表示程序的静态逻辑静态逻辑 在判定表中的条件部分给出所有的在判定表中的条件部分给出所有的两两分支判断分支判断的列表,动作部分给出的

12、列表,动作部分给出相应的相应的处理处理 要求将程序流程图中的多分支判断都要求将程序流程图中的多分支判断都改成两分支判断改成两分支判断 能够清晰地表示复杂的条件组合与应做能够清晰地表示复杂的条件组合与应做的动作之间的对应关系的动作之间的对应关系 判定表判定表 列出与一个具体过程列出与一个具体过程( (或模块或模块) )有关的有关的所有处理。所有处理。 列出过程执行期间的所有条件列出过程执行期间的所有条件( (或所有或所有判断判断) )。 将特定条件取值组合与特定的处理相将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合。匹配,消去不可能发生的条件取值组合。 将右部每一纵列规定为一

13、个处理规则,将右部每一纵列规定为一个处理规则,即对于某一条件取值组合将有什么动作。即对于某一条件取值组合将有什么动作。建立判定表的步骤:建立判定表的步骤:判定树判定树 判定树是判定表的变种,也能清晰地表判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的示复杂的条件组合与应做的动作之间的对应关系。对应关系。 优点在于,它的形式简单到不需要优点在于,它的形式简单到不需要任何说明,一眼说可以看出其含义任何说明,一眼说可以看出其含义 易于掌握和理解易于掌握和理解 判定树判定树实例分析:假设某航空公司规定,乘客实例分析:假设某航空公司规定,乘客可以免费托运重量不超过可以免费托运重量不超

14、过3030公斤的行李。公斤的行李。当行李重量超过当行李重量超过3030公斤时,对头等仓的公斤时,对头等仓的国内乘客超重部分每公斤收费国内乘客超重部分每公斤收费4 4元,对其元,对其他仓的国内乘客超重部分每公斤收费他仓的国内乘客超重部分每公斤收费6 6元元, ,国外乘客加收国外乘客加收1 1倍,残疾乘客减半倍,残疾乘客减半 (w-30)*12 PDLPDL是一种用于描述功能模块的是一种用于描述功能模块的算法设算法设计计和和加工细节加工细节的语言。称为设计程序用的语言。称为设计程序用语言。它是一种伪码。语言。它是一种伪码。 伪码的语法规则分为伪码的语法规则分为“外语法外语法”和和“内语法内语法”。

15、 PDL PDL具有严格的具有严格的关键字外语法关键字外语法,用于,用于定义控制结构和数据结构,同时它的定义控制结构和数据结构,同时它的表表示实际操作和条件的内语法示实际操作和条件的内语法又是灵活自又是灵活自由的,可使用自然语言的词汇。由的,可使用自然语言的词汇。PROCEDURE spellcheck IS BEGIN split document into single words lood up words in dictionary display words which are not in dictionary create a new dictionary END spellch

16、eck示例示例: : 拼词检查程序拼词检查程序 提供全部结构化控制结构、数据说明提供全部结构化控制结构、数据说明和模块特征。能对和模块特征。能对PDLPDL正文进行结构分割,正文进行结构分割,使之变得易于理解。使之变得易于理解。 为了区别关键字,规定关键字一律大为了区别关键字,规定关键字一律大写,其它单词一律小写。或者规定关键写,其它单词一律小写。或者规定关键字加下划线,或者规定它们为黑体字。字加下划线,或者规定它们为黑体字。PDLPDL的特点:的特点: 内语法使用自然语言来描述处理特性。内语法使用自然语言来描述处理特性。内语法比较灵活,只要写清楚就可以,内语法比较灵活,只要写清楚就可以,不必

17、考虑语法错,以利于人们可把主要不必考虑语法错,以利于人们可把主要精力放在描述算法的逻辑上。精力放在描述算法的逻辑上。 有数据说明机制,包括简单的有数据说明机制,包括简单的( (如标量如标量和数组和数组) )与复杂的与复杂的( (如链表和层次结构如链表和层次结构) )的的数据结构。数据结构。 有子程序定义与调用机制,用以表达有子程序定义与调用机制,用以表达各种方式的接口说明。各种方式的接口说明。PDLPDL的特点:的特点:PROCEDURE spellcheckBEGIN-* split document into single wordsLOOP get next word add word

18、to word list in sortorder EXIT WHEN all words processedEND LOOP -* look up words in dictionaryLOOP get word from word list使用使用PDLPDL语言,逐步求精:语言,逐步求精: IF word not in dictionary THEN -* display words not in dictionary display word prompt on user terminal IF user response says word OK THEN add word to g

19、ood word list ELSE add word to bad word list ENDIF ENDIF EXIT WHEN all words processedEND LOOP使用使用PDLPDL语言,逐步求精:语言,逐步求精:-* create a new words dictionary dictionary :merge dictionary and good word listEND spellcheck使用使用PDLPDL语言,逐步求精:语言,逐步求精:模块开发文件夹模块开发文件夹是组织和保存在软件开发过是组织和保存在软件开发过程中不断产生出来的文档资程中不断产生出来的文

20、档资料的一种有效方法,用这种料的一种有效方法,用这种方法保存和管理文档既方便方法保存和管理文档既方便又容易查阅。又容易查阅。文件夹名文件夹名(1)文件夹说明(工程项目名)文件夹说明(工程项目名称、模块名称、程序人员、完称、模块名称、程序人员、完成日期、源程序、模块的描述、成日期、源程序、模块的描述、设计、编码、测试文档名)设计、编码、测试文档名)(2).文档文档:模块详细设计、程模块详细设计、程序清单、测试方案、测试分析序清单、测试方案、测试分析报告报告 概要设计中面向数据流的设计方法概要设计中面向数据流的设计方法 与之对应的详细设计还可以采用与之对应的详细设计还可以采用 面向数据结构的设计方

21、法面向数据结构的设计方法 Jackson方法的主要工具方法的主要工具-Jackson图图 Jackson图表示数据结构的三种逻辑关图表示数据结构的三种逻辑关系(顺序,选择,循环)。系(顺序,选择,循环)。JacksonJackson程序设计方法程序设计方法ABCDAB。C。AB*顺序,选择,循环顺序,选择,循环D。顺序顺序选择选择循环循环改进的改进的JACKSON顺序,选择,循环顺序,选择,循环ABCDAB。C。D。顺序结构顺序结构选择结构选择结构S(i)AB。_。AB*循环循环I(i) 无论数据结构还是程序结构,都限于三种无论数据结构还是程序结构,都限于三种基本结构及它们的组合,因此他给出了

22、三种基本结构及它们的组合,因此他给出了三种基本结构的表示。这三种基本结构不仅可以基本结构的表示。这三种基本结构不仅可以表示数据结构,还可以表示程序结构。表示数据结构,还可以表示程序结构。 便于表示层次结构,而且是对结构进行便于表示层次结构,而且是对结构进行自顶向下分解的有力工具自顶向下分解的有力工具 形象直观形象直观JACKSON的优点:的优点:Jackson方法方法改进的改进的JACKSON顺序,选择,循环及伪码顺序,选择,循环及伪码ABCD顺序结构顺序结构A seq BCDA endAB。C。D。选择结构选择结构A select cond1 BA or cond2CA or cond3DA

23、 end AB*循环循环I(i)A iter until(或或while) cond BA end 实例分析实例分析一个正文文件有若干记录组成。每个记一个正文文件有若干记录组成。每个记录是一个字符串。要求统计每个记录中录是一个字符串。要求统计每个记录中的空格个数,以及文件中空格字符的总的空格个数,以及文件中空格字符的总数。要求的输入数据的格式是:每复制数。要求的输入数据的格式是:每复制一行字符串之后,另起一行打印出这个一行字符串之后,另起一行打印出这个串中的空格数,最后打印出字符的总数。串中的空格数,最后打印出字符的总数。正文文件字符串*字符*空格。非空格。输出表格表格体空格总数串信息*字符串

24、空格数IISI输入数据结构输入数据结构输出数据结构输出数据结构步骤步骤1+2统计空格程序体印总数处理字符串*印字符串分析字符串印空格数分析字符*处理空格*处理非空格*IIS步骤步骤3步骤步骤4(1).停止 (2).打开文件(3).关闭文件 (4)印字符串(5).印出空格数目 (6)印空格总数(7).Sum:=Sum+1 (8).Totalsum:= Totalsum+Sum(9)读入字符串 (10).Sum:=0(11). Totalsum:=0 (12).Pointer:=1 (13).Pointer:= Pointer +1 I(1)文件结束I(2)字符串结束 S(3)字符是空格程序复杂性

25、主要指。它直接关联到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。减少程序复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少。为了度量程序复杂性,要求: 它可以用来计算任何一个程序的复杂性; 对于不合理的程序,例如对于长度动态增长的程序,或者对于原则上无法排错的程序,不应当使用它进行复杂性计算; 如果程序中指令条数、附加存储量、计算时间增多,不会减少程序的复杂性。源代码行数度量法基于两个前提: 方法的基本考虑是设为100。Thayer曾指出,即每100行源程序中可能存在0.047个错误。他还指出,每行代码的出错率与源程序行数之间不存在简

26、单的线性关系。Lipow指出,对于,每行代码出错率为1.31.8;对于,每行代码的出错率增加到2.73.2之间,这只是考虑了程序的可执行部分,没有包括程序中的说明部分。Lipow及其他研究者得出一个结论:对于少于100个语句的小程序,源代码行数与出错率是线性相关的。随着程序的增大,出错率以非线性方式增长。McCabe度量法,又称环路复杂性度量,是一种的复杂性度量方法。它,因此计算它先要画出程序图。程序图是退化的程序流程图。流程图中每个处理都退化成一个结点,流线变成连接不同结点的有向弧。程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作,以及分支和循环的具体条件。根据图论,在一个强连通的

27、有向图G中,环的个数由以下公式给出: V(G)mnp其中,V(G)是有向图G中环路个数,m是图G中弧数,n是图G中结点数,p是图G中的强连通分量个数。为使图成为强连通图,从图的入口点到出口点加一条用虚线表示的有向边,使图成为强连通图。这样就可以使用上式计算环路复杂性。在例示中,结点数n11,弧数m13,p1,则有 V(G)mnp131113.环路复杂度取决于程序控制结构的复杂度。当程序的分支数目或循环数目增加时其复杂度也增加。环路复杂度是可加的。例如,的复杂度为3,的复杂度为 4,则与的复杂度是7。McCabe建议,Walsh用实例证实了这个建议的正确性。在McCabe复杂度为10的附近,存在

28、出错率的间断跃变。McCabe环路复杂度隐含的前提是:加工复杂性、数据结构、录入与打乱输入卡片的错误可以忽略不计。这种度量的缺点是: 对于不同种类的控制流的复杂性不能区分 与的复杂性同等看待 与的复杂性是一样的 当成一样处理 一个与的复杂性相同Halstead软件科学研究确定计算机软件开发中的一些定量规律,它采用以下一组基本的度量值。这些度量值通常在程序产生之后得出,或者在设计完成之后估算出。 令n1表示程序中不同运算符(包括保留字)的个数,令n2表示程序中不同运算对象的个数,令H表示“程序长度”,则有 H=n1 log2 n1+n2 log2n2这里,H是程序长度的预测值,它不等于程序中语句

29、个数。 在定义中,运算符包括: 算术运算符 赋值符(=或:=) 逻辑运算符 分界符(,或;或:) 关系运算符 括号运算符 子程序调用符 数组操作符 循环操作符等。特别地,成对的运算符,例如 “BEGINEND”、“FORTO”、“REPEAT UNTIL”、“WHILEDO”、“IFTHENELSE”、“()”等都当做单一运算符。运算对象包括变量名和常数。设N1为程序中实际出现的运算符总个数,N2为程序中实际出现的运算对象总个数,N为实际的Halstead长度,则有 N = N1 + N2Halstead定义程序的词汇表为不同的运算符种类数n1和不同的运算对象种类数n2的总和。若令n为程序的词

30、汇表,则有 n = n1+n2例如,用FORTRAN语言写出的交换排序的例子 SUBROUTINE SORT ( X, N ) DIMENSION X( N ) IF ( N .LT. 2 ) RETURN DO 20 I=2, N DO 10 J=1, I IF ( X(I) .GE. X(J) ) GO TO 10 SAVE = X(I) X(I) = X(J) X(J) = SAVE10 CONTINE20 CONTINE RETURN END 运运算算符符 计计数数 运运算算对对象 计计数数 可可执执行行语语句句结结束束 7 X 6 数数组组下下标标 6 I 5 5 J 4 IF( )

31、 2 N 2 DO 2 2 2 , 2 SA VE 2 程程序序结结束束 1 1 1 .LT. 1 N N17 N222 .GE. 1 GO TO 10 1 n1=10 n228 程序量 V 可用下式得到 V = N log2n 它表明了程序在词汇上的复杂性。其最小值为 V* = (2+n2*) log2(2+n2*)V 这里,2表明程序中至少有两个运算符:赋值符 = 和函数调用符 f ( ) ,n2*表示输入输出变量个数。 对于上面的例子,利用n1,N1,n2,N2,可以计算得 H = 10 log210+7 log27 = 52.87 N = 28+22 = 50 V = (28+22)

32、log2(10+7) = 204等效的汇编语言程序的V328。这说明汇编语言比FORTRAN语言需要更多的信息量(以bit表示)。 L = V* / V 或 L = (2 / n1) (n2 / N2) 它表明了一个程序的最紧凑形式的程序量与实际程序量之比,反映了程序的效率。其倒数D = 1 / L 表明了实现算法的困难程度。 E = V / L Halstead度量可以用来预测程序中的错误。预测公式为 B = (N1+N2)log2(n1+n2) / 3000 B为该程序的错误数。它表明程序中可能存在的差错 B 应与程序量V成正比。 例如,一个程序对75个数据库项共访问1300次,对150个

33、运算符共使用了1200次,那么预测该程序的错误数: B = (1200+1300) log2(75+150)/3000 6.5 即预测该程序中可能包含67个错误程序的实际Halstead长度N可以由词汇表n算出。即使程序还未编制完成,也能预先算出程序的实际Halstead长度N, 虽然它没有明确指出程序中到底有多少个语句。这个结论非常有用。经过多次验证,预测的Halstead长度与实际的Halstead长度是非常接近的。这是与实际经验相违背的。这时应将外部调用乘上一个大于1的的常数Kf (应在15之间,它与文档资料的清晰度有关)。补救办法:在统计n1、n2、N1、N2时,可以把非执行语句中出现的运算对象,运算符统计在内。在允许混合运算的语言中,每种运算符与它的运算对象相关。如果一种语言有整型、实型、双精度型三种不同类型的运算对象,则任何一种基本算术运算符(、)A32Halstead 公式应当对调用子程序的不同深度区别对待。在计算嵌套调用的运算符和运算对象时,应乘上一个调用深度因子。这样可以增大嵌套调用时的错误预测率。例如,对与就没有区别。一般地,运算符的嵌套序列,总比具有相同数量的运算符和运算对象的非嵌套序列要复杂得多。解决的办法是对嵌套结果乘上一个嵌套因子。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!