程序控制结构课件_第1页
程序控制结构课件_第2页
程序控制结构课件_第3页
程序控制结构课件_第4页
程序控制结构课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

VisualBasic程序设计第四章程序控制结构VisualBasic程序设计第四章程序控制结构第4章程序控制结构程序示例循环结构程序设计选择结构程序设计顺序结构程序设计程序设计与算法

VisualBasic程序设计第4章程序控制结构程序示例循环结构程序设计选择结构程序设4.1.1程序的基本组成程序的基本组成包括:输入、处理和输出三个部分。例如,需要用计算机编程求解一个三角形的面积。根据题目的要求可以确定:(1)程序的“输出”是三角形的面积值。(2)“处理”是求解三角形的面积。(3)如果用三条边长求三角形面积,则需要输入三角形的三条边长,如果用相邻的两条边及其夹角求三角形面积,就需要输入两条边长及其对应的夹角。

VisualBasic程序设计4.1.1程序的基本组成程序的基本组成4.1程序设计与算法由于计算机只能执行算术运算和逻辑运算,所以其解决问题的方法、步骤和人们生活中解决问题的方法、步骤不同,必须考虑其特殊性。

VisualBasic程序设计4.1程序设计与算法由于计算机只能4.1.2算法1.算法的定义从广义上讲,算法是解决某个问题或处理某个事件的方法和步骤。从狭义上讲,算法指用计算机解决某一问题的方法和步骤。算法可以分为两大类:一类是数值计算方法,主要是解决一般数学解析方法难以处理的一些数学问题,如求解超越方程的根等;另一类是非数值计算方法,如排序、查找和求最大值最小值等。

VisualBasic程序设计4.1.2算法1.算法的定义VisualBasi4.1.2算法2.算法的特征算法具备以下五个特征:(1)确定性(2)可行性(3)有穷性(4)输入性(5)输出性

VisualBasic程序设计4.1.2算法2.算法的特征VisualBasic程序4.1.2算法3.算法的描述算法本身可以采用不同的方法来描述。可以用自然语言(英语、汉语等)来描述;可以用伪代码来描述;可以用特定的图形来描述。

VisualBasic程序设计4.1.2算法3.算法的描述VisualBasic程4.1.2算法4.算法和程序的区别算法和程序的区别主要有三点:(1)一个程序不一定满足有穷性。(2)程序中的指令必须是机器可执行的,而算法中的指令则无此限制。

(3)算法代表了对问题的解,而程序则是算法在计算机上的特定的实现。

VisualBasic程序设计4.1.2算法4.算法和程序的区别VisualBas4.1.3算法的基本结构算法有三种基本结构:顺序结构分支结构循环结构。

VisualBasic程序设计4.1.3算法的基本结构算法有三种基本结构:Vis4.2顺序结构顺序结构的概念和执行流程顺序结构是指按照语句书写的先后顺序依次执行每条语句。顺序结构主要是由变量定义语句、赋值语句、输入输出语句和一些命令语句等构成。

VisualBasic程序设计4.2顺序结构顺序结构的概念和执行流程Visua4.2顺序结构如以下顺序结构程序段:PrivateSubCommand1_Click()DimxAsInteger,yAsInteger,zAsInteger'变量定义x=Val(Text1.Text)'数据的输入y=Val(Text2.Text)'数据的输入z=x+y'数据的处理Text3.Text=z'数据的输出EndSub

VisualBasic程序设计4.2顺序结构如以下顺序结构程序段:VisualBas4.2顺序结构该程序段自上而下依次执行各条语句。整个程序只有一个入口和一个出口。程序中主要包含四部分内容:(1)变量的定义;(2)数据的输入;(3)数据的处理;(4)数据的输出。

VisualBasic程序设计4.2顺序结构该程序段自上而下依次执1.输入函数—InputBoxInputBox函数用来接收通过键盘输入的数据。InputBox函数的语法格式如下:v=InputBox(Propmt[,Title][,Default][,x,y][,Helpfile,Context])v:用于接收在InputBox函数中输入的数据。Propmt:对话框中显示的提示信息。Title:对话框的标题。Default:显示在用户编辑框中的缺省值。x,y:用于确定对话框在屏幕上显示时的位置。Helpfile,Context:是帮助文件名和帮助主题号。

VisualBasic程序设计1.输入函数—InputBoxInputBox1.输入函数—InputBox例如x=InputBox(“请输入一个数字!”,“程序示例”,10),显示如图所示的对话框。

VisualBasic程序设计1.输入函数—InputBox例如x=2.消息框函数—MsgBoxMsgBox函数用于向用户发布提示信息,并要求用户做出响应。MsgBox函数语法格式如下:v=MsgBox(Propmt[,Button][,Title][,Helpfile,Context])Propmt:对话框中显示的提示信息。Button:定义信息框按钮的个数、类型和信息框中的图标。Title:信息框的标题。Helpfile,Context:Helpfile是帮助文件名,Context是帮助主题号。V:用于接收MsgBox函数返回的一个值。。

VisualBasic程序设计2.消息框函数—MsgBoxMsgBox函数用于向用户发2.消息框函数—MsgBox例如:x=MsgBox("非法数据!",1+48+0,"提示信息!")

VisualBasic程序设计2.消息框函数—MsgBox例如:x4.3选择结构程序设计本节要点选择结构先对条件进行测试,根据测试的结果选择执行对应的分支语句。1.If条件语句2.IIf函数3.SelectCase结构4.选择结构应用示例

VisualBasic程序设计4.3选择结构程序设计本节要点VisualBasic程序4.3.1If条件语句1.单分支If语句说明:条件可以是:关系表达式、逻辑表达式或算数表达式。格式(1)中“语句组”可以是一条或几条语句。格式(3)不换行书写,仅一行,没有EndIf。If和EndIf必须成对使用,除非是格式(2)。格式(2):If条件Then语句……格式(1):

If条件Then

语句组EndIf……

VisualBasic程序设计4.3.1If条件语句1.单分支If语句格式(2):格式(4.3.1If条件语句1.单分支If语句执行规则:条件为真则执行“语句”或“语句组”,否则,不执行“语句”或“语句组”,直接执行If后面的语句。例4.1根据百分制成绩提示考试是否通过。条件语组TFIfscore>=60ThenPrint"祝贺你考试通过!"EndIfPrint"继续努力!"score=60Ifscore>=60ThenPrint"祝贺你考试通过!"Print"继续努力!"

VisualBasic程序设计4.3.1If条件语句1.单分支If语句条件语组TFIf4.3.1If条件语句格式:

If条件Then

语句组1

Else

语句组2

EndIf条件语句组1TF语句组2执行规则:条件为真执行语句组1,If语句执行结束,否则,执行语句组2,If语句执行结束。2.双分支If语句

VisualBasic程序设计4.3.1If条件语句格式:If条件Then条件语4.3.1If条件语句2.双分支If语句例4.2求x和y的最大值

If

x>y

Then

Print"最大值是:"

,xElse

Print"最大值是:"

,y

EndIf

单分支和双分支If语句用于解决两种情况的问题。

VisualBasic程序设计4.3.1If条件语句2.双分支If语句Ifx>y4.3.1If条件语句2.双分支If语句例4.3计算分段函数:程序代码:Ifx>=0Theny=(-x+Sqr(x^3-3*x+7))/2Elsey=Log(x)+1EndIf

VisualBasic程序设计4.3.1If条件语句2.双分支If语句VisualB4.3.1If条件语句2.双分支If语句例4.4计算分段函数。

程序代码:If

x>=0ThenElsey=Log(x)+1EndIf

双分支If的Then中又包含一个If语句。Ifx>0

Then

y=(-x+Sqr(x^3-3*x+7))/2Else

y=0EndIf

VisualBasic程序设计4.3.1If条件语句2.双分支If语句例4.4计算分段4.3.1If条件语句2.双分支If语句

在If语句的Then或Else中又包含If语句,称为If结构嵌套。注意:注意If嵌套结构的程序书写规范,最好采用层层缩进的方式。除非采用If结构的缩写格式,否则,有几个If语句,就有几个EndIf语句与之配对。嵌套的结构比较复杂!

VisualBasic程序设计4.3.1If条件语句2.双分支If语句嵌套的结构比较复杂4.3.1If条件语句3.多分支If语句格式:If条件1

Then

语句组1

ElseIf条件2

Then

语句组2……ElseIf条件n

Then

语句组n

Else

语句组n+1

EndIf执行规则:首先判断条件1,条件1成立,执行语句组1,If语句执行结束,否则再判断条件2……依此类推。n个条件都不成立,则执行语句组n+1,n+1个语句组仅执行一个。

注意:(1)在书写时要注意ElseIf之间不能有空格;(2)条件的书写是有顺序的,如有多个分支同时满足条件,只执行第一个与之匹配的语句组。

VisualBasic程序设计4.3.1If条件语句3.多分支If语句格式:If条件14.3.1If条件语句3.多分支If语句

多分支If语句用于解决三种及以上情况的问题。把例4.4用多分支If语句处理。

程序代码:Ifx>0

Then

y=(-x+Sqr(x^3-3*x+7))/2ElseIfx=0

Then

y=0Else

y=Log(x)+1EndIf

VisualBasic程序设计4.3.1If条件语句3.多分支If语句多分支If语4.3.1If条件语句3.多分支If语句例4.5编写一个按月收入额计算个人收入调节税的程序。计算方法如下:

VisualBasic程序设计4.3.1If条件语句3.多分支If语句例4.5编写一个4.3.2条件函数IIf函数格式:变量=IIf(表达式1,表达式2,表达式3)IIf函数根据条件的成立与否,返回不同表达式的结果。如果表达式1的值为真,函数值是表达式2的值,否则函数值是表达式3的值。例4.6将两个变量x和y中的最大值放入max。If语句:Ifx>yThenmax=xElsemax=yEndIf

IIf函数:max=IIf(x>y,x,y)

VisualBasic程序设计4.3.2条件函数IIf函数格式:变量=IIf(表达式1,4.3.3SelectCase语句SelectCase测试表达式

Case测试项1语句组1

Case测试项2语句组2……

Case测试项n语句组n

CaseElse语句组n+1EndSelect说明:(1)测试表达式的值应是数字或字符型。(2)测试项的取值必须与测试表达式的值类型相同,常用形式为:具体取值,用逗号隔开如:1,5,9连续的范围:界1TO界2如:12To20

满足某个条件:Is运算符如:Is>10三种形式可组合使用,用逗号隔开。

SelectCase语句执行过程先计算测试表达式的结果,按顺序判断结果与Case语句后的测试项是否匹配,如果匹配,则执行相应的语句组,否则继续判断,如果表达式结果与所有的测试项都不匹配,则执行CaseElse后的语句组(如果有的话)。

VisualBasic程序设计4.3.3SelectCase语句SelectCas4.3.3SelectCase语句例4.7百分制成绩转换成三级制成绩。成绩大于等于90的为优秀,小于90大于等于60为及格,否则为不及格。SelectCase方法:Mark=Val(Text1.Text)SelectCaseMarkCaseis>=90Print"优"Case60to90Print"通过"CaseElsePrint"未通过"EndSelect多分支If方法:Mark=Val(Text1.Text)Ifmark>=90thenPrint"优"ElseIfmark>=60thenPrint"通过"ElsePrint"未通过"EndIf

SelectCase语句和多分支If语句都是处理多分支问题。

VisualBasic程序设计4.3.3SelectCase语句例4.7百分制成绩4.3.4选择结构应用示例例4.8编写一个加油站计费程序从“种类”中选择油品种类,界面上的说明文字将随之改变,并将“数量”文本框设为焦点;在数量文本框中输入需购的油品数量后,单击“计算”按钮,在“总价”文本框显示所购油品种类应付的金额。已知汽油单价:90号7.21元/升93号7.41元/升97号7.80元/升

VisualBasic程序设计4.3.4选择结构应用示例例4.8编写一个加油站计费程序4.3分支结构总结单分支If语句双分支If语句If语句的嵌套多分支If语句IIF函数SelectCase语句

VisualBasic程序设计4.3分支结构总结单分支If语句VisualBasic4.4循环结构循环:是在指定的条件下多次重复执行一组语句。1.For...Next2.Do...Loop

3.循环嵌套

VisualBasic程序设计4.4循环结构循环:是在指定的条件下多次重复执行一组语句。4.4循环结构4.4.1For循环结构说明:初值、终值和步长可以为正整数,也可以为小数。步长可以为正值,也可以为负值。ExitFor用于退出For循环。循环的执行次数=Int((终值-初值)/步长)+1

For

循环变量=初值

To

终值[Step步长]

ExitFor

Next[循环变量]步长省略,默认为1循环体可以省略

VisualBasic程序设计4.4循环结构4.4.1For循环结构For循环变量4.4循环结构4.4.1For循环结构执行过程(初值小于终值,步长为正值)(1)将初值赋给循环变量(仅执行一次)(2)判断循环变量值是否小于等于终值(3)若是则执行循环体(4)循环变量增加一个步长(5)重复(2)~(4)步骤(6)否则,结束循环循环变量赋初值循环变量=循环变量+步长语句块FExitFor语句块T循环变量<=终值FT

VisualBasic程序设计4.4循环结构4.4.1For循环结构循环变量赋初值循4.4循环结构4.4.1For循环结构执行过程(初值大于终值,步长为负值)(1)将初值赋给循环变量(仅执行一次)(2)判断循环变量值是否大于等于终值(3)若是则执行循环体(4)循环变量增加一个步长(5)重复(2)~(4)步骤(6)否则,结束循环循环变量赋初值循环变量=循环变量+步长语句块FExitFor语句块T循环变量>=终值FT

VisualBasic程序设计4.4循环结构4.4.1For循环结构循环变量赋初值循4.4循环结构例4.9读程序写结果程序代码:s=0Fori=1To10step1s=s+iNextiPrinti,s可以省略该算法是累加求和:累加求和的做法是定义一个变量(如s),作为累加器使用,一般初值为0,再定义一个变量(如i)用来保存加数。

第1次:i=1,1<=10,s=0+1=1,执行Next,i为2第2次:i=2,2<=10,s=1+2=3,执行Next,i为3

……第10次:i=10,10<=10,s=45+10=55执行Next,i为11

第10次循环结束后:11>10为假,循环结束。

VisualBasic程序设计4.4循环结构例4.9读程序写结果程序代码:可以省略该4.4循环结构思考:求奇数和1+3+5+…+99?两种方法:1)求和前用if语句对i做判断,如果i是奇数对i求和。2)设置步长为2,则i的取值全部为奇数。方法1:S=0Fori=1To99

IfiMod2=0Thens=s+iEndIfNext方法2:S=0Fori=1To100step2

s=s+iNext

VisualBasic程序设计4.4循环结构思考:求奇数和1+3+5+…+99?方法4.4循环结构例4.10求1/2+2/3+…+20/21

该问题也是求和,是按规律求和,累加器第i次加ai=i/(i+1),ai称为通项。程序代码:

s=0Fori=1To20NextiPrinti,s说明:通项求和一般是先计算通项,然后把通项加到累加器。计算通项t=i/(i+1)s=s+t

VisualBasic程序设计4.4循环结构例4.10求1/2+2/3+…+20/24.4循环结构例4.11求积:1*2*3*…*10分析:把求和s=s+i改成s=s*i。注意:(1)把s的初值改为1;

(2)s定义成Long类型,整型可能不够用。

程序代码:

DimiAsinteger,sAsLong

s=1

Fori=1To10

s=s*i

NextiPrinti,s

VisualBasic程序设计4.4循环结构例4.11求积:1*2*3*…*10程4.4循环结构

例4.12输入一个正整数,求各个位上数字之和。如输入4532,输出各个位上的数字之和14(1)输入正整数k(2)求它是几位数(3)用For循环:1,位数和步长(4)取k的末位数(Mod),求和(5)使k去掉末位数(\)(6)重复(4)和(5),直到结束(7)在Text2中显示结果分析:要求各个位数的和,必须把各个位上的数分离出来。

VisualBasic程序设计4.4循环结构例4.12输入一个正整数,求各个4.4循环结构总结思考:我国现有人口13亿,按人口年增长率0.8%计算,多少年后我国人口超过26亿?能否用For循环解决该问题?⑴初值、终值、步长必须是数值型,步长为正,初值<终值;若为负,初值>终值;缺省默认为1;⑵在已知循环次数时使用For循环,循环次数=Int((终值-初值)/步长)+1;⑶组成循环体的语句块可以是一条或多条语句;⑷ExitFor表示当遇到该语句时,退出循环体,执行Next后面的语句;⑸

在循环体内对循环变量可多次引用,但在循环过程中一般不改变其值,否则影响结果;⑹退出循环后,循环变量保持退出时的值。

VisualBasic程序设计4.4循环结构总结思考:我国现有人口13亿4.4循环结构4.4.2Do…Loop循环结构(1)DoWhile<条件>…[ExitDo]…Loop(2)

D0

…[ExitDo]…LoopWhile<条件>(3)DoUntil<条件>

…[ExitDo]…Loop(4)Do

…[ExitDo]…LoopUntil<条件>

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构(1)D4.4循环结构4.4.2Do…Loop循环结构格式⑴

DoWhile

<循环条件>

循环体

[ExitDo]

循环体

Loop先判断,后执行:

先判断循环条件,若为真,执行循环体,然后再判断循环条件。否则,跳出循环体,执行Loop之后的语句。循环条件语句块TF语句块FExitDoT注意:1.执行ExitDo,直接跳出循环体,执行Do…Loop后面的语句。2.如果循环条件初始为假,则循环体一次都不执行。

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构4.4循环结构4.4.2Do…Loop循环结构对例4.91+2+3+4+…+10Do…Loop方法:s=0:i=1DoWhilei<=10s=s+ii=i+1LoopFor循环实现的程序功能,也可以用Do…loop循环实现。For方法:s=0Fori=1To10s=s+iNextI

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构Do…Lo4.4循环结构4.4.2Do…Loop循环结构格式(2)Do

循环体[ExitDo]

循环体LoopWhile<循环条件>执行规则:先执行循环体,再判断循环条件。注意:不管“循环条件”开始为真还是为假,循环体至少执行一次。

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构格式4.4循环结构4.4.2Do…Loop循环结构

对例4.91+2+3+4+…+10程序代码:s=0:i=1DoWhilei<=10s=s+ii=i+1Loop程序代码:s=0:i=1Dos=s+ii=i+1LoopWhilei<=10可以看出:两种While循环可以实现相同的功能。

将i先赋值为11,执行结果如何?

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构程序代码4.4循环结构4.4.2Do…Loop循环结构例4.13我国现有人口13亿,按人口年增长率0.8%计算,多少年后我国人口超过26亿?分析:可以看出,该问题是循环问题,但循环次数不确定,不能用For循环。计算公式:26=13*(1+0.008)n;程序代码:P=13:n=0Don=n+1p=p*(1+0.008)LoopWhilep<=26Printn可以看出:(1)循环次数不确定的循环只能用While循环;(2)For循环都可以转换成While循环,但Wile循环不一定都能用For循环实现。

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构分析:可4.4循环结构4.4.2Do…Loop循环结构⑴DoWhile<条件>循环体Loop⑵D0循环体LoopWhile<条件>区别:(1)执行顺序不同:

形式一:先判断,后执行循环体;形式二:先执行循环体,后判断。(2)执行次数不同(特殊情况下):形式一:条件不满足,循环体可能一次也不执行形式二:不论条件如何,至少执行一次

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构⑴Do4.4循环结构例4.14用辗转相除法求两自然数m、n的最大公约数和最小公倍数。最大公约数:⑴已知两数m、n;⑵mModn的值为r;⑶m←n,n←r;⑷若r<>0,则重复⑵⑶,否则,循环结束,m为所求的最大公约数。最小公倍数:

原两个数相乘,再除以最大公约数。程序代码:DimmAsInteger,nAsIntegerm=Text1.Text:n=Text2.Textm1=m:n1=nDo

Loopwhiler<>0Text3.Text=mText4.Text=m1*n1/mr=mModnm=nn=r能否把whiler<>0放到Do后面?

VisualBasic程序设计4.4循环结构例4.14用辗转相除法求两自然数m、n的4.4循环结构4.4.2Do…Loop循环结构格式⑶:

DoUntil<条件>

循环体LoopWhile条件与Until条件的区别:

While条件是当条件满足时执行循环体,Until条件是当条件满足时结束循环体的执行。

格式(4):

Do

循环体LoopUntil<条件>

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构格式⑶4.4循环结构4.4.2Do…Loop循环结构

对例4-9求1+2+3+4+…+10i=1DoWhilei<=10s=s+ii=i+1LoopPrinti,s

i=1DoUntili>10

s=s+ii=i+1LoopPrinti,sWhile循环和Until循环可以实现相同的功能。

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构i=1i4.4循环结构4.4.2Do…Loop循环结构几种形式比较:

Do

While

<条件>

循环体

Loop(While<条件>)

Do

Until<条件>

循环体

Loop(Until<条件>)区别:

While条件为真时执行循环体,否则退出循环。

Until条件为假时执行循环体,否则退出循环。关系:while和Until可以相互转换,但循环条件取反。

VisualBasic程序设计4.4循环结构4.4.2Do…Loop循环结构几种形式4.4循环结构例4.15输入一个正整数n,求最大的k,使得1*1+2*2+…k*k<n成立。分析:由于循环次数不确定,不能用For循环,只能用Do…Loop循环。(1)输入n的值。(2)判断累加和s<n?。(3)若是,s加下一个数的平方值。(4)重复(2)、(3)。(5)若否,结束循环。(6)由text2输出最后一个累加数k。程序代码:n=Val(Text1.Text)s=0:k=1DoWhiles<nk=k+1s=s+k*kLoopText2.Text=k-1

VisualBasic程序设计4.4循环结构例4.15输入一个正整数n,求最大的k,4.4循环结构4.4.3循环的嵌套循环的嵌套:在一个循环体内又包含了一个完整的循环结构。例4.16打印乘法表。注意:(1)内、外循环变量不能同名。(2)外循环必须完全包含内循环,不能出现交叉。

程序代码:

Fori=1To9

Forj=1ToIs=i&"×"&j&"="&i*jPrintTab((j-1)*8+1);s;

NextjPrint

Nexti

VisualBasic程序设计4.4循环结构4.4.3循环的嵌套程序代码:Vi4.4循环结构例4.17计算1!+2!+…+5!

程序代码:s=0Fori=1To5

s=s+tNextPrintst=1Forj=1Toit=t*jNext

VisualBasic程序设计4.4循环结构例4.17计算1!+2!+…+5!t4.4循环结构总结1.For…Next语句2.Do…Loop语句3.循环的嵌套

VisualBasic程序设计4.4循环结构总结1.For…Next语句Visual4.5程序示例例4.18从一个由字母、数字组成的字符串中找出所有大写字母并逆序输出。方法2:PrivateSubCommand1_Click()Fori=Len(Text1.Text)To1Step-1t=Mid(Text1.Text,i,1)Ift>="A"Andt<="Z"Then

Text2.Text=Text2.Text+tEndIfNextEndSub方法1:PrivateSubCommand1_Click()Fori=1ToLen(Text1.Text

温馨提示

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

评论

0/150

提交评论