资源描述
,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第49至50课时,重点:程序文件的建立、修改、运行;输入输入语句的使用。,难点:同重点,教学形式:综合讲解课,教学内容:程序设计基础,授课班级:供电09T1、09T3、09T2,时间:第13周星期四34,56;星期五12节;11月2日/3日,1,.,第10章 程序设计基础,通过使用,菜单操作,或在,命令窗口,中输入命令来执行Visual FoxPro 的命令是常用的两种操作方式。除此之外,还可以把有关操作命令组织在一起,存放到一个文件中,当发出调用文件的命令后,Visual FoxPro就会自动地依次执行该文件中的命令,直至全部命令执行完毕,这就是Visual FoxPro的,程序工作方式,,它是实际应用中主要的工作方式。,2,.,第1节 程序文件的建立、编辑和运行,程序是计算机能够分析执行的命令集合。程序文件是由一系列命令构成的文本文件,其扩展名为,.PRG,。,一、程序文件的建立,建立程序文件的方法有,三种,:,1用命令方式建立,命令格式:,MODIFY COMMAND /?,功能:,打开编辑器窗口,用于建立或编辑程序文件。,按,Ctrl+W,存盘并退出程序文件编辑器,3,.,2用菜单方式建立,在“,文件,”菜单中选择“,新建,”菜单项;在“新建”对话框中选择“,程序,”选项;然后单击“新建文件”按钮,在打开的程序文件编辑器窗口中输入程序内容。,3在项目管理器中建立,在“项目管理器”窗口中选定,“代码”选项卡,中的“,程序,”项,然后单击“新建”按钮,在打开的程序文件编辑器窗口中输入程序内容。,4,.,任务一:用命令方式建立程序文件p1.prg,该程序文件的功能是显示表xsda.dbf的记录。,任务一:用命令方式建立程序文件p1_1.prg,该程序文件的功能是统计表xsda.dbf的女生人数。,任务一:修改程序文件p1_1.prg,使之能统计表xsda.dbf的女生人数,且能统计所有同学的平均入学成绩。,5,.,1程序文件的编辑,程序文件被保存后,若要对其中的内容进行编辑修改,则可以将其重新打开。编辑修改程序文件的方法有三种:,二、程序文件的编辑和运行,命令方式,命令格式:,MODIFY COMMAND ,功能:打开程序文件编辑器窗口并显示指定的程序文件内容,以便编辑修改。,6,.,菜单方式,在“,文件,”菜单中选择“,打开,”菜单项;在“打开”对话框的“文件类型”下拉列表框中选择“程序”项(*.prg;*.spr;*.mpr;*.qpr);然后在文件列表框中选定要编辑修改的程序文件,单击“确定”按钮。,在“项目管理器”中打开编辑,若程序包含在一个项目中,则在项目管理器中选定它,然后单击“,修改,”按钮。,程序文件编辑修改完毕后,,必须将其重新保存,。,7,.,程序文件建立后就可以运行。运行程序文件的方法有:,命令方式,命令格式:,DO,功能:,执行由指定的程序。,说明:,所谓执行程序,就是依次执行程序文件中的命令或语句。,如果执行的程序,不包含扩展名,,Visual FoxPro 6.0 就以下列顺序查找并执行这些版本的程序:,.EXE(可执行版本),.APP(一个应用程序),.FXP(已编译的版本),.PRG(程序),2程序文件的运行,8,.,(1),在命令窗口中输入命令:,DO p1,菜单方式,在“,程序,”菜单中选择“,运行,”菜单项;在“运行”窗口的文件列表中选定要运行的文件,单击“运行”按钮。,在“项目管理器”中运行,如果程序包含在一个项目中,则可以在“项目管理器”窗口中选择它,然后单击“运行”按钮。,任务二:运行程序文件p1.prg,。,可以使用以下任一种方法运行程序文件。,9,.,第2节 程序的书写规则、常用命令,一、程序的书写规则,1语句分行,程序中的每条命令或语句都以回车键结尾,一行只能写一条语句。若语句需要分行书写,应在一行终了时键入,续行符“;”,,然后按回车键输入下一行。,2语句注释,程序中应适当插入注释内容,以提高程序的可读性。有3种方式加注释:,(1)注释行,以“*”打头,,它是一条,非执行语句,,仅在程序中显示;,(2)注释行,以“NOTE”打头;,(3)在语句后也可添加注释,这种注释,以“&”开始,。,10,.,在程序中,常常要用到一些在交互方式下不需要甚至不能执行的专门命令。以下介绍几个常用的命令。,1输入输出命令,INPUT命令,命令格式:,INPUT TO ,功能:执行该命令时,程序暂停执行,等待用户从键盘输入表达式并将其值赋给,当按回车键后,程序继续执行。,二、常用命令,11,.,说明:,是程序暂停时显示的信息,用于提示用户操作。提示信息应用单引号、双引号或方括号括起来。缺省,程序暂停时不显示任何信息。,的类型取决于输入数据的类型,但不能是M型。,如果键入内容是,表达式,,,则先计算表达式的值,,再将该值赋给。如键入的是,字符串,常量,则,用单引号、双引号或方括号括起,;如键入的是,逻辑常量,,则用圆点括起;如键入的是,日期常量,,则用花括号括起。,12,.,编程p1_3.prg,输入圆半径,计算其周长、面积。,13,.,ACCEPT命令,命令格式:,ACCEPT TO ,功能:执行该命令时,程序暂停执行,等待用户从键盘输入一,字符串,并将其赋给,当按回车键后,程序继续执行。,说明:,是程序暂停时显示的信息,用于提示用户操作。提示信息应用单引号、双引号或方括号括起来。缺省,程序暂停时不显示任何信息。,从键盘输入的,字符串不加定界符,,系统将其作为字符型数据处理。,14,.,WAIT命令,命令格式:,WAIT TO,WINDOWS,功能:执行该命令时,程序暂停执行,等待用户从键盘按,任一键,后,程序继续执行。,说明:,是程序暂停时显示的信息,用于提示用户操作。提示信息应用单引号、双引号或方括号括起来。缺省,程序暂停时将显示“按任意键后继续”。,用来保存键入的字符,如果缺省TO 子句,则输入的字符不予保存。,15,.,任务三,WAIT命令的执行。,在命令窗口中输入命令:,Wait “是否继续(Y/N)?”to yn,WAIT 请检查输入内容!WINDOW,16,.,格式化输入输出命令,命令格式:,SAY GET DEFAULT,功能:在屏幕的指定行列输出SAY子句的表达式值,并可修改GET子句的变量值。,17,.,说明:,指定SAY 值在窗口中显示的位置,行自顶向下编号,列自左向右编号,编号均从0开始。,SAY子句用来输出数据,GET子句用来输入或编辑数据。,若缺省SAY子句,GET子句的变量值从指定位置开始显示;有SAY子句时先显示其表达式值,空一格后再显示GET变量的值。,GET子句中的变量必须具有初值或用DEFAULT子句指定初值。变量可以是字段变量或内存变量,如果是字段变量,则应先打开表文件;如果是内存变量,应先赋初值。,GET子句的变量必须用READ命令激活才能编辑。当光标移出变量的编辑区后,READ命令才执行结束。,18,.,任务四:编写程序p2.prg,将xsda.dbf表中“白雪”的“入学成绩”由611分改为610分。,2保存程序文件p2.prg后,运行p2.prg,1建立程序p2.prg:在命令窗口中输入命令:,MODIFY COMMAND p2.prg,19,.,20,.,修改p2.prg,使之能够修改所指定同学的入学成绩。,21,.,输出命令,命令格式:?/?,功能:显示各表达式的值。,说明:,是用逗号“,”分隔的多个表达式。,?,在光标所在行的下一行显示表达式值;?在当前光标所在位置显示表达式值,22,.,文本输出命令,命令格式:,TEXT,ENDTEXT,功能:将TEXT和ENDTEXT之间的文本信息照原样输出。,说明:该命令在交互方式下不能使用,TEXT和ENDTEXT在程序中必须配对使用。,23,.,第51至52课时,重点:输入输入语句的使用。程序的基本结构,难点:程序的基本结构,教学形式:综合讲解课,教学内容:程序设计基础(二),授课班级:供电09T1、09T3、09T2,时间:第14周星期二12,34,56,24,.,2其它命令,清屏命令,命令格式:,CLEAR,功能:,清除屏幕上的内容。,注释命令,命令格式:,命令格式1:,NOTE ,命令格式2:,*,命令格式3:,&,功能:,在程序中加入说明信息。,说明:,注释命令为非执行语句。,格式1和格式2的命令作为单独的一行语句,格式3的命令放在被注释的语句右边。,25,.,终止程序执行命令,命令格式:,CANCEL,功能:,终止程序执行并关闭所有打开的文件,返回到命令窗口。,退出系统命令,命令格式:,QUIT,功能:,终止程序执行并关闭所有打开的文件,退出Visual FoxPro 6.0系统,返回Windows环境。,返回命令,命令格式:,RETURN,功能:,结束当前程序的执行,并返回到调用它的上级程序继续执行,若无上级程序则返回到命令窗口。RETURN命令一般可以缺省。,26,.,3系统设置命令,Visual FoxPro 6.0提供了一组SET命令对系统进行设置以便程序能更好的运行。以下是常用的设置命令,设置会话状态,命令格式:,SET TALK ON/OFF,功能:,决定Visual FoxPro 6.0是否显示命令结果。,说明:,ON是系统的默认状态,允许显示命令结果;OFF将阻止命令结果显示出来。,设置精确比较状态,命令格式:,SET EXACT ON/OFF,功能:,在比较不同长度的两个字符串时是否需要精确比较。,说明:,SET EXACT 设置值对于相等长度的字符串没有任何作用。,OFF(默认值)表示不需要精确比较。,ON表示精确比较。,27,.,设置保护状态,命令格式:,SET SAFETY ON/OFF,功能:,系统在用户提出对文件重写或删除要求时给出警告提示。,说明:,ON是系统默认状态,要显示提示警告;OFF不显示提示警告。,设置删除记录标记状态,命令格式:,SET DELETED ON/OFF,功能:,指定是否处理标有删除标记的记录,以及其它命令是否可以操作它们。,说明:,OFF是系统默认状态,表示要操作有删除标记的记录;ON表示各命令将不对有删除标记的记录进行操作,但索引命令除外。,设置默认目录,命令格式:,SET DEFAULT TO,功能:,设置系统默认的驱动器、目录或文件夹。,说明:,默认的目录或文件夹就是安装 Visual FoxPro 6.0 的目录或文件夹。命令中缺省将默认目录恢复成为 Visual FoxPro 6.0 安装目录。,28,.,第3节 程序的基本结构,在结构化程序设计中,程序的基本结构有三种:,顺序结构、分支结构和循环结构。,一、顺序结构,顺序结构的程序是按处理实际问题的逻辑步骤,把相关的命令按执行的先后顺序排列在一起,执行该程序时,系统自动,按自上而下的顺序执行每条命令或语句,。顺序结构是程序中最简单、最常用的基本结构。,29,.,二、分支结构,分支结构又称选择结构。是指在程序设计中,根据设定的条件表达式的值(判断结果)来决定程序走向。分支结构的程序设计一般有单向选择、双向选择、多向选择。,1单向选择,单向选择即根据条件表达式的值,决定是否执行给定的命令或语句序列。,语句结构:,IF,ENDIF,功能:首先计算的值,若其值为真,执行,然后执行ENDIF之后的语句;若其值为假,直接执行ENDIF之后的语句,。,30,.,说明:,一般是关系表达式或逻辑表达式。,IF和ENDIF必须成对使用。,可以由一条或多条命令或语句组成。,单向选择程序结构的流程图如图11.12所示。,31,.,流程线,菱形框(判断框),矩形框(处理框),流程图中的常用符号,32,.,任务五 编写程序p3.prg,查找xsda.dbf表中姓名为“李强”的学生,如果找到则显示其记录。,1建立程序p3.prg:在命令窗口中输入命令:,MODIFY COMMAND p3.prg,打开程序文件编辑器窗口,输入程序代码如图11.13所示。,2保存程序文件p3.prg后,运行p3.prg,在命令窗口中输入命令:,DO p3.prg,33,.,2双向选择,双向选择即根据条件表达式的值,选择执行两个语句序列中的一个。,语句结构:,IF,ELSE,ENDIF,功能:首先计算的值,若其值为真,则先执行,然后再执行ENDIF之后的语句;若其值为假,则先执行,然后再执行ENDIF之后的语句。,34,.,说明:,一般是关系表达式或逻辑表达式。,IFELSEENDIF必须成对使用。,和中可以嵌套IF语句。,双向选择程序结构的流程图如图11.14所示。,35,.,任务六 编写程序p4.prg,查找xsda.dbf表中姓名为“李强”的学生,如果找到则显示其记录;如果找不到则显示“查无此人!”。,36,.,3多向选择,多向选择即根据条件表达式的值,在多个语句序列中选择执行其中的一个。,语句结构:,DO CASE,CASE,CASE,CASE,OTHERWISE,ENDCASE,功能:依次测试值,若某一个为真,则执行相应之后的,然后再执行ENDCASE之后的语句;若所有的值均为假,且有OTHERWISE子句,则先执行其后的,然后再执行ENDCASE之后的语句;若无OTHERWISE子句,则不执行多向选择中的任何语句。,37,.,说明:,一般是关系表达式或逻辑表达式。,DO CASE和第一个CASE之间不能插入任何语句。,DO CASE和ENDCASE必须配对使用。,多向选择程序结构的流程图如图所示。,是否有otherwise子句,38,.,任务七 编写程序p5.prg,根据系统当前日期显示季节。,1建立程序p5.prg:在命令窗口中输入命令:,MODIFY COMMAND p5.prg,打开程序文件编辑器窗口,输入程序代码如图所示。,2保存程序文件p5.prg后,运行p5.prg,在命令窗口中输入命令:,DO p5.prg,39,.,三、循环结构,循环结构使部分语句反复执行,即重复执行一组语句直到满足规定的条件。其中,把需要重复执行的语句组称为,循环体,。Visual FoxPro 6.0提供了三种循环结构,它们是,条件循环,、,计数循环,和,数据表扫描循环,。,40,.,1条件循环,条件循环是根据条件表达式的值,决定循环体是否执行。,语句结构:,DO WHILE,ENDDO,功能:执行条件循环时,系统首先计算的值,若其值为真,则执行DO WHILE与ENDDO之间的循环体,一旦遇到ENDDO就自动返回到DO WHILE重新计算条件表达式的值,以决定是否继续循环;若的值为假,则退出循环,执行ENDDO之后的语句。,循环体,41,.,条件表达式,语句序列,ENDDO后继语句,DO-WHILE语句的执行流程图,假,真,42,.,DO WHILE,LOOP,循环体,EXIT,ENDDO,在循环体中可以使用两个语句:LOOP 和 EXIT,43,.,说明:,DO WHILE和ENDDO语句要配对使用。它们之间的语句组是需要重复执行的语句,即循环体。,一般是关系表达式或逻辑表达式。,LOOP和EXIT语句只能在循环体中使用,它们一般出现在选择结构中;,LOOP使程序流程转到循环的入口DO WHILE处,重新计算条件表达式的值;,EXIT是强行退出循环的语句,使程序流程转到循环的出口ENDDO之后的语句执行。,循环结构允许嵌套,这种嵌套不仅限于循环结构自身的嵌套,而且还可以是和选择结构的相互嵌套。,44,.,显示xsda表中的每个记录。输出效果如下:Z1.PRG,45,.,任务八 编写程序p6.prg,逐个显示xsda表中的党员学生。,1建立程序文件p6.prg:在命令窗口中输入命令:,MODIFY COMMAND p6.prg,打开程序文件编辑器窗口,输入程序代码如图11.20所示。,2保存程序文件p6.prg后,运行p6.prg,在命令窗口中输入命令:,DO p6.prg,46,.,2计数循环,计数循环根据循环变量的初值、终值和步长,决定循环体执行的次数。,语句结构:,FOR=TO STEP,ENDFOR/NEXT,功能:执行计数循环时,系统首先将赋给,然后判断的值是否,超过,,若超过则退出循环,执行ENDFOR或NEXT之后的语句;否则执行循环体一遍;当遇到ENDFOR或NEXT时,返回FOR语句,并将的值加上值并与比较,如此循环执行直到的值超过才退出循环。,47,.,循环变量是否超过终值,语句序列,NEXT后继语句,for-next语句的执行流程图,循环变量=初值,Y,N,循环变量=循环变量+步长,48,.,编写程序:输出如下图形。,49,.,计数循环的循环体中也可以出现LOOP和EXIT语句。,语句结构:,FOR=TO STEP,LOOP,循环体,EXIT,ENDFOR/NEXT,50,.,说明:,FOR和ENDFOR/NEXT语句要配对使用。它们之间的语句组是需要重复执行的语句,即循环体。,是计数变量,可以是内存变量或数组元素。、和是数值表达式。,缺省STEP时,系统默认步长值为1,。步长值不能为0,否则造成死循环。,步长为正数时,若值大于则退出循环,;,步长为负数时,若值小于则退出循环。,LOOP和EXIT语句的功能和用法与条件循环中的一致。,51,.,任务九 编写程序p7.prg,计算S=1+2+3+100。,1建立程序文件p7.prg:在命令窗口中输入命令:,MODIFY COMMAND p7.prg,打开程序文件编辑器窗口,输入程序代码如图11.22所示。,2保存程序文件p7.prg后,运行p7.prg,在命令窗口中输入命令:,DO p7.prg,结果显示为S=5050。,52,.,3数据表扫描循环,数据表扫描循环根据当前表中指定的记录范围或满足条件的记录来控制循环。,语句结构:,SCAN FOR WHILE,LOOP,循环体,EXIT,ENDSCAN,功能:对当前表的记录进行扫描操作。扫描循环在中依次寻找满足FOR条件或WHILE条件的记录,并对找到的记录执行循环体一遍。每处理完一条记录,记录指针指向下一条记录,直到记录指针指到表的末尾或超出。,53,.,说明:,SCAN和ENDSCAN语句要配对使用。它们之间的语句组是需要重复执行的语句,即循环体。,若有子句时,只有之内的记录才可能扫描到。无子句时,表示对表的所有记录进行处理;即默认范围是所有记录(ALL)。,若有FOR或WHILE子句,则只有使值为“真”(.T.)的记录才对其执行循环体。FOR子句表示对表的记录从头至尾检查全部满足条件的记录。WHILE 子句表示从当前记录开始,当遇到使值为假的记录时,则结束循环。,LOOP和EXIT语句的功能和用法与条件循环中的一致。,54,.,显示xsda表中的每个记录。输出效果如下:Z3.PRG,用SCANENDSCAN语句,55,.,任务十 编写程序p8.prg,逐个显示xsda表男生中的党员学生。,1建立程序文件p8.prg:在命令窗口中输入命令:,MODIFY COMMAND p8.prg,打开程序文件编辑器窗口,输入程序代码如图11.23所示。,2保存程序文件p8.prg后,运行p8.prg,在命令窗口中输入命令:,DO p8.prg,结果显示如图11.24。,56,.,任务十一 编写程序p9.prg,计算S=1+2+3+100,并求1100之间奇数和。,1建立程序文件p9.prg:在命令窗口中输入命令:,MODIFY COMMAND p9.prg,打开程序文件编辑器窗口,输入程序代码如图11.25所示。,2保存程序文件p9.prg后,运行p9.prg,在命令窗口中输入命令:,DO p9.prg,结果显示如图11.26。,57,.,4多重循环,在一个循环的循环体内又嵌套循环的情况称为多重循环。处于循环体内的循环称为内循环,处于外层的循环称为外循环。在多重循环中,循环嵌套的层数不限,但内循环的所有语句必须完全嵌套在外层循环之中,不能出现交叉。在循环嵌套情况下,EXIT语句使程序控制跳到下方离其最近的ENDDO之后,而LOOP语句使程序控制跳到其上方离其最近的DOENDDO(FOR或SCAN)语句。,58,.,任务十二 编写程序p10.prg,打印图11.28所示的图形。,1建立程序文件p10.prg:在命令窗口中输入命令:,MODIFY COMMAND p10.prg,打开程序文件编辑器窗口,输入程序代码如图11.27所示,2保存程序文件p10.prg后,运行p10.prg,在命令窗口中输入命令:,DO p10.prg,结果显示如图11.28。,59,.,60,.,谢谢观看!,
展开阅读全文