VFB程序设计教程教学课件丶第七章.ppt_第1页
VFB程序设计教程教学课件丶第七章.ppt_第2页
VFB程序设计教程教学课件丶第七章.ppt_第3页
VFB程序设计教程教学课件丶第七章.ppt_第4页
VFB程序设计教程教学课件丶第七章.ppt_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章VisualFoxPro程序设计,7.1程序与程序文件,VisualFoxPro支持两种程序设计:结构化程序设计(面向过程的编程方式)面向对象的程序设计,7.1.1程序,1.程序的概念程序是命令的有序集合程序以文本文件的形式存储在磁盘上,称为程序文件程序文件的扩展名为.prg,2.程序方式与交互方式的区别程序可完成复杂的任务,命令只能完成简单任务命令不被保存,程序可长期保存并可多次修改和运行一个程序中可以调用其他程序,命令则不能,7.1.2程序文件的建立、编辑、保存和运行,1建立和编辑程序文件(1)命令方式格式:modifycommand说明:扩展名.prg可以省略,由系统自动添加。(2)菜单或工具栏方式,7.1.2程序文件的建立、编辑、保存和运行,2保存程序文件保存:菜单或工具栏按钮、关闭窗口、组合键【Ctrl+W】【ESC】或【Ctrl+Q】放弃当前修改,7.1.2程序文件的建立、编辑、保存和运行,3程序文件的运行(1)命令方式运行程序格式:DOWith说明:文件名可以是.prg文件,也可以是其他类型文件如:.exe、.mpr、.qpr,所以要加上扩展名。(2)菜单或工具栏方式运行程序,7.1.3程序中常出现的错误,遗漏关键字和变量之间的空格遗漏定界符,或定界符使用了中文标点符号关键字、变量名和文件名拼写错误内存变量没有初始化表达式和函数中的数据类型不匹配控制语句缺少结束语句控制语句嵌套错误,7.2程序中常用的命令,7.2.1基本输入命令,1Input命令格式:INPUT提示信息TO功能:从键盘上接收数据(可为任何类型)赋给内存变量说明:提示信息要使用定界符定界,提示信息可以省略不能不输入任何内容直接按回车键输入的字符数据需加定界符,输入日期数据时加大括号,输入逻辑值时加圆点定界符()。举例:inputtoAAinput请输入学生姓名:tonameinput请输入该生的出生日期:tobirthInput请输入该生的党员值:to党员,2Accept命令格式:ACCEPT提示信息TO功能字符串接收命令,仅从键盘上接收字符型数据并赋给内存变量。输入的字符串不加定界符,否则,系统会认为定界符也是输入字符串本身的一部分。如果想输入123,此时的123也是字符型数据不能用于计算。举例:accept请输入学生证号tonoaccepttoabaccept“请输入学生姓名toXM,3Wait命令格式:WAIT提示信息TOWindowTimeout功能:等待用户按键盘上任一个键。说明省略提示信息后,系统默认为提示“按任一键继续”。waittox用于保存用户按键的字符,可省略此项。如指定Window项,主窗口的右上角会出现一个Wait提示窗口,来显示提示信息,否则显示在屏幕工作中。如指定Timeout项,用于设定等待时间,Timeout为间隔秒数,一旦超时,系统自动往下执行。wait请输入一个字母tomwindowtimeout3,【例7-1】输入任意一个数据,判断该数的数据类型。程序如下:CLEARINPUT“请输入任意类型的一个数据”TOX?X,“的数据类型为:”,VARTYPE(X)第一次运行:请输入任意类型的一个数据:123第二次运行:请输入任意类型的一个数据:123第三次运行:请输入任意类型的一个数据:.T.第四次运行:请输入任意类型的一个数据:1991-05-03,【例7-2】查询学生表中某些学生的信息。程序如下:USE学生.DBFACCEPT请输入您要查询的学生姓名TONAMELOCATEFOR姓名=NAMEDISPWAIT“您还要查询其他内容?”WINDOWTIMEOUT5INPUT请输入您要查询的学生的身高TOHEIGHTLOCATEFOR身高=HEIGHTDISPUSERETURN,7.2.2基本输出命令,1表达式输出命令格式:?|?,功能:对一个或多个表达式求值,并将结果输出到系统主窗口上。说明:?:表达式的值换行显示;?:表达式的值不换行显示;?:单个?表示需要光标换行。举例:?3+4,date(),67use学生表?姓名,性别,出生日期?姓名,身高,体重,2文本输出命令格式:TextEndText功能:将文本信息输出在屏幕上。说明:Text和EndText必须成对出现。举例:text系统主菜单1.数据输入2.数据查询3.数据统计4.退出系统endtext,7.2.3定位输入输出命令,1定位输出命令格式:SAY功能:在屏幕指定位置输出表达式的值。说明:指定了输出的位置。标准屏幕是25行80列,左上角顶点为(0,0),右下角坐标为(24,79)。行、列都可以为表达式,还可为小数。举例:10,10sayhello!15,20sayhowareyou!20,35say大家好!,2定位输入命令格式:SAY(提示信息)GETREAD功能:在屏幕指定位置接收键盘输入的新值说明SAY子句:用于显示提示信息,提示信息加定界符GET子句:用于为显示变量的值,并允许输入新值GET子句中的变量必须有确定的初值初值决定了该变量的类型和宽度READ:使GET后的进入编辑状态;让光标自动跳到该变量值所在位置上等待编辑修改;可在多个定位输入命令后面使用一个read语句。,clearname=张晓磊grade=98.6birth=2002-09-07团员=.t.0,10saynamegetnameread1,10saygradegetgraderead2,10saybirthgetbirthread3,10say团员get团员read?name,grade,birth,团员,clearuse学生表go20,10say姓名:get姓名1,10say性别:get性别2,10say出生日期:get出生日期3,10say党员:get团员3,10say身高:get身高read,7.2.4清屏命令,格式:CLEAR功能:清除屏幕或窗口中的显示内容,光标回到屏幕左上角。,7.2.5终止程序执行和返回命令,1Cancel终止程序执行,关闭所有打开的程序,返回命令窗口。2Return结束当前程序执行,返回到调用它的上一级主程序,若无上级程序则返回命令窗口。3Quit退出VisualFoxpro系统。,7.2.6MessageBox()函数,1.语法格式:MESSAGEBOX(提示信息,对话框的属性,对话框窗口标题)2.功能:显示一个自定义的对话框。常用作提示之用,也可作一些简单的选择,比如“确定”、“取消”等3.举例:messagebox(请选择,32+3+0,测试)4.说明:(1)提示信息:对话框中所用到的提示文字。,(2)对话框的属性:MESSAGEBOX(提示信息,对话框的属性,对话框窗口标题)例如:messagebox(请选择,32+3+0,测试),设置图标,设置按钮属性,设置默认按钮,(3)对话框窗口标题MESSAGEBOX(提示信息,对话框的属性,对话框窗口标题)例如:messagebox(请选择,32+3+0,测试)(4)返回值:该函数执行后有返回值,类型为数值型n=messagebox(请选择,32+3+0,测试)?n,7.3程序的基本控制结构,程序的概念命令(或语句)的有序集合,以文件(.prg)形式存储一个程序一般包括三个部分:数据定义或输入部分数据处理部分数据输出部分程序的三种基本控制结构:顺序结构选择结构循环结构,7.3.1顺序结构,顺序结构程序的含义按语句排列的先后顺序,从上到下依次执行各语句。每个语句执行一次,且只执行一次。【例7-3】编程计算圆的周长和面积。ClearInput请输入圆的半径ToRPi=3.14L=2*PI*RS=PI*R*R?圆的周长为:,L?圆的面积为:,SReturn,输入半径R的值,定义圆周率变量pi,计算周长L和面积S,输出L和S的值,清屏幕,【例7-4】查询学生表中所有男同学和女同学的学生证号,姓名,性别和年龄,并分别显示男同学和女同学的信息。程序分析:clearuse学生表?男同学的信息disp学生证号,姓名,性别,;(year(date()-year(出生日期);for性别=男?女同学的信息disp学生证号,姓名,性别,;(year(date()-year(出生日期);for性别=女use,打开学生表,提示先显示男同学信息,逐页显示男同学信息,关闭打开的表,清屏幕,提示先显示女同学信息,逐页显示女同学信息,7.3.2选择结构,选择结构又称分支结构,它是在程序执行过程中,通过判断某些条件是否成立来控制程序走向的程序结构。分支程序结构的分类:单(向)分支双(向)分支多(向)分支,1单(向)分支,格式:IFENDIF功能:若成立,则执行;否则执行ENDIF后面的语句。说明:IF和ENDIF必须成对出现。是一个逻辑值表达式。可以是多条语句的集合。,clearinput请输入一个正整数toxifx0?输入的是正整数?x=,xendifreturn,【例7-5】判断一个数是正负、负数、还是零。程序分析:ClearInput请输入一个数toNIfN0?是正数。EndifIfN=0?是正数。Else?是负数。Endif?程序运行结束RETURN,是正数,N=0,否,是,是负数,输入一个数,程序运行结束,分支语句的嵌套IFIFELSEENDIFELSEIFENDIFENDIF,ClearInput请输入一个数toNIFN0?是正数。ELSEIFN=0?是零。ELSE?是负数。ENDIFENDIF?程序运行结束RETURN,ClearInput请输入一个数toNIFN=0IFN0?是正数。ELSE?是零。ENDIFELSE?是负数。ENDIF?程序运行结束RETURN,【例7-8】在学生表中根据所输入的姓名查找该学生记录程序分析:ClearUse学生表Accept请输入所要查找的姓名:TOXMLocateFor姓名=XMIfFound()DispELSE?”查无此人!”EndIfUseReturn,显示当前记录,找到?,否,是,显示查无此人,按XM查找记录,关闭表,打开学生表,输入要查找的姓名-XM,3多(向)分支,格式:DOCASECASECASECASEOTHERWISEENDCASE,【例7-9】根据所输入的日期判定今天是星期几。程序分析:输入日期INPUT根据日期判断星期几DOW(日期变量)程序结构分析:单分支双分支多分去,Input请输入今天日期:ToDIFDOW(D)=1?日期日ENDIFIFDOW(D)=2?日期一ENDIFIFDOW(D)=3?日期二ENDIFIFDOW(D)=4?日期三ENDIFIFDOW(D)=5?日期四ENDIFIFDOW(D)=6?日期五ENDIFIFDOW(D)=7?日期六ENDIF,【例7-9】根据所输入的日期判定今天是星期几。程序分析:输入日期INPUT根据日期判断星期几DOW(日期变量)程序结构分析:单分支双分支(嵌套)多分去,Input请输入今天日期:ToDIFDOW(D)=1?日期日ELSEIFDOW(D)=2?日期一ELSEIFDOW(D)=3?日期二ELSEIFDOW(D)=4?日期三ELSEIFDOW(D)=5?日期四ELSEIFDOW(D)=6?日期五ELSEIFDOW(D)=7?日期六ENDIFENDIFENDIFENDIFENDIFENDIFENDIF,【例7-9】根据所输入的日期判定今天是星期几。程序分析:输入日期INPUT根据日期判断星期几DOW(日期变量)程序结构分析:单分支双分支多分去,Input请输入今天日期:ToDDoCaseCaseDow(D)=1?“星期日”CaseDow(D)=2?“星期一”CaseDow(D)=3?“星期二”CaseDow(D)=4?“星期三”CaseDow(D)=5?“星期四”CaseDow(D)=6?“星期五”OTHERWISE?“星期六”EndCase,Accept请输入学生证号:ToXSZHUse成绩表LocateFor学生证号=XSZHDoCaseCase期末成绩=90?优秀Case期末成绩=80and期末成绩=70and期末成绩=60and期末成绩=69?及格Case期末成绩60?不及格EndCase,【例7-10】根据所输入的学生证号,,为成绩表中“期末成绩”字段的值判定等级。期末成绩在:90分以上的为优秀,80至89为良好,70至79为中等,60至69为及格,60以下为不及格。程序分析:学生证号的输入成绩的判断分支结构,7.3.3循环结构,循环结构(简称循环):程序中,根据某些条件有规律地重复执行某程序段被重复执行的程序段,称为循环体循环体通过循环结构语句来实现循环循环结构可以减少程序代码重复书写的工作量,使编程效率大大提高,VFP的循环结构语句主要三种当型循环步长型循环表扫描型循环,命令格式1DOWHILE循环体语句ENDDO,1当型循环(DOWHILEENDDO),语句功能:(1)判断是否为真(.T.),是真执行循环体语句,否则执行ENDDO后面语句(2)执行DOWHILE和ENDDO之间的命令序列(循环体)(3)遇到ENDDO,转(1)(4)结束循环,转到ENDDO后面的语句。,【例7-11】输出至100之间所有能被3整除的数。ClearY=1DoWhileY=100Ifmod(Y,3)=0?YEndIfY=Y+1EndDoRETURN,显示y值,y0Input请输入圆的半径:ToRifR=0loopendifL=2*3.14*RS=3.14*R*R?圆的周长为:,L?圆的面积为:,Senddo,Cleardowhile.T.Input请输入圆的半径:ToRifR岗位工资,GZ-科研津贴LISTOFF姓名,性别,职称,岗位FOR岗位=GWENDIF*FOUND*INPUT是否继续?TOUPPER(AN)ENDDO?再见!SETTALKON,答案:=(答案1)=SETRELATO雇员号INTOGZ=或=SETRELATO雇员号INTOA=(答案2)=LOCAFOR岗位=GW=(答案3)=WAIT是否继续?TOAN=或=ACCE是否继续?TOAN,程序设计,*-*【程序设计】*-*题目:设表RSDA.DBF结构为:学号(C,5),姓名(C,6),*职称(C,6)统计出RSDA.DBF表中职称为工程师的*人数。(利用DOWHILEENDDO循环语句实现)。*将人数存入变量Y中*请按照题目要求,在下面编写程序代码。*-SETTAL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论