您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > VFP6电子教案第5章(程序设计基础)
学习要点1、过程化程序设计和面向对象程序设计的基本概念及设计方法;2、过程化程序设计的语言基础,程序设计基本结构;3、可视化程序设计的基本方法、类。第5章VFP6程序设计基础第5章VFP6程序设计基础5.1VFP6程序设计概念5.2VFP6的程序设计语言基础5.3VFP6程序设计步骤5.4面向对象的程序设计技术小结返回退出5.1.1VFP6程序设计基本概念VFP6支持过程化程序设计和面向对象程序设计两种程序设计与开发的类型。下面是一个完整的VFP过程化程序,可以引出几个基本概念。*功能说明:求圆形的面积。*文件名:L501.PRGCLEARCTALK=SET(TALK)SETTALKOFFINPUT请输入圆的半径,半径=TORS=PI()*R*R?半径为+ALLTRIM(STR(R))+的圆,面积=,SSETTALK&CTALKRETURN1、从形式上看,VFP的程序是由若干有序的命令行组成,且满足下列规则:(1)一个命令行内只能写一条命令,命令行的长度不得超过2048个字符,命令行以回车键结束。(2)、一个命令行可以由若干个物理行组成,即一条命令在一个物理行内写不下时,可以分成几行。换行的方法有两种:一种是在物理行的末尾加符号“;”,表示下一行输入的内容是本行的继续;另一种是系统自动换行,即输入程序时,只管逐条命令输入,无需考虑本条语句是否超过屏幕行宽的最大限度,当输入的语句超过屏幕的最大行宽时,系统自动换行。输入时只需在一行结束时按回车键,通知系统本命令行输入完毕。(3)为便于阅读,可以按一定的格式输入程序,即一般程序结构左对齐,而控制结构内的语句序列比控制结构的语句缩进若干格。2、从功能上看,程序可以分为三个部分:第一部分是程序的说明部分,在本例程序中是前面的二行,一般用于说明程序的功能、文件名等需要说明的有关信息。第二部分是进行数据处理的部分,在本例程序中是从第3行开始的7行。通常这部分程序常包括下列三个部分,依次为:环境设置、数据处理、环境恢复。第三部分是程序的控制返回部分,在本例中就是最后一条命令。它控制程序返回到调用该程序的调用处。本例是结合过程化程序设计来分析的,由于VFP6能够结合过程化程序设计和面向对象的程序设计,因而有必要弄清它们的概念:过程化程序设计与面向对象程序设计过程化程序设计:它是采用结构化编程语句来编写的程序。这类方法的特点是容易把一个复杂的程序分解为若干个较小的过程,每个过程都可进行独立的调试。这类设计方法发展的总思想是从程序员角度考虑使程序设计更简单,而较少从使用角度去考虑。使用这类方法设计的程序流程完全由程序员控制,使用者只能做由程序员预先安排好的事情。面向对象程序设计:这类程序设计思想是面向对象,即设计的重要任务在于描述对象。程序是由事件驱动的,因而,在执行过程中,持续等待的是一个发生在对象上的事件。而发生什么事件则要看使用者的操作,如单击、双击鼠标等。至于下一步的程序流向,则要看驱动的是什么事件。这类程序设计的主要目的是从任何方便与简化使用入手,由使用者控制程序流向,这在一定程序上增加了编程的难度。5.1.2VFP6程序设计基本操作1、使用“命令”窗口可以在“命令”窗口中键入VFP6命令并按Enter键执行。若要重新执行该命令,还可以将光标移到此命令所在行的任意位置并按Enter键。甚至可以在“命令”窗口中像独立程序一样执行多行代码。要在“命令”窗口中运行多行代码,可以按下述方法执行:(1)选取代码行。(2)按Enter键或右击并在快捷菜单中选择“运行所选区域”。因为“命令”窗口是一个编辑窗口,所以在编辑命令时可以使用VFP6提供的编辑工具。在“命令”窗口中可以修改、插入、删除、剪切、复制和粘贴正文。在“命令”窗口中执行命令的优点是:能够立即执行被键入的命令,不需要将其保存为文件并用程序方式执行。此外,在菜单或对话框中所作的选择可以马上转换成“命令”窗口中的命令。用户可以将这些命令复制并粘贴到VFP6程序中,然后重复执行这些程序。这样做可以很容易地重复执行成百上千条的命令。2、过程化程序设计基本操作(1)建立过程化程序。在VFP6中,过程化程序文件是ASCII文本文件,因而可用各类编辑工具来建立。在VFP6中有下面二种简易方法来建立:■在【文件】菜单下的【新建】菜单项中,选择“程序”项,再单击【新建文件】;■在命令窗口中输入命令:MODIFYCOMMAND程序文件名格式:MODIFYCOMMAND[文件名/?]功能:打开文本编辑窗口,编写程序代码。【例5-2】用户通过VFP6的命令窗口建立上例程序文件。在VFP6的命令窗口中输入下条命令后按回车键。MODIFYCOMMANDL501打开程序编辑窗口在程序编辑窗口中输入程序代码用Ctrl+W存盘退出编辑窗口,或单击程序编辑窗口上的【关闭】按钮,在弹出的对话窗口中确定存盘,生成L501.prg文件。(2)运行程序下面的任一方法均可运行程序:■选择【程序】菜单下的“运行”菜单,利用“运行”对话框选择要运行的程序;■在命令窗口中输入如下命令:DO程序文件名系统就会运行这个程序。如果文件不加扩展名,系统会假定它具有.PRG的扩展名,如果想运行一个具有其它扩展名的命令文件时,在输入命令时必须给出这个命令文件的全名。如:要运行上例中编辑的程序,可以在命令窗口中输入:DOL501然后按回车键执行。(3)保存程序创建程序后,一定要注意保存程序。若要保存程序,可以从【文件】菜单中选择【保存】命令。或者按Ctrl+W组合键保存,若不想保存对新建程序或已有程序所做的修改,也可以使用Ctrl+Q组合键,不存盘而退出编辑窗口。若要关闭一个没有保存的程序,则会弹出相应对话框,提示用户是否保存已作的修改。若保存了一个由项目管理器创建的程序,则该程序被加入到项目中。若保存一个尚未命名的程序,则会打开“另存为…”对话框,提示用户可以在其中为程序指定程序名。程序保存后,可以运行或修改它。(4)修改程序程序保存后可以修改。首先,按以下四种方法之一打开想要修改的程序文件:■若程序包含在一个项目中,则在项目管理器中选定它并选择修改命令。■在【文件】菜单中选择【打开】命令,这时弹出一个包含文件列表的对话框,在“文件类型”列表框中选择“程序”,然后在文件列表中选定要修改的程序,单击【确定】按钮。■在“命令”窗口中按如下方式键入要修改的程序名:MODIFYCOMMAND程序文件名■在“命令”窗口中输入:MODIFYCOMMAND?然后从文件列表中选择要修改的程序,单击【打开】按钮。打开文件之后便可进行修改,修改完成后就可以保存。3、事件驱动程序设计基本操作VFP6提供了真正的无模式操作,使用户不仅能够轻松地进行多个表单的自动协调,而且可以很容易地同时运行一个表单的多个实例。VFP6还提供了事件处理机制,可以给用户提供一个更为丰富的交互环境。事件驱动程序设计基本操作,关键是确定事件以及对事件发生时应作出的反应。一个事件发生时,VFP6系统应作出的反应,仍可通过一个过程来实现,即用过程化程序设计的方法来处理某一事件发生时系统应作出的响应。通常,VFP6程序设计时应考虑的事件有:(1)核心事件表5-1是VFP6中核心事件列表,这些事件适用于大多数的控件。(2)容器事件和对象事件。为控件编写事件代码时,请注意以下两条规则:■容器不处理与所包含的控件相关联的事件;■若没有与某控件相关联的事件代码,则VFP在该控件所在类层次结构中逐层向上检查是否有与该事件相关联的代码。表5-1VFP6核心事件返回当用户以任意一种方式(使用Tab键、单击鼠标等)与对象交互时,对象事件被触发。每个对象独立接受自己的事件。例如,在图5-2中,尽管命令按钮位于表单上,当用户单击命令按钮时,不会触发表单的Click事件,只触发命令按钮的Click事件。若没有与命令按钮相关联的Click事件代码,尽管有与表单相关联的Click事件代码,当用户单击按钮时,也不会执行与表单相关联的Click事件代码。图5-2容器、控件事件代码相对独立这些规则也适用于表格控件。表格事件包含列,列又包含标头和控件。事件发生时,只有与事件相关联的最底层对象识别该事件,更高层的容器不识别这个事件。图5-3演示了当用户在表格上移动鼠标时,哪个对象处理这个MouseMove事件。图5-3表格的MouseMove事件例如:在一个命令按钮上,按下鼠标左键并拖动鼠标指针离开命令按钮,尽管鼠标指针可能已经在表单上,但这个命令按钮的MouseMove事件还在不断产生。当在表单上而不是在命令按钮上释放鼠标时,发生的MouseUp事件是与命令按钮相关联的,而不是与表单的MouseUp事件相关联。(3)VFP6中类和控件事件若表单上的控件基于一个用户自定义的类,当一个事件发生时,VFP首先在该控件中查看是否有与此事件相关联的代码,若找到,则执行它;否则,VFP将在类层次中向上一层检查。无论VFP在类层次的哪个地方找到该事件的代码,都执行它,如图5-4所示。图5-4若没有与对象相关联的事件代码,则VFP将检查父类(4)使用VFP6设计工具编写代码借助表单设计器、类设计器和菜单设计器,用户可以很容易地把程序代码与用户界面连接起来,这样应用程序便可响应用户的操作并执行相应的代码。同样,报表设计器将程序代码与报表文件联系起来,以定制结构复杂并且符合用户要求的报表。如果想充分发挥VFP6的强大功能,应充分使用刚才提到的设计工具。事件驱动的程序设计的重要任务是规划界面和设计对事件响应的方法程序。界面规划在后续章节具体介绍。对事件响应的方法程序仍是使用结构化程序设计的方法完成对相应事件响应的操作。5.2VFP6的程序设计语言基础5.2.1VFP的交互式输入输出命令5.2.2结构化程序设计返回退出5.2.3过程与过程调用5.2.4自定义函数5.2.1VFP的交互式输入输出命令设计程序,就是用一系列命令存储数据并操作这些数据。程序设计的原材料是数据和数据的存储容器,而处理这些原材料的工具是命令、函数的操作符。1、交互式输入命令(1)字符接收语句格式:ACCEPT[提示信息]TO内存变量名功能:将从键盘上接收的字符串数据存入指定的内存变量中。提供此命令是为了向后兼容,在VFP中可以用文本框控制命令代替。参数描述:[提示信息]:指定提示信息字符串。[内存变量名]:指定存储字符数据的内存变量或数组元素。如果没有定义此内存变量,ACCEPT将自动创建。如果没有输入数据就按Enter键,内存变量或数组元素则为空字符串。说明:在VFP6的可视编程中可用文本框代替ACCEPT命令。该命令允许直接向内存变量或数组元素输入字符数据,输入时不需要用字符串的定界符。执行此语句时,先在屏幕上显示提示信息,光标紧随其后,然后暂停程序运行,等待用户从键盘上输入信息。输入的信息可以是任何可显示的ASCII码字符串,并以回车键结束。系统将此字符串信息存入指定的内存变量中,然后,继续运行暂停的程序。【例5-3】试编程完成下述功能:从键盘随机输入某个表的文件名,要求打开并显示此表的内容。在命令窗口输入下列命令:MODIFYCOMMANDL503(文件名中的扩展名.PRG可省略,以后不再说明)屏幕显示编辑窗口。在编辑窗口输入如下程序代码后用Ctrl+W存盘,返回命令窗口。CLEARSETTALKOFFACCEPT请输入表文件名TOFileNameUSE(FileName)LISTUSERETURN说明:程序中第四句使用了宏代换函数,这是由于FileName本身不是文件名,而其内容才是文件名。(2)通用数据接收命令ACCEPT语句只能给字符型内存变量提供数据。如果用户想给其它类型的内存变量提供数据,可以使用下列命令:格式:INPUT[提示信息]TO内存变量名功能:用于接收从键盘上输入的表达式,并将计算结果存入指定的内存变量或数组元素中。包含此命令也是为了提供向后的兼容性。在VFP中,该命令也可以用文本框控制代替。参数描述:[提示信息]:提示信息,提示用户输入数据。
本文标题:VFP6电子教案第5章(程序设计基础)
链接地址:https://www.777doc.com/doc-3207759 .html