中南民族大学大二下java实验报告.doc_第1页
中南民族大学大二下java实验报告.doc_第2页
中南民族大学大二下java实验报告.doc_第3页
中南民族大学大二下java实验报告.doc_第4页
中南民族大学大二下java实验报告.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

中南民族大学管理学院学生实验报告中南民族大学管理学院学生实验报告课程名称:面向对象程序设计(Java)年 级: 2012 专 业:信息管理与信息系统 学 号: 2012212411 姓 名: 李阳 指导教师:张晴 于同洋 实验地点:管理学院综合实验室 2013 学年至 2014 学年度第 2 学期目 录实验一 熟悉Java程序的编辑、编译和运行过程(验证型)实验二 Java语言程序设计基础训练(一)(验证型)实验三 Java语言程序设计基础训练(二)(设计型)实验四 类的封装性和继承性设计(一)(设计型)实验五 类的封装性和继承性设计(二)(验证型)实验六 类的封装性和继承性设计(三)(设计型)实验七 接口、内部类和包(设计型)实验八 异常的抛出、捕获和处理(设计型)实验九 图形用户界面编程(验证型)实验十一 多线程程序(验证型)实验1 熟悉Java程序的编辑、编译和运行过程(验证型)o 实验目的熟悉JDK环境;理解Java Application应用程序的运行原理和方法;掌握编辑、编译并运行程序的操作。o 实验要求:用JDK+记事本编辑、编译并运行程序;下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本次实验的实验报告o 实验内容:1、查看JDK安装目录,说明其目录结构(参照Java程序设计实用教程(第4版)表1-1);说明如何设置path环境变量。2、编辑、编译并运行一个简单的Java程序,写出程序运行结果。3、成功编译并运行上述程序后将public static void main(String args) 分别改为public static void main()或者public static main(String args),并尝试重新编译或运行程序,结果怎样?为什么?4、注意,程序中的String 和 System是两个类名,按照java编码约定类名的首字母应改用大写字母。若误写为string或system,编译后出现的错误提示是什么?o 结果分析(可围绕以下问题进行结果分析):1、 编译器javac.exe和解释器java.exe在JDK的哪个目录下?该目录还包含了哪些工具?(可以通过javadoc帮助文档查看这些工具的作用和用法)答:在bin文件夹里面,还包含了jdb.exe、jar.exe和javadoc.exe等等工具。2、 设置path环境变量的目的是什么?如果没有正确设置环境变量,编译程序会输出什么提示信息?答:目的是为了能够通过命令行运行javac和java命令成为可能;会提示:“javac”不是内部命令或外部命令,也不是可运行的程序或批处理文件。3、 参考Java程序设计实用教程(第4版)图1.2描述本练习的Applicatin应用程序的运行流程。答:先是程序源通过编译器编译成字节码文件,在通过解释器在Windows操作系统运行。4、 程序中System.out.print()方法和System.out.println()方法的区别是什么?答:System.out.print()是输出不换行,System.out.println()是输出并换行。5、 你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:安装过程中出现错误,解决办法:重新按操作安装。实验(二) Java语言程序设计基础训练(一)(验证型) 实验时间:2012212411实验目的掌握基本数据类型的使用方法,了解常见的编译错误提示信息及产生原因。实验内容(1)下列程序中-会引起编译错误,根据编译出错提示信息对其予以改正,然后写出程序运行的结果。public class ShiYan2-1 / public static void main(String args) short a1=3333; /System.out.println( a1= +a1);float a2=1e2; /System.out.println( a2= +a2);char a3=u0063;System.out.println( a3= +a3);char a4=”c”; /System.out.println( a4= +a4);char a5,a6; a5=97; a6=98; System.out.println( a5= +a5+ +a6= +a6);char a7=a; a7=a7-32; /System.out.println( a7= +a7);System.out.println(-7.2/7=+(-7.2/7); System.out.println(-8/7=+(-8/7);int x=20;int y=20;System.out.println(x%=(y+3)=+(x%=(y+3);long a8=130L; byte a9=(byte)a8; System.out.println(a9= +a9);(2)下列程序中-会引起编译错误,根据编译出错提示信息对相关语句予以改正,然后写出程序运行的结果。public class ShiYan2_2 public static void main(String args) byte a1=1;byte a2=10;byte a3=a1+a2; / System.out.println(a3= +a3);float a4=(short)10/10.2*2; /System.out.println(a4= +a4);int a5=6;double a6=7.7;System.out.println(a5a6)?99.9:9=+(a5a6)?99.9:9); int a7; / System.out.println(a7 = +a7);System.out.println(5.0=5L?+(5.0=5L);int a8=2; System.out.println(a8+4);System.out.println( +a8+4+5);System.out.println( +a8+(4+5);int a9=2;int a10=3;if(a10=a9+)|(a9+a10) System.out.println(a9=+a9+” a10=”+a10);int a11=3;int a12=3;if(a12=a11+)|(a11+a12) System.out.println(a111=+a11+” a12=”+a12); 实验结果分析1、 针对本试验中的(1)(2)两题,说明赋值运算和混合运算中的类型转换规则。答:赋值运算所赋的值必须与所给类型的类型相同,混合运算中会出现自动类型转换,如果转换运算后结果类型与所给类型相同,就不用正确,否则要进行强制类型转换。2、你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:有时候找不出错误,解决办法:通过看书加强java基础知识。指导教师批阅:实验3 Java语言程序设计基础训练(二)(设计型)o 实验目的熟练运用分支、循环等语句控制程序流程;掌握数组和字符串类型的使用方法;了解常见的编译错误提示信息及产生原因,学会调试有语法错误和逻辑错误的程序。o 实验要求:下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本次实验的实验报告。o 实验内容:(1)求解约瑟夫环问题(见Java程序设计实用教程(第4版)p59)约瑟夫环问题:古代某法官要判决N个犯人的死刑,他有一条荒唐的法律,让犯人站成一个圆圈,从第S个人开始数起,每数到第D个犯人,就拉出来处决,然后再数D个,数到的人再处决直到剩下的最后一个可赦免。使用数组存储每个人的编号,数组下标按环形方式递增。对于N、S、D的任意一组值,显示出环者次序,求出正确的解。编码时应遵守Java编码约定(详见附录6)。解题思路:方法一:可以用数组来存放N个数,相当于N个数排成的圈;用整型变量指向当前数到的数组元素,相当于人的手指;划掉一个数的操作,就用将一个数组元素置0的方法来实现。人工数的时候,要跳过已经被划掉的数,那么程序执行的时候,就要跳过为0的数组元素。注意,当指向当前数到的数组元素的整型变量指向数组中最后一个元素(下标为N-1)时,再数下一个,则该整型变量要指回到数组的第一个元素(下标为0),这样才像一个圈。方法二:采用单链表完成此题。Java API提供了丰富的集合类型,封装了各种数据结构(链表、散列、树、图等),链表的建立和相关操作可使用java.util包中提供的相关集合类(如:LinkedList类)。程序的参考框架如下所示:import java.io.*;public class ShiYan3_1static void josephus(int n,int s,int d)/*编码,使得对于接收的n、s、d值,能显示出环者次序,求出正确的解.算法思路参看上述解题思路*/ public static void main(String args) throws IOExceptionSystem.out.println(请输入N: );BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); String str1 = br1.readLine(); /以字符串方式读入System.out.println(请输入S: ); String str2 = br1.readLine(); /以字符串方式读入System.out.println(请输入D: ); String str3 = br1.readLine(); /以字符串方式读入 int n=Integer.parseInt(str1); /将读入的字符串转换为一个整数 int s=Integer.parseInt(str2); /将读入的字符串转换为一个整数 int d=Integer.parseInt(str3); /将读入的字符串转换为一个整数 ShiYan3_1.josephus(n,s,d); /调用静态方法,求解/以下代码的作用:在Freejava中运行程序时使输出结果能停留在屏幕上BufferedReader in = new BufferedReader(new InputStreamReader(System.in); try String line = in.readLine();catch(IOException e)br1.close(); /关闭流in.close(); /关闭流(2)修改上面的程序,使得程序通过命令行参数接收N、S和D的值。(3)(此题选做)金额的中文大写形式(见Java程序设计实用教程(第4版)p60)读入一个浮点数,将其转化为中文金额的大写方式,如:读入123.45,转化为:壹百贰十叁元肆角伍分。 当金额为整数时,只表示整数部分,省略小数部分,并添加“整”字。例如:123表示为壹百贰十叁元整。 当金额中含有连续的0时,只需些一个“零”即可。例如,10005表示为:壹万零伍元整。 10的表示方式。例如:110表示为壹百壹拾元整,而10则表示为:拾元整。o 结果分析:1、 针对本试验中的第(1)题,说明你的程序使用了哪些Java关键字(至少10个)? 答:public、void、int、throws、new、import、catch、try、class、for。2、 Java语言声明并创建一维数组的方法有哪几种?如何对一维数组进行初始化(列举二种方式)? 答:声明数组:int a;和int a;,创建数组:a=new int5s;(1)int a;a=new int5;;(2)int a=new int5;;(3)int a=1,2,3;。java对所有使用new运算符动态分配的存储单元都进行了初始化,各变量根据其所属的数据类型获得相应的值。3、 Java语言声明并创建二维数组的方法有哪几种?如何对二维数组进行初始化(列举二种方式)?答:int max;,(1)int max;max=new int45;;(2)int max=new int45;;(3)intmax=1,2,34,5,6;。 4、到目前为止,你知道的向java程序传送程序运行时所需数据的方法有哪几种?答:BufferedReader和命令行参数(String)。5、你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:关于关键字的知识还不够,解决办法:查看书籍和百度。实验4 类的封装性和继承性设计(一)(设计型)o 实验目的了解面向对象程序设计的方法;掌握声明类的方法;区别基本数据类型变量和引用类型变量;区别成员变量和局部变量;掌握创建对象(或类的实例化)的方法;掌握“.”运算符的作用。 o 实验要求:下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本 次实验的实验报告。o 实验内容:设计一个类来表示一个银行账户(类的设计过程参看附录5),该类应该定义成能创建各个银行账户(每个账户具有账号、开户者姓名和身份证号、开户时间和账户金额等信息),而且能进行存款、取款,能显示开户时间,能查询账上金额。并用java语言实现该类,对该类进行编译、运行和测试。 银行账户类的设计可参考如下:类名:xxxxn 角色:表示一个银行账户n 属性(信息)l xxxx:用来存储账号的变量(private);l xxxx:用来存储银行账户的姓名的变量(private);l xxxx:用来存储银行账户的开户时间(private);l xxxx:用来存储银行账户的身份证号码的变量(private);l xxxx:用来存储账户上的金额的变量(private);n 行为l xxxx:用来实现存款(即增加账户上的金额)的方法(public);l xxxx:用来实现取款(即减少账户上的金额)的方法(public);l xxxx:显示开户时间的方法(public);l xxxx:获得账上的金额的方法(public)。说明:上面的“xxxx”代表标识符的名称,标识符的命名约定见“附录6 Java编码约定”中的“3.命名约定”;为属性(成员变量)声明合适的数据类型;设计行为(成员方法)的算法(参看附录5中的“3. 数据、方法与算法”):为成员方法声明合适的返回类型、形参列表,添加合适的内部实现代码;通过构造器完成对象信息初始化,能创建具有不同账户信息的账户;类设计好之后,通过main方法对其进行测试(创建账户对象,对它进行存款、取款、查询账上金额等操作)可在此基础上根据需要扩充银行账户信息和针对银行账户的行为。程序的参考框架如下所示:import java.util.*;/程序用到了该包中的GregorianCalendar类import java.io.*;/ 程序用到了该包中的BufferedReader类class Account/编码,声明4个成员变量,分别代表账号、姓名、身份证号码、账户上的金额等账户信息 private GregorianCalendar date=new GregorianCalendar( );/ 声明成员变量date表示开户时间 ./编码,定义构造器,用于创建各账户(即开户) /编码,定义3个成员方法,分别用于存款、取款、查询账户金额等操作public void dayOfOpenAnAccount( )/ 定义用于显示开户时间的成员方法 System.out.print(你好,你开户的时间为:);System.out.println(date.get(Calendar.YEAR)+/+(date.get(Calendar.MONTH)+1) +/+date.get(Calendar.DAY_OF_MONTH); public static void main(String args) throws IOException/应用程序执行入口,用于测试账户类System.out.println(请输入你的帐号:);BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); String str1 = br1.readLine(); /以字符串方式读入帐号System.out.println(请输入你的姓名:); String str2 = br1.readLine(); /以字符串方式读入姓名System.out.println(请输入你的身份证号码:); String str3 = br1.readLine(); /以字符串方式读入身份证号码./编码,调用构造器进行开户,需要用Account类型的引用变量存储该储户对象的引用./编码,调用显示开户时间的成员方法以显示开户时间 System.out.println(请输入需存入的金额:); String str4 = br1.readLine(); /*编码,调用相应的成员方法以完成对账户进行的存款、取款、查询账上金额等操作,可反复操作以进行方法测试*/./以下代码的作用:在Freejava中运行程序时使输出结果能停留在屏幕上BufferedReader in = new BufferedReader(new InputStreamReader(System.in);try String line = in.readLine();catch(IOException e)br1.close(); /关闭流in.close(); /关闭流o 结果分析:1、请参照“CreateObjectDemo”文件夹中的程序注释为本实验中的两个程序添加注释。2、列举本程序中的成员变量和局部变量。成员变量和局部变量有何区别?如何初始化成员变量?如何初始化局部变量?答:name为成员变量,未用到局部变量.成员变量可在整个类中使用,局部变量在一个方法或者更小的范围里才能使用.初始化成员变量,一种是默认初始化,一种是构造器初始化,初始化局部变量,直接赋值,或者默认值3、构造器的作用是什么?它的声明有何特点?答:构造器作用是对成员变量进行初始化.声明为 public + 类名()4、你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。实验5 类的封装性和继承性设计(二)(验证型)o 实验目的理解面向对象封装性、继承性和多态性的基本概念;掌握封装、继承以及多态的实现方法。o 实验要求:下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本次实验的实验报告o 实验内容:阅读“ShiYan4_1”文件夹中的例程 “Person.java”、“Student.java” 和“Student_ex.java” ,理解“Student_ex.java”源文件的执行过程。o 结果分析:1、结合 “Student.java”源文件说明方法重载和方法覆盖。答:public void set(String name, MyDate birthday, String spec) super.set(name, birthday); this.setSpeciality(spec); 中public void set(String name, MyDate birthday, String spec) 重载父类同名成员方法set();public String toString() return number+,+name+,+birthday.toString()+,+speciality+专业;中public String toString()重写父类中public String toString()方法,即覆盖.2、总结this、super两个关键字的用法和用途。答:this表示当前类,super表示父类,使用为this.成员变量或this.成员方法或this(参数)表示调用本类中构造方法;super.父类成员变量或super.父类成员方法或super(参数) 表示调用父类中构造方法.3、基本数据类型变量和引用类型变量有何区别?什么情况下宜将方法的返回类型声明为引用类型?答:基本类型变量为int double String 引用类型变量如 MyDate 类在需要返回其他类变量时就用返回引用类型变量4、你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:没有遇到问题。实验6 类的封装性和继承性设计(三)(设计型)o 实验目的理解面向对象封装性、继承性和多态性的基本概念;掌握封装类、继承类以及多态性的实现方法。o 实验要求:下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本次实验的实验报告o 实验内容:(1)设计并实现三角形类(该三角形类继承平面图形抽象类“MyShape.java” (位于“ShiYan4_2”文件夹中)),该类应具有计算三角形的周长和面积的行为(类的设计过程参看附录5)。程序的参考框架如下所示:public class Triangle MyShape./编码,定义三个成员变量sideA 、sideB、sideC,分别表示三角形的三条边;/* *默认构造器,构造默认的三角形 */public Triangle()init();/* * 用三条边构造一个三角形 * param a边a的边长 * param b 边b的边长 * param c 边c的边长 */public Triangle(double a, double b, double c)/如果给定的三条边能够组成三角形,便用给定的边长构成三角形。否则,用默认值构造三角形(编码)/* * 缺省的三角形 */public void init()this.sideA = 3;this.sideB = 4;this.sideC = 5;/* * 判断三条边是否能够组成一个三角形 * param a 边a的边长 * param b 边b的边长 * param c 边c的边长 * return 布尔类型,如果能够组成三角形,便返回true,否则返回false */public boolean isTrianglelegal(double a, double b, double c)/三条边的长度必须大于0if (a = 0) | (b = 0) | (c = 0)System.err.println(三角形的边长不能够小于0!);return false; else if (a + b c) | (a + c b) | (b + c a)/两边之和必须大于第三边System.err.println(三角形的二边之和必须大于第三边!);return false;return true;/编码,实现父类MyShape中的抽象成员方法,以计算三角形的周长和面积public String toString() return 三角形的名字是: + + , 它的三条边的边长分别是: + this.sideA + , + this.sideB + , + this.sideC;public double getSideA() return sideA;public void setSideA(double sideA) /在设置边长的时候,依然要检测采用新的边长后,是否能够组成三角形。if (this.isTrianglelegal(sideA, this.sideB, this.sideC)this.sideA = sideA; public double getSideB() return sideB;public void setSideB(double sideB) if (this.isTrianglelegal(this.sideA, sideB, this.sideC)this.sideB = sideB;public double getSideC() return sideC;public void setSideC(double sideC) if (this.isTrianglelegal(this.sideA, this.sideB, sideC)this.sideC = sideC;(2)编码,创建一个三角形对象,调用父类中定义的setName方法设置对象名称,调用toString输出三角形的信息。然后输出三角形的周长和面积。o 结果分析:1、什么是继承?如何实现继承?什么是封装?如何实现封装?什么是多态?如何实现多态?答:继承就是保留父类的成员变量和成员方法,在子类后加extends 父类来实现继承.封装就是对类里成员变量和成员方法通过一定的方法才能修改的意思.使用成员方法修改成员变量或使用成员方法实现其他方法来实现封装.多态是指允许不同类的对象对同一消息作出响应。包括2种表现形式重载和覆盖.对父类进行方法覆盖,编写与父类同名不同参数的方法实现重载,这样来实现多态2、你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:对于类的继承理解得还不够透彻,通过书本加强理解。实验7 接口、内部类和包(设计型)o 实验目的理解接口和实现接口的类的关系,掌握一个类实现多个接口的声明和使用方法,理解Java包机制的作用,熟悉Java常用包中的常用类。o 实验要求:下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本次实验的实验报告。o 实验内容:1、设计并实现圆柱体类(该圆柱体类实现了立体图形接口(SolidGraphics2.java),具有计算圆柱体的表面积和体积的行为。程序的参考框架如下所示:public class Cylinder SolidGraphics2 ./编码,定义两个成员变量,分别表示圆柱体的底(圆形)c和高height /编码,定义圆柱体的构造器 ./编码,实现接口SolidGraphics2中的抽象方法,以计算圆柱体的表面积和体积 public String toString() /编码,使该方法返回有关圆柱的相关信息 public static void main(String args) . /编码,创建一个圆柱 System.out.println(该圆柱的相关信息:+ ); System.out.println(该圆柱表面积为:+ ); System.out.println(该圆柱体积为:+ ); 2、阅读“常用类.pdf”,结合JDK帮助文档了解Java常用包及各包中的常用类。o 结果分析:1、接口的作用是什么?如何使用接口?答:接口的作用是实现统一访问,其他类对接口实现时,要实现接口中所有的方法,相当于圆柱实现立体规则几何接口,就要实现立体规则几何里所有的方法,如计算几何的表面积、体积。2、列举Java中常用包及其功能。答:java.io.* 输入输出类的包,用于接收数据java.math.* 数学函数和常用数学常量的包java.awt.*;java.swing.*;图形用户界面需要的组件和接口3、你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:对于接口的定义以及使用不是很熟悉,通过看程序加强理解。(到目前为止学习了哪些Java关键字?其中类的声明可以使用哪些关键字?这些关键字的作用是什么?成员变量的声明可以使用哪些关键字?这些关键字的作用是什么?成员方法的声明可以使用哪些关键字?这些关键字的作用是什么?对它们加以总结归纳)实验8 异常的抛出、捕获和处理(设计型)o 实验目的了解java.lang包中的Error类和Exception类及其层次结构;掌握异常处理的基本方法和异常类的设计方法。o 实验要求:下机之后针对实验目的、实验内容、结果分析中的提示和自己的收获体会完成本次实验的实验报告。o 实验内容: 1、结合Java程序设计实用教程(第4版)第123页至125页的内容了解java.lang包中的Error类和Exception类及其层次结构中其他类的作用。2、为下列程序添加异常处理代码,使程序运行过程中能对输入的不合法成绩(如字符串中包含了非数字字符)所引发的异常进行处理。import java.io.*;public class ShiYan8 public static void main(String args) throws IOExceptionSystem.out.println(请输入成绩: );BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); String str1 = br1.readLine(); /以字符串方式读入float n=Float.parseFloat(str1);/将读入的字符串转换为一个整数switch(int)n/10) case 10: case 9: System.out.println(等级为A);break; case 8: System.out.println(等级为B);break; case 7: System.out.println(等级为C);break; case 6: System.out.println(等级为D);break; default: System.out.println(等级为E); /以下代码的作用:在Freejava中运行程序时使输出结果能停留在屏幕上BufferedReader in = new BufferedReader(new InputStreamReader(System.in); try String line = in.readLine();catch(IOException e)br1.close(); in.close(); o 结果分析: 1、什么是异常?为什么要进行异常处理? 答:异常就是程序执行过程中出现的程序无法继续执行的错误.因为异常发生了,程序继续往下执行就会出现错误,所以必须抛出异常并终止程序.2、Java的异常处理机制是什么?答:try可能发生错误的代码catch(异常类型)finally始终要执行的代码3、说明try、catch、throw、throws 和 finally 五个关键字的用法。答:try:可能发生错误的代码执行catch:异常捕获抛出throw:异常抛出throws:声明异常finally:程序始终需要执行的代码4、你在上机过程中有没有出现其他的问题,若有请描述此问题并说明解决办法。答:没有问题。实验9 图形用户界面编程(验证型)o 实验目的了解java.awt、javax.swing、java.awt.event和javax.swing.event包,掌握图形界面设计方法,理解委托事件处理模型。o 实验内容 1、结合Java程序设计实用教程(第4版)第134页至138页的内容和JDK帮助文档了解java.awt包中主要类及组件类的继承关系; 2、结合Java程序设计实用教程(第4版)第145页表6-1了解AWT事件监听接口及其方法;3、结合Java程序设计实用教程(第4版)第147页图6.12及相关内容和JDK帮助文档了解javax.Swing包中主要类及组件类的继承关系;4、程序Calculator.java实现的是一个“计算器”窗口并具有简单的功能(能进行加、减、乘、除运算),针对以下问题对源代码进行分析

温馨提示

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

评论

0/150

提交评论