第7章+Visual+FoxPro程序设计基础(精简版).ppt_第1页
第7章+Visual+FoxPro程序设计基础(精简版).ppt_第2页
第7章+Visual+FoxPro程序设计基础(精简版).ppt_第3页
第7章+Visual+FoxPro程序设计基础(精简版).ppt_第4页
第7章+Visual+FoxPro程序设计基础(精简版).ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、第七章,程序设计基础,2,第七章 程序设计基础,7.1 程序与程序文件 7.2 程序的控制结构 7.3 多模块程序 7.4 应用程序举例,3,程序(命令)文件是指将各类命令按照处理问题的算法和一定的语法结构存放的文件。其扩展名为 .PRG。 一、创建程序 通过项目管理器创建 通过文件菜单创建 通过命令创建 二、保存程序 通过菜单保存 直接关闭没有保存的程序,则会弹出相应对话框,提示保存或放弃 按CTRL+W组合键保存,第七章 程序设计基础,7.1 程序与程序文件,4,三、修改程序 通过项目管理器的“修改”选项打开程序并修改 通过文件菜单中“打开”选项打开程序并修改 通过命令MODIFY COM

2、MAND打开程序并修改 注:修改窗口和创建窗口相同,修改完毕后应注意保存。 四、运行程序 通过项目管理器的“运行”按钮运行程序 通过程序菜单中“运行”选项运行程序 通过命令DO运行程序,第七章 程序设计基础,5,程序的书写规则: 命令分行 :命令都以回车键结尾,一行只能写一条命令,若写不下,可在未写完的本行末尾添加一个分号“;”作为下一行的继行标志。 程序注释语句 NOTE/*:对程序的结构或功能进行注释。 程序执行时将跨过注释语句,不作任何操作 语句注释 &:在语句行末尾注释,对当前语句进行说明。 程序执行时,对&后面的注释不作任何操作,第七章 程序设计基础,程序注释语句,6,中断语句 CA

3、NCEL 中断当前程序运行,并返回到系统命令窗口。 挂起语句 SUSPEND 暂停当前程序运行。它只是使程序挂起,通过RESUME语句可以使程序继续执行。 恢复执行语句 RESUME 恢复被SUSPEND挂起的程序,从暂停的位置继续执行。,程序调试语句,第七章 程序设计基础,7,RETURN (返回到调用行的下一行,无上级程序则返回到命令窗口)。 RETRY (返回到调用行本身,可以实现程序的重复调用)。 CANCEL (中断,异常结束,并返回到系统命令窗口)。 QUIT (退出VFP,返回到操作系统,并自动删去磁盘中的临时文件)。,程序的结尾命令,第七章 程序设计基础,8,1、数据接收语句

4、INPUT 格式:INPUT TO 功能:将键盘输入的数据赋给由指定的内存变量 注:从键盘输入的数据可以是常量、变量或表达式,数据类型可以是除备注型和通用型外的所有类型。 2、 字符串接收语句 ACCEPT 格式:ACCEPT TO 功能:将键盘输入的数据赋给由指定的内存变量。 注:从键盘输入的数据只能是字符型常量。,输入输出命令,第七章 程序设计基础,9,格式:WAIT TO WINDOW AT NOWAIT NOCLEARTIMEOUT 功能:将键盘输入的数据赋给由指定的内存变量。 注: 从键盘输入的数据只能是一个单字符常量。,3、单字符接收语句 WAIT,第七章 程序设计基础,10,4、

5、?换行输出语句: 格式:? 功能:分别计算表达式列表的值,并将表达式列表的值输出在V FP主窗口的当前光标的下一行。中,各表达式以逗号分隔 5、?同行输出语句: 格式: ? 功能:分别计算表达式列表的值,并将表达式列表的值输出在V FP主窗口的当前光标所在行、列的后面。,第七章 程序设计基础,11,程序控制的基本结构有三种:顺序结构、选择分支结构和循环结构。 1、 顺序结构:程序的执行是按其语句的排列先后顺序执行,这也是最简单、最基本的程序控制结构。 例7.3:请用程序的方式修改人事信息表RS.DBF中新评为教授的教师记录,其职称一栏由副教授改为教授。 CLEAR SET TALK OFF U

6、SE RS ACCEPT 请输入要修改记录的教师名: to xm LOCATE FOR 姓名=xm REPL 职称 WITH 教授 USE SET TALK ON RETURN,第七章 程序设计基础,7.2 程序的控制结构,12,2、选择分支结构 定义:选择分支结构是根据条件的测试结果执行不同的操作。VFP中有两条命令实现条件分支:二路选择分支结构(IFENDIF)和多路选择分支结构(DO CASE ENDASE)。 (1)二路选择分支结构 格式:IF THEN ELSE ENDIF 功能:当的值为真时,执行;否则执行。如果没有ELSE的子句,则当的值为假时,不进行任何操作。 注:IF和END

7、IF必须配对使用。,13,*P2.PRG* SET TALK OFF clear INPUT 请输入一个正整数: TO X IF INT(X/2)=X/2 ?X,为偶数! ELSE ?X,为奇数! ENDIF SET TALK ON,例7.2 从键盘输入一个正整数,判断其是否为偶数。 程序代码如下:,14,例7.3 根据键入X的值,计算下面分段函数的值,并显示结果。 程序代码如下:,*P3.PRG* SET TALK OFF CLEAR INPUT “X=” TO X IF X0 IF X10 Y=X*X+1 ELSE Y=3*X*X-2*X+1 ENDIF ELSE Y=X*X+4*X-1

8、ENDIF ?”分段函数值为:”+STR(Y,10,2) SET TALK ON RETURN,15,(2) IIF () 判断选择函数 VFP中有一个函数,它能够先进行条件判断,然后决定返回其值。它的使用效果比分支语句更快捷。 格式:IIF(=60,“及格”,“不及格”) 当成绩60时,函数返回“及格”,否则返回“不及格”字符串。,16,(3)多路选择分支结构 格式:DO CASE CASE CASE CASE OTHERWISE ENDCASE 功能:依次判断,当值为真时执行对应的;当所有的值为假时,则执行OTHERWISE下面的。 注:DO CASE和ENDCASE必须配对使用。,17,

9、例7.4:用DO CASE语句修改例7.3计算分段函数的例子。 程序代码如下:,*P4.PRG* SET TALK OFF CLEAR INPUT “X=” TO X DO CASE CASE X0.AND.X10 Y=X*X+1 ENDCASE ?”分段函数值为:”+STR(Y,10,2) SET TALK ON RETURN,18,定义: 循环结构是指根据问题的需要任意次地重复执行一行或多行语句。具体地说就是某些语句在某一条件成立时,需要重复执行,直到条件不成立时,才结束重复执行。循环结构要特别注意的是在重复执行语句过程中,要有控制条件的语句,以避免出现死循环现象。在VFP中有三种循环语句

10、:,3 、 循环结构,DO WHILE ENDDO SCAN ENDSCAN FOR ENDFOR,19,格式: DO WHILE ENDDO,一、DO WHILE ENDDO,功能: 当的值为真时,重复执行DO WHILE ENDDO之间的,直到的值为假时结束。,20,任选项说明 EXIT-结束当前循环操作,跳到ENDDO后面的语句。 LOOP-跳过LOOP后面的语句,直接回到循环起始语句DO WHILE。 注: 在语句序列中,还可以出现IF语句或CASE语句或WHILE 语句-WHILE语句的嵌套。,21, 循环体可以包含VFP合法的任何语句,特别是还可以包含另一个循环语句,称为循环的嵌套

11、。每一个DO WHILE必须与一个ENDDO对应。内、外循环不能交叉。 循环体中若有EXIT语句,当执行到该语句时,将无条件地跳出所在的循环,执行ENDDO后面的各语句;当执行到LOOP时(假如有的话),立即返回到本循环的DO WHILE处,再判断条件表达式的值以便决定是跳出循环还是执行循环体。 在循环体中,必须要有改变条件表达式条件的语句,使得总有一刻,其值为.F.,或有EXIT语句退出循环,否则将形成无限循环(俗称“死循环”)。利用DO WHILE循环可以实现对多种情况进行控制。常见的有三种情况:,说明:,22,格式: DO WHILE N N=N+X ENDDO 其中:N=初值 (通常为

12、1);M=终值;X为步长 功能:通过对循环变量N进行顺计数并与M相比较的方法完成循环操作。,(1)固定次数的循环,23,程序代码如下: *P6.PRG* SET TALK OFF CLEAR s=0 i=1 DO WHILE i=99 s=s+i i=i+2 ENDDO ?1+3+5+7+99=,S SET TALK ON,例4.6:计算1+3+5+7+9+99的值并输出。,24,格式: DO WHILE .T. IF EXIT ENDIF ENDDO,2、对循环次数不确定的循环,功能:循环条件永远为真,只有满足IF语句的时,才跳出循环。 注:在这种使用方法中,EXIT选项是不可缺少的,且必须

13、和IF语句连用。,25,例4.7:将前N个自然数中的完全平方数进行累加,当累加之和超过100时停止累加。要求程序显示每次的累加和。,*P7.PRG* SET TALK OFF CLEAR STORE 0 TO I,M DO WHILE .T. IF M100 EXIT ELSE M=M+I2 ENDIF ? ”完全平方数累加和:”+STR(M,6) I=I+1 ENDDO SET TALK ON,26,格式: DO WHILE .NOT. EOF( ) (BOF( ) ) SKIP ( SKIP-1 ) ENDDO,3、用记录指针控制循环,功能:对当前打开的表文件中的记录自上而下或自下而上地逐

14、条进行操作。 注:记录指针由SKIP语句控制,循环结束的条件由函数EOF()和BOF()控制。,27,例7.10:在学生表XS.DBF中有“学号”字段(N,6)。现要抽取学号能被3整除的学生参加计算机竟赛,要求在屏幕上显示这些学生的姓名和学号。,*P8.PRG* SET TALK OFF CLEAR USE XS DO WHILE .NOT. EOF() IF MOD(学号,3)=0 ?姓名,学号 ENDIF SKIP ENDDO USE SET TALK ON,28,例7.8:显示学生表XS.DBF中在1980年以后出生的学生记录。,*P8.PRG* SET TALK OFF CLEAR U

15、SE XS DO WHILE NOT EOF( ) IF 出生年月=CTOD(“1980-01-30”) DISP ENDIF SKIP ENDDO USE RETUR,29,格式: FOR 循环变量=初值 TO 终值 STEP步长 EXIT LOOP ENDFOR / NEXT,二、FOR 循环程序设计,功能:当循环变量的值不大于终值时,执行循环操作。每循环一次,循环变量的值自动递增一个步长值。 说明:循环变量为任意一个内存变量,不需要事先定义。 初值、终值、步长均为一个数值表达式,其值可为正或负或小数。 若不选STEP 步长选项,递增步长为1。 LOOP选项实现循环短路操作,EXIT 选项

16、实现结束当前循环操作。 ENDFOR和NEXT二者等价,只能选择其中之一。,30,例7.10:求1000之内所有偶数之和。,*P10.PRG* SET TALK OFF CLEAR S=0 FOR I=0 TO 1000 STEP 2 S=S+I NEXT ?“1000之内所有偶数之和为”,S SET TALK ON RETURN,31,格式: SCAN NOOPTIMIZE 范围 FOR WHILE EXIT LOOP ENDSCAN,三、SCAN ENDSCAN,功能:对当前打开的表文件在指定范围,满足条件的记录中进行自上而下逐个扫描操作,随着记录指针的移动,SCAN循环允许对指定的每条记

17、录执行相同的操作。 说明:SCAN循环能自动移动指针,按条件指定记录,避免在循环体内重复执行表文件查询命令。用DO WHILE循环也可以实现对表文件的逐个扫描操作,但它需要借助函数BOF()或EOF()测试状态,用SKIP命令移动指针,不如SCAN循环方便。,32,例7.12:分别统计学生表中男生和女生的人数。,*P12.PRG* USE 学生 STORE 0 TO X,Y SCAN IF 性别 X=X+1 ELSE Y=Y+1 ENDIF ENDSCAN ?”男生人数”,X,”女生人数”,Y USE,33,(1)DO WHILE和ENDDO、FOR和ENDFOR、SCAN和ENDSCAN必须

18、配对使用。 (2)命令行序列可以是任何FoxPro命令或语句,也可以是循环语句,即可以为多重循环。 (3)循环变量应是数值型的内存变量或数组元素。 (4)EXIT和LOOP命令嵌入在循环体内,可以改变循环次数,但是不能单独使用。EXIT的功能是跳出循环,转去执行ENDDO、ENDFOR、ENDSCAN后面的第一条命令;LOOP的功能是转回到循环的开始处,重新对“条件”进行判断,相当于执行了一次ENDDO、ENDFOR、ENDSCAN命令,它可以改变命令行序列中部分命令的执行次数。EXIT、LOOP可以出现在命令行序列的任意位置。,使用循环语句时应注意的几点:,34,7.3 多模块程序,一个应用

19、程序通常都是由一个主程序和若干个子程序组成。所谓子程序是相对于主程序而言的一个独立的程序文件,可以单独执行,也可以被其他程序调用。,7.3.1 子程序,定义:子程序是相对于主程序而言的一个独立的程序文件,其建立方法与建立程序文件的方法相同,扩展名为PRG。子程序的使用可以简化程序中多处重复出现完成相同功能的程序段的设计问题。,子程序的建立方法与程序文件的方法相同,扩展名为:.PRG。 子程序的调用:DO WITH 子程序的返回:RETURN TO MASTER,35,说明 RETURN返回到调用者的调用语句的下一行。 TO MASTER选项表示返回到最高级调用者。 选项表示将值返回到调用者 子

20、程序执行时直到遇到以下情况时,自动结束返回: RETURN、RETRY、CANCEL、QUIT。,程序之间的调用和返回,36,例7.14:输入一个半径 r 值,求出圆的面积。,*P14.PRG* *主程序 YMJ=0 INPUT“请输入圆的半径”TO BJ DO ZGC WITH BJ, YMJ& 调用子程序 ?圆的面积=, YMJ& 显示圆面积 RETURN *子程序 *ZGC.PRG* PARAMETERS R, S & 接收参数 S=PI()*R*R & 计算圆面积,PI()返回值 RETURN & 返回主程序,37,1、过程与过程文件的定义 过程:过程是一个由PROCEDURE开头,E

21、NDPROC结尾的子程序段。过程可以将实现相对独立功能的常用代码集中在一起,供应用程序在需要时调用。过程的存在格式如下所示: PROCEDURE ENDPROC 过程文件:是由若干个过程构成的文件。 注: 过程必须存放在一个过程文件中。 不能把可执行的主程序代码放在过程之后。,7.3.2 过程与过程文件,38,2、过程文件的建立 过程文件建立方法有两种: 与程序文件的创建方法相同,将过程文件的内容一行一行地输入。 通过将分散的子程序加入项目管理器,再利用工具自动连编生成扩展名为APP或EXE的文件。 3、过程文件的调用 调用过程文件之前必须要打开过程文件。调用结束后要关闭过程文件。 过程文件的

22、打开:SET PROCEDURE TO 过程文件的关闭:SET PROCEDURE TO 或 CLOSE PROCEDURE,39,例7.15:用过程编写一个求和与乘积的程序。,*P15.PRG* SET TALK OFF S=1 P=1 DO BB ?”S=”,S SET TALK ON RETURN PROC BB M=3 N=5 S=M+N P=S*N ?”P=”,P ENDPROC,调用上述过程文件可以在V FP的命令窗口或一个程序文件中使用下列语句:,SET PROCEDURE TO P15 DO P15,40,主程序与子程序之间或过程与过程之间通过互相传递参数来完成整体上的操作。程

23、序之间的参数传递可以通过两种途径进行:一是通过带参数的程序调用来实现,二是通过内存变量来实现。 一、通过带参数的程序调用实现参数传递 传递参数命令格式: DO WITH 接收参数命令格式: PARAMETERS ,7.3.3 参数传递,41,参数传递与接受规则: 传递参数命令可以出现在调用程序(主程序)中的任何位置,而接收参数命令必须出现在被调用程序(子程序)中的第一行。 传址方式:当WITH后的中是内存变量列表时,每个内存变量的值传给PARAMETERS中对应变量,而该调用程序中的内存变量被隐含起来,但其值随着被调用程序中相对应变量的值的变化而变化。 传值方式:当WITH后的中是内存变量表达

24、式列表或单个内存变量用圆括号括起来时,每个内存变量表达式的值传给PARAMETERS中对应变量,而该调用程序中出现在表达式中的内存变量不被隐含,其值也不随着被调用程序中相对应变量的值的变化而变化。,42,如图7.6所示,有二个程序段,现在我们将其编成一个过程文件,以此来说明参数传递的传址方式。运行结果如图7.7所示。请观察并分析运行结果。,图7.6 利用DO.WITH.传递参数,43,图7.7 例7.16运行结果,44,如图7.8所示,有二个程序段,现在我们将其编成一个过程文件,以此来说明参数传递的传值方式。运行结果如图7.9所示。请观察并分析运行结果。,图7.8 利用DO.WITH.传递参数

25、,45,图7.9 例7.17运行结果,46,例7.18:计算圆面积(将例7.14的子程序调用改变为过程调用),*P18.PRG* SET TALK OFF YMJ=0 INPUT“请输入半径”TO BJ DO SUB1 WITH BJ, YMJ & 调用过程SUB1并以传址方式传递参数 ?圆的面积=, YMJ& 显示圆面积 RETURN & 程序结束语句,允许省略 PROCEDURE SUB1 & 过程SUB1开始语句 PARAMETERS R, S & 接收参数 S=PI()*R*R ENDPROC,47,*P19.PRG* SET TALK OFF INPUT 输入梯形上底边长: TO A

26、 INPUT 输入梯形下底边长: TO B INPUT 输入梯形的高: TO H STORE 0 TO S DO SUB2 WITH A+B,H,S & A+B按传值方式传递,H、S按传址方式传递 ?所求梯形面积为:,S & 显示梯形面积 SET TALK ON RETURN PROC SUB2 PARAMETERS P,Q,T & 接收参数 T=P*Q/2& 计算梯形面积 ENDPROC,例7.19:利用带参调用方法计算梯形面积。,48,一个变量除了类型和取值之外 , 还有一个重要的属性就是它的作用域。若以变量的作用域来分,内存变量可分为公共变量、私有变量和局部变量三类。,7.3.4 属性的

27、作用域,1. 公共变量 在任何模块中都可使用的变量称为公共变量。公共变量要先建立后使用,公共变量必须先声明和定义后才能使用。,定义格式:PUBLIC ,功能:将指定的变量定义为公共的内存变量,并为它们赋初值.F.,公共变量一旦建立就一直有效,即使程序运行结束返回到命令窗口也不会消失。只有当执行 CLEAR、MEMORY、RELEASE、QUIT 等命令后,公共变量才被释放。,49,2、私有变量 在程序中直接使用(没有通过 PUBLIC 和 LOCAL 命令事先声明)而由系统自动隐含建立的变量都是私有变量。私有变量在建立它的程序模块及其下属模块中有效,当建立它的程序模块运行结束时自动清除。 声明

28、格式:PRIVATE ALLLIKEEXCEPT 功能:声明私有变量并隐藏上层程序模块中的同名变量,直至声明它的程序、过程或自定义函数执行结束后,才恢复使用上层程序模块中被隐藏的变量。 说明:“声明”与“建立”不一样,前者仅指出私有变量的屏蔽作用,后者不但指出变量的作用域,而且定义了变量,为变量赋了值。,50,7.4 过程与过程文件,3、本地变量 本地变量只能在建立它的程序模块中使用,而不能在其上层或下层程序模块中使用,当建立它的模块程序运行结束时,本地变量自动释放。本地变量也必须先定义后才能使用。 定义格式:LOCAL 功能:将指定的变量设置为本地变量,并为它们赋初值.F.。 由于 LOCA

29、L 与 LOCATE前四个字母相同,所以这条命令的命令动词不能缩写。,51,一、自定义函数的设计 定义:自定义函数是一个子程序(.PRG),它可以返回一个值到调用程序。 建立: 与一般的命令文件的建立方法相同。 自定义函数在过程文件中的存在形式为: FUNCTION 自定义函数名 语句序列 ENDFUNC 注:自定义函数与过程很相似,可以是一个独立的命令文件,也可以在一个过程文件中。与过程不同的是自定义函数必须返回一个值。 特点: 在自定义函数程序中首条命令一般为: PARAMETERS 在自定义函数程序中尾条命令必须为: RETURN,7.3.5 自定义函数,52,三、自定义函数的参数传递

30、自定义函数中的参数传递既可以用传值方式,也可以用传址方式,具体规则如下: (1)如果变量在参数表达式列表中是以表达式的形式出现,那么是传值方式; (1)如果变量在参数表达式列表中是以单个变量的形式出现,那么取决于SET UDFPARAMS TO VALUE/CONFERENCE 的设置(缺省为传值方式); (3)无论SET UDFPARAMS TO 设置如何,通过在参数变量前冠以,以强制传址。如:S(A),二、自定义函数的调用 自定义函数的调用形式为: 自定义函数名(),53,*P21.PRG* SET TALK OFF CLEAR INPUT“请输入半径”TO BJ INPUT 请输入圆的半

31、径: TO r ?圆的面积S=, ymj (r) & 调用自定义函数 SET TALK ON RETURN FUNCTION ymj (k) m=PI()*k2 & PI()是内部函数,它返回值 RETURN m ENDFUNC,例7.21:计算圆面积(将例7.18的子程序调用改自定义函数的调用)。,54,7.4 应用程序举例,7.23:从键盘输入的数,判断该数是否为素数。 算法思路:素数指除了能被1和自身外,不能被其他整数整除的自然数。判断整数X是不是素数的基本方法是:将X分别除以2,3,X-1,若都不能整除,则X为素数。判断X被I整除还可用表达式MOD(X,I)=0或INT(X/I)=X/

32、I 或X%I=0,*LI.PRG* SET TALK OFF CLEA INPUT X= TO X FOR I=2 TO X-1 IF INT(X/I)=X/I EXIT ENDIF ENDFOR IF I=X ? 是素数! ELSE ? 不是素数! ENDIF SET TALK ON,55,7.24:求两个正整数的最小公倍数和最大公约数 算法思路,首先必须了解数学上关于最小公倍数和最大公约数的概念。最大公约数是指能同时被两个正整数M、N整除的数中最大的一个,而最小公倍数是指能同时整除M和N的数中最小的一个。最大公约数肯定在1到M、N两数中较小的一个数之间;而最小公倍数肯定在M、N两数中较大的

33、一个数到两数之积M*N之间,而且两者之间有一公式,即最小公倍数= M*N/最大公约数,因此只要求出一个就可以求出另一个。,SET TALK OFF CLEAR INPUT A= TO A INPUT B= TO B X=MAX(A,B) Y=MIN(A,B) FOR I=X TO A*B IF INT(I/A)=I/A IF INT(I/B)=I/B M=I EXIT ENDIF ENDIF ENDFOR FOR I=Y TO 1 STEP -1 IF INT(A/I)=A/I IF INT(B/I)=B/I N=I EXIT ENDIF ENDIF ENDFOR ?最小公倍数是:,M ?最大

34、公约数是:,N SET TALK ON,7.4 应用程序举例,56,7.25:求100999之间水仙花数。 (水仙花数:指一个三位数,其各位数字立方之和等于该数本身。如:153=13+53+33) 算法思路:解此题的关键是要知道如何分离出一个三位数中的各位数字。本题采取将指定的数除10求余,所得余数就是数值最右边得一个数码。接着将除10后的数截尾取整,得到的就是去掉最右边一个数码后的数值,以此类推,每次都可以截得一个最右边的数码,将该三位数的各位数码分别截取出来并进行立方求和,如等于原数,则原数为水仙花数;否则原数不是水仙花数。,SET TALK OFF CLEAR FOR N=100 TO

35、999 DECLARE A(3) I=1 M=N DO WHILE I=3 A(I)=MOD(M,10) M=INT(M/10) I=I+1 ENDDO IF N=A(1)3+A(2)3+A(3)3 ?N ENDIF ENDFOR SET TALK ON,7.4 应用程序举例,57,7.4 应用程序举例,7.26:从键盘输入一串字符(口令),自动判断输入的口令是否与系统的口令一致。若一致则显示“欢迎进入本系统!”,;否则显示“口令不正确,请重输!”;给予三次重输机会,输入次数超过三次则显示“你无权使用本系统!”的提示。 解题思路:这是一道口令验证题,即字符串比较问题。解题的关键有两点:一是通过任意一种形式接收用户输入的口令;二是比较用户口令与系统口令是否一致,进而决定下一步的操作。,SET TALK OFF CLEAR I=1 DO WHILE I=3 ?你无权使用本系统! ELSE ?口令不正确,请重输! ENDIF ENDIF I=I+1 ENDDO SET TALK ON,58

温馨提示

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

最新文档

评论

0/150

提交评论