版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章
编码6.1.1程序设计语言的分类随着计算机技术的发展,目前已经出现了数百种程序设计语言,但被广泛应用的只有几十种。由于不同种类的语言适用于不同的问题域和系统环境,因此了解程序设计语言的分类可以帮助我们选择出合适的语言。通常可将程序设计语言分为面向机器语言和高级语言两大类。
1.面向机器语言面向机器语言包括机器语言(MachineLanguage)和汇编语言(AssembleLanguage)两种。机器语言是计算机系统可以直接识别的程序设计语言。机器语言程序中的每一条语句实际上就是一条二进制形式的指令代码,由操作码和操作数两部分组成。由于机器语言难以记忆和使用,通常不用机器语言编写程序。汇编语言是一种符号语言,它采用了一定的助记符来替代机器语言中的指令和数据。汇编语言程序必须通过汇编系统翻译成机器语言程序,才能在计算机上运行。汇编语言与计算机硬件密切相关,其指令系统因机器型号的不同而不同。由于汇编语言生产效率低且可维护性差,所以目前软件开发中很少使用汇编语言。
2.高级语言高级语言中的语句标识符与人类的自然语言(英文)较为接近,并且采用了人们十分熟悉的十进制数据表示形式,利于学习和掌握。高级语言的抽象级别较高,不依赖于实现它的计算机硬件,且编码效率较高,往往一条高级语言的语句对应着若干条机器语言或汇编语言的指令。高级语言程序需要经过编译或解释之后,才能生成可在计算机上执行的机器语言程序。高级语言按其应用特点的不同,可分为通用语言和专用语言两大类。
1)通用语言通用语言是指可用于解决各类问题、可广泛应用于各个领域的程序设计语言。从较早出现的基础语言Basic、FORTRAN等,到后来出现的结构化语言P、C等,再到现在被广泛使用的面向对象语言VisualC、Java等都属于通用语言的范畴。
2)专用语言专用语言是为了解决某类特殊领域的问题而专门设计的具有独特语法形式的程序设计语言。如专用于解决数组和向量计算问题的APL语言;专用于开发编译程序和操作系统程序的BLISS语言;专用于处理人工智能领域问题的LISP语言和PROLOG语言等。这些语言的共同特点是可高效地解决本领域的各种问题,但难以应用于其他领域。6.1.2程序设计语言的特性由于程序设计语言是实现人机通信的基本工具,编程者只有通过程序才能指挥计算机按照要求完成特定的任务,因此,程序设计语言所具有的特性往往会不可避免地对编程者处理问题的思路、编写程序的方式和质量产生影响。总的来说,程序设计语言具有心理、工程和技术三大特性。
1.心理特性程序体现的是编程者解决问题的思路,不同的人有不同的解题思路,同一个人在不同心理状态下的解题思路往往也会有所不同。所谓程序设计语言的心理特性,就是指能够影响编程者心理的语言性能。这种影响主要表现在以下几个方面。
1)歧义性歧义性指程序设计语言中的某些语法形式使不同的人产生不同的理解。如:X=X1/X2·X3,编译系统只有一种解释,但人们却有不同的理解,有人理解为X=(X1/X2)·X3,而另一个人可能理解为X=X1/(X2·X3)。又如FORTRAN语言中变量的类型有显式定义和隐式定义两种,用REALK显式说明K是实型变量,但按隐含类型定义,K是整型变量。在程序较长时,不可能每次都查类型定义,容易产生错误。若程序语言具有这些使人心理上容易产生歧义性的特征,则易使编程出错,而且可读性也差。
2)简洁性简洁性指编程者要使用该语言所必须记住的各种语法规则(包括语句格式、数据类型、运算符、函数定义形式等)的信息量。需记忆的信息量越大,简洁性越差,人们掌握起来也就越难。但若程序设计语言的语法成分太少,过于简洁,又会给阅读程序带来麻烦,不利于人的理解。因此对于一个好的程序设计语言来说,既应具有一定的简洁性,又要具有较高的可理解性。
3)局部性和顺序性局部性是指语言的联想性,即相关内容的相对集中性。在编程过程中,我们将实现某一功能的语句集中书写在一个模块中,由模块组装成完整的程序,并要求模块具有高内聚、低耦合的特点,其目的就是希望加强程序的局部性。顺序性指语言的线性特征。例如对于顺序结构的程序人们很容易理解,而如果程序中存在大量的分支结构和循环结构,人们理解起来就比较困难了。语言的局部性和顺序性是由人类习惯于用联想的方式及按逻辑上的线性序列记忆事物的特性所决定的,局部性和顺序性的加强可提高程序的可理解性。4)传统性:指人们习惯于已掌握的语种,而传统性容易影响人们学习新语种的积极性,若新语种的结构、形式与原来的类似,还容易接受,若风格根本不同,则难以接受,如习惯用Pascal或C的编程人员,用Lisp和Prolog编程,就要用更多的时间来学习。
2.工程特性语言是人们在软件工程活动中的编码阶段所使用的工具,因此有必要从软件工程的观点考虑为了满足软件开发项目的需要,程序设计语言所应具备的工程特性。语言的工程特性主要体现在以下几个方面。
1)可移植性可移植性反映了程序在不同机器环境下的通用性和适应性。不同机器环境包括不同的机型、不同的操作系统版本及不同的应用软件包。若一个程序可不加修改或稍加修改就可以应用于不同的机型、运行于高版本的操作系统或集成到不同的应用软件包中,则称这个程序具有较高的可移植性。
2)语言编译器的实现效率不同语言的编译器在将源程序代码翻译成目标代码的过程中,由于编译程序设计质量的不同导致生成的目标代码的大小和执行效率不尽相同。为了获得高效率的目标代码,选择语言时应充分考虑到语言编译器的实现效率。
3)开发工具的支持为了缩短编码阶段所花费的时间以及提高编码的质量,应选择具有良好开发工具支持的程序设计语言。这些开发工具主要包括:编译程序、连接程序、交互式调试器、交叉编译器、图形界面及菜单系统生成程序、宏处理程序等。
4)可维护性程序的维护是软件工程活动中的一项重要内容。为了提高程序的可维护性,即方便对源程序的修改,程序中采用的语言必须具有良好的可读性和易于使用的特点。
3.技术特性在确定了软件开发项目的需求后,根据项目的特性选择具有相应技术特性的程序设计语言对保证软件的质量具有非常重要的作用。不同的语言具有不同的技术特性,例如有的语言提供了丰富的数据类型或复杂的数据结构;有的语言具有很强的实时处理能力;有的语言可方便的实现大量数据的查询及增、删、改的功能。根据语言的技术特性为项目选择合适的程序设计语言,不但可以使编写的程序很好地满足项目的要求,而且对后期的测试和维护工作也是非常有益的。6.1.3程序设计语言的选择要为待开发项目选择合适的程序设计语言,应充分考虑到项目的各种需求,结合各种语言的心理特性、工程特性、技术特性以及应用特点,尽量选取实现效率高且易于理解和维护的语言。由于程序设计语言的选择往往会受到各种实际因素的制约和限制,因此选择语言时不能只考虑理论上的标准,而是要同时兼顾理论标准和实用标准。下面分别简要地对选择语言的主要理论标准和实用标准进行介绍。
1.理论标准
1)理想的模块化机制、易于阅读和使用的控制结构及数据结构模块化、良好的控制结构和数据结构可以降低编码工作的难度,增强程序的可理解性,提高程序的可测试性和可维护性,从而减少软件生存周期中的总成本,并缩短软件开发所需的时间。
2)完善、独立的编译机制完善的编译系统可尽可能多地发现程序中的错误,便于程序的调试和提高软件的可靠性,并且可以使生成的目标代码紧凑、高效;独立的编译机制便于程序的开发、调试和维护,可以降低软件开发和维护的成本。
2.实用标准
1)系统用户的要求由于用户是软件的使用者,因此软件开发者应充分考虑用户对开发工具的要求。特别是当用户要负责软件的维护工作时,用户理所应当地会要求采用他们熟悉的语言进行编程。
2)工程的规模语言系统的选择与工程的规模有直接的关系。例如,Foxpro与Oracal及Sybase都是数据库处理系统,但Foxpro仅适用于解决小型数据库问题,而Oracal和Sybase则可用于解决大型数据库问题。特别是在如果工程的规模非常庞大,并且现有的语言都不能完全适用时,为了提高开发的效率和质量,就可以考虑为这个工程设计一种专用的程序设计语言。
3)软件的运行环境软件在提交给用户后,将在用户的机器上运行,在选择语言时应充分考虑到用户运行软件的环境对语言的约束。此外,运行目标系统的环境中可以提供的编译程序往往也限制了可以选用的语言的范围。
4)可以得到的软件开发工具由于开发经费的制约,往往使开发人员无法任意选择、购买合适的正版开发系统软件。此外,若能选用具有支持该语言程序开发的软件工具的程序设计语言,则将有利于目标系统的实现和验证。
5)软件开发人员的知识软件开发人员采用自己熟悉的语言进行开发,可以充分运用积累的经验使开发的目标程序具有更高的质量和运行效率,并可以大大缩短编码阶段的时间。为了能够根据具体问题选择更合适的语言,软件开发人员应拓宽自己的知识面,多掌握几种程序设计语言。
6)软件的可移植性要求要使开发出的软件能适应于不同的软、硬件环境,应选择具有较好通用性的、标准化程度高的语言。
7)软件的应用领域任何语言编译系统设计的出发点都有所不同,其对某一领域问题的处理能力也就存在较大差异,因此不存在真正适用于任何应用领域的语言,通用语言也不例外。如FORTRAN语言最适用于工程科学计算,COBOL语言最适用于处理商业领域中的问题。所以,选择语言时一定要充分考虑到软件的应用领域。1)科学工程计算该计算需要大量的标准库函数,以便处理复杂的数值计算,可供选用的语言有:(1)FORTRAN语言:是世界上第一个被正式推广应用的计算机语言,产生于1954年,经过FORTRAN0到FORTRANⅣ,又相继扩展为FORTRAN77,FORTRAN90,通过几个版本不断的更新,使它不仅面向科学计算,数据处理能力也极强。(2)Pascal语言:产生于60年代末,具有很强的数据和过程结构化的能力,它是第一个体现结构化编程思想的语言,由于它语言简明、数据类型丰富、程序结构严谨,许多算法都用类Pascal来概括。用Pascal语言写程序,也有助于培养良好的编程风格。(3)C语言:产生于70年代初,最初用于描述UNIX操作系统及其上层软件,后来发展成具有很强功能的语言,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符。此外还具有汇编语言的某些特性,使程序运行效率高。(4)PL/1语言:是一个适用性非常广泛的语言,能够适用于多种不同的应用领域,但由于太庞大,难以推广使用,目前一些PL/1的子集被广泛使用。2)数据处理与数据库应用数据处理与数据库应用可供选用的语言如下Cobol语言:产生于50年代末,是广泛用于商业数据处理的语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开,数据描述与算法描述分开,结构严谨层次分明,说明采用类英语的语法结构,可读性强。(2)SQL语言:最初是为IBM公司开发的数据库查询语言,目前不同的软件开发公司有了不同的扩充版本,如80年代后期我国引入Informix-SQL,Microsoft-SQL可以方便地对数据库进行存取管理。(3)4GL语言:称为第4代语言,随着信息系统的飞速发展,原来的第2代语言(如FORTRAN,Cobol)第3代语言(如Pascal,C等)受硬件和操作系统的局限,其开发工具不能满足新技术发展的需求,因此,在70年代末,提出了第4代语言的概念,4GL的主要特征是:①友好的用户界面:指操作简单,使非计算机专业人员也能方便地使用它。②兼有过程性和非过程性双重特性:非过程性指语言的抽象层次又提高到一个新的高度,只需告诉计算机“做什么”,而不必描述“怎么做”,“怎么做”的工作由语言系统运用它的专门领域的知识来填充过程细节。③高效的程序代码:指能缩短开发周期,并减少维护的代价。④完备的数据库:指在4GL中实现数据库功能,不再把DBMS(数据库管理系统)看成是语言以外的成分。⑤应用程序生成器:能提供一些常用的程序来完成文件维护、屏幕管理、报表生成和查询等任务,从而有效提高软件生产率。目前流行的Fox公司的FoxPro,Uniface公司的Uniface,Powersoft公司的PowerBuilder,Informix公司的Informix-4GL以及各种扩充版本的SQL等都不同程度地具有上述特征。3)实时处理实时处理软件一般对性能的要求很高,可选用的语言有:(1)汇编语言:是面向机器的,它可以完成高级语言无法满足要求的特殊功能,如与外部设备之间的一些接口操作。(2)Ada语言:是美国国防部出资开发的,主要用于适时、并发和嵌入系统的语言。Ada语言是在Pascal基础上开发出来的,但其功能更强、更复杂。它提供了一组丰富的实时特性,包括多任务处理、中断处理、任务间同步与通信等,它还提供了许多程序包供程序员选择。通过修订,已成为安全、高效和灵活的面向对象的编程语言。4)系统软件如果编写操作系统、编译系统等系统软件时,可选用汇编语言、C语言、Pascal语言和Ada语言。
5)人工智能如果要完成知识库系统、专家系统、决策支持系统、推理工程、语言识别、模式识别、机器人视角及自然语言处理等人工智能领域内的系统,应选择的语言如下:
(1)Lisp:是一种函数型语言,产生于60年代初,它特别适用于组合问题中的符号运算和表处理,因此用于定理证明、树的搜索和其他问题的求解。近年来Lisp广泛应用于专家系统的开发,对于定义知识库系统中的事实、规则和相应的推理相对要容易一些。
(2)Prolog:是一种逻辑型语言,产生于70年代初,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的子句组成,比较接近于自然语言,符合人的思维方式。以上讨论的语言,一般适用于相应的应用领域,但要根据具体情况灵活掌握。有的语言功能强,适用的范围较广,但比较庞大。
6.1.4
软件开发的方法有时编程语言的选择依赖于开发的方法,如果要用快速原型模型来开发(详见第7章),要求能快速实现原型,因此宜采用4GL。如果是面向对象方法,宜采用面向对象的语言编程。近年来,推出了许多面向对象的语言,这里主要介绍以下几种:(1)C++:是由美国AT&T公司的Bell实验室最先设计和实现的语言,它提供了面向对象类的定义、继承、封装和消息传递等概念实现的手段,又与C语言兼容,保留了C语言的许多特性,维护了大量已开发的C库、C工具以及C源程序的完整性,使编程人员不必放弃自己熟悉的C语言,只需补充学习C++提供的那些面向对象的概念,因而从C过渡到C++比较容易,加之它的运行性能较高,成为当今最受欢迎的对象语言之一。目前,除了常用的AT&TC++,TurboC++,BorlandC++及MicrosoftC++等版本外,又推出了MicrosoftVisualC++,充分发挥Windows和Web的功能。
(2)Java:是由Sun公司开发的一种面向对象的、分布式的、安全的、高效的及易移植的语言,它的基本功能类似于C++,但做了重大修改,不再支持运算符重载、多继承及许多易于混淆和较少使用的特性,增加了内存空间自动垃圾收集的功能,使程序员不必考虑内存管理问题。Java应用程序可利用语言提供的例程库,能够自由地打开和访问网络上的对象。
3.软件执行的环境良好的编程环境不但有效提高软件生产率,同时能减少错误,有效提高软件质量。近几年推出了许多可视化的软件开发环境,如VisualBASIC,VisualC,VisualFoxPro及Delphi(面向对象的Pascal)等,都提供了强有力的调试工具,帮助你快速形成高质量的软件。
4.算法和数据结构的复杂性科学计算、实时处理和人工智能领域中的问题算法较复杂,而数据处理、数据库应用和系统软件领域内的问题,数据结构比较复杂,因此选择语言时可考虑是否有完成复杂算法的能力,或者有构造复杂数据结构的能力。
5.软件开发人员的知识
有时编程语言的选择与软件开发人员的知识水平及心理因素有关,新的语言虽然有吸引力,但软件开发人员若熟悉某种语言,而且有类似项目的开发经验,往往愿选择原有的语言。开发人员应仔细地分析软件项目的类型,敢于学习新知识,掌握新技术。6.2编码风格及软件效率6.2.1编码风格编码风格是指在不影响程序正确性和效率的前提下,有效编排和合理组织程序的基本原则。一个具有良好编码风格的程序主要表现为可读性好、易测试、易维护。由于测试和维护阶段的费用在软件开发总成本中所占比例很大,因此编码风格的好坏直接影响着整个软件开发中成本耗费的多少。特别是在需要团队合作开发大型软件的时候,编码风格显得尤为重要。若团队中的成员不注重自己的编码风格,则会严重影响与其他成员的合作和沟通,最终将可能导致软件质量上出现问题。
1.内部文档所谓内部文档,是指程序中的说明性注释信息。在程序中加入注释信息的目的是为了提高程序的可读性,为程序的测试和维护带来方便。几乎所有的程序设计语言中都提供了专用于书写注释信息的注释语句。为了使程序易于阅读和修改,应在必要的地方加上相应的注释。在修改程序时,不要忘记对相应的注释也要进行修改。程序中的注释一般可按其用途分为两类:序言性注释和描述性注释。
1)序言性注释序言性注释一般位于模块的首部,用于说明模块的相关信息。主要包括:对模块的功能、用途进行简要说明;对模块的界面进行描述,如调用语句的格式、各个参数的作用及需调用的下级模块的清单等;对模块的开发历史进行介绍,如模块编写者的资料、模块审核者的资料及建立、修改的时间等;对模块的输入数据或输出数据进行说明,如数据的格式、类型及含义等。
2)描述性注释描述性注释位于源程序模块内部,用于对某些难以理解的语句段的功能或某些重要的标识符的用途等进行说明。通过在程序中加入恰当的描述性注释可以大大提高程序的可读性和可理解性,对语句的注释应紧跟在被说明语句之后书写。需要注意的是,并不是对所有程序中的语句都要进行注释,太多不必要的注释反而会影响人们对程序的阅读。
2.标识符的命名及说明编写程序必然要使用标识符,特别是对于大型程序,使用的标识符可能成千上万。由于对程序中的标识符作用的正确理解是读懂程序的前提,因此若编程者随心所欲地进行标识符的命名和说明,可能就会给阅读程序带来麻烦。
1)标识符的命名为了便于阅读程序时对标识符作用进行正确的理解,标识符的命名应注意以下几个问题:
(1)选用具有实际含义的标识符,如用于存放年龄的变量名最好取age,用于存放学生信息的数组名最好取student。若标识符由多个单词构成,则每个单词的第一个字母最好采用大写或单词间用下划线分隔,以利于对标识符含义的理解。
(2)为了便于程序的输入,标识符的名字不宜过长,通常不要超过八个字符。特别是对于那些对标识符长度有限制的语言编译系统来说,取过长的标识符名没有任何的意义。如在FORTRAN77中,通常编译系统可以区分的标识符长度不超过六个字符。
(3)为了便于区分,不同的标识符不要取过于相似的名字。如student和students,很容易在使用或阅读时产生混淆。
2)标识符的说明由于程序中通常需要使用大量不同类型的标识符,为了使说明部分阅读起来更加清晰,在对其进行类型说明时应注意以下几点:
(1)应按照某种顺序分别对各种类型的变量进行集中说明,如:先说明简单类型,再说明指针类型,再说明记录类型;对简单类型的变量进行说明时,可先说明整型,再说明实型,再说明字符型等等。
(2)在使用一个说明语句对同一类型的多个变量进行说明时,应按照变量名中的字母顺序(a~z)对其进行排列。
3.语句的构造及书写语句是构成程序的基本单位,语句的构造方式和书写格式对程序的可读性具有非常重要的决定作用。
1)语句构造
(1)语句应简单直接,避免使用华而不实的程序设计技巧。如为了求出x、y两个数中的较大数,以下两个C语句均可实现:方法一:max=(x+y+abs(x-y))/2;方法二:max=(x>y)?x:y;显然,方法二的可读性要比方法一好得多。
(2)对复杂的表达式应加上必要的括号使表达更加清晰。如C语言中判断闰年的表达式若写为
(year%400==0)||(year%4==0&&year%100!=0)则比不加括号时看起来清晰得多。
(3)由于人的一般思维方式对逻辑非运算不太适应,因此在条件表达式中应尽量不使用否定的逻辑表示。如Pascal中的条件表达式not((x>=5)and(x<=10)),若表示为(x<5)or(x>10)则更加直观和清晰。
(4)为了不破坏结构化程序设计中结构的清晰性,在程序中应尽量不使用强制转移语句GOTO。
(5)为了便于程序的理解,不要书写太复杂的条件,嵌套的重数也不宜过多。
(6)为了缩短程序的代码,在程序中应尽可能地使用编译系统提供的标准函数。对于程序中需要重复出现的代码段,应将其用独立模块(函数或过程)实现。
2)书写格式为了便于人们对程序(特别是大型程序)的阅读,清晰整齐的书写格式是必不可少的。以下列出了书写程序时需注意的几个主要问题。
(1)虽然许多语言都允许在一行上书写多个语句,但为了程序看起来更加清楚,最好在一行上只书写一条语句。
(2)在书写语句时,应通过采用递缩式格式使程序的层次更加清晰。
(3)在模块之间通过加入空行进行分隔。
(4)为了便于区分程序中的注释,最好在注释段的周围加上边框。
4.输入/输出由于输入和输出是用户与程序之间传递信息的渠道,因此输入、输出的方式往往是用户衡量程序好坏的重要指标。为了使程序的输入、输出能便于用户的使用,在编写程序时应对输入和输出的设计格外注意。
1)输入在运行程序时,原始数据的输入工作通常要由用户自己完成。为了使用户能方便地进行数据的输入,应注意以下几点:
(1)输入方式应力求简单,尽量避免给用户带来不必要的麻烦。如:尽可能采用简单的输入格式、尽可能减少用户的输入量。当程序中对输入数据的格式需要有严格规定时,同一程序中的输入格式应尽可能保持一致。
(2)交互式输入数据时应有必要的提示信息,提示信息可包括:输入请求、数据的格式及可选范围等。如:“请输入待查职工的编号(5位数字00001~99999)”。
(3)程序应对输入数据的合法性进行检查。若用户输入了非法的数据,则应向用户输出相应的提示信息,并允许用户重新输入正确的信息。例如,月份的正确值只能在1~12之间,若检测输入的月份超出了这个范围,就说明用户输入的数据非法,此时应输出出错提示并允许用户再次输入。
(4)若用户输入某些数据后可能会产生严重后果,应给用户输出必要的提示并在必要的时候要求用户确认。如:“清库会使库中原有数据全部丢失,真的需要清库吗?(Y/N)”
(5)当需要输入一批数据时,不要以记数方式控制数据的输入个数,而应以特殊标记作为数据输入结束的标志。例如,要输入一个班学生的成绩,若要求用户输入学生的总数并通过总数来控制输入数据的个数,无疑就会增加用户的麻烦;而若以特殊标记来控制数据的录入,如当用户输入―1时结束输入,对于用户而言就方便多了。
(6)应根据系统的特点和用户的习惯设计出令用户满意的输入方式。
2)输出用户需要通过程序的输出来获取加工的结果。为了使用户能够清楚地看到需要的结果,设计数据输出方式时应注意以下几点:
(1)输出数据的格式应清晰、美观。如对大量数据采用表格的形式输出,可以使用户一目了然。
(2)输出数据时要加上必要的提示信息。例如,表格的输出一定要带有表头,用以说明表格中各项数据的含义。6.2.2软件效率软件的“高效率”,即用尽可能短的时间及尽可能少的存储空间实现程序要求的所有功能,是程序设计追求的主要目标之一。一个程序效率的高低取决于多个方面,主要包括需求分析阶段模型的生成、设计阶段算法的选择和编码阶段语句的实现。正由于编码阶段在很大程度上影响着软件的效率,因此在进行编码时必须充分考虑程序生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 砌体购销合同范本
- 2023年烟台市蓬莱区公立医院招聘考试真题
- 自创标准合同范本
- 2023年丽水地区录用公务员考试真题
- 依兰租房合同范本
- 2023年福州市马尾区招聘专职船管员考试真题
- 2024零售店面改造装修协议范本
- 《找找三角形》全新解读
- 2024茶叶供销详细协议文档
- 2024年新视野:《认识百分数》
- 人教版七年级地理上册:第二章+第二节海陆变迁海陆的变迁共38张PPT(三亚实验中学王玉芳)
- 半导体简答题
- 附件4:配网安健环设施标准配置
- 办公室工作流程图示
- (完整版)营销策划服务清单
- 产品标签模板
- OBE理念与人才培养方案制定PPT课件
- 离任审计工作方案 样稿
- 四大名著称四大小说三国演义西游记水浒传红楼梦中国古典章回小说PPT资料课件
- 港珠澳大桥项目管理案例分析PPT课件
- GB∕T 12810-2021 实验室玻璃仪器 玻璃量器的容量校准和使用方法
评论
0/150
提交评论