




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,第3章VisualFoxPro程序结构,3.1程序与程序文件3.2程序设计中的一些常用命令3.3程序的基本控制结构3.4多模块程序设计3.5程序调试,.,2,3.1.1程序的概念在VisualFoxPro环境下,命令有两种执行方式:(1)单命令执行方式单命令执行方式也称为交互操作方式,在命令窗口输入命令后按回车键,命令被立即执行,屏幕会显示该命令的执行结果。其特点是简单、直观,但效率低,不便于反复执行。(2)程序方式程序是指示计算机如何去解决问题或是完成任务的一组详细的逐步执行的指令。在VisualFoxPro系统中,程序方式也称为批命令方式,这种方式可将多条命令按一定的序列存放于一个文件中,执行该文件,则文件内的命令被自动依次执行。该方式的特点是,命令可被反复执行。,3.1程序与程序文件,.,3,3.1.2程序文件的建立与执行1.程序文件的建立与编辑(1)命令方式命令格式:MODIFYCOMMAND|?功能:打开程序编辑窗口,用于创建或修改VisualFoxPro程序。说明:由用户指定,默认的扩展名为.prg。前可用路径指定文件的存放位置,默认的存放位置为当前目录。?可显示“打开”对话框,用户可以从中选择一个已有程序进行编辑或创建新程序文件。,3.1程序与程序文件,.,4,(2)菜单方式在“文件”菜单中选择“新建”命令,然后在“新建”对话框的“文件类型”中选中“程序”单选按钮,再单击“新建文件”命令按钮。2.程序的输入与保存进入程序编辑窗口后,可将程序命令依次输入,程序中每条命令都以回车键结束。一般情况下,一行输入一条命令。若程序代码较长,为了比较方便地在程序编辑窗口中显示、查看程序代码,可通过续行符“;”把一条较长的命令放在几行中。输入结束后可以选择“文件”菜单中的“保存”或“另存为”命令保存程序。,3.1程序与程序文件,.,5,3.程序文件的执行(1)命令方式命令格式:DO功能:执行指定的程序文件。说明:当用此命令执行程序文件时,如果没有指定扩展名,系统将按下列顺序寻找该程序文件的源代码或某种目标代码文件执行:.exe(VisualFoxPro可执行文件).app(VisualFoxPro应用程序文件).fxp(编译文件).prg(源程序文件),如果未找到同名的.prg源程序文件,则显示“文件不存在”的出错信息。(2)菜单方式在“程序”菜单中选择“运行”命令,然后在“运行”对话框中,选择要执行的程序,单击“运行”按钮,或双击要执行的程序文件名。(3)工具按钮方式当程序编辑窗口被打开且是当前窗口时,单击常用工具栏的“”按钮,可运行该程序。,3.1程序与程序文件,.,6,3.2.1注释命令程序注释命令格式:NOTE|*命令注释子句格式:&功能:在程序中插入解释型字符。说明:注释是不可执行的部分,它对程序的运行结果不产生任何影响。“NOTE”或“*”必须写在命令行的开头,用于对程序或程序段的解释;“&”写在命令行的右面,可对其所在命令行进行解释。,3.2程序设计中的一些常用命令,.,7,3.2.2基本输入命令1.WAIT命令命令格式:WAITTOWINDOWATNOWAITCLEAR|NOCLEARTIMEOUT功能:将键盘输入的一个字符存入指定的内存变量名中。该命令可暂停程序的运行,等待用户从键盘按下任一键或按下鼠标的左键或右键继续执行。说明:(1)若是空串,屏幕不会显示任何提示信息。若省略,则屏幕显示“按任意键继续”提示信息。,3.2程序设计中的一些常用命令,.,8,(2)TO用来存入输入的字符(3)若使用WINDOW,将在屏幕右上角出现一个系统信息窗口,在其中显示提示信息,用户按键后此窗口会自动清除。(4)NOWAIT必须与WINDOW同时使用才有效果,系统将不等待用户按键,直接往下执行。(5)若选用NOCLEAR选项,则不关闭提示窗口,直到用户执行下一条WAITWINDOW命令或WAITCLEAR命令为止。(6)TIMEOUT选项用来设定等待时间(秒数),一旦超时将自动往下执行。,3.2程序设计中的一些常用命令,.,9,2.ACCEPT命令命令格式:ACCEPTTO功能:将键盘输入的一串字符存入指定的内存变量名中。此命令只能接收字符型数据。该命令执行时,先在屏幕上显示出提示信息,然后等待用户通过键盘输入数据,输入数据时不需加字符定界符,输入结束后按回车键,所输入的数据作为一个字符串赋给TO后的内存变量名中。如果没有输入数据就按回车键,此内存变量则为空字符串。,3.2程序设计中的一些常用命令,.,10,3.INPUT命令命令格式:INPUTTO功能:将键盘输入的表达式的值赋给指定的内存变量名中。此命令的格式和功能与ACCEPT命令类似,但其所输入的数据可以是任意类型的表达式,输入结束按回车键,但不能不输入任何内容直接按回车键,所输入的表达式的值赋给TO后的内存变量名中,此内存变量的类型由所输入数据的类型决定。注意:输入字符型常量需加字符定界符;输入逻辑型常量,两侧需用小圆点括起来;输入日期型或日期时间型常量,两端需加花括号;输入货币型常量,需在数字前加标识符$;数值型常量可直接输入。,3.2程序设计中的一些常用命令,.,11,3.2.3格式输入输出命令命令格式:SAYGETDEFAULT功能:在指定位置输出的值和所指定变量的值。说明:(1)SAY选项一般作为提示信息,常常为字符型。GET选项用来对变量的值进行修改。(2)GET选项中的变量可以是一个内存变量或一个字段变量。如果是内存变量,其必须具有初值,或用DEFAULT选项的指定初值(若变量已具有初值,本选项将被忽略)。,3.2程序设计中的一些常用命令,.,12,(3)GET选项的变量必须使用READ命令来激活。即一个或若干个GET变量,必须遇到READ命令才能编辑变量的值。当光标移出这些GET变量组成的区域时,READ命令执行结束。若无READ命令与之配合,本命令仅具输出功能。(4)COL()函数可获取光标所在的列号,ROW()函数可获取光标所在的行号。,3.2程序设计中的一些常用命令,.,13,【例3-6】求两个数的积。程序代码如下:SETTALKOFFCLEAR2,3SAYx=GETxDEFAULT0&从第2行,第3列开始显示ROW()+1,3SAYy=GETyDEFAULT0&从第3行,第3列开始显示READz=x*y?两数积为:,zSETTALKON程序执行后,分别输入3和4,则运行结果如下:x=3y=4两数积为:12,3.2程序设计中的一些常用命令,.,14,3.2.4其他常用命令1.CLEAR命令功能:清除VisualFoxPro主窗口工作区所显示的信息。2.CLEARALL命令功能:关闭所有文件,释放所有内存变量,清除所有用户自定义的菜单和窗口,并将当前工作区设置为1号工作区。3.CANCEL命令功能:释放所有私有变量,终止程序的执行,返回命令窗口。4.QUIT命令功能:关闭所有文件,释放所有变量,退出VisualFoxPro。5.SETTALKON|OFF命令功能:打开或关闭人机对话。说明:在会话状态开通时,VisualFoxPro在执行命令时会向用户提供大量的反馈信息。工作于程序方式时,这不仅会减慢程序的运行速度,而且还会与程序本身的输出相互夹杂,引起混淆。所以在程序调试时,一般置“会话”于开通状态,而在执行程序时,则通常置“会话”于断开状态。,3.2程序设计中的一些常用命令,.,15,3.2.5消息框函数函数格式:MESSAGEBOX(,)功能:在屏幕上产生一个消息对话框。说明:(1)指定消息框中显示的文字(即消息内容)。如果要使消息内容在中间某处换行,可使用回车符CHR(13)或换行符CHR(10)。(2)指定消息框标题栏的文字内容。(3)用来指定消息框4个方面的内容:按钮数目、图标样式、默认按钮以及模态性,如表3-1所示。默认按钮是指当显示消息对话框时焦点所在的按钮。模态性是指当显示消息对话框时,是否还能对程序中的其他窗口进行操作。应用程序级模态:不关闭消息对话框,不允许对本程序中的其他窗口进行操作。系统级模态:不关闭消息对话框则无法对所有程序进行操作。,3.2程序设计中的一些常用命令,.,16,表3-1参数的取值及说明,显示图标“,显示图标“,显示图标“,显示图标“,.,17,的值是从表3-1各参数值中分别取值相加后的结果,如例3-7。调用消息框函数时,若省略,则对话框上只显示一个“确定”按钮,没有图标;若省略了,则标题为应用程序名。【例3-7】消息框函数应用示例。?MESSAGEBOX(超出范围,是否重新输入?,20,输入错误),图3-1消息对话框,3.2程序设计中的一些常用命令,.,18,(4)程序运行到MESSAGEBOX函数时,先显示消息框,然后等待用户响应。当用户选择一个按钮后,MESSAGEBOX函数返回一个代表所选按钮的整数,然后继续执行其下面的命令。各按钮对应的整数如表3-2所示。表3-2MESSAGEBOX函数的返回值,3.2程序设计中的一些常用命令,.,19,程序的基本控制结构分为顺序结构、分支(选择)结构和循环结构。3.3.1顺序结构顺序结构是程序中最基本和最常见的结构。顺序结构的程序始终按照程序语句书写的先后次序依次执行。,3.3程序的基本控制结构,.,20,3.3.2分支结构分支结构有单分支、双分支和多分支3种,分别需要相应的语句予以实现。1.单分支结构命令格式:IFENDIF功能:当条件的值为真(.T.)时,执行命令序列,否则执行ENDIF后的命令。说明:命令中的通常为逻辑表达式,3.3程序的基本控制结构,.,21,【例3-8】由键盘输入两个数a和b,并比较它们的大小,使得a大于b。程序代码如下:CLEARSETTALKOFFINPUT请输入a的值:TOaINPUT请输入b的值:TObIFa0y=1CASEx=0y=0OTHERWISEy=-1ENDCASE?y=,ySETTALKON,3.3程序的基本控制结构,.,27,3.3.3循环结构在程序设计中,每一条顺序结构和分支结构的程序语句只能执行一次。而在解决实际问题的过程中,可能需要将某一段程序语句有条件地连续重复执行多次,这时就要用到循环结构。需要重复执行的这一段程序语句称为循环体。VisualFoxPro为用户提供了DOWHILE、FOR、SCAN等3种循环语句。,3.3程序的基本控制结构,.,28,3.3程序的基本控制结构,1.DOWHILE循环命令格式:DOWHILELOOPEXITENDDO,功能:当条件为真时,反复执行命令序列,否则执行ENDDO后的命令。说明:(1)在执行循环体时,遇到LOOP时,则不执行LOOP后面的命令,重新开始下一轮循环。(2)在执行循环体时,遇到EXIT时,则退出循环,转到ENDDO后面的命令执行。EXIT一般与IF一起配合使用。,.,29,【例3-12】计算1+2+3+100的和,并输出结果。程序代码如下:CLEARSETTALKOFFs=0i=1DOWHILEi0y=1ELSEIFx=0y=0ELSEy=-1ENDIFENDIF?y=,y,3.3程序的基本控制结构,.,36,2.循环的嵌套循环的嵌套指在一个循环的内部又完整包含另一个循环,也称为多重循环,根据循环的层数,可分为二重循环、三重循环等。【例3-17】输出九九乘法表。程序代码如下:CLEARSETTALKOFFFORi=1TO9j=1DOWHILEjmax_nummax_num=xENDIFIFxmin_nummin_num=xENDIFENDFOR?最大数为:,max_num?最小数为:,min_num,3.3程序的基本控制结构,.,38,数据库应用程序是一个复杂的软件系统。应用程序一般由若干个大模块构成,大模块又可以细分为许多小模块。模块是一个相对独立的程序段,它可以被其他模块所调用,也可以去调用其他的模块。通常,把被其他模块调用的模块称为子程序;把调用其他模块而没有被其他模块调用的模块称为主程序。程序的模块化在具体实现上就是采用子程序技术,具体形式有3种:子程序、过程和函数。将一个应用程序划分成一个个功能相对简单、单一的模块程序,不仅便于开发程序,也利于阅读和维护程序。,3.4多模块程序设计,.,39,3.4.1子程序、过程和函数1.子程序(1)子程序的结构在VisualFoxPro程序文件中,可以通过DO命令调用另一个程序文件,此时,被调用的程序文件就称为子程序。子程序的结构与一般的程序文件一样,而且也可以用MODIFYCOMMAND命令来建立、修改,其扩展名也默认为.prg。子程序和其他程序文件的唯一区别是子程序末尾或返回处必须有返回语句。命令格式:RETURNTOMASTER|TO|命令功能:将程序控制返回给调用程序。,3.4多模块程序设计,.,40,说明:若程序是被另一个程序调用的,遇到RETURN时,则自动返回到上级调用程序。如果是在最高一级主程序中,遇到RETURN时,则返回到命令窗口。选用TOMASTER选项时,则返回到最高一级调用程序,即在命令窗口下,调用的第一个主程序。在程序最后,如果省略RETURN命令,则程序执行完成后,将自动默认执行一个RETURN命令,但过程文件除外。执行RETURN命令时,释放本程序所建立的局部变量,恢复用PRIVATE隐藏起来的内存变量。TO表示将控制权交给指定的程序。RETURN表示将表达式的值返回调用程序,用于自定义函数。,3.4多模块程序设计,.,41,(2)子程序的调用子程序调用命令与主程序执行命令相同,其格式都为:DO|WITH其中,WITH选项指定传递到程序或过程的参数,在中列出的参数可以是表达式、内存变量、常量、字段名或用户自定义函数,各参数用逗号分隔。传递给一个程序的参数最多为24个。(3)子程序的嵌套调用主程序可以调用子程序,子程序还可以调用另外的子程序,这就是子程序的嵌套调用。实际上,子程序和主程序都是相对的,任何一个程序可以调用其它程序,也可以被其他程序调用。每个被调用程序的末尾或返回处都要加上RETURN命令。,3.4多模块程序设计,.,42,2.自定义函数前面已经介绍了许多VisualFoxPro的内部函数,除直接调用内部函数外,VisualFoxPro还允许用户根据需要自定义进行某种运算或操作的函数,这些函数被称为自定义函数。(1)自定义函数的结构一个自定义函数实际上就是一个子程序,唯一的差别是在RETURN语句后带有表达式,以指出函数的返回值。自定义函数的格式:FUNCTIONPARAMETERSRETURN,3.4多模块程序设计,.,43,说明:若不写FUNCTION选项,则表明该自定义函数是一个独立的程序文件。若写上该选项,则表明该自定义函数不能作为一个独立的程序文件,而只能放在某程序中。如果自定义函数名与VisualFoxPro的内部函数名相同,系统只承认内部函数,因此不能用内部函数名来命名自定义函数。若自定义函数中包含自变量,程序的第一行必须是参数定义命令PARAMETERS。充当传递数据的主程序中的内存变量称作实参变量(简称实参),子程序PARAMETERS中与之相对应的内存变量称形参变量(简称形参)。自定义函数除了可以作为一个函数被其它程序调用外,还可用DO的形式来执行,在这种情况下,它不是作为函数,而是作为程序或过程来运行,它的RETURN语句中的相应地不起作用。自定义函数的数据类型取决于RETURN语句中的数据类型。如果省略,则返回.T.。,3.4多模块程序设计,.,44,(2)自定义函数的调用自定义函数的调用格式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自愿协议范文5篇
- 新能源汽车轻量化零部件智能制造项目经济效益和社会效益分析报告
- 2025钢模板租赁协议全文版
- 2025年中国手持式奶泡器行业市场全景分析及前景机遇研判报告
- xx园区污水处理及管网配套工程社会稳定风险评估报告
- 2025企业租赁合同与法律适用管理资料
- 档案员基础试题及答案
- 银粉生产线项目施工方案
- 合同基础管理试题及答案
- 大学应用基础试题及答案
- 2025年9月江苏扬州市第二人民医院(苏北人民医院北区医院) 招聘备案制工作人员12人考试参考题库及答案解析
- 2025年修订《仲裁法》学习
- 患者走失应急演练脚本(2篇)
- 步进电机控制系统课件
- 2022年混凝土预制U型槽单元工程质量评定表
- 井喷及井喷失控案例教育
- 职业发展与就业创业指导ppt课件完整版
- 挠度计算模板表格(自动版)
- 宝钢集团生产安全事故案例汇编
- 为老年人更换纸尿裤评分标准
- 热力厂锅炉车间2#锅炉大修施工方案
评论
0/150
提交评论