PocketC--入门基础教程.doc_第1页
PocketC--入门基础教程.doc_第2页
PocketC--入门基础教程.doc_第3页
PocketC--入门基础教程.doc_第4页
PocketC--入门基础教程.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

PocketC-入门基础教程PocketC是PPC手机端的编程软件,PocketC软件其实很早就被开发出来了,比PY还早,只是没有人教,导致了PocketC的冷淡! 要玩机不如玩点技术性的!PocketC语法简单,入门快速,我们开始学习吧!【基础知识】1.前言2.准备篇3.如何编写代码4.变量5.数据类型6.运算符7.if 语句8.do while循环9.for 循环10.创建按键11.event()函数12.guiid()函数13.数组PocketC的入门基础在这里告一段落,望大家把入门基础掌握以后再进入下一单元PocketC基础进阶主题:1.前言-跟小羊学PPC端编程跟小羊学PocketC-1.前言从接触PocketC到现在已经2个月了,从最开始的一无所知到现在的略知一二,在无数的通宵达旦中也积累了一些经验。很多机友应该也很想提高一下玩机水平,写出个自己的软件。但是网上那些教程对于没有编程经验的人来说简直就是天书,因此写这篇适合新手入门,循序渐进的教程,可以让你像我这样从一无所知到略知一二。由于作者也是新手上路,教程中难免出现谬误,还望高手批评指正。首先要敬告您一下,编程可是很累的事情,而且不可以心浮气躁,如果脾气不好,建议还是不学为妙!如果您是才玩智能机,对智能机最基本的东西(例如,用文件管理器删除软件,怎么打标点符号,等等)还不太了解的话,建议您还是先学会基本的再来,所以,如果您在跟随本教程学习的时候对您的手机产生什么影响的话,还请不要怪我。上面说了,学编程不可心浮气躁,要有耐心,如果你是新手,请一点一点看起,切不可跳级!如果作为一个新手,连编程最基本的知识都没有的话,那你一定是天才了,我还得拜你为师!作为一个新手,如果你想跟我学习的话,请把每一篇教程都理解通透了再进入下个环节!切记,静心,耐心,恒心,相信自己一定能会的,我就是这么来的!有点啰索了,因为我文化低,表达能力不够强,大家见怪勿怪!本教程根据其它高手改编,感谢笨鸟兄,那么我们开始吧!下一篇我们要进入 准备 阶段主题:2.准备-跟小羊学PPC端编程跟小羊学PocketC-2.准备篇要学编程就得有软件(废话),教程开始之前请先下载PocketC小羊修改版注:本版本进一步汉化,修正编译软件后的菜单选项为英文!带小羊LOGO,不喜勿下适合平台:理论支持WM5.0/WM6.0/WM6.1/WM6.5平台手机推荐大家的ROM使用WM6.1的21112WM6.5经常自动退出,不建议使用!附上下载地址:PocketC小羊修正版/74/act/20090925/9/41257949.cab?dn=71E36660C90CB92A注册码:名字:FreddyZaz注册码:760379904 下一篇我们讲 如何编写代码主题:3.编写代码-跟小羊学PPC端编程跟小羊学PocketC-3.如何编写代码再本章开始前先废话一段,学编程的过程中需要不停的做笔记,以便于巩固知识,而另外做笔记的话大家都会觉得太麻烦,这里就有个小方法了,就是/,两个斜杠代表着斜杠后那一行的字符不加入程序中,也就是我们所说的注释行,在编写代码时要养成写注释的好习惯,这样方便你自己理解代码,因为很多新手未接触过编程,特第一篇教程会讲得比较详细,也比较啰嗦!高手勿笑!好了,不废话了,开始编程首先打开PocketC软件(又废话)然后输入:main()text(90,100,你好 小羊); /输出文本-代码结束-注意:引号必须是英文的引号,而且得是双引号代码输入完毕之后先保存下,点击文件-存盘-设置相关参数!类型要选择PocketC Files(*.pc)哦这样保存后的文件后缀是.pc,以后再继续编写时只要打开.pc的文件就可以了保存以后要做什么呢?对了,该创建程序了,只要按下软件下方那个红色的R或按下创建-再按运行,看,你的第一个程序问世了!PocketC的程序后缀都是.app,点击运行后会在.pc的相同的文件夹下创建app程序,你只需打开管理器找到该app文件,打开他就可以运行了现在开始解释代码main()是主要函数,程序打开时会从主要函数开始读取,如果没有该函数,编译时就会出错,不懂先记下来就好,以后会懂的什么是函数呢?在编程里面,一个函数就是一个功能main()的格式为:main()代码内容text(90,100,你好 小羊)是在界面输出文本的函数,这个函数有三个参数格式为text(x轴,y轴,文本内容)参数1:x轴就是从左往右的那个位置参数2:y轴就是从上往下的那个位置参数3:输出的文本可以是数值型也可以是字符型,数值型是数字,不用加双引号,字符型就是文字,包括abcd,要加双引号切记:每个参数要用英语逗号隔开,每段函数代码结束后必须加入分号,PocketC对大小写非常敏感,所以编写代码时一定要区分大小写!比如:main()text(90,100,你好);text(90,130,很好);-代码结束-因为上面有两个函数代码,所以要加入两个分号!当你看到这里时证明你是有耐心的,居然能容忍我这么多废话,你会成功的,加油,好了,废话结束,大家记得多写多练习,慢慢消化一下,消化完了就可以进入下一篇了下一篇我们讲 变量主题:4.变量-跟小羊学PPC端编程跟小羊学PocketC-4.变量上一篇我们讲了如何编写代码,这一篇我们就来学习什么是变量,变量都有什么作用,变量如何定义什么是变量呢?变量跟数学一样,比如:Z=A+B,这里的Z就是变量,然后把A+B的结果赋值给Z,变量能跟随数值的变化而变化!变量都有什么作用变量是为了方便编程人员输入输出而产生的变量如何定义变量的两种普遍类型,一种是数值型的int,而另一种就是字符型的string,类型还可以有很多种,现在讲的这两种比较普遍变量需定义在代码块的最开始部分,赋值时就没有限制,如:main()int a;string b; /必须先定义变量a=100;/先赋值就能看见text(90,100,一+a+b); /输出b=你好;/赋值text(90,130,二+a+b);/输出-代码结束-因为先赋值了a而没有赋值b,所以文本“一”能输出a而不能输出b。因为文本“二”在赋值后的a和b的后面,所以文本“二”能输出两个。变量在未赋值时,默认为0或,根据变量的类型而定变量名长度为31个字符如果要计算就得定义成数值型PocketC的变量都是遵循先定义后使用的规则上面理解了吗?接下来介绍如何去使用变量比如定义A、B、C、D三个变量,定义多个变量可以用逗号隔开,定义完需加分号在PocketC里面,=号不是等于号,而是赋值,PocketC的等于号是=定义字符型必须加入双引号变量的定义格式是:类型 变量代码开始:main()int A,B,C; /定义数值型的A、B、Cstring D; /定义字符型的DA=10;/把数字10赋值给A,需分号B=20;/把数字20赋值给BC=A+B; /把A加上B的结果赋值给CD=结果是; /把字符赋值给Dtext(50,100,D+C);/输出D+C的结果-代码结束-程序运行结果大家还不懂的话就多看两遍,再练习练习就会理解啦!下一篇我们讲 变量的数据类型主题:5.数据类型-跟小羊学PPC端编程跟小羊学PocketC-5.数据类型上一篇我们讲了变量,这一篇我们来学习下变量的数据类型上一篇我们已经讲了两个,int型和string型,现在我们就来详细点介绍,方便新手学习PocketC有五种数据类型(1)4字节的整型 int(2)4字节的浮点型 float(3)2字节字符型 char(4)字符串型 string(5)指针? pointer(6)数组 ,数组以后学习. PocketC可以把数据类型的变量定义成中文,这样也方便我们理解,但数据类型还是要英文,大家接着往下看吧(1)4字节的整形? intint型是数值型的,带整数和负数的数据类型,比如65535和-65535,但不能带小数具体上一篇已经讲过,这里不多做介绍(2)4字节的浮点数? floatfloat型也是数值型的,带小数的数据类型,范围只能精确到7位小数点,也就是我们所说的浮点型(以下简称浮点型),比如3.1415,在程序里使用float型时,程序会默认把整型转换成浮点型再进行运算,比如:3.2+ 8整形的 8 会先转换成浮点数 8.0 ,再相加,这样就变成了 3.2+8.0 ,运算的结果是一样的,只是你要使用小数就必须定义浮点型!程序例子:main()int 半径;/定义整数型afloat 周长,圆周率;/定义浮点型的 圆周率和周长半径=8; /把 8 赋值给半径圆周率=3.14; /把3.14赋值给圆周率周长=半径*圆周率; /在编程里,*号就是乘号,等下讲解text(90,100,周长); /输出周长的结果-代码结束-(3)2字节字符? charchar是字符型的,因为范围比较小,只能从0位字符到65535位字符,超出部分会被忽略,适合较短字符,比如用户名,签名等一般较少用到,大家记住有这么个类型就好,这里也不详解(4)字符串? stringstring是字符串型的注意:使用字符串(string)数据类型时,运算结果会有很大不同.如下例:答案: + (5 + 8)5先和8相加,在转换为字符串然后和“答案”相加,所以结果是答案:13但是这样又不同了答案: + 5 + 8程序输出的结果是 答案:58, 5和8被先转换为字符串,然后进行字符串的相加关于string的其它方面上一篇已讲(5)指针? pointer这个我没用过,日后再研究-类型结束-数据类型还可以强制转换类型56 + (int)7结果为 63.因为字串7被强制转换为整数,就变成了56+7大家还不懂的话就多看两遍,再练习练习就会理解啦!下一篇我们讲 运算符主题:6.运算符-跟小羊学PPC端编程跟小羊学PocketC-6.运算符上一篇我们讲了数据类型,这一篇我们来学习运算符运算符在编程中也是极其重要的,有计算,对比,赋值等作用,这一篇教程大家先记住就好,以后你就会明白了运算符的优先顺序说明= 号这个是赋值符号,顺序是由右到左,因为变量在左边,数值在右边| 号由左至右 逻辑运算or,这个符号在程序里的意思是“或者”,a=1|b=1,这句代码的意思是,当a等于1或者b等于1时,意思是满足两个条件的其中一个& 号由左至右 逻辑运算and,这个符号由两个&组成,在程序里的意思是“并且”,a=1&b=1,这句代码的意思是,当a等于1并且b等于1时,意思是两个条件都要满足| 号由左到右,位元运算or,位或,详情不懂 号由左到右,位元运算xor,位异,详情不懂& 号由左到右,位元运算and,位与,详情不懂=!= 几个符号由左到右,比较运算,= 是相等,!= 是不相等,=大于或等于, 是大于号 两个符号由左到右,移位运算,必须为整型或字符+ - 两个符号由左到右,加法,减法(字符使用时用法不同)* / % 三个符号由左到右,乘法,除法,求余(不能用于字符串)注:加减乘除的计算方法和我们的数学是一样的,先乘除后加减-!+ -*()&由左到右,-(负数),!(否),+(递加),-(递减),(我不懂),(数组),()(函数参数传递),&(取址运算),(只有!(否)可以用于字符串)当优先顺序相同时,则按结合律来判定运算顺序注意1:a=1|b=2&c=3,这句话的意思是:当(a等于1或b等于1)并且c等于3时,先算左边的“或者”在算右边的“并且”注意2:混合运算不能使用这些符号,(如+=,-=,*=,等)注意3: “,”及“?:”是条件运算,程序不支持大家先记住本篇所讲的,以后再回来练习练习就会理解啦!下一篇我们讲 if 语句主题:7.if 语句-跟小羊学PPC端编程跟小羊学PocketC-7.if 语句 上一篇我们讲了运算符,当时我不是叫朋友们先记住吗?现在我们来讲if语句,使用if语句时就需要运算符了,相信大家看了这篇就懂得用运算符了 if语句又叫如果语句,如果条件成立就执行的一个语句块,而这个条件就需要用到运算符来计算条件是否成立了!看完这篇大家就可以把运算符发挥出来了!我们开始吧! if 语句的格式是: if(条件)语句块 也可以加入否则语句else语句块,否则语句是跟if一起的,如果加入的话就是当if语句的条件不成立时就执行否则语句,也可以不加入,不加入的话就是当条件不成立时就不执行 在作用if语句之前先教大家一个输入函数 gets(字符串标题) 盗用笨鸟大哥的源码,先看代码吧! 代码如下: main() int A; A=gets(您今年多大了?); /把用户输入的数据赋值给A if(A18)/设置if语句,如果A大于18 text(90,100,你成年了);/输出这句 else/否则,也就是如果A小于18 text(90,100,你未成年); /输出 -代码结束- 下面是截图: 上面讲了if的简单应用了,下面我们把if语句和上一篇讲的内容结合一下,这样大家就能理解得更深了 先讲 & 号和 & 号吧 上篇我们已经说了,这两个符号都是并且的意思,下面的代码只要换下符号就可以了,不明白的话就看下上一篇 代码如下: main() int A,B; A=gets(你今年几岁); B=gets(你女友今年几岁); if(A22 & B20)/如果A22并且B20 text(90,100,你们可以结婚了);/输出 else text(90,100,你们现在还不能满足结婚年龄);/输出 -代码结束- 下面是 | 号和 |号吧 上篇我们已经说了,这两个符号都是或者的意思,下面的代码只要换下符号就可以了,不明白的话就看下上一篇 代码如下: main() int A,B; A=gets(你今年几岁); B=gets(你女友今年几岁); if(A22 | B20)/如果A22或者B20 text(90,100,你们有一方年龄不够);/输出 else text(90,100,你们可以结婚了);/输出 -代码结束- 大家还不懂的话就多看两遍,再练习练习就会理解啦! 下一篇我们讲 do while循环语句主题:8.do while循环语句-跟小羊学PPC端编程跟小羊学PocketC-8.do while循环语句上一篇我们讲到了if语句,这一篇我们先讲do while 循环do while循环是什么呢?dowhile循环也叫直到型循环,意思是直到条件不成立才结束循环,循环语句在任何语言都起到举足轻重的地位,比如说:你要计算1+2+3+4+100的程序,你不可能将这些数一起都写出来,为什么?很简单,麻烦,累人,工作量大,或者你说加到100写的不累,那如果程序的要求加到100000000呢?怎么办?不可能再一个一个写吧?在这里就需要用到循环了do while循环语句的格式:do语句块while(条件)do语句是“做”的意思,while()是条件的意思,结合在一起就是在什么条件下做什么事在运用do while之前先教大家一个暂停函数,暂停函数的格式是:sleep(毫秒);1秒等于1000毫秒,也就是暂停多久后再继续在这里使用暂停是为了让大家看清楚程序的运行过程我们开始应用do while吧!请看代码:main()int a;a=0;doa=a+1;/a循环一次就加1text(90,100,a);/输出asleep(500);/暂停0.5秒后再继续while(a5);/当a到达5就停止-代码结束-这段代码的含义是:do每执行一次语句块,a就加1,并且输出a,然后再暂停一下,最后当a到达5的时候,这个循环就停止注意:do每执行完一次语句块里面的内容才算循环一次这一篇比较少,大家学会了吗?含义的部分可能比较难理解,多运行几次代码应该就能理解的了!下一篇我们讲for 循环语句主题:9.for 循环-跟小羊学PPC端跟小羊学PocketC-9. for 循环 上一篇我们讲了do while循环语句了,这一篇我们再讲一个 for 循环语句 上一篇已经讲过循环是什么了,这里也就不多做解释了,如果还不明白循环的朋友可以看完上一篇再来 什么是 for 循环? for 循环又叫当型循环,当条件不成立时就停止 在程序员手里,一般都是用 for 循环来做为循环,for 循环比起do while循环更加简明,方便 虽然for循环有许多优点,但是我们还是不能忽略do while循环,所谓各有所长,有些东西用for来做循环的话,效率会更低! for 循环的格式 for(初始化;条件;运算方法)语句块 现在先讲解for循环 for循环有3条表达式,各自表达着不同意思。 1.初始化: 初始化就是给一个变量赋值,而循环是根据这个变量来进行的!比如:a=0; 意思是 a 从 0 开始循环,也可以从任意数字开始循环,注意一点,如果 a 的初始值是0的话,那么程序是从0开始循环的,也就是说当 a 循环5次的时候,a 的值是4而不是5,大家切记 2.条件: 条件和do while循环一样,作为一个停止循环的条件,比如:a5; 意思是 a 如果大于5就停止 3.运算方法: 运算方法就是这个循环的计算方法,可以递加,可以递减!切记不可乘除!比如:a+或a- 意思是 a 每次递加1或递减1,相当于每次a+1或a-1,但不可以用a+1代替,必须a+或a- 注意:for循环的每条表达式结束时要加;(分号)而不是,(逗号) a=0;a5;a+整条循环代码连起来就是 a从0开始,如果 a 大于5就停止循环,a 每次都加上1 因为乐讯的限制,a+的“+”我用中文的“加”代替 请看代码: main() int a;/定义变量a for(a=0;a5;a加加)/中文“加”换成“+” sleep(1000);/暂停一秒,便于查看过程 text(90,100,a);/输出a -代码结束- 看完上面的代码后,大家会循环了吗? 接着再讲点和循环有关的,注意看哦 如果我们想要有循环,而又只想让程序输出5,又该怎么做呢? 我们只要把a输出再for循环语句块的下面就可以了,具体怎么做呢? 请看代码: main() int a;/定义变量a for(a=0;a5;a加加)/中文“加”换成“+” /语句块不加入内容 text(90,100,a);/for语句块外输出a -代码结束- 下一篇我们讲 创建按键 PocketC交流群:54106425主题:10.创建按键-跟小羊学PPC端编跟小羊学PocketC-10.创建按键上一篇我们讲了 for 循环,不知道大家有没有好好学习呢?这一篇我们来讲下如何创建一个触屏的按键什么?你不懂什么是按键?建议你还是回火星修炼下吧!学习创建按键前先教大家个函数,createctrl()这个函数是创建控件用的,按键、下拉框、文本框等等都属于控件!createctrl()有九个参数,它的格式是:createctrl(类型,显示名称,样式参数,样式,x轴,y轴,宽度,高度,控件ID)看起来似乎很复杂,但其实很简单,待我一一道来类型:类型有BUTTON、COMBOBOX、EDIT、LISTBOX、SCROLLBAR、STATIC,类型必须是大写,每个类型都代表着不同的东西,如按键的类型是BUTTON,文本输入框的类型是EDIT我们现在只学习按键,所以只要BUTTON就好,其它以后教显示名称:控件显示的名称,如果是创建一个按键的话,那么这个显示名称就是按键内要显示的文字了!如:“我是按键”样式参数:样式参数是一个16进制的代码,每个控件的类型都有对应的样式参数,如果写错了,控件可能就无法显示了,一般情况下死记就行了,我们现在只讲按键,按键的样式参数是0x50010000样式:一般都是0x0,如果要变换控件显示的样子可以对应更改这个样式,以后在讲样式,大家先记住这个就好x轴:和y轴配合,控件摆放的位置,以前已经讲怎么用了,这里不再讲解y轴:和x轴配合,控件摆放的位置,以前已经讲怎么用了,这里不再讲解宽度:控件显示的宽度,以像素为单位高度:控件显示的高度,以像素为单位控件ID:必须用数字,因为0,1,2这三个让主程序占用了,PocketC要求每个控件的ID都不一样,所以只能使用 3 以上的数字来命名控件ID,比如3、4、5控件的ID代表控件本身,调用控件时只需要调用控件的ID就可以了控件的参数有点多,大家再来看看代码吧,这样消化起来快一点!请看代码:main()createctrl(BUTTON, /控件的类型我是按键, /控件显示名称0x50010000, /样式参数0x0,/样式30,/x轴在30的位置170,/y轴在70的位置60,/宽度6020,/高度20101); /控件的ID-代码结束-完整写法:createctrl(BUTTON,我是按键,0x50010000,0x0,30,170,60,20,101) 在这里把控件特意写成一段一段是为了显示给大家看,大家可以像截图那样写,不要换行,那样比较不容易乱!下一篇我们讲 event()函数主题:11.event函数-跟小羊学PPC端编程跟小羊学PocketC-11.event函数上一篇我们讲了创建按键,这一篇我们讲event()函数event()是什么呢?event()是返回用户动作的函数,就是当你对手机按键或屏幕进行操作时,系统会返回一个代码来表示你操作了什么这个函数和另一个参数结合的话,一般被用于事件的触发,关于事件的触发以后再讲event()的格式是:event(参数)这个参数有两个值,一个是0,一个是!00 就是数字零!0就是非零,也就是不是零0和!0有什么用处呢?0代表假的意思,当event()里面的参数为 0 时,就会不断地判断用户的动作,这样会拖慢系统的运行!0代表真的意思,当event()里面的参数不是零的时候,就会在用户做出动作以后才判断用户的动作一般情况下建议大家尽量用event( !0),而避免使用event(0)在讲解event()的返回值之前又来教大家一个函数,退出函数,当程序执行到这个函数的时候就会退出程序!退出函数的格式:quit()这个函数没有返回值,也不用什么参数,记住了吗?上面说了,event()这个函数会返回用户的动作,现在就来讲讲这个函数返回的代码都是些什么,各自代表着什么意思!event()的返回值是一个 int 型,也就是一个数值型event()的返回值一共有12个,从 0 到11,各自代表着不同意思返回 0 代表用户没有动作,也就是什么也没做返回 1 代表在改变textBox属性的时候触发事件,如当向textBox写入内容时。就是说当向文本框写入内容的时候返回 2 代表移动笔触时,如果手写笔在屏幕上滑动的话会返回多次,比如滑屏时会返回很多个 2返回 3 ,help里写的是PM_MEMORYSHORT3。具体我也还没试过返回 4 代表笔触按下时返回 5 代表笔触抬起时返回 6 代表笔触双击时返回 7 代表help里写的是PM_PAINT7。返回 8 ,help里写的是PM_COMMAND8,例如笔触按下、抬起各返回一次。返回 9 代表按下按键时返回 10 代表抬起按键时返回 11 代表PM_TIMER11。好像是计时器知道了event()函数的用法,我们就来实验下吧!请看代码:main()int a; /定义变量aa=event(!0);/探测的用户动作赋值给 aif(a=4)/如果返回的代码等于4quit();/执行退出程序 -代码结束-上面代码的意思是探测用户的动作,返回代码,把返回的代码赋值给 a,如果a等于4,也就是这个代码如果是4的话,就执行if 语句块内的退出函数来退出程序。解释得简单点就是:如果你点击下屏幕,程序就退出下一篇我们讲 guiid()函数主题:12.guiid()函数-跟小羊学PPC端编程跟小羊学PocketC-guiid()函数上一篇我们讲了event()函数,这一篇我们讲guiid()函数guiid()是什么呢?guiid()没有参数,guiid()的作用是返回用户操作控件的id,当你操作了某个控件时,系统就会返回出一个id,而guiid()的作用就是获得这个id比如你创建了一个按键,这个按键你把id定义成101,而当你点击这个按键的时候,系统就会返回101这个数字!控件id定义的时候必须是int型的,所以返回的时候也会是int型的这个参数一般和event()函数结合来构成按键的事件,我先和大家讲解下要怎么运用先定义两个变量,用来存放返回回来控件id,和事件代码,然后创建一个按键,接下来要定义一个循环,好让程序不停地获得代码,最后就是定义事件了!下面看代码吧!main()int a,b;/定义a和bcreatectrl(BUTTON,按键1,0x50010000,0x0,30,170,60,20,101); /上面是创建一个按键,id为101while(1)/定义一个死循环a=guiid();/获得控件的id附值给ab=event(!0);/获得用户的操作赋值给bif(a=101&b=8)/设定条件text(90,100,a);/输出asleep(1000)

温馨提示

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

评论

0/150

提交评论