《vfp 课件 第章 程序设计基础》由会员分享,可在线阅读,更多相关《vfp 课件 第章 程序设计基础(12页珍藏版)》请在金锄头文库上搜索。
1、第5章 程序设计基础程序设计就是将电脑能识别的命令按一定的规则组合在一起,编成一个程序文件,当程序文件执行时,电脑能一次执行一组命令。在VFP6.0中提供了面向过程的程序设计方法和面向对象的程序设计方法。在结构化的程序设计中,程序的结构一般有三种:顺序结构,分支结构和循环结构。程序举例:*VFP程序示例,用于计算圆的面积。SET TALK OFF &关闭人机对话CLEAR &清屏INPUT 请输入圆的半径: TO RS=PI()*R*R &函数PI()返回圆周率?面积S=,S &显示计算结果SET TALK ON &打开人机对话5.1.1程序文件的建立,修改和运行1. 程序文件的建立和修改 三
2、种方式建立文件: 命令方式: MODIFY COMMAND 功能:打开一个编辑窗口,用于建立和修改程序文件。说明:(1)文件名缺省,默认名字 程序1,程序2 文件名不缺省, 如果文件存在,打开该文件的编辑窗口,修改。 如果文件不存在,打开编辑窗口,录入内容。 (2)保存。例 用命令方式建立程序文件。文件名是PROG1.PRG,程序为求圆面积的程序,然后保存到当前位置。菜单方式:文件 新建程序新建文件出现程序编辑窗口录入程序内容录入完毕,存盘退出。项目管理器方式:打开项目管理器全部代码新建出现程序编辑窗口录入程序内容录入完毕,存盘退出。编辑程序文件,注意以下几点:(1) 命令行的序列,每条命令以
3、回车键结尾,一行写一条命令,需分行时要加续行符 “;”。(2) 编辑过程中可以使用编辑菜单,提高编辑速度。(3) 编辑完毕,注意保存。2. 程序文件的运行三种方式运行文件:命令方式: DO 例:在命令窗口中敲入:DO PROG1 (可以不加扩展名) (如果执行的时查询文件11,QOR的话:DO 11.QPR)执行时:对程序文件进行编译,产生一个编译文件:PROG1.FXP 然后执行编译过的文件。 菜单方式:程序运行项目管理器:先选中运行 3. 程序文件的注释为了增加可读性,为程序加注释:* 放在一行的开始NOTE 放在一行的开始& 放在语句的后面不执行任何操作,只作注释标记。VFP考试中常见的
4、要求是建立一个和数学问题相关的程序或建立一个和表操作相关的操作。例程1 建立一个程序PROG2,输出半径为10的圆的面积和三边长为12,23,21的三角形面积。分析:这是一个典型的数学问题, 圆面积的计算公式为: 三角形面积的计算公式为:S=程序:set talk off &关闭人机对话 clear &清屏 r=10 a=21 b=23 c=21s1=PI()*r*r &函数PI()返回圆周率t=(a+b+c)/2 s2=sqrt(t*(t-a)*(t-b)*(t-c) ?”半径为10的圆的面积为”,S1 ?”三边长分别为12,23,21的三角形面积为”,S2 set talk on例程2建立
5、一个程序PROG3,已知表 ex1 中包含10条记录,每条记录只有一个数值型字段 num ,请在表的最后添加一条记录,计算前十条记录 num 字段的和的平方。分析:完成和表相关的操作问题时,一定要关心这样的三个问题,第一个问题是:既然是和表相关的操作,那么肯定要使用表中的数据或是修改表中的数据,那么我们在程序的一开始一定要打开表,在程序的结束一定要关闭表;第二个问题要考虑题目的要求是修改表中原有的记录的值,还是新添加一条记录。如果是后者,程序中一定要有append blank语句。第三个问题是在表中如果要修改某条记录的某一字段值(或是为该项赋值),千万不能直接使用赋值语句,而应使用replac
6、e语句。(因为我们要修改的是字段变量) 关于本题,我们还要考虑,最后让我们计算的是前10条记录的和的平方,我们应先计算前10条记录的和,然后算其平方,并将算出的结果赋值给新添加的记录。程序: set talk off clear use ex1 sum num to a a=a*2 append blank replace num with a use set talk on5.1.2程序中常用的简单语句(命令)一、赋值语句格式:一: store 数据 to 变量名 STORE 2 TO X,Y 多个变量赋同一值 STORE 计算机水平考试 TO Z 二: 变量名=表达式A=.T. 只能给一个
7、变量赋一值W=2003/12/31DT=2004/08/01 02:59:05 PM ?A,W, DT这两种方式适合对内存变量赋值。 三: replace 字段变量名 with 表达式这种方式适合对字段变量赋值二、输入语句格式一:输入单个字符的语句WAIT TOWINDOWSAT,NOWAITCLEAR|NO CLEARTIMEOUT注意:1. 程序执行到此语句时会暂停,等待用户按任意键继续。 2如果有 “TO ”子句,用户按的那个字符会存储到相应的变量内,无论用户按是键上的字符键还是数字键,最终的那个数据会以字符形式存放在内存变量内。 3. 其它参数是可选的,具体意义如下: windows:
8、可控制用户提示信息的窗口 clear/no clear:信息窗口是否保留在主窗口上; timeout:正常情况,wait语句执行时,程序中断,必须等用户输入一个字符后程序才能继续,如果有timeout子句,则可控制程序中断的最长时间(秒为单位),一但超过此时间,程序会自动继续执行。例:WAIT 请输入 TO X TIMEOUT 5WAIT 请输入 TO X WINDOWS AT 12,30 TIMEOUT 5?X格式二:输入字符串语句accept to 注意:1. 此语句与Wait不同之处在于,wait语句最多只能接受一个字符的输入,只要用户按键盘一下,无论你按的是什么键,程序都会继续向下执行
9、。 而Accept语句可接受一串字符的输入,用户在输入字符时,必须以回车键结束,不按回车键,程序一直会处于中断状态。2用户无论输入的是何种数据,电脑都会被用户输入的看成字符串,即使用户输入6578,电脑会将其看成字符串“6578”,而不会看成数值。不可计算。例1: accept 输入图书总编号 to n?n?type(n)例2 编制程序查询数据表“学生信息.dbf”中姓名为 李梅 的记录,姓名由键盘输入。 * PROG4.PRG SET TALK OFF CLEAR Use 学生信息 ACCEPT “请输入姓名:” TO xm Locate for 姓名=xm Displayuse SET T
10、ALK ON RETURN格式三:输入任意型数据语句input to 注:此语句与前两条语句最大的不同之处在于,前两条语句用户输入的任何数据都会被看成字符型的。而此语句可接受任何型数据的输入。 字符型数据的输入:一定要在数据两边加上定界符,单引号,双引号或方括号; 数值型数据的输入:直接输入完全由数字构成的数据。 逻辑型数据的输入:可直接输入 .t. 和 .f. 日期时间型数据的输入:最好使用严格日期格式,也可通过 ctod()或ctot()函数(非特殊情况尽量不用)。例1: input “请输入:” to b例2 :Jg=7800 accept “输入价格:” to a 输入jg+200,看
11、a的值 input “输入价格:” to b输入jg+200 看b的值三、输出语句格式一:?/?注意:?语句会在光标下一行起始位置开始输入; ?语句会以当前光标所在位置开始输入。格式二:文本输出语句(不能在命令窗口用此命令,只能在程序中用)text 文本内容 endtext将文本内容原样输出。例: *PROG5.PRGset talk offcleartext1. 录入数据2. 删除数据3. 修改数据4. 查询请选择14ENDTEXTWAIT 按任意键继续 WINDOW TIMEOUT 5RETURN格式三: say 提示信息 get 变量名用于定位输出相应的变量值,此命令与前述命令最大的不同
12、在于可控制语句在何处显示GET变量的值,如果由READ语句激活GET变量,就可以对GET变量进行编辑。例如:M=中国人 CLEAR3,15 SAY 我是一个 GET MREAD格式四:messagebox(信息内容,对话框类型,对话框标题)变量名= messagebox(信息内容,对话框类型,对话框标题)功能:第一个格式仅显示一个自定义的对话框 第二个格式除了格式一的功能,还将函数的返回值送到内存变量中,以便根据返回值决定程序的执行情况.例如: 其中:信息内容:代表对话框中显示的提示信息,最长1024个字符。换行用chr(10),回车用chr(13)回车加换行chr(13)+chr(10)对话框类型:三个值相加得到的一个整型值,用于控制对话框的样式(几个按钮,提示图标等)参考书P52对话框标题:用于控制标题栏上的显示内容。例: messagebox(你确定退出吗?,305,退出窗口)messagebox(你真的真的真的真的确定+ CHR(13)+CHR(10)+要退出吗?,305,退出窗口)b= messagebox(你确定退出吗?,305,退出窗口)如果选择了按钮确定,b的值是多少?题目:用MESSAGEBOX函数制作这样一个窗口:答案:messagebox(你要把更改保存吗?,