软件编程开发作业指导书_第1页
软件编程开发作业指导书_第2页
软件编程开发作业指导书_第3页
软件编程开发作业指导书_第4页
软件编程开发作业指导书_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件编程开发作业指导书TOC\o"1-2"\h\u13760第1章编程基础 4111751.1环境配置 4223841.1.1操作系统 4198461.1.2编程工具 4228191.1.3编译器或解释器 477131.1.4开发库和框架 4172341.2基本语法 4133591.2.1数据类型 4188081.2.2运算符 5303211.2.3控制语句 5316721.2.4函数和模块 539021.3控制结构 5211931.3.1顺序结构 554451.3.2分支结构 5205171.3.3循环结构 5234181.3.4跳转结构 531949第2章数据类型与变量 5105692.1数据类型 590002.2变量定义与使用 6259872.3类型转换 717596第3章函数与模块 7209023.1函数定义与调用 748223.1.1函数定义 783013.1.2函数调用 8105933.2参数传递 8188883.2.1位置参数 813993.2.2关键字参数 8203983.2.3默认值参数 8157293.2.4可变长度参数 96133.3模块使用 9282883.3.1导入模块 921063.3.2模块命名空间 10133393.3.3模块安装与使用 1019387第4章数组与字符串 10245144.1数组操作 10196924.1.1一维数组 1071364.1.2二维数组 10299774.1.3数组排序 11150724.1.4数组查找 11189844.2字符串操作 11152694.2.1字符串基础 1114404.2.2字符串查找与替换 1158944.2.3字符串分割与合并 11298874.2.4字符串格式化 11179274.3常用算法 11292594.3.1排序算法 11119924.3.2查找算法 1141144.3.3字符串处理算法 11222544.3.4数组应用相关算法 1129997第5章面向对象编程 12273055.1类与对象 12244435.1.1类的定义 12285175.1.2对象的创建与使用 12271305.2继承与多态 12232785.2.1继承 1217685.2.2多态 12255135.3抽象类与接口 13214495.3.1抽象类 13140665.3.2接口 1324265第6章文件操作与异常处理 13285436.1文件读写 13286966.1.1文本文件读写 13132596.1.2二进制文件读写 14161736.2文件操作 14258036.2.1文件定位 14315056.2.2文件属性 14183166.2.3文件重命名与删除 1415756.3异常处理 14103356.3.1tryexcept语句 1423166.3.2tryexceptfinally语句 15114526.3.3异常的传递与抛出 1523927第7章数据结构与算法 15289457.1线性表 1564847.1.1线性表的定义 15148557.1.2线性表的存储结构 158707.1.3线性表的操作 15320167.2栈与队列 15179667.2.1栈 1525140栈的定义 156898栈的存储结构 1612664栈的操作 16138477.2.2队列 1628759队列的定义 1618219队列的存储结构 1622563队列的操作 16128787.3树与图 17215767.3.1树 175597树的定义 1728611树的存储结构 171682树的操作 1749477.3.2图 1732111图的定义 1716941图的存储结构 173629图的操作 1712593第8章网络编程 18291958.1网络基础知识 18135608.1.1网络协议 1846578.1.2网络模型 1895278.1.3IP地址与端口号 18220168.2套接字编程 1821198.2.1套接字概念 18238108.2.2套接字类型 18122388.2.3套接字编程接口 18187888.2.4套接字编程流程 18306918.3网络应用案例 19100048.3.1TCP客户端/服务器通信 1992518.3.2UDP聊天程序 1974218.3.3网络爬虫 19293258.3.4网络游戏服务器 1916630第9章数据库编程 19312649.1数据库基础 19277469.1.1数据库概念 19234429.1.2数据库类型 1978249.1.3数据库基本操作 19155149.2SQL语句 1990539.2.1数据定义语言(DDL) 2027199.2.2数据操纵语言(DML) 20101539.2.3数据控制语言(DCL) 20101889.3数据库连接与操作 20293329.3.1数据库连接 20322159.3.2数据库操作 2029100第10章综合实战 21307610.1项目分析与设计 213056810.1.1项目背景 212921910.1.2项目需求 211809110.1.3技术选型 211858810.2功能模块开发 21694210.2.1用户模块 212196110.2.2图书模块 21758810.2.3购物车模块 222948410.2.4订单模块 222796410.3系统测试与优化 221875310.3.1功能测试 222662710.3.2功能测试 223251010.3.3安全测试 223205410.3.4优化与改进 22第1章编程基础1.1环境配置在进行软件编程开发之前,首先需要配置合适的编程环境。本章将指导你完成编程环境的搭建,保证后续开发过程的顺利进行。1.1.1操作系统根据个人喜好和项目需求,选择合适的操作系统。目前主流的操作系统有Windows、macOS和Linux等。不同的操作系统对应有不同的编程工具和开发环境。1.1.2编程工具根据所选编程语言,选择合适的编程工具。例如,对于Java语言,可以使用IntelliJIDEA、Eclipse或NetBeans等集成开发环境(IDE);对于Python语言,可以使用PyCharm、VisualStudioCode等。1.1.3编译器或解释器编译器或解释器是将编程语言转化为计算机可执行代码的工具。根据所选择的编程语言,安装对应的编译器或解释器。例如,Java语言需要安装JDK(JavaDevelopmentKit),Python语言需要安装Python解释器。1.1.4开发库和框架根据项目需求,安装相应的开发库和框架。这些工具可以帮助你更高效地完成编程任务。1.2基本语法在编程过程中,掌握基本语法是的。本节将介绍所选编程语言的基本语法,为后续编程开发打下基础。1.2.1数据类型了解编程语言中的基本数据类型,如整型(int)、浮点型(float)、字符串型(String)等。掌握如何声明变量以及不同数据类型之间的转换。1.2.2运算符熟悉编程语言中的运算符,包括算数运算符、关系运算符、逻辑运算符等。了解运算符的优先级和结合性。1.2.3控制语句掌握编程语言中的控制语句,如条件语句(if、else)、循环语句(for、while)等。这些语句用于控制程序的执行流程。1.2.4函数和模块了解函数的定义、调用和返回值。掌握如何使用模块和包组织代码,提高代码的可维护性。1.3控制结构控制结构是编程语言中用于组织和控制程序流程的构造。本节将介绍控制结构的基本概念和应用。1.3.1顺序结构顺序结构是程序中最基本的结构,表示程序按照代码顺序逐行执行。1.3.2分支结构分支结构用于根据条件选择性地执行代码。常见的分支结构有if语句、ifelse语句和switch语句。1.3.3循环结构循环结构用于重复执行一段代码。常见的循环结构有for循环、while循环和dowhile循环。1.3.4跳转结构跳转结构用于在程序中实现跳转,如break、continue和return等。这些关键字可以帮助你优化程序流程,提高代码执行效率。第2章数据类型与变量2.1数据类型在软件编程中,数据类型是用于声明变量或函数返回值的类型,它决定了数据在内存中的存储方式和能够进行的操作。合理使用数据类型对于保证程序的准确性和高效性。基本数据类型主要包括以下几类:整数类型(Integers):用于表示没有小数部分的数,包括正整数、负整数和零。常见的整数类型有te、short、int、long等,它们在内存中占用的空间和表示的数值范围不同。浮点类型(Floatingpoint):用于表示带有小数部分的数值,包括单精度浮点数(float)和双精度浮点数(double)。字符类型(Characters):用于表示单个字符,如字母、数字和其他特殊符号。在大多数编程语言中,字符类型通常使用char表示。布尔类型(Boolean):用于表示逻辑值,仅有两个取值:真(true)和假(false)。字符串类型(Strings):用于表示一串字符序列,可以是文本、数字或其他符号的组合。2.2变量定义与使用变量是内存中用于存储数据的一个位置,它具有一个名字和一个类型。定义变量是为了在程序中方便地引用数据。变量的定义通常遵循以下格式:<数据类型><变量名>;使用变量时,需要遵循以下规则:变量必须先定义后使用。变量定义时可以初始化,即赋予一个初始值。变量的作用域通常在其定义的代码块内。变量名应具有描述性,能够清楚地表达其存储的数据内容。例如:intnumber;doublepi=3.14159;chargrade='A';booleanisValid=true;Stringmessage="HelloWorld";2.3类型转换在程序中,有时需要在不同数据类型之间进行转换,这个过程称为类型转换。类型转换分为隐式转换和显式转换。隐式转换:由编译器自动完成,无需程序员指定。通常发生在不同类型的数据进行运算时,编译器会自动将一个数据类型转换成另一个数据类型,以完成运算。显式转换:需要程序员明确指明转换的类型,通常使用类型转换操作符(如强制类型转换)。显式转换的格式如下:<目标数据类型><变量名>=(<目标数据类型>)<源变量>;例如:intintValue=10;doubledoubleValue=(double)intValue;//将整型变量intValue显式转换为双精度浮点型在进行类型转换时,需要注意以下问题:显式转换可能会导致数据精度的损失或数值的变化。任何类型的数据都可以转换为字符串类型,通常使用显式转换完成。类型转换应谨慎使用,避免不必要的功能开销和程序错误。第3章函数与模块3.1函数定义与调用函数是组织好的、可重复使用的、用于实现单一功能的代码段。在编程中,通过定义函数可以提高代码的模块性和可维护性。以下是关于函数定义与调用的基本概念。3.1.1函数定义函数定义(也称为函数声明)指定了函数的名称、参数(输入)和返回值(输出)。一个基本的函数定义包含以下部分:关键字def,表示定义一个函数;函数名称,符合标识符命名规则,通常采用小写字母和下划线组合;括号内的参数列表,参数之间用逗号隔开;冒号,表示函数定义的结束;函数体,即函数内部执行的代码块。示例:defgreet(name):print("Hello,"name"!")3.1.2函数调用函数调用是指执行一个函数的过程。调用函数时,需要提供相应的参数,并按照函数定义执行函数体中的代码。示例:greet("Alice")输出:Hello,Alice!3.2参数传递参数传递是函数调用过程中将实参传递给形参的过程。根据参数传递的方式,可以分为以下几种:3.2.1位置参数位置参数是按照参数在函数定义时的顺序传递的参数。调用函数时,实参与形参按照位置一一对应。示例:defadd(a,b):returnabresult=add(3,4)输出:73.2.2关键字参数关键字参数是使用参数名称进行传递的参数。通过指定参数名称,可以不按照定义顺序传递参数。示例:defadd(a,b):returnabresult=add(b=4,a=3)输出:73.2.3默认值参数在函数定义时,可以为参数设置默认值。调用函数时,如果未提供相应的实参,则使用默认值。示例:defgreet(name,greeting="Hello"):print(greeting","name"!")greet("Alice")输出:Hello,Alice!greet("Alice","Hi")输出:Hi,Alice!3.2.4可变长度参数可变长度参数允许函数接收任意数量的位置参数或关键字参数。args:接收任意数量的位置参数,保存在元组中;kwargs:接收任意数量的关键字参数,保存在字典中。示例:defsum_all(args):returnsum(args)defprint_info(kwargs):forkey,valueinkwargs.items():print(f"{key}:{value}")sum_result=sum_all(1,2,3,4)输出:10print_info(name="Alice",age=30)输出:name:Alice,age:303.3模块使用模块是包含了一组相关功能的代码的文件。在编程中,通过导入模块,可以方便地使用其提供的功能。3.3.1导入模块使用import关键字导入模块,可以导入整个模块,也可以导入模块中的特定元素。示例:导入整个模块importmath导入模块中的特定元素frommathimportsqrtsqrt_value=sqrt(9)输出:3.03.3.2模块命名空间模块具有独立的命名空间,意味着模块内的变量、函数和类不会与全局命名空间或其他模块冲突。示例:导入两个模块importmathimportrandom使用模块名调用函数math.sqrt(9)random.randint(1,10)3.3.3模块安装与使用对于第三方模块,可以使用包管理器(如pip)进行安装。安装后,遵循导入模块的规则即可使用。示例:bash使用pip安装第三方模块pipinstallrequests在Python代码中导入并使用第三方模块importrequestsresponse=requests.get("s://example.")第4章数组与字符串4.1数组操作4.1.1一维数组一维数组是最基本的数组形式,主要用于存储具有相同数据类型的元素。本节将介绍一维数组的创建、初始化、遍历和排序等基本操作。4.1.2二维数组二维数组可以看作是数组的数组,它用于存储具有相同数据类型的多行多列元素。本节将介绍二维数组的创建、初始化、遍历以及针对特定行列的操作。4.1.3数组排序排序是数组操作中的重要环节,本节将介绍常见的排序算法,如冒泡排序、选择排序、插入排序和快速排序等。4.1.4数组查找查找是数组操作中的另一个关键环节,本节将介绍线性查找和二分查找等算法。4.2字符串操作4.2.1字符串基础字符串是编程中经常使用的数据类型,本节将介绍字符串的创建、连接、复制、比较等基本操作。4.2.2字符串查找与替换本节将介绍字符串中查找子串、替换子串等操作,包括常见的KMP算法和BoyerMoore算法。4.2.3字符串分割与合并字符串分割和合并是处理字符串时的常用操作,本节将介绍相关方法及其应用。4.2.4字符串格式化字符串格式化用于具有特定格式的字符串。本节将介绍各种字符串格式化方法,如占位符、格式化输出等。4.3常用算法4.3.1排序算法本节将重点介绍几种常用的排序算法,包括冒泡排序、选择排序、插入排序、快速排序和归并排序等。4.3.2查找算法本节将介绍线性查找、二分查找、插值查找和斐波那契查找等查找算法。4.3.3字符串处理算法本节将介绍字符串处理中常用的算法,如字符串匹配、最长公共子串、最长公共子序列等。4.3.4数组应用相关算法本节将介绍与数组相关的算法,如二维数组中的查找路径、矩阵的转置、数组的旋转等。第5章面向对象编程5.1类与对象面向对象编程(ObjectOrientedProgramming,OOP)是一种编程范式,它将软件中的各个部分视为对象。这些对象是现实世界中事物的抽象。类(Class)是创建对象的模板,它定义了一组具有相同属性和方法的对象。5.1.1类的定义类是面向对象编程的核心概念,它包含以下三个基本部分:(1)类名:标识符,用于表示类。(2)属性:类的成员变量,用于描述类的特征。(3)方法:类的成员函数,用于描述类的行为。5.1.2对象的创建与使用对象是类的实例,通过以下步骤创建和使用对象:(1)创建对象:使用new关键字和类名创建对象。(2)访问属性:通过对象名和点(.)运算符访问对象的属性。(3)调用方法:通过对象名和点(.)运算符调用对象的方法。5.2继承与多态继承(Inheritance)是面向对象编程中的一个重要概念,允许一个类(子类)继承另一个类(父类)的属性和方法。多态(Polymorphism)是面向对象编程的另一个核心概念,它允许同一操作对不同类型的对象产生不同的行为。5.2.1继承继承的目的是实现代码的复用和扩展。子类可以继承父类的公共属性和方法,同时还可以添加新的属性和方法。(1)单继承:子类一个直接父类。(2)多继承:子类有多个直接父类。5.2.2多态多态性是指同一个方法名在不同情况下具有不同行为的能力。实现多态有以下两种方式:(1)方法重载(Overloading):在同一个类中,存在多个同名方法,但参数列表不同。(2)方法重写(Overriding):在子类中,重写父类的同名方法。5.3抽象类与接口抽象类(AbstractClass)和接口(Interface)是面向对象编程中用于定义抽象层次和实现多态的两种机制。5.3.1抽象类抽象类是一种包含抽象方法的类,它不能被实例化,但可以被子类继承。抽象类的作用如下:(1)定义公共属性和方法。(2)提供抽象方法,强迫子类实现这些方法。5.3.2接口接口是一种完全抽象的类,它仅包含抽象方法和静态常量。接口的作用如下:(1)定义公共方法。(2)实现多继承。(3)降低类之间的耦合。通过本章的学习,读者应掌握面向对象编程的基本概念,包括类与对象、继承与多态、抽象类与接口。这将有助于在软件开发过程中更好地运用面向对象思想,提高代码的可维护性和可扩展性。第6章文件操作与异常处理6.1文件读写6.1.1文本文件读写文本文件是最常见的文件类型,主要包括.txt、.py等格式的文件。在Python中,可以使用open()函数来打开一个文件,并对其进行读写操作。(1)打开文件:使用open()函数,传入文件路径和模式(如'r'表示只读,'w'表示只写等)。(2)读取文件内容:使用read()、readline()或readlines()方法读取文件内容。(3)写入文件内容:使用write()方法将内容写入文件。(4)关闭文件:操作完成后,使用close()方法关闭文件。6.1.2二进制文件读写二进制文件包括图片、音频、视频等文件类型。在Python中,可以使用'rb'或'wb'模式读写二进制文件。(1)打开文件:使用open()函数,传入文件路径和模式(如'rb'表示只读二进制文件,'wb'表示只写二进制文件)。(2)读取和写入文件内容:与文本文件类似,使用read()、write()等方法。(3)关闭文件:使用close()方法关闭文件。6.2文件操作6.2.1文件定位文件定位是指在文件操作过程中,将文件指针移动到指定的位置。在Python中,可以使用seek()方法实现文件定位。(1)seek(offset,whence):offset表示偏移量,whence表示参考位置(0表示文件开头,1表示当前位置,2表示文件结尾)。(2)tell():返回当前文件指针的位置。6.2.2文件属性使用os模块中的os.stat()方法可以获取文件的基本属性,如文件大小、创建时间等。6.2.3文件重命名与删除(1)重命名文件:使用os模块的os.rename()方法。(2)删除文件:使用os模块的os.remove()方法。6.3异常处理异常处理是程序设计中不可或缺的一部分,可以有效避免程序因错误而崩溃。在Python中,异常处理主要通过try、except、finally语句实现。6.3.1tryexcept语句tryexcept语句用于捕获和处理程序运行过程中可能出现的异常。(1)try:尝试执行可能引发异常的代码块。(2)except:捕获并处理异常,可以指定异常类型,也可以不指定。6.3.2tryexceptfinally语句tryexceptfinally语句在try和except的基础上,增加了finally块,无论是否发生异常,finally块中的代码都会执行。6.3.3异常的传递与抛出(1)异常传递:在一个tryexcept块中未捕获的异常会传递给上层的tryexcept块。(2)抛出异常:使用raise语句抛出异常,可以手动引发异常。第7章数据结构与算法7.1线性表7.1.1线性表的定义线性表是具有相同数据类型的n个数据元素的有限序列,其中n为表长,当n为0时,线性表为空表。7.1.2线性表的存储结构线性表的存储结构主要有顺序存储和链式存储两种方式。(1)顺序存储:线性表的顺序存储结构称为顺序表,其特点是数据元素在内存中连续存放,且逻辑结构相邻的数据元素在物理结构上也相邻。(2)链式存储:线性表的链式存储结构称为链表,其特点是通过指针将数据元素连接起来,逻辑上相邻的数据元素通过指针相连。7.1.3线性表的操作线性表的主要操作包括:(1)初始化线性表。(2)插入数据元素。(3)删除数据元素。(4)查找数据元素。(5)遍历线性表。7.2栈与队列7.2.1栈栈的定义栈是一种特殊的线性表,其插入和删除操作都只在表的一端进行,这一端称为栈顶,另一端称为栈底。栈的存储结构栈的存储结构主要有顺序栈和链栈两种。(1)顺序栈:使用数组实现栈,栈顶指针表示栈顶元素的位置。(2)链栈:使用链表实现栈,每个节点包含数据和指向下一个节点的指针。栈的操作栈的主要操作包括:(1)初始化栈。(2)入栈(压栈)。(3)出栈(弹栈)。(4)获取栈顶元素。(5)判断栈是否为空。7.2.2队列队列的定义队列是一种特殊的线性表,其插入操作在表的一端进行,称为队尾,删除操作在另一端进行,称为队头。队列的存储结构队列的存储结构主要有顺序队列和链队列两种。(1)顺序队列:使用数组实现队列,队头指针和队尾指针分别表示队头元素和队尾元素的位置。(2)链队列:使用链表实现队列,每个节点包含数据和指向下一个节点的指针。队列的操作队列的主要操作包括:(1)初始化队列。(2)入队。(3)出队。(4)获取队头元素。(5)判断队列是否为空。7.3树与图7.3.1树树的定义树是一种非线性数据结构,由一个根节点和若干个子树构成,子树之间互不相交。树的存储结构树的存储结构主要有两种:(1)双亲表示法:使用数组存储树,每个节点存储其父节点的位置。(2)子女表示法:使用链表存储树,每个节点包含指向其子节点的指针。树的操作树的主要操作包括:(1)初始化树。(2)插入节点。(3)删除节点。(4)查找节点。(5)遍历树。7.3.2图图的定义图是一种非线性数据结构,由顶点和连接顶点的边构成。图的存储结构图的存储结构主要有邻接矩阵和邻接表两种。(1)邻接矩阵:使用二维数组表示图的顶点之间的关系。(2)邻接表:使用链表表示图的顶点之间的关系。图的操作图的主要操作包括:(1)初始化图。(2)插入顶点。(3)插入边。(4)删除顶点。(5)删除边。(6)查找顶点。(7)遍历图。第8章网络编程8.1网络基础知识8.1.1网络协议网络协议是计算机网络中的规则和约定,它定义了计算机间通信的语法、语义和同步。常见的网络协议有TCP/IP、HTTP、FTP等。8.1.2网络模型网络模型主要包括OSI七层模型和TCP/IP四层模型。本课程重点关注TCP/IP模型,包括网络接口层、互联网层、传输层和应用层。8.1.3IP地址与端口号IP地址用于标识网络中的设备,端口号用于标识设备上的应用程序。IP地址和端口号共同决定了网络通信中的唯一标识。8.2套接字编程8.2.1套接字概念套接字(Socket)是网络编程中用于实现不同计算机间的通信的一种技术。它提供了异步、双向、可靠的数据传输。8.2.2套接字类型根据通信域和传输类型,套接字可以分为以下几种类型:流套接字(TCP)、数据报套接字(UDP)、原始套接字等。8.2.3套接字编程接口套接字编程接口主要包括以下函数:socket()、bind()、listen()、accept()、connect()、send()、recv()等。8.2.4套接字编程流程(1)创建套接字(2)绑定IP地址和端口号(3)监听连接请求(4)接受连接(5)数据传输(6)关闭套接字8.3网络应用案例8.3.1TCP客户端/服务器通信以文件传输为例,实现一个简单的TCP客户端和服务器程序。客户端发送文件请求,服务器接收请求并返回文件数据。8.3.2UDP聊天程序基于UDP协议实现一个简单的聊天程序,包括发送消息、接收消息、显示聊天记录等功能。8.3.3网络爬虫编写一个简单的网络爬虫程序,用于从互联网上抓取网页数据。通过套接字发送HTTP请求,并解析返回的HTML内容。8.3.4网络游戏服务器设计并实现一个简单的网络游戏服务器,负责处理玩家连接、数据同步、游戏逻辑处理等功能。利用套接字实现客户端与服务器之间的通信。第9章数据库编程9.1数据库基础本章主要介绍数据库编程的相关知识。了解数据库的基础概念,包括数据库的组成、类型及基本操作。9.1.1数据库概念数据库是按照数据结构来组织、存储和管理数据的仓库。它可以用来存储大量的数据,以便进行高效的数据检索、更新和管理。9.1.2数据库类型常见数据库类型包括关系型数据库(如MySQL、Oracle、SQLServer等)和非关系型数据库(如MongoDB、Redis等)。9.1.3数据库基本操作数据库基本操作包括创建、查询、更新、删除等。这些操作通常通过结构化查询语言(SQL)实现。9.2SQL语句SQL(StructuredQueryLanguage)是一种专门用于与数据库通信的语言。在本节中,我们将介绍常见的SQL语句。9.2.1数据定义语言(DDL)DDL主要用于创建、修改和删除数据库中的对象,如数据库、表、索引等。CREATE:创建数据库对象DROP:删除数据库对象ALTER:修改数据库对象9.2.2数据操纵语言(DML)DML主要用于对数据库表中的数据进行插入、查询、更新和删除操作。INSERT:插入数据SELECT:查询数据UPDATE:更新数据DELETE:删除数据9.2.3数据控制语言(DCL)DCL主要用于控制不同数据的访问权限。GRANT:授权REVOKE:撤销授权9.3数据库连接与操作在实际应用中,我们需要通过编程语言与数据库建立连接,并执行相应的数据库操作

温馨提示

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

评论

0/150

提交评论