vfp数据库及程序设计第6章程序设计及过程基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第6章程序设计及过程基础VisualFoxPro的工作方式VisualFoxPro系统提供有两种工作方式。1.单命令方式:在命令窗口发布命令,或者通过系统菜单进行操作,也叫交互式方式;2.批命令执行方式:把许多条指令汇集在一起生成一个文件(扩展名为.prg),称为程序设计或者自动运行方式。程序可以看成是多条命令按一定规则组织成的一个有机的序列。程序设计特点:(1)可以保存所执行的命令集合,及存储程序文件;(2)可以以多种方式重复执行;(3)便于设计应用软件。6.1程序和程序文件有关此VisualFoxPro程序的几点说明:1.注释语句【格式1】NOTE注释内容【格式2】*注释内容【格式3】&&注释内容【功能】增强程序文件的易读性或放弃注释内容中语句的执行2.对话开关语句【格式】SETTALKOFF|ON【功能】关闭或打开命令执行时的对话开关3.命令的分行VisualFoxPro程序是命令行的序列,每个命令都以回车键结束,一行只能写一条命令;可用续行符“;”,再按回车键。6.1.1基本说明6.1.2程序文件的建立、修改与执行1.建立或修改程序文件•命令方式MODIFYCOMMAND[盘符][路径]〈程序文件名〉或MODIFYFILE[盘符][路径]〈程序文件名〉必须输入后缀名.PRG菜单方式(1)打开“文件”菜单,选择“新建”;在“新建”窗口,选择“程序”,再选择“新建文件”;(2)项目管理器的“代码”选项卡。2.保存程序•程序输入、编辑完毕,单击【文件】|【保存】菜单项,或按Ctrl+W组合键,在另存为对话框中指定程序文件的存放位置和文件名,并单击保存按钮保存程序文件并退出文本编辑器。•程序文件的默认扩展名是.PRG。3.执行程序(1)工具栏方式当准备运行的程序窗口为活动窗口时,单击运行图标(2)菜单方式【程序】|【运行】(3)命令方式【格式】DO[盘符][路径\]文件名4.程序执行过程及结束条件•执行程序文件时,将依次执行文件中的命令,直到所有命令执行完毕•或者执行到以下命令:①CANCAL:终止程序运行,清除所有的私有变量,返回命令窗口;②DO:调用执行另一个程序③RETURN:结束程序执行,返回调用它的上级程序,若无上级程序则返回命令窗口;④QUIT:结束程序执行并退出VisualFoxPro系统,返回操作系统6.1.3程序设计的三个过程1.数据输入原始数据,可以从键盘输入,也可以从表中输入;当在程序中直接赋值的时候,改过程可以省略;2.计算处理根据解决的问题,用一种算法书写出所需要的语句。3.数据输出把计算的结果输出,一般是屏幕,也可以有其它方式的输出。6.1.4输入输出命令1.ACCEPT命令【格式】ACCEPT[提示信息]TO内存变量【功能】在程序执行过程中,将用户交互式输入的内容作为字符串赋值给指定内存变量。执行后暂停,等待用户从键盘输入一串字符,回车,将字符串赋给变量,程序继续向下执行。该命令只接受字符型数据,输入的字符串不需要加定界符。【例】编程从键盘输入某表的文件名,要求打开该表并显示其内容。SETTALKOFFCLEARACCEPT请输入表名TOBBBUSE&BBBLISTUSESETTALKONRETURN【例】编写程序,在JBQK表中查找并显示任意一个职工的情况。USEjbqkACCEPT请输入职工的姓名:TOXMLOCAFOR姓名=XM?职工+XM+的基本情况如下:?职工号:+编号?姓别:+性别?部门:+部门?出生日期:+DTOC(出生年月)use2.INPUT命令【格式】INPUT[提示信息]TO内存变量【功能】在程序执行过程中,将用户交互式输入的内容赋值给指定内存变量可以输入字符型、数值型、逻辑型、日期型和日期时间型等类型数据,而且可以是常量、变量、函数或表达式等形式,按回车键结束输入,系统将输入的数据赋值给内存变量。【例】写程序:从键盘输入两个任意整数,计算这两个数的和、差、积、商。CLEARINPUT请输入第一个数:TOAINPUT请输入第二个数:TOB?这两个数的和为:,A+B?这两个数的差为:,A-B?这两个数的积为:,A*B?这两个数的商为:,A/B【例】从键盘输入两个任意正数,编程求以两数为边长的长方形面积。程序文件名为PROG4.PRGSETTALKOFFCLEARINPUT长方形一边的长为:TOAINPUT长方形另一边的长为:TOBS=A*B?长方形的面积为:,SSETTALKONRETURN3.WAIT命令【格式】WAIT[提示信息][TO内存变量][WINDOW[AT行,列]][TIMEOUT数值表达式]【功能】显示提示信息,暂停程序执行,直到用户按任意键或单击鼠标时继续执行程序。该命令将输入单个字符若用户是按Enter键或单击鼠标,内存变量的值为空串。【例】在课程表中显示任意一门课程的情况。SETTALKOFFCLEARUSE课程WAIT请输入课程序号(1—5):TON;WINDOWSAT30,40TIMEOUT3IFVAL(N)1.OR.VAL(N)5WAIT输入无效,结束程序运行!WINDOWTIMEOUT5RETURNELSESTOREK0+NTOAAALISTFOR课程号=AAAENDIFUSESETTALKONRETURN4.三条输入命令的异同•ACCEPT命令只能接受字符型数据,不需定界符,输入完毕按回车键结束;•WAIT命令只能输入单个字符,且不需定界符,输入完毕不需按回车键;•INPUT命令可接受数值型、字符型、逻辑型、日期型和日期时间型数据,数据形式可以是常量、变量、函数和表达式,如果是字符串,需用定界符,输入完毕按回车键结束。5.格式化输入输出命令格式:@行,列[SAY表达式][FONT“字体”,字号][GET变量名][FONT“字体”,字号][DEFAULT表达式]功能:在屏幕指定行列输出表达式的值并修改内存变量的值。说明:1)行,列中行自上而下编号,列自左至右编号,编号从0开始,行列可以使用小数精确定位;2)省略SAY选项,GET变量值在行列指定位置开始显示,若选SAY选项,先显示表达式的值,然后再显示GET变量值;3)FONT选项设置表达式和内存变量的字体和字号;4)GET中的变量必须有初值或用[DEFAULT表达式]中的表达式命令定值;5)GET选项必须用READ命令激活。【例】查找学生成绩大于等于指定成绩的且数学大于等于指定分数的学生学号,姓名,入学成绩,数学成绩。clear@10,10say输入入学成绩:getrxcjdefault150read@10,10say输入数学分数:getsxfsdefault60read@10,10say入学成绩为+str(rxcj)+数学成绩为+str(sxfs)select学生.学号,学生.姓名,学生.入学成绩,学生成绩.数学;from学生,学生成绩where学生.入学成绩=rxcjand学生成绩.数学=sxfs;and学生.学号=学生成绩.学号return6.1.5计算机算法的概念•广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”;•对同一个问题,可以有不同的解题方法和步骤;•为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。计算机算法可分为两大类别:•数值运算算法:求数值解,例如求方程的根、求函数的定积分等。•非数值运算:包括的面十分广泛,最常见的是用于事务管理领域,例如图书检索、人事管理、行车调度管理等。S1:输入半径rS2:计算周长l=2*PI()*rS3:计算面积s=PI()*r*rS4S5:结束问题1输入半径r,输出圆的周长和面积?顺序结构是指在程序执行时,根据程序中语句的书写顺序依次执行的命令序列,从第一条语句开始执行到最后一条语句。VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句。S1:输入年份到变量y;S2:若y不能被4整除,则输出y“不是闰年”。然后转到S6;S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后转到S6;S4:若y能被400整除,输出y“是闰年”,然后转到S6;S5:输出y“不是闰年”;S6:结束问题2输入一个年份,判断这一年是否是闰年,并将结果输出。分析:闰年的条件是:(1)能被4整除,但不能被100整除的年份都是闰年,如1996,2004年是闰年;(2)能被400整除的年份是闰年。如1600,2000年是闰年。不符合这两个条件的年份不是闰年。以上算法中每做一步都分别分离出一些范围(已能判定为闰年或非闰年),逐步缩小范围,直至执行S5时,只可能是非闰年。“其它”包括能被4整除,又能被100整除,而不能被400整除的那些年份(如1900)是非闰年。在处理实际问题时,只有顺序结构是不够的,经常会遇到一些条件的判断,流程根据条件是否成立有不同的流向。这种先根据条件做出判断,再决定执行哪一种操作的结构称为分支结构,也称为选择结构。分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的诸多问题3求1×2×3×4×5的值,并输出出来。步骤1:先求1×2,得到结果2步骤2:将步骤1得到的乘积2再乘以3,得到结果6步骤3:将6再乘以4,得24步骤4:将24再乘以5,得120如果要求1×2×…×1000,则要写999个步骤S1:使p=1;S2:使i=2S3:使p×i,乘积仍放在变量p中,可表示为:p=p*i;S4:使i的值加1,即i=i+1S5:如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S5,否则,转S6;S6:结束,最后得到p的值就是5!的值。可以设两个变量:一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。设p为被乘数,i为乘数。用循环算法来求结果,算法可改写:用这种方法表示的算法具有通用性、灵活性。S3到S5组成一个循环,在实现算法时要反复多次执行S3,S4,S5等步骤,直到某一时刻,执行S5步骤时经过判断,乘数i已超过规定的数值而不返回S3步骤为止。此时算法结束,变量p的值就是所求结果。循环结构循环结构能够使某些语句或程序段重复执行若干次。即从某处开始,按照一定条件反复执行某一处理步骤,反复执行的处理步骤称为循环体。程序的基本结构1.顺序结构顺序结构是在程序执行时,根据程序中语句的书写顺序依次执行的命令序列。VisualFoxPro系统中的大多数命令都可以作为顺序结构中的语句。2.分支结构分支结构是在程序执行时,根据不同的条件,选择执行不同的程序语句,用来解决有选择、有转移的3.循环结构循环结构则能够使某些语句或程序段重复执行若干次。用流程图表示算法美国国家标准化协会ANSI(AmericanNationalStandardInstitute)规定了一些常用的流程图符号:起止框判断框处理框输入/输出框注释框流向线连接点•流程图是表示算法的较好的工具。一个流程图包括以下几部分:(1)表示相应操作的框;(2)带箭头的流程线;(3)框内外必要的文字说明。例将求5!的算法用流程图表示如果需要将最后结果打印出来,可在菱形框的下面加一个输出框。例判定2000~2500年中的每一年是否闰年,将结果输出用流程图表示算法要比用文字描述算法逻辑清晰、易于理解。三种基本结构的图示顺序结构选择结构当型(While型)循环结构直到型(Until型)循环三种基本结构的共同特点:(1)只有一个入口。(2)(3)结构内的每一部分都有机会被执行到。(4)结构内不存在“死循环”(无终止的循环)。图中没有一条从入口到出口的路径通过A框不正确的流程表示:流程内的死循环1.编写程序文件P1.PRG,运行程序,观察结果。要求程序完成以下步骤:(1)用SQL语句中CREATETABLE创建一个学生成绩表,其中包括如下字段:姓名C(8)、课程名C(10)、成绩N(3)(2)用SQL语句中INSERTINTO添加如下数

1 / 98
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功