您好,欢迎访问三七文档
1第七章程序设计基础目录上一页下一页退出2本章要点VisualFoxPro的工作方式程序文件的建立与编辑程序的基本结构分支结构循环结构过程程序调试目录上一页下一页退出3VisualFoxPro的工作方式要点VisualFoxPro系统提供三种工作方式即:单命令方式、菜单方式及程序文件方式。1.单命令方式VisualFoxPro单命令方式是利用Command窗口来实现的。即输入一条命令,完成一个操作的工作方式。2.菜单方式3.程序文件方式程序是能够完成一定任务的命令的有序集合。这组命令被存放在称为程序文件(扩展名为.PRG)或命令文件的文本文件中。通过菜单方式或命令方式运行该程序文件,即可得到该程序的运行结果。目录上一页下一页退出47.1程序与程序文件7.1.1程序的概念本节重点见程序举例:例1、Li1.prg程序中的有关语句:1.注释语句【格式1】NOTE注释内容【格式2】*注释内容【格式3】&&注释内容【功能】增强程序文件的易读性2.对话开关语句【格式】SETTALKOFF|ON【功能】关闭或打开命令执行时的对话开关3.命令的分行VisualFoxPro程序是命令行的序列,每个命令都以回车键结束,一行只能写一条命令;若一条命令太长,一行写不下,也可分行书写,并在分行处加上续行符“;”,再按回车键。目录上一页下一页退出57.1程序与程序文件7.1.2程序文件的建立、修改与执行要点本节重点1.程序文件的建立与修改调用系统内置的文本编辑器建立或修改程序文件:命令方式MODIFYCOMMAND[路径]程序文件名[.PRG]或:MODIFYFILE[路径]程序文件名.PRG〉菜单方式“文件”——“新建”——“程序”——“新建文件”2.程序文件的保存“文件”——“保存”或:按Ctrl+W复合键,放弃存盘按Esc键程序文件的默认扩展名是.PRG目录上一页下一页退出63.程序文件的执行程序文件建立后,可以用多种方式、多次执行它。下面是两种常用的方式。(1)菜单方式可执行应用程序编译程序“程序”——“运行”(.exe.app.fxp.prg)(2)命令方式DO[盘符][路径\]文件名执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕,或者执行到以下命令:①CANCAL:终止程序运行,清除所有的私有变量,返回命令窗口;②RETURN:结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口;③QUIT:结束程序执行并退出VisualFoxPro系统,返回操作系统本节重点目录上一页下一页退出77.1.3简单的输入输出命令1.INPUT命令【格式】INPUT[提示信息]TO内存变量【功能】显示提示信息,暂停程序的执行,等待用户从键盘输入,输入以回车键结束,然后将用户输入的内容赋值给指定内存变量。说明:该命令可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给内存变量。例1、编写程序,查找STUD表中,指定日期后出生的学生。程序文件名为Li3.PRG。练习:从键盘输入两个任意正数,编程求以两数为边长的长方形面积。程序文件名为PROG1.PRG本节重点目录上一页下一页退出87.1.3简单的输入输出命令2.ACCEPT命令【格式】ACCEPT[提示信息]TO内存变量【功能】显示提示信息,暂停程序的执行,等待用户从键盘输入,输入以回车键结束,然后将用户输入的内容作为字符串赋值给指定内存变量。说明:该命令只接受字符型数据,输入的字符串不需要加定界符。例3、编程从键盘输入某数据库的文件名,要求打开该数据库,然后输入表名并打开该表,显示其内容。程序文件名为Li2.PRG。本节重点目录上一页下一页退出93.WAIT命令【格式】WAIT[提示信息][TO内存变量][WINDOW[AT行,列]][NOWAIT][NOCLEAR][TIMEOUT数值表达式]【功能】显示提示信息,暂停程序的执行,直到用户按任意键或单击鼠标时继续执行程序。说明:①该命令只能输入单个字符型。②若选择可选项[TO内存变量],将输入的单个字符作为字符型数据赋给指定的内存变量;若用户是按Enter键或单击鼠标,内存变量的值为空串。本节重点目录上一页下一页退出10③若省略[提示信息]可选项,屏幕显示“按任意键继续……”默认提示信息。④若选择[WINDOW[AT行,列]],则在屏幕左上角的提示窗口显示提示信息。⑤若选择[NOWAIT],则系统不等待用户按键,直接往下执行。⑥若选择[NOCLEAR],则系统不关闭提示窗口,直到执行下一条waitwindow命令。⑦[TIMEOUT数值表达式]—用来设定等待时间(秒)例4、在STUDENT数据库的STUD表中显示任意一个系学生的情况。程序文件名为Li4.PRG。本节重点目录上一页下一页退出114.三条输入命令的异同ACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;INPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。WAIT命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;本节重点目录上一页下一页退出12第1节小结1.程序文件的建立、修改与执行MODIFYCOMMAND[盘符][路径]程序文件名[.PRG]MODIFYFILE[盘符][路径]〈程序文件名.PRG〉DO[盘符][路径]文件名2.单字符接收命令WAIT[提示信息][TO内存变量][WINDOW][TIMEOUT数值表达式]3.字符型数据接收命令ACCEPT[提示信息]TO内存变量4.任意类型数据接收命令INPUT[提示信息]TO内存变量目录上一页下一页退出137.2程序的基本结构程序结构是指程序中命令或语句执行的流程结构。VisualFoxPro的程序结构有:顺序结构、选择(分支)结构、循环结构三种基本结构。1.顺序结构顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句。2分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题。3循环结构则能够使某些语句或程序段重复执行若干次。要点本节重点目录上一页下一页退出14分支结构形式有如下三种:1单向分支语句,即根据用户设置的条件表达式的值,决定某一操作是否执行。(1)语句格式:IF〈条件表达式〉〈语句序列〉ENDIF(2)语句功能:该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈语句序列〉;否则,执行ENDIF后面的第一条语句。7.2.1(选择)分支结构要点条件式达式真语句序列假ENDIF之后语句本节重点目录上一页下一页退出15例5、求一元二次方程AX2+BX+C=0的实根。程序文件名为Li5.PRG。SETTALKOFFCLEARINPUT“请输入数A:”TOAINPUT“请输入数B:”TOBINPUT“请输入数C:”TOCZ=B^2-4*A*CIFZ=0X1=(-B+SQRT(Z))/(2*A)X2=(-B-SQRT(Z))/(2*A)?X1,X2ENDIFSETTALKONRETURN本节重点目录上一页下一页退出162.双向分支语句,即根据用户设置的条件表达式的值,选择两个操作中的一个来执行。(1)语句格式:IF〈条件表达式〉〈语句序列1〉ELSE〈语句行序列2〉ENDIF(2)语句功能:该语句首先计算〈条件表达式〉的值,当〈条件表达式〉的值为真时,执行〈命令行序列1〉中的命令;否则,执行〈命令行序列2〉中的命令;执行完〈命令行序列1〉或〈命令行序列2〉后都将执行ENDIF后面的第一条命令。要点真条件假语句序列语句序列ENDIF后面语句本节重点目录上一页下一页退出17例6、计算邮费。计费标准每克为0.05元,但超过100克后,超出数每克为0.02元。试编写程序计算邮费。程序名为Li6.prg。例7、编写程序,从键盘输入要查询学生的姓名,然后显示该学生的基本情况。程序名为Li7.prg。练习:编写一密码校验程序(假设密码为ABC)。本节重点目录上一页下一页退出18练习:SETTALKOFFCLEARACCEPT“请输入您的密码:”TOAAAIFAAA=”ABC”CLEAR?”欢迎使用本系统!”ELSE?”密码错误!”WAITQUITENDIF本节重点目录上一页下一页退出193.多向分支语句,即根据多个条件表达式的值,选择执行多个操作中的一个对应执行。(1)语句格式:DOCASECASE〈条件1〉语句序列1〉CASE〈条件2〉语句序列2……CASE〈条件n〉〈语句序列n-1[OTHERWISE〈语句序列n]ENDCASE要点本节重点Y…NYNYN条件1条件2条件n命令组1命令组2命令组nOTHERWISE命令组n+1ENDCASE目录上一页下一页退出20(2)语句功能:该语句根据给出的N个条件的值,选择N+1个〈命令行序列〉中的一个执行。当所有CASE中条件的值都是假时,如果有OTHERWISE项,则执行语句序列N+1,再执行ENDCASE后面的第一条命令;否则,直接执行ENDCASE后面的第一条命令。例8、假设收入(P)与税率(R)的关系如下面的公式,编程求税金。程序文件名为Li8.PRG。0P<800R=0.05800≤P<20000.082000≤P<50000.1P≥5000本节重点目录上一页下一页退出214.使用分支语句应注意的几点(1)IF……ENDIF和DOCASE……ENDCASE必须配对使用,DOCASE与第一个CASE〈条件表达式〉之间不应有任何命令。(2)〈语句行序列〉可以由一个或多个命令组成,也可以是由分支语句组成的嵌套结构。(3)DOCASE……ENDCASE命令,每次最多只能执行一个〈命令行序列〉。在多个CASE项的〈条件表达式〉值为真时,只执行第一个〈条件表达式〉值为真的〈命令行序列〉,然后执行ENDCASE的后面的第一条命令。要点本节重点目录上一页下一页退出227.2.2循环结构1.DOWHILE循环语句【格式1】DOWHILE条件表达式语句序列ENDDO要点ENDDO后面的语句条件表达式式真循环体假一个循环结构一般应具备如下的条件:(1)循环初始化:一般为给循环控制变量赋初值;(2)循环开始:循环语句的起始,设置、判断循环条件;(3)循环结束:循环语句的结尾;(4)循环体:位于循环开始和循环结束之间、循环控制重复执行的语句序列本节重点目录上一页下一页退出23【格式2】DOWHILE条件表达式语句序列1[LOOP]语句序列2[EXIT]语句序列3ENDDO•LOOP语句:强行返回到循环开始语句。•EXIT语句:强行退出循环,接着执行ENDDO后的语句条件循环体ENDDOENDDO的下一语句NY循环体本节重点目录上一页下一页退出24DOWHILE……ENDDO举例例9、编程求1+2+3+……+100之和。程序文件名为Li9.PRG。例10、逐条显示在STUDENT数据库的STUD表中性别为“男”的所有记录。程序文件名为Li10.PRG。例11、编程显示STUDENT数据库的STUD表中除“李宁”以外的所有记录。程序文件名为Li11.PRG。本节重点目录上一页下一页退出252.FOR循环语句格式:FOR循环变量=初值TO终值[STEP步长]循环体ENDFOR|NEXT执行过程:先将初值赋给循环变量,然后判断循环变量的值是否超过终值,若否,则执行一次循环体,循环变量增加一个步长,再判断循环变量的值是否超过终值……;若循环变量的值超过终值,则终止循环,执行ENDFOR的下一语句。要点本节重点目录上一页
本文标题:第七章程序设计基础
链接地址:https://www.777doc.com/doc-6494881 .html