C++语言第一课课件_第1页
C++语言第一课课件_第2页
C++语言第一课课件_第3页
C++语言第一课课件_第4页
C++语言第一课课件_第5页
已阅读5页,还剩17页未读, 继续免费阅读

下载本文档

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

文档简介

1、1初识C+语言1.1 关于C+C+是一种计算机通用的高级程序设计语言。开始形成的是C语言,那些想建立更快更有效的代码的程序员非常欣赏C语言。但有一位名叫BjarneStroustrup的人却不满足于仅仅是生产快速代码,他想创建面向对象的C语言编程。他开始对C语言的内核进行必要的修改,使其能满足面向对象模型的要求。C+从此产生。C+自诞生以来,经过开发和扩充已成一种完全成熟的编程语言。现在C+已由ANSI、BSI、DIN、其他几个国家标准机构和ISO定为标准。ISO标准于1997年11月4日经投票正式通过。C+标准演变了许多年。C+模板是近几年来对此语言的一种扩展,模板是根据类型参数来产生函数和

2、类的机制,有时也称模板为“参数化的类型”。使用模板,可以设计一个对许多类型的数据进行操作的类,而不需要为每个类型的数据建立一个单独的类。标准模板库(StandardTempalteLibrary,STL)就是基于这个C+语言扩展的。C+标准可分为两部分,C+语言本身和C+标准库。C+标准库提供了标准的输入/输出、字符串、容器(如矢量、列表和映射等)、非数值运算(如排序、搜索和合并等)和对数值计算的支持。应该说,C/C+包含了相对少的关键字,而且很多最有用的函数都来源于库。C+标准库实现容器和算法的部分就是STL。STL是数据结构和算法的一个框架,数据结构包括矢量、列表和映射等,算法包括这些数据

3、结构的查找、拷贝和排序等。1994年7月,ANSI/ISOC+标准委员会投票决定接受STL为C+标准库的一部分。STL的产生是为了满足通用性的设计目标,而不是为了提高性能。1.1.1 C+的发展:C+程序设计语言是由来自AT&T贝尔实现室的BjarneStroustrup设计和实现的,它兼具Simula语言在组织与设计方面的特性以及适用于系统程序设计的C语言特性。C+最初的版本被称作“带类的C(Cwithclasses)”,在1980年被第一次投入使用;当时它只支持系统程序设计和数据抽象技术。支持面向对象程序设计的语言特性在1983年被加入C+;之后,面向对象设计方法和面向对象程序设计

4、技术就逐渐进入了C+领域。在1985年,C+第一次投入商业市场。在1987至1989年间,支持范型程序设计的语言特性也被加进了C+随着若干独立开发的C+实现产品的出现和广泛应用,正式的C+标准化工作在1990年启动。标准化工作由ANSI(AmericanNationalStandardInstitute)以及后来加入的ISO(InternationalStandardsOrganization)负责。1998年正式发布了C+语言的国际标准。1.1.2 C+的开发环境:VisualStudio6.0这个虽然是Microsoft公司的老版本的开发环境,但是鉴于其后继版本VisualStudio.N

5、ET的庞大身躯,以及初学者并不那么高的功能要求,所以推荐这个开发环境给C+的初学者,供其学习C+的最基本的部分,比如C的那部分子集,当然你别指望他能够支持最新的C99标准。在日常的开发中,仍然有很多公司使用这个经典稳定的环境,比如笔者就看曾亲见有些公司将其编译器替换为GCC做手机开发之用。VisualStudio.NET作为Microsoft公司官方正式发布的最新版本开发环境,其中有太多激动人心的功能。结合其最新的C+编译器。对于机器配置比较好的开发人员来说,使用这个开发环境将能满足其大部分的要求。BorlandC+BuilderXC+BuilderX则是完全从C+的角度思考得出的一个功能丰富

6、的IDE。其最大的特点是跨平台,跨编译器,多种Framework的集成,并且有一个WxWindows为基础的GUI设计器。尤其是采用了纯C+来重写了整个Framework,摒弃了以前令人无奈的版本。对于C+的开发来说,从编译器,到库,到功能集成都是非常理想的。可以预见,BorlandC+BuilderX2.0很值得C+爱好者期待。唯一令人难堪之处是作为一个C+的开发工具,其IDE是用Java写的,在配置不够理想的机器上请慎重考虑再安装。DevC+GCC是一个很好的编译器。在Windows上的C+编译器一直和标准有着一段距离的时候,GCC就是一个让Windows下开发者流口水的编译器。Dev-C

7、+就是能够让GCC跑在Windows下的工具,作为集成开发环境,还提供了同专业IDE相媲美的语法高亮,代码提示,调试等功能。由于使用Delphi开发,占用内存少,速度很快,比较适合轻量级的学习和使用。1.2 Dev-cpp的环境启动Dev-c+后的环境如下:1CV-C+,丸 92回国在这个环境中,编辑好源代码后,单击旦旦可以编译源代码,如果编译有错误,则列出错误,并停止编译,这个操作的快捷键为Ctrl+F9。如果编译成功,则可以单击,运行编译好的程序。当然,也可以单击田,编译当前的程序并运行。这个操作的快捷键为F9.一些有用的快捷键:Ctrl+y:删除当前行Ctrl+n:新建源文件窗口Inse

8、rt:插入与改写状态切换1.3 C+程序结构1.3.1 HelloWord!输入以下程序并编译、运行。#include<iostream>usingnamespacestd;intmain()cout<<"HelloWord!"<<endl;从这个mini程序可以看到C+程序的一般格式。注释如下:#include<iostream>/包含要使用的库函数。这里是输入输出功能。因为一个/信息系统总要输入输出信息,所以基本上每个程序都会/包含它。usingnamespacestd;/把std名字空间打开,程序可以正确识别std中的名

9、字了,/如cout,endl等(开盖子语句)。intmain()/主函数,执行入口,在最新标准中,它必须返回int/类型数据/函数的内容必须放在括号中cout<<"HelloWord!"<<endl;/输出信息/函数结束还可以看到,程序的语句必须用分号结束在Dev-cpp中,执行后屏幕一闪,就回到编辑界面,怎样让程序等一会,让我们能看清执行结果。有两种方法:intmain()cout<<"HelloWord!"<<endl;getchar();这种方法调用函数getchar(),它等待从命令行得到一个字符,

10、回车结束。所以回车后回到编辑界面。或:intmain()cout<<"HelloWord!"<<endl;system(“pause”);这种方法调用Windows中的cmd命令“pause”,按任意键回到编辑界面。练习:(1)在Dev-cpp中编写代码,让它说一些你想说的话。注意,在它可以说中国话,只要把它放到英文的引号中就行。(2)编程序显示一首唐诗(3)编程,用字符*组成一个3列5行的平行四边形1.3.2 能说会算放在引号中的内容会原样输出。如果不放在引号中呢?比如编程计算123X321.#include<iostream>usin

11、gnamespacestd;intmain()cout<<321*123<<endl;getchar();可以看到,对于没有放到引号中的类型,C+会把这些内容作为表达式,计算并输出这个表达式的值。练习:(1)计算半径为12的球的体积(2)一元二次方程的系数分别为1,5,3,求这个方程的根。C+中的常用算术运算符:运算C+中的运算符十+一-X*一/求余数%1.3.3 变量如果在HelloWord程序中,去掉引号,会发生什么。试一试。对了,它把Hello看成了一个变量,并报告说Hello这个变量没有定义。C+是一种强类型语言,要求所有的变量都要先定义后使用。定义变量的方法为

12、:类型名变量名如:inta;定义一个变量,变量名为a,它的类型为整型doublec,d;定义两个变量,变量名为c和d,它们的类型都为doubleintb=12;定义一个变量,变量名为b,类型为整型,同时给变量b赋值,让变量b的值为/12.要改变一个变量的值,可以使用赋值号“=",它的作用是:计算出等号右边的表达式的值,然后把这个结果赋值给等号右边的变量。如执行以下语句:b=-1;可以让变量b的值为-1C+常用基本数据类型说明长度(字节)表小氾围备注char字符型1-128127unsignedchar无符号字符10255int整型4约±21亿unsignedint无符号整型

13、40到约42亿double双精度型8约士1030815位后效位bool布尔型1true和false练习:(1)计算半径为12的球的体积,把球的半径保存在变量r中,把球的体积放到变量v中。(2)一元二次方程的系数分别为1,5,3,求这个方程的根。把系数分别保存在变量a,b,c中。判别式结果保存在d中,根分别保存在x1和x2中。(3)在第一题中,如果忘记给变量r赋值,会得到什么结果。为什么?(4)在第一题中,如果把变量v的类型设置成了int,会得到什么结果,为什么?(5)编写程序,输入三角形的三边,求三角形的面积。公式为:area=sqrt(s(s-a)(s-b)(s-c)其中s为半周长s=(a+

14、b+c)/2(6)运行如下的程序,会得到什么结果,想一想,为什么?intmain()inta=10000;intb=a*a*a;cout<<b<<endl;1.3.4 赋值语句赋值,顾名思义,就是把一个值赋予某个量。可以这理解:变量相当于装东西的容器,赋值的过程就是把东西放进容器的过程。赋值语句格式如下:变量=表达式;写赋值语句有以下几点要注意:1、赋值号“=”赋值号是一个运算符。表示“把等号右边的表达式的值赋值给等号右边的变量”。它和数学中的符号一样,但含义却完全不一样。比如,它显然没有交换律:a=b不能写成b=aa=b+c如果写成b+c=a还是一个语法错误。2、赋值

15、号两边的数据类型必须相同或相容C+中的量不管是变量还是常量都有一个属性称为“数据类型”。数据类型相同的或相容的才可以相互赋值。怎么来理解这句话呢?我们知识变量就是内存中指定的一些存储单元,可以把它想象成具有一定大小的盒子,它们能存储某些类型的数据。如果给的数据刚好能放到盒子里,当然没有问题。但如果你给的数据占用的空间超过了盒子的大小,就会出问题了。对于数据类型相容的,可以这样理解。如果我们给的数据占用的空间小于盒子的空间,一般也可以勉强用,这就属于“相容”的情形,一般不会出错。但如果反过来,则盒子会装不下,会发生“溢出”,这就不行了,会出错。因些,我们在写赋值语句时,要注意两边的类型是否匹配。

16、赋值语句的一般写法为:a=3x=x+2x=y/z当一个变量既出现在表达式的左边又出现在右边时,可以缩写。如上面的表达式可写为:x+=2x/=zC/C+ 提供了更加简洁的写法,对于x=x+1或x=x-1的表达式来说,x+x-练习:1、把一个整数的各位数字倒序输出。1.3.5做“通用”程序在前面的学习中,我们只能算程序时就确定的数据。但常常有些数据在编程时是不知道具体值的。比如收银台程序就不能假定用户只能买1件201元的衣服。在程序运行时,临时输入数据,可以用cin。比如计算球的体积的程序:intmain()intr,v;cin>>r;v=3.14*4/3*r*r*r;cout<

17、<v<<endl;system("pause");练习:1 .输入两个数,放到变量a,b中,然后交换变量a,b的值,并输出2 .做一个自己的程序,当程序运行时输入数据,完成某个计算任务。1.4文件操作1.4.1 建立文件流举例:编程计算两个数的和、差、积、商。输入:从文本文件jisuan.in读入数据。文件格式为:只有两个数,中间用空格分隔如:52输出:输出到文件jisuan.out中,格式为:每行一个数,分别为和、差、积、商的结果。如:73102.5参考代码:#include<iostream>#include<fstream>u

18、singnamespacestd;intmain()inta,b;ifstreaminf("jisuan.in");/设置输入文件流inf并初始化ofstreamoutf("jisuan.out");/设置输出文件流outf并初始化inf>>a>>b;outf<<a+b<<endl;outf<<a-b<<endl;outf<<a*b<<endl;outf<<a*1.0/b<<endl;1.4.2用文件流替换标准输入输出流同上面的问题,参

19、考代码:#include<iostream>#include<fstream>usingnamespacestd;intmain()inta,b;freopen("jisuan.in","rt",stdin);/把文件流重定向到标准输入流cinfreopen("jisuan.out","wt",stdout);/把文件流重定向到标准输出流coutcin>>a>>b;cout<<a+b<<endl;cout<<a-b<<e

20、ndl;cout<<a*b<<endl;cout<<a*1.0/b<<endl;练习:已知物体的运动的初速度和加速度,可以求出物体经过一定时间运行的距离,其公式为:2s=v0t*1/2*vt编程求物体的运行距离。输入文件:juli.in格式为:共有三行数据,每一行由空格分隔的三个数字组成,分别表示初速度,加速度和时间。输出文件:juli.out共三行,每行一个数,表示物体运行的距离。1.5流程控制1.5.1 IF语句条件语句用于响应一个条件的两个方面。例如:今天如果下雨,我们就在家;否则(不下雨)我们就出去玩。用C+的IF语句可写成:if(天下雨

21、)在家;else出去玩;IF语句的一般格式为:if(条件)分支一;else分支二;“分支一”和“分支二”表示当条件成立时和不成立分别要执行语句。执行过程为:如果条件成立(也称条件为真),那么程序执行分支一中的语句,否则(条件为假)程序执行分支二的语句。图示:真分支一的语句分支二的语句继线后面的语句V注息:1、条件语句的分支如果不只一个语句,需要用花括号括起来,组成一个复合语句。2、在If语句中,else部分可以省略。此时的执行逻辑如下:此时的写法3、在IF语句中还可以嵌套IF语句,一般来说,把IF语句嵌套在else分支中。形如:if(条件1)分支一elseif(条件2)分支二elseif(条件

22、3)分支三else分支四例1、输入两个数a,b,输出较大的数。intvoidmain()inta,b;cin>>a>>b;if(a>b)cout<<a;elsecout<<b;条件由关系表达式组成,C+勺关系运算符有:=(比较左右值是否相等)> (比较左值是否大于右值)> =(比较左值是否大于或等于右值,也称为不小于)> (比较左值是否小于右值)> =(比较左值是否小于或等于右值,也称为不大于)!二(比较左右值是否不相等)特别要注意,关系运算符的“等于",是由两个=组成。如果写成了一个,就成了赋值语句。要命

23、的是,许多编译器并不报错,所以一定要小心。关系运算的结果为逻辑值。对于复杂的条件,需要用到逻辑运算符。逻辑运算的结果为逻辑值。C+的逻辑运算符有三个:符号意思例子&&并且(and)条件1&&条件2|或者(or)条件1|条件2!非(not)!条件卜面列出了&&(与)操作的所有可能条件及结果:真&&真=真真&&假=假假&&假=假卜面列出了|(或)操作的所有可能条件及结果真|真=真真|假=真假|假=假以下则为!操作:!真=假!假=真练习:1、判断一个数是偶数或奇数。2、判断一个字母是大写字母,小写字母,还

24、是数字3、程序运行时,输入三个数,把它们按从小到大的顺序输出。输入文件threenum.in:三个数,由空格分隔输出文件threenum.out:三个由空格分隔的从小到大的数1.5.2switch语句:多级if.else显然是为了那些可能需要进行多级判断才能做出选择的情况。C+为了简化多级判断,提供了switch语句。switch语句的格式:switch(整型或字符型变量)case变量可能值1:分支一;break;case变量可能值2:分支二;break;case变量可能值3:分支三;break;.default:最后分支;在switch的语法里,我们要学到4个关键字:switch、case、

25、break、default。在switch(变量)这一行里,变量只能是整型或字符型。程序先读出这个变量的值,然后在各个"case"里查找哪个值和这个变量相等,如果相等,就算条件成立,程序执行相应的分支,直到碰上break或者switch语句结束。实例:模拟网络调查,要求输出不同的选项,供网友选择(通过简单地输入数字),程序根据网友的选择,输出相应不同的结果。#include<iostream>intmain(intargc,char*argv)intfromWay;cout<<"请通过输入序号,选择您如何来到本网站。"<&l

26、t;endl;cout<<"1)通过搜索引擎"<<endl;cout<<"2)通过朋友介绍"<<endl;cout<<"3)通过报刊杂志"<<endl;cout<<"4)通过其它方法"<<endl;cin>>fromWay;switch(fromWay)case 1 :cout<<"您是通过搜索引擎来到本网站的。"<<endl;break;case 2 :cout&

27、lt;<"您是通过朋友介绍来到本网站的。"<<endl;break;case 3 :cout<<"您是通过报刊杂志来到本网站的。"<<endl;break;case 4 :cout<<"您是通过其它方法来到本网站的。"<<endl;break;default:cout<<"错误的选择!请输入14的数字做出选择。"<<endl;getchar();return0;首先,intfromWay定义了一个整型变量,准备用来存储用户输入

28、的选择。程序将根据fromWay值,在下面的各个case中找到匹配的值。本例中switch带有四个case 2 :cout << " 您是通过朋友介绍来到本网站的。break;程序打出 " 您是通过朋友介绍来到本网站的。个 switch 语句。同样的道理,如果用户输入的是其它的数,如case,值分别是1、2、3、4。如果输入的是2,所以程序进入下面这个case:"<<endl;"这行内容。最后遇上break;于是跳出整1或3,则会进入相应的case1或case3分支。但如果用户输入的数在所有的case里都找不到时,会怎么样?比如,

29、用户输入5。这种情况下,default分支将起作用,所有case里的值都不匹配时,switch进入default分支。如果连default也没有,那么程序在switch语句里什么也不做,直接完成switch语句。看一看switch,case,break,default的中文意思,对理解前面的一切也会有帮助,它们分别是:开关,情况,中断,默认(值)。那么用一句话套起来的说法就是:根据开关值的不同,执行不同的情况,直到遇上中断;如果所有的情况都不符合开关值,那么就执行默认的分支。关于switch中非常重要的几个注意点如下:第一、switch(整型或字符型变量)中,变量的类型只能是整型和字符类型。它

30、们包含int,char。实型(浮点型)数就不行,例如:floata=0.123;switch(a)错误!a不是整型或字符类型变量。第二、case之后可以是直接的常量数值,如例中的1、2、3、4,也可以是一个使用常量计算式,如2+2等,但不能是变量或带有变量的表达式,如a*2等。当然也不能是实型数,如4.1,或2.0/2等。switch(formWay)case2-1:/正确.casea-2:/错误.case2.0:/错误.另外,在case与常量值之后,需要一个冒号,注意不要疏忽。实例:从键盘上读入年和月,输出该月有多少天。intmain()(intyeeirjinonth,day;suxctg

31、输入隹和月,中间用空格分隔:,r«endl;cin»yecir»inonth;swit-ch(month)(case1:case3:case5:case7:case8:caseID:case12:day=31;break;case4:case6:case9:case11:day=30;break;case2:if(yearlOD=D)|(yearl=0)£(yeat100f=0)day=28;elseds.y=29;break;default:ctX弋"输入月错误”艺口(11,)年"<<itionEhM("月有:

32、,f<<day<<"夭"<<endlj练习:1、铁路托运行李规定:行李重不超过50公斤的,托运费按每公斤0.15元计费;如超50公斤,超过部分每公斤加收0.10元。编一程序完成自动计费工作。2、输入a,b,c三个不同的数,将它们按由小到大的顺序输出。3、当前小学生的成绩单由以前的百分制改为优秀、良好、合格、不合格四个等级的等级制。编一程序完成分数的自动转换工作。转换规则如下:60分以下的为不合格;60到69分为合格;70到89分为良好;90分以上的为优秀。(提示:可以利用DIV运算来使程序更简明)1.5.3 while循环语句while循

33、环语句的语法为:while(条件)需要循环执行的语句;即:如果条件成立,就一直执行。图示:前稣3语句汪思:如果开始就不成立,则循环中的语句一次也不会被执行因为条件成立,就一直执行循环中的语句。所以在循环中一定要有语句能改变相关环境,让条件逐步不成立,以退出循环。1.5.4 for循环语句for循环在C/C+程序中用得最多,因为它的功能最强,使用最灵活。for循环的语法:for(初始化;循环条件;改变条件)循环体语句;for的结构中,不仅提供了的“循环条件”的位置,同时也提供了初始化,和改变条件的位置。这三者虽然在同一行上,但并不是依次连接地执行。for循环的执行过程为:(1)初始化语句首先被执

34、行(并且只被执行一次);(2)然后程序检查条件是否成立,如果成立就执行循环体中的语句,否则直接结束循环。(3)执行完一遍循环以后,程序执行“改变条件”语句。for循环也是可以嵌套的。for循环执行过程示意:1.5.5 do.while循环语句:do需要循环执行的语句while(条件);和while循环最明显的区别在于do.while循环中,判断是否继续循环的条件,放在最后。也就是说,就算是条件一开始就不成立,循环也要被执行一次。do.while中的条件和while循环中的条件一样是:"允许继续循环的条件",而不是"结束循环的条件”。do.while循环的流程图:前

35、面的语句真 条 件 成 立每次循环执行的语句实例:编程实现求从1到100的累加和:用While实现:intmain()intsum=0;|inti=1;wlkile(i<=100)(sum+i;i+;cout«”1到1Q的累加和为;“«suiti«endl;用Do实现:intmain()intsum=0;inti=1;do(sum+=i;i+;while(i<=100);cout<<”1到IQ口的累加和为;M«sum«endl;)用For实现:intmain()(Intsum=口;inti;for(i-1;i+)(sui

36、n+=i;)cout<<到1口的累加和为:rt«sum<<endl;练习:1、求n个数的和。输入文件:qiuhe.in格式为:第一行为一个整数,表示要求n个整数的和。第二行为n个由空格分开的整数。输出文件:qiuhe.in格式为:一个数,表示n个数的和。2、从键盘输入一系列正整数,当输入0时,表示输入结束,输出这些数的和。3、输出九九乘法口诀表1*1=11*2=22*2=41为二m2*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5205*5=251*6=62*6=123*6=184*6=245*6=306*

37、5=361*"72*7=1A3*7=214*7=285*7=356*7=427*7491*0=02*8=163*8=244*8=325*8=406*9=407*8=569*8=641#9=g2*9=183*9=274*9=365*9=456+9=547*9=636*9=729*9=S14、从键盘输入一个数,判断这个数是否是素数。5、百钱百鸡问题:公鸡每只5元,母鸡每只3元,小鸡三只1元,用100元钱买100只鸡,求公鸡,母鸡,小鸡的只数6、编程输出以下等腰三角形:*7、Nocomachns定理:任何一个N3,一定可以表示成n个连续的奇数和。输入n(n<=100),输出n3对应的

38、表达式。8、验证哥德巴赫猜想:任何充分大的偶数都可由两个素数之和表示。将4到2000中的所有公偶数分别用两个素数之和表示出来。例如,S=8,则输出:4=2+26=3+38=3+59、填写数字设有下列算式:809口口口口I、口口口口口口口口1求出口中的数字,假设被除数为V,除数为x,求出x,y的值。1.5.6 break和continue语句1、break的作用与用法:循环就象绕圈子,比如,体育课,跑1200米,跑道一圈400米,所以我们要做的事就是一边跑一边在心里计数(当然要记数,否则老师万一少计一圈,我们可就玩完了),当计数到3圈时,“循环”结束。如果,我在跑步时不幸由于体力不支而晕倒怎么办

39、?有两种办法:一种是在判断是否继续循环的条件中加入新增条件的判断:假设原来的循环表达为:while(已跑完的圈数<3)跑一圈;那么,加上附加条件后,循环表达为:while(已跑完的圈数<3&&我还跑得好好的)跑一圈第二种方法是在循环中使用条件分支,在指定的条件成立时,中途跳出循环,用于实现跳出的关键字为:break。while(已跑的圈数<3)跑一圈;if(我身体感觉不妙)break;在循环中,每跑完一圈,都检查一下自已是否感觉不妙,如果是则程序执行break,直接跳出while,而不管此时圈数是否到达3圈。可能你会问:为什么要break呢?直接用原来的方法,在while处判断条件不是很好吗?break的长处在于,它可以在循环体内的任意位置进行判断。

温馨提示

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

最新文档

评论

0/150

提交评论