《程序设计》PPT课件.ppt
《《程序设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《程序设计》PPT课件.ppt(128页珍藏版)》请在三一办公上搜索。
1、封面,程序设计基础,程序文件程序的基本结构过程及其调用,人机交互方式交互式方式是通过在命令窗口中输入命令或通过选择菜单项来实现各种操作,适用于解决一些较为简单的问题。程序方式要处理复杂的问题,就应采取程序方式。,VFP的工作方式,6.1 程序文件,程序由能够完成指定任务的一系列命令组成,这些命令被保存在程序文件中。程序文件又称为命令文件,其扩展名为PRG。程序文件中既可包含能在命令窗口执行的VFP命令,也可包含一些程序控制语句(如IF语句、循环语句)。,6.1.1 程序文件,程序文件既可通过VFP内置的文本编辑器来建立和修改,也可通过其他文本编辑器(如记事本)来编辑。程序一旦建立,可以多次执行
2、,也可被其他的程序、表单、菜单等调用。执行程序时,系统会自动地按一定的顺序来执行程序中的命令。,程序的概念,菜单方式,6.1.2 程序文件的建立和修改,选择“文件”菜单的“打开”命令,打开“打开”对话框。在“打开”对话框中,在“查找范围”下拉列表中定位到程序文件所在的文件夹,在“文件类型”下拉列表中选择“程序”,文件列表中显示出此文件夹下的程序文件。双击要打开的程序文件,或者选择它,再单击“确定”按钮,即可打开程序文件的编辑窗口。,修改程序,MODIFY COMMAND|?,当程序文件是一个新文件名时,系统将创建一个新的程序文件,并打开其编辑窗口。当程序文件是一个已经存在的文件时,系统将打开该
3、程序文件的编辑窗口,供用户修改。,命令方式,在项目管理器中建立和修改程序,在程序中,每条命令都以回车键结束,一行只能写一条命令。若命令需分行书写,应在上一行终了时输入续行符“;”。在程序中可插入注释,以提高程序的可读性。注释行以单词“NOTE”或符号“*”开头,它仅在编辑程序时显示,不会在运行程序时执行。在语句末尾也可添加注释,这种注释以符号“&”开头。,程序书写规则,6.1.3 程序的运行,在程序处于打开状态时运行程序,如果程序已在编辑窗口被打开,单击常用工具栏的“运行”按钮,或在“程序”菜单中选择“执行程序名.prg”命令,可执行此程序。,通过菜单执行程序文件,DO,通过命令执行程序文件,
4、由于DO命令默认是运行PRG程序。若用户要运行程序文件,则只需指定主文件名,不需指定扩展名,通过项目管理器执行程序文件,在项目管理器中,选择“代码”选项卡中“程序”选项下的程序名,单击“运行”按钮可以运行该程序文件。,当VFP执行PRG源程序文件时,系统将自动对其编译,产生相应的FXP文件。系统实际执行的是FXP目标文件。在执行程序的过程中,系统会自动地按一定的顺序逐条来执行程序中的命令。,中止程序的运行,如果程序有错,或在执行过程中用户按了ESC键中止程序,系统会打开“程序错误”对话框。,中止程序的运行,系统将取消此次程序的执行,系统将暂停程序的运行,返回到命令窗口用户可以在执行其他的操作后
5、,选择“程序”菜单的“继续执行”命令或在命令窗口中执行“RESUME”命令,从程序的中止处继续运行程序,当用户选择“忽略”时,系统将忽略程序错误,继续执行程序,6.1.4 输入命令,在VFP中,应用程序的输入/输出界面通常采用表单、报表等形式。但在编写小程序时,仍然常使用传统的输入命令。,ACCEPT TO,程序中执行到该语句时,在主窗口显示用户设置的提示信息,等待用户从键盘输入数据。用户输入数据后,按回车键,系统将接收到的数据作为字符串赋值给内存变量,再继续往下执行程序。,字符串接收命令,是一个字符型表达式。执行此命令时,该表达式的内容作为提示信息,显示在屏幕上。若缺省此项,则不显示提示信息
6、。由于此命令接收到的任何数据都会作为字符串。用户在输入数据时,不需要输入字符串定界符。若用户不输入任何数据,直接按回车键,则系统会 将对内存变量赋值为空串。,字符串接收命令,USE 图书&打开图书表ACCEPT 请输入要查询的条形码 to txm&接收用户要查询的条形码LOCATE FOR 条形码=txm&根据用户的输入查找记录DISPLAY 条形码,书名,售价,作者&显示图书记录的相关信息USE&关闭数据表RETURN,例题,在图书表中,根据用户输入的条形码,查找书籍的条形码、书名、售价、作者信息。,INPUT TO,该命令与ACCEPT命令类似,但该命令可接收用户输入的多种数据类型的表达式
7、。用户可输入数值型、字符型、日期型或逻辑型表达式。系统先计算表达式的值,然后将值赋给指定的内存变量。内存变量的类型由表达式的数据类型决定。当用户输入字符型、日期型或逻辑型常量时,应加上相应的定界符。,表达式输入命令,WAIT TO WINDOW AT,TIMEOUT,该命令与ACCEPT命令类似,但该命令只能接收用户输入的一个字符。,单个字符接收命令,若缺省,执行此命令时,屏幕上显示“按任意键继续。”若指定TO 短语,执行此命令时,用户按任意键,不需按回车键,该键作为一个字符被接收到指定的内存变量中。若用户不输入任何数据,直接按回车键,或单击鼠标,系统会将对内存变量赋值为空串。若不指定TO 短
8、语,此语句的功能为暂停程序的执行,显示提示信息。用户按任意键,或单击鼠标,将继续执行程序。,单个字符接收命令,若指定WINDOW短语,将显示一个窗口显示提示信息。通常,窗口显示在屏幕的右上角。若用AT,短语,可指定窗口的位置。TIMEOUT 短语,用来设置等待用户输入的时间,以秒为单位。如果在指定的时间内用户未输入任何字符,系统将自动执行后面的命令。,单个字符接收命令,例如,用户要在程序执行过程中查看数值型变量A的值,要求结果显示在10行30列位置的窗口中,显示5秒钟后继续执行程序,则语句为WAIT“变量A的值为”+STR(A)WINDOW AT 10,30 TIMEOUT 5又例如,用户要在
9、程序执行过程中接收一个字符,将此值存储在变量B中。则语句为WAIT“请输入一个字符”TO B,单个字符接收命令,6.1.5 其他命令,在程序的结尾,通常执行以下命令,以结束程序的运行。当然,如果省略这些命令,也可以终止程序。,RETURN,结束当前程序的执行,返回到调用它的上级程序,若无上级程序,则返回到命令窗口,结束程序运行命令,CANCEL,终止程序运行,清除所有的私有变量,返回命令窗口,QUIT,退出VisualFoxPro系统,返回到Windows。,结束程序运行命令,CLEAR,清除主屏幕窗口上的所有信息。,清屏命令,CLOSE ALL,关闭所有已打开的各类文件,并将当前工作区设为1
10、号工作区。,关闭文件命令,CLEAR ALL,可以关闭文件,还可以清除所有用户定义的内存变量。,关闭文件命令,SET TALK ON/OFF,许多命令在执行时会返回一些执行状态的信息这些信息通常会显示在窗口或状态栏中开启或关闭人机会话,设置环境参数命令,SET DEFAULT TO,设置默认的文件路径,设置环境参数命令,6.2 程序的基本结构,结构化程序设计是根据给定的任务,设计、编写和调试出完成该任务的过程。结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。,程序的基本结构,自顶向下、逐步求精的程序设计方法是从问题本身开始,经过逐步细化,将解决问
11、题的步骤分解为由基本程序结构模块组成的结构化程序框图。,程序的基本结构,“单入口单出口”的思想认为:一个复杂的程序,如果它仅是由顺序、选择和循环三种基本程序结构通过组合、嵌套构成,那么这个一定只有一个唯一的入口和出口。据此,就很容易编写出结构良好、易于调试的程序。,程序的基本结构,顺序结构程序是最简单的程序结构,先执行A操作,再执行B操作,依次执行各条语句。,6.2.1 顺序结构,6.2.2 选择结构,选择结构是在程序执行时,根据不同的条件,选择执行不同的程序语句。VFP的分支结构程序可以分为简单分支(IF-ENDIF)、选择分支(IF-ELSE-ENDIF)以及多路分支(DO CASE-EN
12、DCASE)三种不同的程序,IF ENDIF,ENDIF的下一条语句,简单选择语句,如果条件成立,即的值为真,则执行语句序列,然后再执行ENDIF后面的语句。否则,直接执行ENDIF后面的语句。,某地的计程车收费规则为:不超过2公里时,一律收取6元。超过部分每公里加收1.8元。编程根据行车里程计算应付车费。,INPUT 请输入里程数 TO x&接收要计算的行车里程y=6&将车费赋值为6元IF x2&判断x是否超过2公里 y=6+(x-2)*1.8&重新计算车费ENDIF?里程数为,x,车费为,y&显示里程和车费RETURN&返回命令窗口,例题:简单选择语句,IF ELSE ENDIF,双分支选
13、择语句,如果条件成立,即的值为真,则执行语句序列1,然后执行ENDIF后面的语句。否则,执行语句序列2的语句,再执行ENDIF后面的语句。,ENDIF的下一条语句,双分支选择语句,某地的计程车收费规则为:不超过2公里时,一律收取6元。超过部分每公里加收1.8元。编程根据行车里程计算应付车费。,INPUT 请输入里程数 TO x&接收要计算的行车里程IF x=2&判断x是否超过2公里 y=6&将车费赋值为6元ELSE y=6+(x-2)*1.8&将车费赋值为6元加超出的部分ENDIF?里程数为,x,车费为,y&显示里程和车费RETURN&返回命令窗口,例题:双分支选择语句,在图书表中,根据用户输
14、入的条形码查找书籍。如果找到,则显示书籍的条形码、书名、售价、作者信息;如果没有找到,显示查无此书。,USE 图书&打开图书表ACCEPT 请输入要查询的条形码 to txm&接收用户要查询的条形码LOCATE FOR 条形码=txm&根据用户的输入查找记录IF FOUND()&判断是否找到了输入条码DISPLAY 条形码,书名,售价,作者&显示图书记录的相关信息ELSE?查无此书&显示没有这本书ENDIFUSE&关闭数据表RETURN&返回命令窗口,例题:双分支选择语句,嵌套选择语句,在解决一些复杂问题时,需要将多个选择结构语句结合起来使用。也就是说,在选择结构的中,允许包括另一个合法的选择
15、结构,形成选择的嵌套。对于嵌套选择结构的程序而言,每一个IF必须和一个ENDIF配对。为了使程序易于阅读,内外层选择结构层次分明,通常按缩进格式来书写。,某商场采取打折的方法进行促销,购物金额在300元以上,按九五折优惠;购物金额在500元以上,按九折优惠;购物金额在1000元以上,按八五折优惠。编写程序,根据用户的购物金额,计算其优惠额及实际付款金额,例题:嵌套选择语句,INPUT 请输入购物金额 TO je&接收要计算的购物金额IF je=300&判断金额是否超过300元 yh=0&没有优惠ELSE IF je=500 yh=je*0.05&优惠额为5%ELSE IF je=1000&判断
16、金额是否超过1000元 yh=je*0.1&优惠额为10%ELSE yh=je*0.15&优惠额为15%ENDIFENDIF ENDIF?优惠额为,yh,实际付款为,je-yh&显示优惠额和实际付款RETURN&返回命令窗口,例题:嵌套选择语句,DO CASECASE CASE CASE OTHERWISE ENDCASE,多路分支,系统自上而下依次对各个CASE语句的条件进行判断。若某个的值为真,则执行该语句下的语句序列。然后,不管其他CASE语句的条件是否成立,转去执行ENDCASE后的语句。若所有的值都不为真,又有OTHERWISE子句,则执行OTHERWISE后的语句序列,再转去执行E
17、NDCASE后的语句。若所有的值都不为真,又没有OTHERWISE子句,则直接执行ENDCASE后的语句。,多路分支,ENDCASE的下一条语句,多路分支流程图,INPUT 请输入购物金额 TO je&接收要计算的购物金额DO CASECASE je=300&判断金额是否超过300元 yh=0&没有优惠CASE je=500&判断金额是否超过500元 yh=je*0.05&优惠额为5%CASE je=1000&判断金额是否超过1000元 yh=je*0.1&优惠额为10%OTHERWISE yh=je*0.15&优惠额为15%ENDCASE?优惠额为,yh,实际付款为,je-yh&显示优惠额和
18、实际付款RETURN&返回命令窗口,例题:多路分支,由于各个CASE条件是按其排列的前后顺依次被判断的。所以,哪一个条件在前,哪一个条件在后,可能会影响程序的执行结果。编写程序时,应根据条件所蕴含的逻辑关系,认真考虑。,多路分支,6.2.3 循环结构,循环结构是指在程序执行的过程中,某段代码被重复地执行若干次,被重复执行的代码段称之为循环体。VFP支持三种循环结构的控制语句:条件循环(DO WHILE-ENDDO)、步长型循环(FOR-ENDFOR)、扫描型循环(SCAN-ENDSCAN)。,DO WHILE ENDDO,条件循环,条件循环语句,是根据条件表达式的值,决定循环体语句的执行次数。
19、,条件循环,执行该语句时,先判断DO WHILE处的循环条件是否成立,如果条件为真,则执行DO WHILE与ENDDO之间的命令序列(循环体)。当执行到ENDDO时,返回到DO WHILE,再次判断循环条件是否为真,以确定是否再次执行循环体。若条件为假,则结束该循环语句,执行ENDDO后面的语句。如果第一次判断条件时,条件即为假,则循环体一次都不执行。,条件,循环体,条件循环,USE 图书&打开图书表jx=Y&设置变量jx的初值DO WHILE jx=Y OR jx=y&根据变量jx的值判断是否循环ACCEPT 请输入要查询的条形码 to txm&接收用户要查询的条形码LOCATE FOR 条
20、形码=txm&根据用户的输入查找记录IF FOUND()&判断是否找到了输入条码 DISPLAY 条形码,书名,售价,作者&显示图书记录的相关信息ELSE?查无此书&显示没有这本书ENDIFWAIT“是否继续(Y/N)”TO jx&接收用户输入的字符是否继续查找ENDDOUSE&关闭数据表RETURN&返回命令窗口,例题:条件循环,条件循环,在循环体中可以出现两条特殊的命令:LOOP和EXIT。如果循环体包含LOOP命令,那么当遇到LOOP时,就结束循环体的本次执行,不再执行其后面的语句,而是转回DO WHILE处重新判断条件。如果循环体包含EXIT命令,那么当遇到EXIT时,就结束该语句的执
21、行,转去执行ENDDO后面的语句。通常LOOP和EXIT出现在循环体内包含的选择结构中,根据选择语句的条件来判断是否LOOP或EXIT。,条件,命令组,无条件循环命令,无条件结束循环命令,条件循环,例题:条件循环,实现程序例6.7的功能。且如果用户输入的条形码不是8位字符,则提示用户重新输入条形码。,USE 图书&打开图书表DO WHILE.T.&循环条件永远为真值ACCEPT 请输入要查询的条形码 to txm&接收用户要查询的条形码IF LEN(ALLT(TXM)8&如果用户输入的条形码不是8位 WAIT 请输入8位条形码 AT 50,20 TIMEOUT 3&显示警告信息 LOOP&跳转
22、到循环的条件判断处ENDIFLOCATE FOR 条形码=txm&根据用户的输入查找记录IF FOUND()&判断是否找到了输入条码 DISPLAY 条形码,书名,售价,作者&显示图书记录的相关信息ELSE?查无此书&显示没有这本书ENDIFWAIT“是否继续(Y/N)”TO jx&接收用户输入的字符是否继续查找IF jxY AND jx y&如果用户回答的不是Y或y EXIT&退出循环ENDIFENDDOUSE&关闭数据表RETURN&返回命令窗口,例题:条件循环,循环条件为逻辑常量.T.,循环条件永远成立,这种循环被称为绝对循环。这时,在循环体内应该有EXIT语句退出循环。使用循环结构时,
23、为使程序最终能退出循环,在循环体中必须要有使循环条件的值的发生改变的语句,或者有EXIT语句。否则程序将永远重复地执行循环体,这种情况称为死循环。调试过程中遇到死循环时,按键盘的ESC键可结束程序的运行。,条件循环,求1到100之间全部数之和,i=1&设置计数变量i的初值为1s=0&设置求和变量s的初值为0DO WHILE i=100&循环条件为i不超过100s=s+i&使s的值增加ii=i+1&使i的值增加1ENDDO?”1到100的和为”,s&显示求和变量的值RETURN&返回命令窗口,例题:条件循环,s i初值 0 1 循环1:1 2循环2:1+2 3循环3:1+2+3 4循环4:1+2
24、+3+4 5循环5:1+2+3+4+5 6循环100:1+2+100 101,例题:条件循环,对于读者表的所有读者根据不同的身份来收取押金。其中,教研人员收取50元,工作人员收取30元,研究生收取20元。将所有读者的姓名,身份和押金显示出来,例题:条件循环,USE 读者&打开读者表DO WHILE NOT EOF()&循环条件为记录指针不指向文件尾DO CASECASE 身份=教研人员&判断当前记录的身份字段的值是否为教研人员 yj=50&对yj赋值为50 CASE 身份=工作人员&判断当前记录的身份字段的值是否为工作人员 yj=30&对yj赋值为30CASE 身份=研究生&判断当前记录的身份
25、字段的值是否为研究生 yj=20&对yj赋值为20ENDCASE?姓名,身份,yj&显示当前记录的姓名和身份字段及变量yj的值SKIP&向下移动记录指针ENDDOUSE&关闭数据表RETURN&返回命令窗口,例题:条件循环,FOR 循环变量=TOSTEP ENDFOR|NEXT,步长型循环,步长型循环,执行该语句时,系统首先自动将初值赋给循环变量,然后判断循环变量是否超过终值。若步长值为正数,则循环变量大于终值为超过;若步长值为负数,则循环变量小于终值为超过。若没有超过,则执行循环体,并将循环变量增加一个步长值。然后,再去判断循环变量是否超过终值。如果没有超过终值,则再次执行循环体;否则,转去
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 PPT 课件

链接地址:https://www.31ppt.com/p-5564369.html