教学材料《JAVA技术》-第五章_第1页
教学材料《JAVA技术》-第五章_第2页
教学材料《JAVA技术》-第五章_第3页
教学材料《JAVA技术》-第五章_第4页
教学材料《JAVA技术》-第五章_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

任务5-1求1至某个正整数的和任务分析计算1至某个正整数的和。例如计算1至100的和,表达式为1+2+…+100,这是一个累加的过程,不断地执行加法运算,编程的基本思路就是将前面计算的和与下一个数相加,用来相加的数字不断增1。本任务中累加到最后的数字由用户输入,单击按钮后,反馈计算的结果。可采用图5-1所示的界面。用户输入数字并点击“确定”后,对用户输入的数进行计算,程序流程如图5-2所示。下一页返回任务5-1求1至某个正整数的和任务实现(1)新建“Windows应用程序”,项目名称为“Task5-1”,解决方案为“Charpter5”;(2)界面设计,拖动相应控件到窗体恰当位置,相应的属性值如表5-1所示;(3)编写程序代码,在按钮控件“BtnOk”上双击,进入单击事件代码窗口,输入如下代码:上一页下一页返回任务5-1求1至某个正整数的和1privatevoidBtnOk_Click(objectsender,EventArgse)2{3intIntNumber;4inti=1;5intIntSum=0;6IntNumber=int.Parse(TxtNum.Text);7while(i<=IntNumber)上一页下一页返回任务5-1求1至某个正整数的和8{9IntSum+=i;10i++;11}12LblResult.Text=IntSum.ToString();13}(4)运行程序,输入“100”,显示“结果:5050”。上一页下一页返回任务5-1求1至某个正整数的和代码分析第3行代码定义了一个整型变量,变量名为IntNumber。第4行代码定义循环变量,并初始化值为1。第5行代码定义了一个整型变量,变量名为IntSum,用来存储1至输入的变量的和。第6行代码定义变量IntNumber,该变量的值为TextBox控件输入的数值。第7~11行通过循环结构,计算1至输入的数之和。上一页下一页返回任务5-1求1至某个正整数的和第12行代码是将得到的和,显示在LblResult标签上。从上面对任务的分析中可以看出,如果要实现求累加和这种不断重复执行的加法的运算,在程序中需要用循环结构。在我们任务中用的是while循环结构。上一页下一页返回任务5-1求1至某个正整数的和相关知识:while语句、do…while语句1.while语句while(条件表达式){循环体语句块;}我们对while循环语句进行几点详细说明:上一页下一页返回任务5-1求1至某个正整数的和(1)while后面括号中的条件表达式,可以是条件表达式,也可以是逻辑表达式,这与if语句后面的条件表达式说明是一致的,可以参考第4章的内容复习一下。如果表达式结果为true,则执行循环语句块;如果表达式结果为false,则跳出循环体语句块,执行循环体以外的内容。例如:上一页下一页返回任务5-1求1至某个正整数的和inti=3;while(i<6){……i++;}上一页下一页返回任务5-1求1至某个正整数的和上述例子,循环条件表达式为3<6,表达式结果为真,执行循环体语句;如果将i赋值为10,表示式即为10<6,结果为假,循环一次也不执行,直接跳过循环体语句,执行循环体大括号外面的内容。下面程序的功能是判断变量userIsDone的值,直到用户输入“yes”才结束循环。上一页下一页返回任务5-1求1至某个正整数的和stringuserIsDone="";while(userIsDone.ToLower()!="yes"){继续输入userIsDone的值}上一页下一页返回任务5-1求1至某个正整数的和上述例子中,循环条件表达式属于逻辑表达式,其中ToLower()方法功能是将字符串转换成小写字符,然后比较转换成小写字符后变量userIsDone与小写字符串“yes”是否相等,如果不相等,循环表达式结果为真,执行循环体语句,继续输入userIsDone的值,然后继续判断表达式,直到表达式userIsDone.ToLower()!="yes"为假,即输入userIsDone的值为“yes”,跳出循环体语句,继续执行循环体语句外面的内容。上一页下一页返回任务5-1求1至某个正整数的和(2)一般来说,一个完整的while循环,需由4个部分构成:循环变量初始化、判断循环条件表达式、循环体和改变循环变量的值,执行过程如图5-3所示。(3)while语句的执行过程如下:●计算条件表达式的值;●如果表达式的值为真,则执行循环体语句,并改变循环变量的值;●当语句块执行到结尾后,程序将重新回到while语句的开头;●重复执行步骤(1)、(2)、(3),直到表达式为假(即条件不成立)时,跳出循环并执行下一条语句。上一页下一页返回任务5-1求1至某个正整数的和任务5-1中,计算条件表达式i<=IntNumber的值,如果值为真,即循环变量i的值如果小于等于文本框中输入的数值,则执行循环体语句,进行累加计算,循环体语句中一定要包含改变循环变量的值,也就是能使循环趋向结束的语句。这里包含循环变量i自增(i++)的语句,经过几次循环后能导致i<=IntNumber条件为假,结束循环。如果无此语句,则i的值始终不改变,循环永不结束,又称“死循环”,例如:上一页下一页返回任务5-1求1至某个正整数的和i=1;while(i<10){Lable1.Text=i;}循环体语句中没有能使循环变量i改变的语句,程序将无限循环下去,形成“死循环”。如果运行该程序,程序无法停止,此时必须用任务管理器停止该程序。上一页下一页返回任务5-1求1至某个正整数的和针对上面所述的执行过程,分析下面程序。intmyInt=0;while(myInt<10){myInt++;}MessageBox.Show("共循环"+myInt+"次");上一页下一页返回任务5-1求1至某个正整数的和本例中,我们先给myInt变量初始化为0,然后判断条件表达式myInt<10,第一次计算时,该布尔表达式将返回true值,执行循环语句体,也就是myInt进行加1运算。一旦执行了while块中的语句之后,再次计算条件表达式的值,这种情况将一直循环下去,直到该条件表达式的值为false为止。一旦条件表达式的值为false,程序将从while块之后的第一条语句开始执行。在本例中,程序最后显示“共循环了10次”。除了用while可以实现循环,do…while也可以实现循环。上一页下一页返回任务5-1求1至某个正整数的和2.do…while语句do…while循环非常类似于while循环,一般情况下,可以相互转换。它们之间的差别在于while循环的测试条件在每一次循环开始时执行,而do…while循环的测试条件在每一次循环体结束时进行判断,与while语句不同的是,do…while循环至少可以使循环体语句执行一次,而while循环则有可能一次循环也不进行。上一页下一页返回任务5-1求1至某个正整数的和do…while语句结构:do{语句块}while(条件表达式);上一页下一页返回任务5-1求1至某个正整数的和do…while语句的执行过程如下:(1)执行循环体语句一次;(2)计算表达式的值,为真则回到第一步,为假则终止do…while循环。执行过程如图5-4所示。上一页下一页返回任务5-1求1至某个正整数的和例如,用do…while循环结构来实现求5的阶乘:intfac=1;intx=5;do{fac*=x;x--;}while(x>0);上一页下一页返回任务5-1求1至某个正整数的和定义整型变量fac用来存放计算阶乘的值,并初始化为1,如果求多个数的和,这时候记录和的变量初始化应该为0;然后定义循环变量x并初始化为5,这里如果是从文本框中输入的值,应该转换为整数;执行do循环体,循环体语句fac*=x,等价于fac=fac*x;然后循环变量x的值减1,使之能逐步接近0;循环体语句执行一次后,判断条件表达式x>0的值,如果值为true,则返回循环体语句,继续执行,否则循环结束,执行while后面的语句。上一页下一页返回任务5-1求1至某个正整数的和【例5-1】单科成绩统计。在第4章的Task4-2中,我们使用if分支结构对一个分数所处等级进行了判断。现在要求对所有同学某一科目的成绩进行分析统计,分别给出各等级中学生的人数和百分比。可采用如图5-5所示的程序界面。成绩是通过TextBox文本框输入,成绩之间用逗号分隔。点击【统计】后,从文本框中根据逗号的位置,逐个分解出每个成绩,然后判断该成绩的等级,并把相应等级的人数增加1。最后根据每个等级的人数和总人数,得到该等级的百分比。上一页下一页返回任务5-1求1至某个正整数的和实现步骤:(1)在解决方案Charpter5中,添加一个新项目,项目名称为“Exa5-1”;(2)拖动相应控件到窗体恰当位置,相应的属性值如表5-2

所示。本例的界面设计中,有较多相似的控件,此时我们可以采用控件复制的方法,不仅能提高界面设计速度,也能保证各相似控件具有相似的外观,保持界面的整体协调。上一页下一页返回任务5-1求1至某个正整数的和(3)编写程序代码,在按钮控件“BtnOk”上双击,进入单击事件代码窗口,输入如下代码:1privatevoidBtnSta_Click(objectsender,EventArgse)2{3if(TxtScore.Text!="")//判断用户是否输入了分数4{5intn;6stringStrOneScore;//存放一个成绩7stringOneChar;//存放成绩文本框中分解出一个字符上一页下一页返回任务5-1求1至某个正整数的和8doubled1,d2,d3,d4,d5,TotalScore;//分别存放各等级人数和总人数9n=0;10d1=d2=d3=d4=d5=0;11StrOneScore="";12TxtScore.Text=TxtScore.Text+",";//成绩文本框的末尾添加一个“,”,用于分解出最后一个成绩13while(n<TxtScore.Text.Length)//用成绩文本框的长度作为循环控制条件,每次循环分解一个字符上一页下一页返回任务5-1求1至某个正整数的和14{15OneChar=TxtScore.Text.Substring(n,1);//分解出一个字符16n=n+1;//下一个要分解的字符位置17if(OneChar!=",")18{//与前一字符属于同一成绩19StrOneScore=StrOneScore+OneChar;20}上一页下一页返回任务5-1求1至某个正整数的和21else22{//获得了一个成绩23switch((int)(int.Parse(StrOneScore)/10))24{//按成绩所处等级增加人数25case10:26case9:27d1++;28break;上一页下一页返回任务5-1求1至某个正整数的和29case8:30d2++;31break;32case7:33d3++;34break;35case6:36d4++;37break;上一页下一页返回任务5-1求1至某个正整数的和38default:39d5++;40break;41}42StrOneScore="";//成绩变量清空43}44}上一页下一页返回任务5-1求1至某个正整数的和45textBox2.Text=d1.ToString();//显示各等级人数46textBox3.Text=d2.ToString();47textBox4.Text=d3.ToString();48textBox5.Text=d4.ToString();49textBox6.Text=d5.ToString();50TotalScore=d1+d2+d3+d4+d5;51textBox7.Text=((d1/TotalScore)*100).ToString();//显示各等级比例上一页下一页返回任务5-1求1至某个正整数的和52textBox8.Text=((d2/TotalScore)*100).ToString();53textBox9.Text=((d3/TotalScore)*100).ToString();54textBox10.Text=((d4/TotalScore)*100).ToString();55textBox11.Text=((d5/TotalScore)*100).ToString();56}57else58MessageBox.Show("请输入学生成绩!");59}60}上一页下一页返回任务5-1求1至某个正整数的和(4)运行程序,输入若干分数,点击【统计】,显示各等级的人数和比例,如图5-6所示。关键术语循环结构:Circulationstructurewhile:whiledo...while:do...while上一页下一页返回任务5-1求1至某个正整数的和实训项目1.从字符串中统计一个字母出现的次数,可采用图5-7的程序界面。(提示:从字符串的第一个字符依次取到最后一个字符,分别与输入的字母相比较,定义一个整型变量,当二者比较相同时,将变量加1,最后输出变量的值,将其转换成字符串格式,显示在窗体对应位置上。)2.编写程序,求1~100之间所有奇数的和。3.编写程序,判断用户输入的是否都是数字(0~9),如包含非数字,给出错误信息。上一页返回下一页任务5-2提取整数中各位对应的数字任务分析输入一个n位整数,将数字的各个位一一分解,在每个位中间插入一个“-”号,并显示结果。解决该题目的思路是,提取文本框中输入字符串的一个字符,在其中插入“-”,重复执行提取一个字符的操作,直到最后一个字符提取结束。这里主要用到的是字符串处理方法Substring(),重复提取是使用程序中的循环语句。可采用图5-8所示的界面。用户输入整数内容并点击【提取】后,对用户输入的数进行提取,并将提取后的结果,输出到结果对应的文本框中。程序流程如图5-9所示。下一页返回上一页任务5-2提取整数中各位对应的数字任务实现(1)在解决方案Charpter5中,添加一个项目,名称为“Task5-2”;(2)界面设计,拖动相应控件到窗体恰当位置,相应的属性值如表5-3所示;(3)双击【提取】按钮,生成Click事件,输入以下代码:上一页下一页返回任务5-2提取整数中各位对应的数字1privatevoidBtnPick_Click(objectsender,EventArgse)2{3strings="";4stringorigin=TxtOrigin.Text;5intlen=origin.Length;6for(inti=0;i<len;i++)7{8s+="-"+origin.Substring(i,1);9}10TxtResult.Text=s.TrimStart('-');11}上一页下一页返回任务5-2提取整数中各位对应的数字运行程序,输入“1234”,单击“提取”按钮,对应结果的文本框输出“1-2-3-4”。代码分析第3行代码定义了一个字符串变量,变量名为s,用来保存整数提取后的字符串内容。第4行代码定义字符串变量origin,变量的值为文本框TxtOrigin中的值。第5行代码定义变量len,变量的值是字符串的长度。上一页下一页返回任务5-2提取整数中各位对应的数字第6行代码开始定义for循环结构,for后面括号中对应的表达式分别是,表达式1定义循环变量i并初始化为1,表达式2表示循环的条件是循环变量小于字符串的长度,表达式3表示将循环变量i加1。第8行代码执行循环体语句,将字符串“-”连接origin从第i位取得一个字符。第10行代码是将得到的结果,显示在TxtResult文本框中。其中s.TrimStart("-")方法是将字符串s中第一个字符"-"去掉。从上面的分析中可以看出,如果在循环执行之前就可以确定循环的次数,可以使用for循环结构。上一页下一页返回任务5-2提取整数中各位对应的数字相关知识:for语句、break语句、continue语句1.for语句C#的for循环是循环语句中最具特色的,它功能较强、灵活多变、使用广泛。在事先知道循环次数的情况下,使用For语句是比较方便的。for语句的结构:上一页下一页返回任务5-2提取整数中各位对应的数字for(表达式1;表达式2;表达式3){循环体语句块;}for语句的执行过程如下:上一页下一页返回任务5-2提取整数中各位对应的数字(1)先求解表达式1;(2)求解表达式2,若其值为真,则执行for语句中指定的循环语句块,然后执行下面第(3)步,若为假,则结束循环,转到第(5)步;(3)求解表达式3;(4)转回上面第(2)步骤继续执行;(5)循环结束,执行for语句下面的语句。上一页下一页返回任务5-2提取整数中各位对应的数字表达式1是设置循环控制变量的初值,在for循环的整个周期中,这个表达式仅仅计算一次,计算是在一开始进行的,并且在循环语句的执行之前进行,通常初始化表示先初始化一个作为计数器的整型变量;表达式2是布尔类型的表达式,作为循环控制条件,这里的布尔表达式可以写得很复杂,但是结果只能是true或者false,布尔表达式通常用来验证计数器变量的状态;表达式3是按规律改变循环控制变量的值,这个规律是由题目决定的。其程序流程如图5-10所示。上一页下一页返回任务5-2提取整数中各位对应的数字for循环是所谓的预测试循环,因为循环条件是在执行循环语句前计算的,如果循环条件为假,循环语句就根本不会执行。for循环非常适合用于一个语句或语句块重复执行预定的次数。下面的例子就是使用for循环的典型用法,这段代码计算1至100的和。上一页下一页返回任务5-2提取整数中各位对应的数字intsum,i;sum=0;for(i=1;i<=100;i++){sum+=i;}上一页下一页返回任务5-2提取整数中各位对应的数字这里声明了一个int类型的变量i和变量sum,其中i用作循环计数器,sum用作接收求和的结果,对sum赋初值为0。for循环条件中,先将i赋值为1,因为从1开始累加和,接着测试它是否小于等于100,如果条件为true,则执行循环体语句,这里必须小于等于100,这样i<=100的条件为真,执行循环体语句,在1至99的和的基础上又加100,才能满足题目的要求。然后给该计数器加1,再次执行该过程。当i大于100时,循环停止。上一页下一页返回任务5-2提取整数中各位对应的数字for循环的几个特点:(1)for循环语句的表达式1和表达式3可以引入逗号运算符“,”,这样可以对多个变量赋初值或增值。上面的程序可以改写为for(sum=0,i=1;i<=100;i++),这里将sum=0和i=1通过逗号表达式一起作为表达式1,使程序书写格式更简略。(2)for循环的三个条件表达式可以任意省略,但分号必须保留。例如:for(sum=0,i=1;i<=100;){sum+=i;i++;}这里将表达式3的i++省略不写,但一定要注意,表达式3前面的分号必须要写,不能省略,i++放在循环体当中。上一页下一页返回任务5-2提取整数中各位对应的数字或者for(sum=0,i=1;;sum+=i,i++){if(i>100)break;}这里将表达式2省略,那么默认表达式2的值为true,这样会使程序处于无限循环状态,所以在循环体中加入条件判断语句,当条件i>100为真时,break语句跳出循环,break语句的具体功能在后面的内容会详细介绍。上一页下一页返回任务5-2提取整数中各位对应的数字以上代码还可以改写成:for(;;){sum+=i;i++;if(i>100)break;}上一页下一页返回任务5-2提取整数中各位对应的数字这种情况是将表达式1表达式2表达式3全部都省略,对应的内容放在循环体语句中,当然针对这个题目,这样做反而使程序复杂化,只是使读者理解,for对应的表达式都可以省略,但对应的分号不能省略。(3)可以在for循环内部声明循环变量。如果循环控制变量仅仅只在这个循环中用到,那么为了更有效地使用变量,也可以在for循环的初始化部分(表达式1)声明该变量,当然这个变量只能在这个循环内起作用,例如上述例子可以改写成for(inti=1;i<=100;i++)sum+=i;,这样更能清晰地表达出循环变量i的作用范围。上一页下一页返回任务5-2提取整数中各位对应的数字(4)在程序设计过程中,常常需要使用循环的嵌套来处理重复操作。而在处理重复操作时,往往又需要根据某一条件改变循环正常流程。当一个循环(称为“外循环”)的循环语句序列内包含另一个或若干个循环(称为“内循环”),称为循环的嵌套,这种语句结构称为多重循环结构。下面例子实现了两个循环的嵌套,用于打印字母表及其对应的ASCII码。上一页下一页返回任务5-2提取整数中各位对应的数字【例5-2】打出字母表及对应的ASCII码。(1)在解决方案Charpter5中添加一个新项目,项目名称为“Exa5-2”。(2)把下面这段代码放在按钮的Click事件中,此处不再介绍详细的界面设计步骤。(3)写入如下代码:上一页下一页返回任务5-2提取整数中各位对应的数字constintStartChar='A';constintEndChar='Z';constintCharPerLine=5;stringresult="";for(inti=StartChar;i<=EndChar;i+=CharPerLine)上一页下一页返回任务5-2提取整数中各位对应的数字{for(intj=0;j<CharPerLine;j++){result+=string.Format("{0}={1}",i+j,(char)(i+j));}result+="\n";}MessageBox.Show(result);上一页下一页返回任务5-2提取整数中各位对应的数字●上述例子中,首先声明并初始化计算过程中用到的变量,其中变量StartChar,EndChar,CharPerLine在程序运行中不发生改变,所以将这三个变量定义成常量,利用关键字const定义,为了与变量相区别,使程序更具可读性,通常使用大写字母来定义常量,例如:constintStartChar='A',这部分内容可以参考前面章节讲过的内容。变量result用来保存打印的字母表字符串。●代码中的第一个for循环称为“外循环”,用于控制将要输出的行数;第二个循环称为“内循环”,用于控制每行输出的具体的字符及字符个数。上一页下一页返回任务5-2提取整数中各位对应的数字●如果外层循环控制变量i的值小于或等于EndChar,就执行外层循环的嵌套语句。外层循环包含一个for循环。外层循环每循环一次,循环控制变量i就递增CharPerLine。●如果内层循环控制变量j的值小于CharPerLine,就执行内层循环的嵌入语句,内层循环每循环一次,循环控制变量j就递增1。●在外层循环中定义的局部变量i在内层循环中并没有超出作用范围。但是,在内层循环中定义的局部变量j在外层循环中却是无效的。上一页下一页返回任务5-2提取整数中各位对应的数字上面的例子运行后输出的结果,如下图5-11所示。从图中我们可以看出,结果中不仅打出A-Z对应的字母表及其ASCII码,还打出了ASCII是91-94对应的4个字符,那么怎样可以只打出到大写字母“Z”就停止呢?这里我们需要利用break语句实现功能。下面就开始学习跳转语句break和continue。上一页下一页返回任务5-2提取整数中各位对应的数字2.break语句break语句结构:break;break语句只能用于循环语句或switch语句中,如果在switch语句中执行到break语句,则立刻从switch语句中跳出,转到switch语句的下一条语句;这个在前面章节已经介绍过。如果在循环语句中执行到break语句,则会导致循环立刻结束,跳转到循环语句的下一条语句。不管循环嵌套多少层,break语句只能从包含它的最内层循环跳出一层。break语句通常与if语句配合,以达到在某种条件时从循环体内跳出的目的。上一页下一页返回任务5-2提取整数中各位对应的数字下面的代码仍然以前面输出字母表及对应的ASCII码值为例,试比较改动后的代码和前面代码的区别,并领会break语句的用处。constintStartChar='A';constintEndChar='Z';constintcharPerline=5;stringresult="";for(inti=StartChar;i<=EndChar;i+=charPerline)上一页下一页返回任务5-2提取整数中各位对应的数字{for(intj=0;j<charPerline;j++){if((i+j)>EndChar)break;result+=string.Format("{0}={1}",i+j,(char)(i+j));}result+="\n";}MessageBox.Show(result);上一页下一页返回任务5-2提取整数中各位对应的数字分析上面程序,当外层循环中循环变量i=“Z”时,执行内部循环,内部循环中执行第一次,if条件表达式i+j的值等于EndChar,表达式为假,执行if条件对应语句的后面内容,给result赋值为“Z”,执行下一次内循环,此时内循环变量j的值为1,外循环变量i的值仍然是“Z”,此时i+j>EndChar的条件为真,执行break语句,跳出包含它的内循环,执行后面的语句,即结束循环体语句。可以看出这样得到的结果更加符合要求。结果如图5-12所示。上一页下一页返回任务5-2提取整数中各位对应的数字分析下面程序段,体会break语句的功能:for(inti=0;i<20;i+=2){if(i==10)break;Lable1.Text+=i.toString();}上一页下一页返回任务5-2提取整数中各位对应的数字该程序段如果没有if和break语句,实现的功能是打出0~19之间的偶数,现在加上If条件,当i等于10时,条件为真,执行break语句,跳出循环体语句,最终打出的是0到8之间的偶数。3.continue语句continue语句结构:continue;上一页下一页返回任务5-2提取整数中各位对应的数字continue语句用于循环语句中,continue语句作用是结束本次循环,跳过该语句之后的循环语句,返回到循环的起始处,并根据循环条件决定是否执行下一次循环。例如:如果要求打出除了7以外的0~9的数字,只要在for循环执行到7时,跳过打出语句就可以了。上一页下一页返回任务5-2提取整数中各位对应的数字for(inti=0;i<10;i++){if(i==7)continue;MessageBox.Show("{0}",i);}本程序的运行结果为:012345689。上一页下一页返回任务5-2提取整数中各位对应的数字4.foreach语句这是C#比较C语言而言,新增加的一个循环语句。它主要用于访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。此语句的形式如下:foreach(type集合元素in对象集合){嵌入语句;}上一页下一页返回任务5-2提取整数中各位对应的数字因为数组的内容在下一章节介绍,所以这里简单介绍一下foreach语句,在数组中将着重介绍。【例5-3】输出九九乘法表。乘

温馨提示

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

评论

0/150

提交评论