工学C第二章-c语言基础课件_第1页
工学C第二章-c语言基础课件_第2页
工学C第二章-c语言基础课件_第3页
工学C第二章-c语言基础课件_第4页
工学C第二章-c语言基础课件_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

第2章c#语言基础第2章c#语言基础在本章中,您将学习:使用变量操作符:算术算术赋值一元比较逻辑使用条件结构使用循环结构目标在本章中,您将学习:目标应用程序使用操作符来处理用户输入的数据。C#中的操作符可以分成:算术操作符算术赋值操作符一元操作符比较操作符逻辑操作符使用操作符应用程序使用操作符来处理用户输入的数据。使用操作符运算符和表达式Result=number*100变量变量常量操作数表达式操作数和运算符的组合运算符运算符和表达式Result=number*100变量变量常量类别运算符说明表达式算术运算符+执行加法运算(如果两个操作数是字符串,则该运算符用作字符串连接运算符,将一个字符串添加到另一个字符串的末尾)操作数1+操作数2-执行减法运算操作数1-操作数2*执行乘法运算操作数1*操作数2/执行除法运算操作数1/操作数2%获得进行除法运算后的余数操作数1%操作数2~将一个数按位取反~操作数类别运算符说明表达式算术运算符+执行加法运算(如果两个操作数表达式类型计算方法结果(假定num1的值为5)num2=++num1;前置自加num1=num1+1;num2=num1;num2=6;num1=6;num2=num1++;后置自加num2=num1;num1=num1+1;num2=5;num1=6;num2=--num1;前置自减num1=num1-1;num2=num1;num2=4;Num1=4;num2=num1--;后置自减num2=num1;num1=num1-1;num2=5;Num1=4;表达式类型计算方法结果(假定num1的值为5)num2计算结果:1、 inti=0; boolresult=false result=(++i)+i==2?true:false; result=true计算结果:true类别运算符说明表达式三元运算符(条件运算符)?:检查给出的第一个表达式expression是否为真。如果为真,则计算operand1,否则计算operand2。这是唯一带有三个操作数的运算符表达式?操作数1:操作数2类别运算符说明表达式三元运算符(条件运算符)?:检查给出的下面的运算结果是什么?

1、27%5=

2、~11=2-12为什么?下面的运算结果是什么?2-12为什么?类别运算符说明表达式比较运算符>检查一个数是否大于另一个数操作数1>操作数2<检查一个数是否小于另一个数操作数1<操作数2>=检查一个数是否大于或等于另一个数操作数1>=操作数2<=检查一个数是否小于或等于另一个数操作数1<=操作数2==检查两个值是否相等操作数1==操作数2!=检查两个值是否不相等操作数1!=操作数2类别运算符说明表达式比较运算符>检查一个数是否大于另一个数类别运算符说明表达式成员访问运算符.用于访问数据结构的成员数据结构.成员赋值运算符=给变量赋值操作数1=操作数2逻辑运算符&&对两个表达式执行逻辑“与”运算操作数1&&操作数2||对两个表达式执行逻辑“或”运算操作数1||操作数2!对两个表达式执行逻辑“非”运算!操作数^异或表达式1^表达式2类别运算符说明表达式成员访问运算符.用于访问数据结构的成员运算符计算方法表达式求值结果(假定X=10)+=运算结果=操作数1+操作数2X+=5X=X+515-=运算结果=操作数1-操作数2X-=5X=X-55*=运算结果=操作数1*操作数2X*=5X=X*550/=运算结果=操作数1/操作数2X/=5X=X/52%=运算结果=操作数1%操作数2X%=5X=X%50运算符计算方法表达式求值结果(假定X=10)+=运算结C#运算符的优先级优先级说明运算符结合性1括号()从左到右2自加/自减运算符++/--从右到左3乘法运算符、除法运算符、取模运算符*、/、%从左到右4加减法运算符+-从左到右5小于、小于等于大于、大于等于<、<=>、>=从左到右6等于不等于=!=从左到右从左到右7逻辑与&&从左到右8逻辑或||从左到右9赋值运算符和快捷运算符=、+=、*=/=、%=、-=从右到左C#运算符的优先级优先级说明运算符结合性1括号()从左到使用条件结构条件结构能够根据与其关联的表达式值选择执行的语句。评估条件需要比较操作符。各种条件结构是:if…else结构switch…case结构使用条件结构条件结构能够根据与其关联的表达式值选择执行的语句if...else

条件结构后跟一个逻辑表达式,在该表达式中比较数据并且根据比较结果作出决定。以下是if...else

结构的语法:if(expression){statements;}else{statements;}if…else结构if...else条件结构后跟一个逻辑表达式,在该表达式中if...else结构可以彼此嵌入。当它们嵌在一起时,结构就是级联的if...else结构if…else结构(续)if...else结构可以彼此嵌入。if…else结构(

staticvoidMain(string[]args){Console.WriteLine("请选择要显示的内容");Console.WriteLine("1.开发环境");Console.WriteLine("2.编程语言");Console.WriteLine("3.项目类型");Console.WriteLine("4.退出");stringi=Console.ReadLine();if(i=="1")Console.WriteLine("microsoftvisualbasic");elseif(i=="2")Console.WriteLine("csharp");elseif(i=="3")Console.WriteLine("控制台应用程序");}staticvoidMain(string[]arg当一个变量有多个值时要用到switch…case结构。以下代码是switch...case结构的语法:switch(VariableName){caseConstantExpression_1:statements;break;caseConstantExpression_2:statements;break;caseConstantExpression_n:statements;break;default:statements;break;}switch…case结构当一个变量有多个值时要用到switch…case结构。sw问题描述:编写一个模拟计算器的程序。计算器应该能够执行以下算术操作:加法减法乘法除法

演示:使用条件结构的计算器问题描述:演示:使用条件结构的计算器使用循环结构循环结构用于重复执行一行或多行代码。C#支持以下的循环结构:while循环do…while循环for循环使用循环结构循环结构用于重复执行一行或多行代码。while循环while循环结构根据条件来执行一定次数的语句块。以下代码是while循环结构的语法:while(expression){statements;}while循环while循环结构根据条件来执行一定次数的do…while循环do...while循环结构类似于while循环结构。两个结构都要重复执行语句直至指定的循环条件为false。以下代码是do...while循环结构的语法:do{statements;}while(expression);do…while循环do...while循环结构类似于do…while循环(续)下图显示了do...while和while循环结构的区别。FalsedowhileFalseTrue执行循环的主体评估条件True执行循环的主体评估条件whiledo…while循环(续)下图显示了do...whilefor循环for循环结构用于执行特定次数的语句块。以下代码是for循环结构的语法:

for(initialization;termination;increment/decrement) { statements }for循环for循环结构用于执行特定次数的语句块。for循环(续)下图显示了完整的for循环结构的执行顺序。TrueFalse初始化评估条件循环主体退出循环增量/减量for循环(续)下图显示了完整的for循环结构的执行顺演示:使用循环结构的Fibonacci级数问题描述:编写能够生成Fibonacci级数最高至200的程序。演示:使用循环结构的Fibonacci级数问题描述:break和continue语句使用break语句退出for循环并停止剩余循环的执行。使用Continue语句可以跳出所有后续的指令并将控制权交回给循环。演示3.24break和continue语句使用break语在本章中,您学习了:操作符用于计算和比较值并测试多个条件。使用算术操作符对变量执行算术操作,例如加、减、乘、除。使用算术赋值操作符执行算术操作并将结果赋值给变量。一元操作符(如增量和减量操作符)对一个操作数进行操作。比较操作符用于比较两个值并根据比较的结果执行操作。逻辑操作符用于评估表达式并返回布尔值。小结在本章中,您学习了:小结条件结构允许选择执行语句。C#中的条件结构是:if…elseswitch…case当您要对程序的某个部分重复执行一定的次数时,可以使用循环结构。C#提供以下的循环结构:whiledo…whileforbreak和continue语句用于控制循环中的程序流。小结(续)条件结构允许选择执行语句。C#中的条件结构是:小结(续)异常异常异常是在程序执行期间发生的错误情况。当一个异常在程序中发生的时候,系统抛出一个错误。

错误通过异常处理过程被处理。描述异常异常是在程序执行期间发生的错误情况。描述异常在程序中发生的错误的类型有三种。它们是:语法错误:语法错误发生在语句没有适当构造、关键字被拼错或标点被忽略的时候。

运行时错误:运行时错误发生在程序试图完成一个操作,但它在运行时不被允许。逻辑错误:逻辑错误发生在程序编译和运行正常但没有产生预期的结果的时候。

让我们了解错误类型的详细信息。错误的类型在程序中发生的错误的类型有三种。它们是:错误的类型classErrors{Console.WriteLine(“EnjoyErrors”)}Console.WriteLine语句缺少分号语法错误classErrors{Console.WriteLineclassErrors{intNum1=0;intNum2=20;intNum3;Num3=Num2/Num1;Console.WriteLine(“TheResultis{0}”,Num3);}发生了除以零的情况运行时错误classErrors{intNum1=0;Num3=NclassErrors{intNum1=10;intNum2=2;intNum3;Num3=Num2/Num1;Console.WriteLine(“TheResultis{0}”,Num3);}期望结果=5当前结果=0逻辑错误classErrors{intNum1=10;Num3=许多异常类都直接或间接的派生自System.Exception类。

这些类有:System.ApplicationException

类System.SystemException

类异常类许多异常类都直接或间接的派生自System.ExceptioSystem.SystemException是所有预定义系统异常的基类。下表描述了一些派生自System.SystemException类的类:异常类(续)异常类描述System.IO.IOException处理I/O错误System.IndexOutOfRangeException当方法引用一个界外的数据元素时,处理产生的错误System.NullReferenceException处理在解除空对象引用的过程中产生的错误System.DivideByZeroException处理在除法中除数为0的过程中产生的错误System.InvalidCastException处理在类型匹配中产生的错误System.OutOfMemoryException处理程序内存分配的错误System.SystemException是所有预定义系统处理异常在异常处理中,程序被分成代码块。一个显示可能产生错误的块包含一个或者多个异常处理程序。异常处理遵守一个控制结构和一个处理系统级和程序级错误的统一方式。这些异常处理块可以使用下面的关键字实现:trycatchfinally

让我们了解这些关键字的详情。处理异常在异常处理中,程序被分成代码块。处理异常(续)try块:try块监视可能抛出异常的语句。以下是try块的语法:try{//statementsthatmaycauseanexception}try块管理包含在它内部的语句,定义与它相关的异常处理程序的范围。try块必须至少有一个catch块。处理异常(续)try块:处理异常(续)catch块:catch块的语句使用一个异常类的对象作为参数,它引用一个产生的异常。你可以通过提供一个或更多catch处理程序将一个异常处理程序与try块相联系,紧挨着try块之后:try{//statementsthatmaycauseanexception}catch(…){ //errorhandlingcode}处理异常(续)catch块:publicstaticvoidAdding_Numbers(intnumber1,intnumber2){try{intres=number1/number2;Console.WriteLine(res);}catch(DivideByZeroExceptione){Console.WriteLine("ExceptionCaught.{0}",e.Message);}Console.WriteLine("Afterhandingexception");}staticvoidMain(string[]args){Adding_Numbers(10,0);Console.Read();}publicstaticvoidAdding_Numb多重catch块try{//程序代码}catch(IOExceptionE){//错误处理代码}catch(OutOfMemoryExceptionE){//错误处理代码}用于捕捉两种异常的“catch”块多重catch块try用于捕捉两种异常的“catch”块处理异常(续)finally块:finally块被用于执行一个给定的语句集,不论异常是否被抛出。try{//statementsthatmaycauseanexception}catch(…){ //errorhandlingcode}finally{

//statementstobeexecuted}演示10.9处理异常(续)finally块:演示10.9问题描述:David正在为一个项目工作,其中他正在计算一个整型数组中的总和。David需要处理当他使用数组时发生的异常。如果David在执行程序的时候遇到了任何异常情况,程序需要显示一个异常消息。演示:处理数组越界异常问题描述:演示:处理数组越界异常实现用户自定义异常在C#中,你可以创建你自己的异常类。这种类型的异常被称为用户自定义异常。在C#中Exception必须是所有异常的基类。用户定义异常类必须遵守要么异常类的层次或一个标准的继承类。

实现用户自定义异常在C#中,你可以创建你自己的异常类。这种类实现用户自定义异常(续)用户自定义异常类派生自ApplicationException类。为了实现用户自定义异常,你需要:生成你自己的异常:你可以使用throw语句来产生你自己的异常。抛出对象:你可以抛出一个对象,如果对象是直接或间接派生自System.Exception。你可以使用在catch块中的throw语句来抛出当前对象,如下面的代码所示: catch(Exceptioncaught){ ...throwcaught}实现用户自定义异常(续)用户自定义异常类派生自ApplicaclassCountZero{staticvoidMain(){Calculatorcalc=newCalculator();try{calc.DoAverage();}catch(CountIsZeroExceptione){Console.WriteLine(e.Message);}Console.ReadLine();}}classCalculator{intsum=0;intcount=0;floataverage;

publicvoidDoAverage(){if(count==0)throw(newCountIsZeroException("ZerocountinDoAverage"));elseaverage=sum/count;}}classCountIsZeroException:ApplicationException{publicCountIsZeroException(stringmessage):

base(message){}}classCountZeroclassCalculato第2章c#语言基础第2章c#语言基础在本章中,您将学习:使用变量操作符:算术算术赋值一元比较逻辑使用条件结构使用循环结构目标在本章中,您将学习:目标应用程序使用操作符来处理用户输入的数据。C#中的操作符可以分成:算术操作符算术赋值操作符一元操作符比较操作符逻辑操作符使用操作符应用程序使用操作符来处理用户输入的数据。使用操作符运算符和表达式Result=number*100变量变量常量操作数表达式操作数和运算符的组合运算符运算符和表达式Result=number*100变量变量常量类别运算符说明表达式算术运算符+执行加法运算(如果两个操作数是字符串,则该运算符用作字符串连接运算符,将一个字符串添加到另一个字符串的末尾)操作数1+操作数2-执行减法运算操作数1-操作数2*执行乘法运算操作数1*操作数2/执行除法运算操作数1/操作数2%获得进行除法运算后的余数操作数1%操作数2~将一个数按位取反~操作数类别运算符说明表达式算术运算符+执行加法运算(如果两个操作数表达式类型计算方法结果(假定num1的值为5)num2=++num1;前置自加num1=num1+1;num2=num1;num2=6;num1=6;num2=num1++;后置自加num2=num1;num1=num1+1;num2=5;num1=6;num2=--num1;前置自减num1=num1-1;num2=num1;num2=4;Num1=4;num2=num1--;后置自减num2=num1;num1=num1-1;num2=5;Num1=4;表达式类型计算方法结果(假定num1的值为5)num2计算结果:1、 inti=0; boolresult=false result=(++i)+i==2?true:false; result=true计算结果:true类别运算符说明表达式三元运算符(条件运算符)?:检查给出的第一个表达式expression是否为真。如果为真,则计算operand1,否则计算operand2。这是唯一带有三个操作数的运算符表达式?操作数1:操作数2类别运算符说明表达式三元运算符(条件运算符)?:检查给出的下面的运算结果是什么?

1、27%5=

2、~11=2-12为什么?下面的运算结果是什么?2-12为什么?类别运算符说明表达式比较运算符>检查一个数是否大于另一个数操作数1>操作数2<检查一个数是否小于另一个数操作数1<操作数2>=检查一个数是否大于或等于另一个数操作数1>=操作数2<=检查一个数是否小于或等于另一个数操作数1<=操作数2==检查两个值是否相等操作数1==操作数2!=检查两个值是否不相等操作数1!=操作数2类别运算符说明表达式比较运算符>检查一个数是否大于另一个数类别运算符说明表达式成员访问运算符.用于访问数据结构的成员数据结构.成员赋值运算符=给变量赋值操作数1=操作数2逻辑运算符&&对两个表达式执行逻辑“与”运算操作数1&&操作数2||对两个表达式执行逻辑“或”运算操作数1||操作数2!对两个表达式执行逻辑“非”运算!操作数^异或表达式1^表达式2类别运算符说明表达式成员访问运算符.用于访问数据结构的成员运算符计算方法表达式求值结果(假定X=10)+=运算结果=操作数1+操作数2X+=5X=X+515-=运算结果=操作数1-操作数2X-=5X=X-55*=运算结果=操作数1*操作数2X*=5X=X*550/=运算结果=操作数1/操作数2X/=5X=X/52%=运算结果=操作数1%操作数2X%=5X=X%50运算符计算方法表达式求值结果(假定X=10)+=运算结C#运算符的优先级优先级说明运算符结合性1括号()从左到右2自加/自减运算符++/--从右到左3乘法运算符、除法运算符、取模运算符*、/、%从左到右4加减法运算符+-从左到右5小于、小于等于大于、大于等于<、<=>、>=从左到右6等于不等于=!=从左到右从左到右7逻辑与&&从左到右8逻辑或||从左到右9赋值运算符和快捷运算符=、+=、*=/=、%=、-=从右到左C#运算符的优先级优先级说明运算符结合性1括号()从左到使用条件结构条件结构能够根据与其关联的表达式值选择执行的语句。评估条件需要比较操作符。各种条件结构是:if…else结构switch…case结构使用条件结构条件结构能够根据与其关联的表达式值选择执行的语句if...else

条件结构后跟一个逻辑表达式,在该表达式中比较数据并且根据比较结果作出决定。以下是if...else

结构的语法:if(expression){statements;}else{statements;}if…else结构if...else条件结构后跟一个逻辑表达式,在该表达式中if...else结构可以彼此嵌入。当它们嵌在一起时,结构就是级联的if...else结构if…else结构(续)if...else结构可以彼此嵌入。if…else结构(

staticvoidMain(string[]args){Console.WriteLine("请选择要显示的内容");Console.WriteLine("1.开发环境");Console.WriteLine("2.编程语言");Console.WriteLine("3.项目类型");Console.WriteLine("4.退出");stringi=Console.ReadLine();if(i=="1")Console.WriteLine("microsoftvisualbasic");elseif(i=="2")Console.WriteLine("csharp");elseif(i=="3")Console.WriteLine("控制台应用程序");}staticvoidMain(string[]arg当一个变量有多个值时要用到switch…case结构。以下代码是switch...case结构的语法:switch(VariableName){caseConstantExpression_1:statements;break;caseConstantExpression_2:statements;break;caseConstantExpression_n:statements;break;default:statements;break;}switch…case结构当一个变量有多个值时要用到switch…case结构。sw问题描述:编写一个模拟计算器的程序。计算器应该能够执行以下算术操作:加法减法乘法除法

演示:使用条件结构的计算器问题描述:演示:使用条件结构的计算器使用循环结构循环结构用于重复执行一行或多行代码。C#支持以下的循环结构:while循环do…while循环for循环使用循环结构循环结构用于重复执行一行或多行代码。while循环while循环结构根据条件来执行一定次数的语句块。以下代码是while循环结构的语法:while(expression){statements;}while循环while循环结构根据条件来执行一定次数的do…while循环do...while循环结构类似于while循环结构。两个结构都要重复执行语句直至指定的循环条件为false。以下代码是do...while循环结构的语法:do{statements;}while(expression);do…while循环do...while循环结构类似于do…while循环(续)下图显示了do...while和while循环结构的区别。FalsedowhileFalseTrue执行循环的主体评估条件True执行循环的主体评估条件whiledo…while循环(续)下图显示了do...whilefor循环for循环结构用于执行特定次数的语句块。以下代码是for循环结构的语法:

for(initialization;termination;increment/decrement) { statements }for循环for循环结构用于执行特定次数的语句块。for循环(续)下图显示了完整的for循环结构的执行顺序。TrueFalse初始化评估条件循环主体退出循环增量/减量for循环(续)下图显示了完整的for循环结构的执行顺演示:使用循环结构的Fibonacci级数问题描述:编写能够生成Fibonacci级数最高至200的程序。演示:使用循环结构的Fibonacci级数问题描述:break和continue语句使用break语句退出for循环并停止剩余循环的执行。使用Continue语句可以跳出所有后续的指令并将控制权交回给循环。演示3.24break和continue语句使用break语在本章中,您学习了:操作符用于计算和比较值并测试多个条件。使用算术操作符对变量执行算术操作,例如加、减、乘、除。使用算术赋值操作符执行算术操作并将结果赋值给变量。一元操作符(如增量和减量操作符)对一个操作数进行操作。比较操作符用于比较两个值并根据比较的结果执行操作。逻辑操作符用于评估表达式并返回布尔值。小结在本章中,您学习了:小结条件结构允许选择执行语句。C#中的条件结构是:if…elseswitch…case当您要对程序的某个部分重复执行一定的次数时,可以使用循环结构。C#提供以下的循环结构:whiledo…whileforbreak和continue语句用于控制循环中的程序流。小结(续)条件结构允许选择执行语句。C#中的条件结构是:小结(续)异常异常异常是在程序执行期间发生的错误情况。当一个异常在程序中发生的时候,系统抛出一个错误。

错误通过异常处理过程被处理。描述异常异常是在程序执行期间发生的错误情况。描述异常在程序中发生的错误的类型有三种。它们是:语法错误:语法错误发生在语句没有适当构造、关键字被拼错或标点被忽略的时候。

运行时错误:运行时错误发生在程序试图完成一个操作,但它在运行时不被允许。逻辑错误:逻辑错误发生在程序编译和运行正常但没有产生预期的结果的时候。

让我们了解错误类型的详细信息。错误的类型在程序中发生的错误的类型有三种。它们是:错误的类型classErrors{Console.WriteLine(“EnjoyErrors”)}Console.WriteLine语句缺少分号语法错误classErrors{Console.WriteLineclassErrors{intNum1=0;intNum2=20;intNum3;Num3=Num2/Num1;Console.WriteLine(“TheResultis{0}”,Num3);}发生了除以零的情况运行时错误classErrors{intNum1=0;Num3=NclassErrors{intNum1=10;intNum2=2;intNum3;Num3=Num2/Num1;Console.WriteLine(“TheResultis{0}”,Num3);}期望结果=5当前结果=0逻辑错误classErrors{intNum1=10;Num3=许多异常类都直接或间接的派生自System.Exception类。

这些类有:System.ApplicationException

类System.SystemException

类异常类许多异常类都直接或间接的派生自System.ExceptioSystem.SystemException是所有预定义系统异常的基类。下表描述了一些派生自System.SystemException类的类:异常类(续)异常类描述System.IO.IOException处理I/O错误System.IndexOutOfRangeException当方法引用一个界外的数据元素时,处理产生的错误System.NullReferenceException处理在解除空对象引用的过程中产生的错误System.DivideByZeroException处理在除法中除数为0的过程中产生的错误System.InvalidCastException处理在类型匹配中产生的错误System.OutOfMemoryException处理程序内存分配的错误System.SystemException是所有预定义系统处理异常在异常处理中,程序被分成代码块。一个显示可能产生错误的块包含一个或者多个异常处理程序。异常处理遵守一个控制结构和一个处理系统级和程序级错误的统一方式。这些异常处理块可以使用下面的关键字实现:trycatchfinally

让我们了解这些关键字的详情。处理异常在异常处理中,程序被分成代码块。处理异常(续)try块:try块监视可能抛出异常的语句。以下是try块的语法:try{//statementsthatmaycauseanexception}try块管理包含在它内部的语句,定义与它相关的异常处理程序的范围。try块必须至少有一个catch块。处理异常(续)try块:处理异常(续)catch块:catch块的语句使用一个异常类的对象作为参数,它引用一个产生的异常。你可以通过提供一个或更多catch处理程序将一个异常处理程序与try块相联系,紧挨着try块之后:try{//statementsthatmaycauseanexception}catch(…){ //errorhandlingcode}处理异常(续)catch块:publicstaticvoidAdding_Numbers(intnumber1,intnumber2){try{intres=number1/number2;Console.WriteLine(res);}catch(DivideByZeroExceptione){Console.WriteLine("ExceptionCaught.{0}",e.Message);}Console.WriteLine("Afterhandingexception");}staticvoidMain(string[]args){

温馨提示

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

评论

0/150

提交评论