VFP常见编程实例(免费下载)

合集下载

vfp程序示例

vfp程序示例

【例1】计算连续自然数之和,并且显示和刚大于1000的最后一个自然数。

STORE 0 TO AA,BBDO WHILE AA<=1000BB=BB+1AA=AA+BBENDDO? BB结果显示为45。

【例2】求连续N个不是7的倍数的自然数之和,当和是101的倍数时显示最后的自然数和它们的和。

STORE 0 TO AA,BB &&定义二个变量,用以保存累加值和累加数DO WHILE .T.BB=BB+1IF MOD(BB,7)=0 &&判断BB是否为7的倍数LOOP &&如果BB是7的倍数则返回去将BB再加1 ENDIFAA=AA+BB &&将BB不是7的倍数的连续自然数累加求和 IF MOD(AA,101)=0 &&判断AA是否是101的倍数 EXIT &&如果AA是101的倍数,则结束程序的循环ENDIFENDDO? BB,AA屏幕显示结果为207和18483。

【例3】求1到100中偶数的和AA=0FOR II=2 TO 100 STEP 2AA=AA+IIENDFOR? AA【例4】逐条显示STUDENT表中男生的情况。

USE STUDENTSCAN FOR 性别=”男”DISPWAITENDSCANUSE或USE STUDENTSCANIF 性别#”男”LOOPENDIFDISPWAITENDSCANUSE【例5】计算圆面积的主程序为MYMAIN.PRG,子程序为MYSUB.PRG *MYMAIN.PRGCLEARSTORE 0 TO RR, AREADO WHILE .T.INPUT " 请输入圆的半径:" TO RRDO MYSUB WITH RR, AREA? "半径为"+ALLTRIM(STR(RR))+"的圆的面积是:", AREAWAIT "还要继续计算吗(Y/N)?" TO ANSWERIF UPPER(ANSWER)="Y"LOOPELSEEXITENDIFENDDO*MYSUB.PRGPROCEDURE MYSUBPARAMETERS R,SS=PI()*R^2RETURN【例6】程序中常用到计算圆面积、长方形面积、阶乘等,现将它们编为三个过程,放在一个过程文件(MYPROCED.PRG)中,被主程序MYMAIN.PRG调用。

VFP编程

VFP编程

1、完成下列分段函数的计算,程序运行时用户从键盘输入一个数值x,在屏幕上输出y的值。

y=x*x (x>0);y=0 (x=0);y=-x*x (x<0).set talk offclearinput "请输入x的值:" to xdo casecase x>0y=x*xcase x==0y=0otherwisey=-x*xendcase?"y=",yreturn2.通过键盘输入一串字符,统计并输出其中英文字母的个数。

set talk offsume=0input"请输入字符串:" to xy=len(x)for i=1 to yt=substr(x,i,1)if t>'a'.and.t<'z'.or.t>'A'.and.t<'Z'sume=sume+1endifendfor?"英文字符个数为:",sumereturn3、已有按从小到大顺序排列的10个数,现输入一个数,要求插入到数列中。

插入后数列仍然按从小到大排列。

set talk offcleardecl a(11)a(1)=1for i=2 to 10a(i)=a(i-1)+3endforinput"请输入要插入的数据:"to xfor i=10 to 1 step -1if x<a(i)a(i+1)=a(i)elseexitendifendfora(i+1)=x?for i=1 to 11??a(i)," "endforreturn第二种算法:我的算法是先定义一个11个元素的数组并把先读入的10个数存入1--10下标的数组变量中。

当读入k时比较k与每一个数的大小,k>a[i]则a[i]前移一个下标,相反则k存入a[i-1](a[0]的作用就是保证下标前移时保证数组不会越界)下面是代码:#include <iostream>using namespace std;void main(){int a[11],i,j,t,k;for(i=1;i<11;i++) //以a[1]开始存储第一个元素,存十个数直到数组下标为11.再以冒泡法排序{cout<<"请输入数据组中的第"<<i<<"个数据"<<endl;cin>>a[i];}for(i=1;i<10;i++)for(j=1;j<11-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}cout<<"下面是排序后的数组"<<endl; //数的输出每四个数输出为一行for(i=1;i<11;i++){cout.width(4);cout<<a[i];if(i%4==0)cout<<endl;}cout<<endl;cout<<"请输入要插入的数K:"<<endl;cin>>k;for(i=1;i<11;i++)/*从第一个数a[1]开始啊a[i]与k比较大小,若k大则a[i]向前移一个数(若a[1]要前移则移到a[0]),若k小则k存在a[i]前一个数中*/{if(a[i]<k)a[i-1]=a[i];else{a[i-1]=k;break;}}if(i==11)a[10]=k; //循环的跳出可能是i=11时(当k大于a[10]时),则需要对a[11]另赋值kcout<<"插入K后的数组是:"<<endl;for(i=0;i<11;i++){cout.width(4);cout<<a[i];if((i+1)%4==0)cout<<endl;}cout<<endl;}1、某店开展优惠活动,收费方法如下(x表示原价,y表示实际收费):y=0.9x(x<=100);y=0.8x(100<x<=500);y=0.7x(x>500),试编写程序,要求从键盘输入x,计算输出y。

管理数据库VFP常见编程实例

管理数据库VFP常见编程实例

程序设计实例(一)建立//编辑自由表结构(1)表设计器:(2)命令(3)SQL(二)自由表_ 添加新记录(1)输入框(2)程序*.prg(3)表单*.scx录入李国防同学的信息05001 李国防男05/12/87 营销学598 营销在[E:\ vfp实验] 文件夹中保存一份王码个人简历“李国防简历.txt”文档和一张李国防个人相片“李国防.bmp”。

员工(员工编号 C(4),姓名 C(8),性别 C(2),出生日期 D(8),职务 C(10),工资 N(7,2),简历 M(4),相片 G(4))准备建立一张“员工.dbf”一建立表单1建立form,标签,文本框,单选钮组,组合框,微调框,编辑框,图象框命令按钮2属性设置*.caption=Combo1捆绑数据列表(经理、班长、销售员) 二建立数据环境添加“员工.dbf”三对象事件过程[form_load]:定义公共变量[浏览]:选择员工的相片[添加]:选择当前表“员工.dbf”, 数组元素接收各控件的当前值将数组写入员工.dbf表尾记录[取消]:清除各控件值[退出]:释放表单四运行[form_load]:定义公共变量public p,public array a(7)p=“”[浏览]:选择员工的相片p=getpict()"&p"[添加]:接收各控件的当前值,然后将数组写入员工.dbf表尾记录a(1)=a(2)=Ifa(3)="男"elsea(3)="女"endifcsrq="{^"+"}"a(4)=&csrqa(5)=a(6)= a(7)=select 员工Append from array a fields 员工编号,姓名,性别,出生日期,职务,工资if empty(replace 简历 with a(7) addiendifif empty(p)=.f.append gene 相片 from "&p"endif[取消]:清除各控件值""""""""""P=“”[退出]:释放表单thisform.release(三)记录数据的计算(1)命令:(2)prg程序(3)表单*.scx在VFP系统的默认文件夹中有数据“表”如图,要求统计并显示男同学的人数、总分、平均入学成绩。

管理数据库VFP常见编程实例

管理数据库VFP常见编程实例

程序设计实例(一)建立//编辑自由表结构(1)表设计器:(2)命令(3)SQL(二)自由表_ 添加新记录(1)输入框(2)程序*.prg(3)表单*.scx录入李国防同学的信息05001 李国防男05/12/87 营销学598 营销在[E:\ vfp实验] 文件夹中保存一份王码个人简历“李国防简历.txt”文档和一张李国防个人相片“李国防.bmp”。

员工(员工编号 C(4),姓名 C(8),性别 C(2),出生日期 D(8),职务 C(10),工资 N(7,2),简历 M(4),相片 G(4))准备建立一张“员工.dbf”一建立表单1建立form,标签,文本框,单选钮组,组合框,微调框,编辑框,图象框命令按钮2属性设置*.caption=Combo1捆绑数据列表(经理、班长、销售员) 二建立数据环境添加“员工.dbf”三对象事件过程[form_load]:定义公共变量[浏览]:选择员工的相片[添加]:选择当前表“员工.dbf”, 数组元素接收各控件的当前值将数组写入员工.dbf表尾记录[取消]:清除各控件值[退出]:释放表单四运行[form_load]:定义公共变量public p,public array a(7)p=“”[浏览]:选择员工的相片p=getpict()"&p"[添加]:接收各控件的当前值,然后将数组写入员工.dbf表尾记录a(1)=a(2)=Ifa(3)="男"elsea(3)="女"endifcsrq="{^"+"}"a(4)=&csrqa(5)=a(6)= a(7)=select 员工Append from array a fields 员工编号,姓名,性别,出生日期,职务,工资if empty(replace 简历 with a(7) addiendifif empty(p)=.f.append gene 相片 from "&p"endif[取消]:清除各控件值""""""""""P=“”[退出]:释放表单thisform.release(三)记录数据的计算(1)命令:(2)prg程序(3)表单*.scx在VFP系统的默认文件夹中有数据“表”如图,要求统计并显示男同学的人数、总分、平均入学成绩。

vfp最常用代码

vfp最常用代码

登陆界面确认:if ER.value=alltrim(用户表.用户名).and.thisform.PASSWORD.value=alltrim(用户表.密码)do form 主界面.scxrelease thisformelse=messagebox("对不起,用户名或密码错误!",0+56+0,"用户名+密码错误")ER.value=""thisform.PASSWORD.value=""ER.setfocusendif退出:RELEASE THISFORM主程序代码set fweek to 1set mark to '.'set separator to','set point to '.'set talk offset safety offpublic xtbtxtbt="学生信息管理系统"_screen.caption =xtbt_screen.picture="Home.jpg"do form 系统主页release window 常用read events修改密码中确认修改LOCAL jjjj=0for i=1 to 3s="text"+alltrim(str(i))d="label"+alltrim(str(i))if empty(thisform.&s..value)messagebox(thisform.&d..caption+"不能为空",64,"系统提示")thisform.&s..setfocusELSEIF s="text3"jj=1ENDIFENDIFENDFORIF jj=1select 用户表GO toplocate for alltrim(thisform.text1.value)=alltrim(用户名)if found()if alltrim(thisform.text2.value)=alltrim(thisform.text3.value)replace 密码with ALLTRIM(thisform.text2.Value)MESSAGEBOX("密码修改成功",64,"系统提示")thisform.text1.Value=""thisform.text2.Value=""thisform.text3.Value=""thisform.text1.SetFocusELSEMESSAGEBOX("两次输入密码不一致,请重新输入",48,"系统提示")thisform.text2.Value=""thisform.text3.Value=""thisform.text2.SetFocusENDIFELSEMESSAGEBOX("用户名"+ALLTRIM(thisform.text1.Value)+"不存在,请确认重新输入",48,"系统提示")thisform.text1.setfocusthisform.text1.SelStart=0thisform.text1.SelLength=LEN(ALLTRIM(thisform.text1.Value))thisform.text2.Value=""thisform.text3.Value=""ENDIFENDIF返回do form 功能选项.scxrelease thisform运动的时间代码bel1.Caption = TtoC(datetime())数据维护首记录go topthisform.refresh上一个skip-1if bof()messagebox("hehe,已到文件头",48)endifthisform.refresh下一个skip+1if eof()messagebox("hehe,已到文件尾",48)endifthisform.refresh未记录go bottomthisform.refresh增加append blankgo bottomthisform.refresh删除if messagebox("确实要删除吗?",1,"提示!")=1 deletepackendifthisform.refresh关闭release thisform预订信息查询locate all for bo1.value=预定表.客户中文名thisform.text1.value=预定表.预订名称thisform.text2.value=预定表.性别thisform.text3.value=预定表.住客籍贯thisform.text4.value=预定表.预定时间thisform.text5.value=预定表.房间类型thisform.text6.value=预定表.入住时间thisform.text7.value=预定表.离开时间thisform.text8.value=预定表.预订数量thisform.text9.value=预定表.住客总人数thisform.text10.value=预定表.确认方式thisform.text11.value=预定表.预付方式thisform.text12.value=预定信息表.预付款thisform.text13.value=预定信息表.应付款thisform.text14.value=预定信息表.差额thisform.text15.value=预定表.联系方式房间信息查询locate all for bo1.value=房间信息表.房间号thisform.text1.value=房间信息表.房间号thisform.text2.value=房间信息表.房间类型thisform.text3.value=房间信息表.单价你要做什么入住do form 登记表单.scxrelease thisform预定do form 预定表单.scxrelease thisform退出do form 主界面.scxrelease thisformtime1i=int(rand()*255)j=int(rand()*255)k=int(rand()*255)bel1.forecolor=rgb(i,j,k)2if bel1.left+bel1.width>432 thisform.timer2.enabled=.f.thisform.timer3.enabled=.t.elsebel1.left=bel1.left+2 endif3if bel1.left<12thisform.timer3.enabled=.f.thisform.timer2.enabled=.t.elsebel1.left=bel1.left-2 endifi=int(rand()*255)j=int(rand()*255)k=int(rand()*255)bel1.forecolor=rgb(i,j,k)bel17.forecolor=rgb(i,j,k) bel18.forecolor=rgb(i,j,k) bel19.forecolor=rgb(i,j,k) bel20.forecolor=rgb(i,j,k) bel21.forecolor=rgb(i,j,k)i=int(rand()*255)j=int(rand()*255)k=int(rand()*255)bel1.forecolor=rgb(i,j,k)用两个时间控制一个字bel2.forecolor=rgb(255,0,0)bel2.forecolor=rgb(0,0,255)向下移动i=i+1if bel1. left+100>860bel1. left=100bel1 .top=100elsebel1. left=thisform .label1 .left+20 bel1.top=bel1.top+20endifif alltrim (thisform.text1.value)=="张三"if thisform.text2.value="123456"bel4.caption="欢迎使用该系统"elsebel4.caption="用户名或密码有误" endifendif放大字体bel2.fontsize=bel2.fontsize+2 变红bel2.forecolor=RGB(255,0,0)注册locate all for alltrim(Mima.Yhm)=alltrim(thisform.text1.text) close allquit。

VFP趣味编程

VFP趣味编程

(一)古代一个王国的公主爱上了花匠。

公主要出嫁按传统要用抛绣球的方式选择附马。

花匠就给公主献了个对策。

婚日来临,人群拥挤,主持人叫求婚者排成一行,花匠在队列外数了数,共有101个人,于是他找了个适当的位置也站在了队伍中。

主持人喊1、2,1、2地报数,报单数的退出场外;余下的人靠拢又成一行,再重新1、2,1、2地报数,报单数的退出场外;如此下去最后只剩一下,公主便嫁给谁。

当然,最后剩下的是花匠。

请问花匠站在原队伍中的哪一个位置?算法分析:求婚的总人数是102人;第一遍报数后,退出场的是1,3,5,7...共51人,也就是2的0次方分别乘以1,3,5...;第二遍报数后,退出场的是原队伍中的2,6,10.. 即2的1次方分别乘1,3,5;第三遍报数后,退出场的就是2的2次方分别乘以1,3,5.. 所以,源程序ex11_1.prg如下:SET TALK OFFCLEACLEA ALLrs=102DIME a(rs)FOR i=1 TO rsa(i)=iENDFORSTOR 0 TO ip,NDO WHILE .T.k=0FOR i=1 TO rsIF a(i)=0LOOPENDIFk=k+1IF k=INT(k/2)*2LOOPENDIFm=a(i)a(i)=0N=N+1ENDFORIF N=rs? "共报了"+STR(ip)+ ;"次数,花匠站在原队伍第"+ ;STR(m)+"个位置"RETUENDIFip=ip+1ENDDORETU(二)任意一个大于10的自然数,减去它的各位数之和,在所得的差中,随意圈去某位不等于零的数字,只告诉你没有被圈去的数字,就能知道被圈去数字是几。

分析:以四位数为例,设四位数abcd用多项式来表示为1000a+100b+10c+d;减去各位数之和,即减去a+b+c+d;所得的差是999a+99b+9c=9(111a+11b+c),所以这个差一定是9的倍数。

VFP常见编程实例(免费下载)

VFP常见编程实例(免费下载)

VFP常见编程实例1、1-100的累加** 求1到100的累加值CLEARs=0i=1DO WHILE i<=100s=s+ii=i+1 &&一定记住先累加后循环ENDDOsRETURN2、阶乘** 求5的阶乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDOjRETURN3、求阶乘和** 求1至5的阶乘和CLEARs=0i=1j=1DO WHILE i<=5j=j*is=s+ji=i+1ENDDOsRETURN4、条件定位** 查询定位记录指针在赵伟上CLEARUSE 学生LOCATE FOR 姓名="赵伟"IF FOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位** 用scan语句查询定位记录在赵伟上CLEARSCAN FOR 姓名="赵伟"DISPLAYENDSCANRETURN6、用scan语句扫描符合条件的记录,并显示出来** 把年龄小于30岁的人显示出来SCAN FOR 年龄<30 DISPLAYENDSCANRETURN7、查找男性职工** 查找男性职工CLEARLOCATE FOR 性别="男" DO WHILE FOUND()DISPLAYCONTINUEENDDORETURN** 查找男性职工CLEARLOCATE FOR 性别="男" DO WHILE NOT EOF() DISPLAYCONTINUERETURN** 查找男性职工CLEARUSE 职员基本信息表LOCATE FOR 性别="男"DO WHILE .t.IF FOUND() thenDISPLAYELSE &&记住最后一个ELSE语句后面不需要条件表达式 CANCELENDIFCONTINUEENDDO** 查找男性职工set talk offclearopen database 家庭成员管理.dbcuse stu.dbfscan for not eof()if xb="女"skipelsedisplayskipendifendscanclose databaseuseset talk onreturn8、新值换旧值** 有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?clearstore 1 to a,bi=3do while i<=12c=a+ba=bb=ci=i+1enddo"一年共出生兔子:",creturn9、多位整数各个位数相加** 求多位整数各个位数之和CLEARs=0input "请输入一个多位整数:" to aDO WHILE a<>0s=s+MOD(a,10) &&将a取余正好是个位上的数a=INT(a/10) &&将a除10取整正好是除个位之后的数ENDDO"这个整数的各个位数之和是:",sRETURN10、找100-999之间的“水仙花数”CLEARFOR i=100 TO 999a=INT(i/100)b=INT((i-100*a)/10)c=i-INT(i/10)*10IF i=a^3+b^3+c^3iENDIFENDFORRETURN11、判断一个大于3的数是否为素数CLEARinput "请输入一个数(>=3):" to s f=0i=2DO WHILE i<=INT(SQRT(s))IF MOD(s,i)<>0i=i+1LOOPELSEf=1EXITENDIFENDDOIF f=0str(s,3)+"是素数"ELSE f=1 &&这个表达式可有可无,为了省事完全省略也可以。

Vfp常用实例

Vfp常用实例

Vfp常用实例◆文字滚动的效果在表单添加一个计时器,把计时器INTERV AL设为30如要走动的文字在标签1也就是LABLE1,在计时器的timer里写下如果代码:if bel1.left+bel1.width=0bel1.left=thisform.widthelsebel1.left=bel1.left-1endif此时,LABLE1的文字将从右到左不停的走动,这时,如果要加一些效果,比如说是文字让它变颜色,一直闪烁的话。

可以再加“文字闪烁的效果”里的代码,两者结合,效果很好。

◆文字闪烁的效果假设要闪烁的标签文字在Label1上。

在表单添加一个计时器设Interval的值为30。

在表单的Alwaysontop也就是表单属性的第一个值里声明变量,代码为:Public II=0在计时器Timer1的Timer写下代码i=i+10if i>=255*2thisform.timer1.enabled=.t.i=0endifif i>=255bel1.forecolor=RGB(255*2-i,50,110)elsebel1.forecolor=RGB(i,80,170)endif打开表单,就会出现文字闪烁了,如果你有兴趣,试试看◆密码的设置在表单中添加两个文本框,text1为用户名;text2为密码,添加两个命令按钮,设为确定和取消,数据表的结构两个字段:(name *用于存放用户名)和(mm *用于存放密码)在确定按钮的click事件写入if thisform.text1.value="".or.thisform.text2.value=""=messagebox ("用户名或密码不能为空!",0+48,"警告!")elsesele 1use shujubiao\yonfu.dbfif name=allt(thisform.text1.value).and.mm=all(thisform.text2.value)usethisform.text1.value=" "thisform.text2.value=" "wait"登陆成功,正在加载数据,等稍等" time 2 windowsthisform.visible=.f.thisform.releaseclose alldo form zym.scx *写入您要执行的表单elseusemessagebox("用户名或密码错误,请重新输入!",0+48,"警告!")thisform.text1.value=" "thisform.text2.value=" "endifendif在取消按钮的click写入close allthisform.release确记啊,不能把“确定”按钮设为Enter的模式,如果设定后,启动表单时,可是不用输入密码直接按确定就可以进入了。

vfp常见20道编程题

vfp常见20道编程题

vfp常见20道编程题VFP常见20道编程题1、求解AX^2 BX C=0的根、其中A、B、C三个参数由键盘输入。

一元二次方程的求根公式是:X=-b±√b2-4ac/2acleartext一元二次方程求解ax^2 +bx+ c=0endtextinput '请输入a的值:' to ainput '请输入b的值:' to binput '请输入c的值:' to cm=b*b-4*a*cif m>=0x1=(-b sqrt(m))/(2*a)x2=(-b-sqrt(m))/(2*a)'x1的值是:',x1'x2的值是:',x2else'此方程无实根!'endif2、编写程序将1-100之间所有能被7和3整除的整数输出clearfor i=1 to 100if i%3=0 and i%7=0iendifendfor3、编写程序计算e,e的近似值计算公式为:e=1 1/1! 1/2! 1/3! ... 1/n!,直到1/n!<0.000001为止e=1n=1do while .t.k=1for i=1 to nk=k*iendform=1/ke=e mif m<0.000001exitendifn=n 1enddo'e=1 1/1! 1/2! 1/3! … 1/n!=',e4、编写程序,计算1!2!3! .......N!=?clearinput '请输入n的值:' to ns=0t=1for i=1 to nt=t*is=s tendfor'1!2!3! .......N!=',s5、从键盘输入十个数,将它们进行降序排列。

clear dime a(10)for i=1 to 10input '请输入一个数:' to a(i)'降序排列为:'for i=1 to 9for j=i 1 to 10if a(i)<a(j)< p="">k=a(i)a(i)=a(j)a(j)=kendifendforalltrim(str(a(i))) ' 'endforalltrim(str(a(i)))6、(1)输出有*号组成的图形:*************************clearfor i=-3 to 3space(abs(i))for j=1 to 7-abs(i)*2 ??'*' endforendfor(2)********************clearfor i=1 to 5space(5-i)for j=1 to 2*i-1 ??'*'endforendfor7、编写一个程序产生一个有20项的Fibonacci数列并输出。

1-精选VFP常见编程实例-答案

1-精选VFP常见编程实例-答案

精选VFP常见编程实例-答案1、1-100的累加求1到100的累加值CLEARs=0i=1DO WHILE i<=100s=s+ii=i+1 &&一定记住先累加后循环ENDDOsRETURN2、阶乘求5的阶乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDOjRETURN3、求阶乘和求1至5的阶乘和CLEARs=0i=1j=1DO WHILE i<=5j=j*is=s+ji=i+1ENDDOsRETURN4、条件定位查询定位记录指针在赵伟上CLEARUSE 学生LOCATE FOR 姓名="赵伟"IF FOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位用scan语句查询定位记录在赵伟上CLEARSCAN FOR 姓名="赵伟"DISPLAYENDSCANRETURN6、用scan语句扫描符合条件的记录,并显示出来把年龄小于30岁的人显示出来CLEARSCAN FOR 年龄<30DISPLAYENDSCANRETURN7、查找男性职工查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE FOUND()DISPLAYCONTINUEENDDORETURN查找男性职工CLEARLOCATE FOR 性别="男"DO WHILE NOT EOF()DISPLAYCONTINUEENDDORETURN查找男性职工CLEARUSE 职员基本信息表LOCATE FOR 性别="男"DO WHILE .t.IF FOUND() thenDISPLAYELSE&&记住最后一个ELSE语句后面不需要条件表达式CANCELENDIFCONTINUEENDDO查找男性职工set talk offclearopen database 家庭成员管理.dbcuse stu.dbfscan for not eof()if xb="女"skipelsedisplayskipendifendscanclose databaseuseset talk onreturn8、新值换旧值有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?clearstore 1 to a,bi=3do while i<=12c=a+ba=bb=ci=i+1enddo"一年共出生兔子:",creturn9、多位整数各个位数相加CLEARs=0input "请输入一个多位整数:" to aDO WHILE a<>0s=s+MOD(a,10) &&将a取余正好是个位上的数a=INT(a/10) &&将a除10取整正好是除个位之后的数ENDDO"这个整数的各个位数之和是:",sRETURN10、找100-999之间的“水仙花数”CLEARFOR i=100 TO 999a=INT(i/100)b=INT((i-100*a)/10)c=i-INT(i/10)*10IF i=a^3+b^3+c^3?iENDIFENDFORRETURN11、判断一个大于3的数是否为素数CLEARinput "请输入一个数(>=3):" to sf=0i=2DO WHILE i<=INT(SQRT(s))IF MOD(s,i)<>0i=i+1LOOPELSEf=1EXITENDIFENDDOIF f=0?str(s,3)+"是素数"ELSE f=1&&这个表达式可有可无,为了省事完全省略也可以。

Visual Foxpro编程实例

Visual Foxpro编程实例

实验五 Visual Foxpro编程实践一. 实验目的与要求掌握利用Visual Foxpro编制开发自己的应用程序的实践知识,并学会在程序调试中自行发现问题和修改程序代码,最终完成应用程序的无错运行。

二. 相关知识利用Visual Foxpro自行开发编制应用程序的步骤:1.设置好系统的工作环境(尤其注意工作目录的默认设置)。

2.如果是初次进行,应当先建立一个项目,为该项目命名,激活项目管理器。

如果是接着上次的工作进行,则打开上次工作的本项目,同样也激活项目管理器。

3.在项目管理器的“数据”→“数据库”下面创建一个数据库,并命名(如已创建,则跳过本步骤)。

4.在项目管理器的“数据”→“数据库”→“表”下面进行数据表的创建或修改工作,并输入少量的正确数据以便将来的运行调试(如果已经创建了数据表,则跳过本步骤)。

5.在项目管理器的“文档”下面创建该应用程序所用到的所有表单,设计好各表单的界面并为表单里的控件填写程序代码.(注意为表单添加各自的数据环境,否则会出错!)6.试运行各表单,发现问题后重新修改有问题的表单的代码,反复调试和修改直至最后能无错运行。

7.将应用程序打包发布或制作成安装文件。

三. 实验内容与步骤本次实验以一个简单的学生成绩管理系统为例。

首先,对该系统作一个简单的介绍:该应用系统为完成学生信息和成绩的管理系统,主要有以下几个应用模块:(1)用户登录管理:系统具有管理员功能,只有取得管理员权限的人才能使用本系统。

(2)数据添加功能:对学生基本信息、教师基本信息、班级信息、课程信息、学生成绩信息进行添加录入。

(3)数据查询功能:对上述信息的基本查询。

(4)数据修改功能:对上述信息可进行修改工作。

(5)统计操作:可分别按个人成绩、单科成绩统计出最高成绩、最低成绩和平均成绩等。

(6)打印功能:对上述信息可进行打印。

实验步骤如下:1.数据库设计:首先设置好系统的运行环境和工作目录,然后建立项目,为项目命名为“学生成绩管理系统”,激活项目管理器,并在在项目管理器的“数据”→“数据库”下面创建一个数据库,命名为“学生成绩管理”,在“数据库”的“表”下面创建以下各数据表:(3)教师信息表 teacher创建好以上数据表以后,应该向每个表中添加适量合法数据以便后面的测试。

VFP程序设计典型例题汇总

VFP程序设计典型例题汇总

Visual FxoPro程序设计题1.编写程序,从键盘输入一个日期,查询STUDENT表中该日期以后出生的学生信息并显示在浏览窗口中。

use student &&运行前单击教学管理数据库input “请输入某日期:” to r q*输入时有提示,或input to rq输入时无提示,输{^1987-01-01} browse for 出生日期>rq2.有一函数:x (x<1)y= 2x-1 (1≤x<10)3x-11 (x≥10)编写程序,输入x,输出y的值。

clearinput "Enter x please!" to xif x<1y=xelseif x<10y=2*x-1elsey=3*x-11endifendif? 'x=',x,'y=',y3.编写程序,从键盘输入一个年份,判断它是否闰年。

clearinput "Enter year number please!" to yif y%4=0 and y%100<>0 or y%400=0? y,"is a leap year!"else? y,"is not leap year."Endif4.编写程序,输入一个百分制成绩,要求输出成绩等级“A”、“B”、“C”、“D”、“E”。

90分以上为“A”,80~89分为“B”,70~79分为“C”,60~69分为“D”,60分以下为“E”。

clearinput “请输入一百分制成绩” to cjdo casecase cj>=90?” A”case cj>=80?” B”case cj>=70?” C”case cj>=60?” D”otherwise?” E”endcase5.编写程序,从键盘输入一个正整数M,输出M内(包括M)所有偶数。

2019年foxpro编程范例-推荐word版 (12页)

2019年foxpro编程范例-推荐word版 (12页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==foxpro编程范例篇一:Visual Foxpro编程实例实验五 Visual Foxpro编程实践一. 实验目的与要求掌握利用Visual Foxpro编制开发自己的应用程序的实践知识,并学会在程序调试中自行发现问题和修改程序代码,最终完成应用程序的无错运行。

二. 相关知识利用Visual Foxpro自行开发编制应用程序的步骤:1.设置好系统的工作环境(尤其注意工作目录的默认设置)。

2.如果是初次进行,应当先建立一个项目,为该项目命名,激活项目管理器。

如果是接着上次的工作进行,则打开上次工作的本项目,同样也激活项目管理器。

3.在项目管理器的“数据”?“数据库”下面创建一个数据库,并命名(如已创建,则跳过本步骤)。

4.在项目管理器的“数据”?“数据库”?“表”下面进行数据表的创建或修改工作,并输入少量的正确数据以便将来的运行调试(如果已经创建了数据表,则跳过本步骤)。

5.在项目管理器的“文档”下面创建该应用程序所用到的所有表单,设计好各表单的界面并为表单里的控件填写程序代码.(注意为表单添加各自的数据环境,否则会出错!) 6.试运行各表单,发现问题后重新修改有问题的表单的代码,反复调试和修改直至最后能无错运行。

7.将应用程序打包发布或制作成安装文件。

三. 实验内容与步骤本次实验以一个简单的学生成绩管理系统为例。

首先,对该系统作一个简单的介绍:该应用系统为完成学生信息和成绩的管理系统,主要有以下几个应用模块: (1) 用户登录管理:系统具有管理员功能,只有取得管理员权限的人才能使用本系统。

(2) 数据添加功能:对学生基本信息、教师基本信息、班级信息、课程信息、学生成绩信息进行添加录入。

(3) 数据查询功能:对上述信息的基本查询。

(4) 数据修改功能:对上述信息可进行修改工作。

vfp编程

vfp编程

编九九乘法表cleaset talk offj=1s=0m=0for i=1 to 9for j=1 to is=i*j@i,j+m say allt(str(j))+'*'+allt(str(i))+'='+allt(str(s))m=m+10endform=0endfor1.编程计算1~1000中能同时被3和7整除的数的个数及和,并输出结果set talk offn=0s=0for i=1 to 1000if i%3=0 and i%7=0n=n+1s=s+iendifendfor?"1-1000能同时被3和7整除的数有"+allt(str(n))+"个"?"它们的和是:"+allt(str(s))set talk on2.编程求100~999之间的全部水仙花数(一个三位数如果组成它的各位数字的立方和,这个三位数就称为水仙花数);set talk offfor a=1 to 9for b=0 to 9for c=0 to 9if 100*a+10*b+c=a*a*a+b*b*b+c*c*c? 100*a+10*b+cendifnext cnext bnext areturnset talk on3.输入一个年份,判断它是否为闰年。

clearset talk offinput "请输入年份:"to nmsg="年不是闰年"if mod(n,4)=0 and mod(n,100)<>0 or mod(n,400)=0msg="年是闰年"endif?n,msgset talk on26、编写程序,已知:s=1+3+5+7+9+…,求s不大于9000的最大值。

正确答案8836法一:i=1s=1do while s<9000i=i+2s=s+ienddo?s-i法二:s=0FOR i=1 to 1000 step 2s=s+i 注意位置IF s>9000EXITENDIFendf?s-i。

VFP网上搜集编程实例

VFP网上搜集编程实例

VFP网上搜集编程实例例1:CLEAR allset talk offset stat bar offset ansi onset safety offset escape offset exact offSET EXCLUSIVE ONon keyCLEAR MACROSSET DEFAULT TO SYS(5)+SYS(2003)ON ERROR do errormain.....中间省略一些设置变量的代码*运行主菜单do mainmenu.mpr*关闭命令窗口Keyboard '{CTRL+F4}'*创建图像控件并将壁纸充满整个窗口空白区域_screen.addobject('imaImage','image')_screen.imaImage.visible=.t._screen.imaImage.picture=ltrim(trim(ZBZ))_screen.imaImage.top=0_screen.imaImage.left=0_screen.imaImage.height=sysmetric(22)_screen.imaImage.width=sysmetric(21)_screen.imaImage.stretch=zcktc*clear eventsREAD EVENTS例2:DEFINE CLASS C_Form AS FormADD OBJECT MusicPlayer AS OleControl WITH OleClass = "WMPlayer.OCX.7", Width = sysmetric(21)-25, Height = sysmetric(22)-80PROCEDURE ArrangeWITH ThisForm.MusicPlayer.Top = 10.Left = 10ENDWITHENDPROCPROCEDURE Activate && C_Form子类的activate事件ThisForm.ArrangeThisForm.MusicPlayer.URL = bfwjENDPROCPROCEDURE ResizeThisForm.ArrangeENDPROCPROCEDURE Destroy &&CLEAR EVENTSENDPROCENDDEFINE需要补充:*MAINPFG.PRG**DO FORM form\Login.scx &&顶层表单,正常登录后,在Destroy或者UNLOAD等等事件写上CLEAR EVENTS,退出LOGIN登录表单的循环。

VisualFoxPro程序设计基础实例

VisualFoxPro程序设计基础实例

V i s u a l F o x P r o程序设计基础实例(共14页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--Visual FoxPro程序设计基础实例▲表文件情况:学生成绩数据库的表文件结构为:字段名字段类型宽度小数位学号字符型 6姓名字符型 10英语数值型 6 2高等数学数值型 6 2计算机应用数值型 6 2总分数值型 7 2平均分数值型 6 2建立表文件结构显示如下:输入一些学生成绩。

例2-1计算表中的平均分和总分的程序set talk offCLOSE ALLUSE c:\000\CJREPLACE ALL 总分 WITH 英语+数学+计算机应用REPLACE ALL 平均分 WITH 总分/3LIST执行结果为:例2-2 统计成绩表中平均分大于90分的所有学生数目。

SET TALK OFFCLEARUSE c:\000\CJM=0SCAN FOR 平均分>90DISPLAYM=M+1ENDSCAN"总数为:",MUSERETURN执行结果:例2-3 统计成绩表中所有英语大于等于75分的学生数目。

SET TALK OFFUSE C:\000\CJMCOUNT=0FOR REC=1 TO RECCOUNT() && RECCOUNT() 为该库中的记录数 GO RECIF 英语<75LOOPENDIFDISPLAYMCOUNT=MCOUNT+1ENDFOR"英语成绩不小于75分的总数为:", MCOUNTUSERETURN执行结果:例2-4 显示表中英语成绩小于90分的学生。

SET TALK OFFCLEARUSE CJDO . ( ** 或DO ) )IF 英语>=90SKIP (或** LOOP )ENDIFDISPLAYWAIT"按任一键继续显示.…"SKIPENDDOUSERETURN执行结果:例2-5 对成绩表查询,若首记录的平均分数大于60分,则显示及格;成绩不及格”否则显示不及格。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VFP常见编程实例1、1-100的累加** 求1到100的累加值CLEARs=0i=1DO WHILE i<=100s=s+ii=i+1 &&一定记住先累加后循环ENDDOsRETURN2、阶乘** 求5的阶乘CLEARj=1i=1DO WHILE i<=5j=j*ii=i+1ENDDOjRETURN3、求阶乘和** 求1至5的阶乘和CLEARs=0i=1j=1DO WHILE i<=5j=j*is=s+ji=i+1ENDDOsRETURN4、条件定位** 查询定位记录指针在赵伟上CLEARUSE 学生LOCATE FOR 姓名="赵伟"IF FOUND()DISPLAYELSECANCELENDIFCONTINUE5、用scan语句查询定位** 用scan语句查询定位记录在赵伟上CLEARSCAN FOR 姓名="赵伟"DISPLAYENDSCANRETURN6、用scan语句扫描符合条件的记录,并显示出来** 把年龄小于30岁的人显示出来SCAN FOR 年龄<30 DISPLAYENDSCANRETURN7、查找男性职工** 查找男性职工CLEARLOCATE FOR 性别="男" DO WHILE FOUND()DISPLAYCONTINUEENDDORETURN** 查找男性职工CLEARLOCATE FOR 性别="男" DO WHILE NOT EOF() DISPLAYCONTINUERETURN** 查找男性职工CLEARUSE 职员基本信息表LOCATE FOR 性别="男"DO WHILE .t.IF FOUND() thenDISPLAYELSE &&记住最后一个ELSE语句后面不需要条件表达式 CANCELENDIFCONTINUEENDDO** 查找男性职工set talk offclearopen database 家庭成员管理.dbcuse stu.dbfscan for not eof()if xb="女"skipelsedisplayskipendifendscanclose databaseuseset talk onreturn8、新值换旧值** 有一对新生的兔子,从第三个月开始,每个月出生一对兔子,请问到第十二个月共出生多少对兔子?clearstore 1 to a,bi=3do while i<=12c=a+ba=bb=ci=i+1enddo"一年共出生兔子:",creturn9、多位整数各个位数相加** 求多位整数各个位数之和CLEARs=0input "请输入一个多位整数:" to aDO WHILE a<>0s=s+MOD(a,10) &&将a取余正好是个位上的数a=INT(a/10) &&将a除10取整正好是除个位之后的数ENDDO"这个整数的各个位数之和是:",sRETURN10、找100-999之间的“水仙花数”CLEARFOR i=100 TO 999a=INT(i/100)b=INT((i-100*a)/10)c=i-INT(i/10)*10IF i=a^3+b^3+c^3iENDIFENDFORRETURN11、判断一个大于3的数是否为素数CLEARinput "请输入一个数(>=3):" to s f=0i=2DO WHILE i<=INT(SQRT(s))IF MOD(s,i)<>0i=i+1LOOPELSEf=1EXITENDIFENDDOIF f=0str(s,3)+"是素数"ELSE f=1 &&这个表达式可有可无,为了省事完全省略也可以。

一般最后一个ELSE语句后面不需要表达式str(s,3)+"不是素数"ENDIFRETURN12、求一个班级每个学生的平均成绩** 计算一个班级共三十名学生,每位学生5门功课的平均成绩CLEAR && 清屏DIMENSION x(30,5) && 定义一个数组变量,r为学生数,i为功课数r=1 && 给30个学生的计数变量r赋初值1DO WHILE r<=30 && 循环30次,以计算出30个学生的平均成绩s=0 && 为学生一门功课成绩赋初值0i=1 && 为五门功课计数变量赋初值1DO WHILE i<=5 && 为一个学生的五门功课成绩累加5次input "请输入学生的成绩" to x(r,i)s=s+x(r,i) && 成绩累加i=i+1 && 功课累加ENDDO && 返回内循环"这名学生的平均成绩是:",s/5 && 显示平均成绩r=r+1 && 学生累加ENDDO && 返回外循环13、计算圆的面积* 计算圆的面积程序CLEARinput "请输入半径的值" to rinput "请输入pi的值" to pis=pi*r^2"圆的面积是",sRETURN14、将小写字母转换为大写字母NOTE 请将任意输入的一个小写字母转换成大写字母,也就是upper()函数的程序实现CLEAR && 请屏WAIT "请输入一个小写字母" to x && 交互式输入一个小写字母k=ASC(x) && 将小写字母的ASC码赋值给变量KIF k>=97 AND k<=122 then && 97是小写字母a的ASC码值,122是小写字母z的ASC码值x,"的大写字母是",CHR(k-32) && 输出大写字母.chr函数是ASC码所对应的字符ELSEWAIT "您输入的不是小写字母" WINDOW TIMEOUT 5cancelENDIFRETURN && 返回到调用程序15、找出最大数和最小数CLEARinput "请输入一个数:" to xSTORE x TO ma,miFOR i=2 TO 10 &&因为已经输入一个数X,所以循环次数只有9次input "请输入一个数:" to xIF ma<x && ma是变量中存的数,x是刚输入的数ma=xENDIFIF mi>xmi=xENDIFENDFOR"最大数是:",ma"最小数是:",miRETURN16、绝对值函数的实现** 绝对值函数的实现CLEARinput "请输入一个数值" to n IF n>=0nELSE-nENDIFCANCEL17、绝对值函数实现的另一种方法** 绝对值函数和另一种实现方法CLEARinput " 请输入一个数值" to n IIF(n>=0,n,-n)CANCEL18、输出成绩等级** 用DO CASE语句实现:CLEARinput "请输入一个成绩" to cj DO caseCASE cj>=90dj="优秀"CASE cj>=80dj="良好"CASE cj>=60dj="合格"OTHERWISEdj="不合格"ENDCASEdjRETURN**用IF语句实现:set talk offclearinput "请输入一个成绩:" to s if s>=90grade="优秀"if s>=80grade="良好"elseif s>=60grade="及格"elsegrade="不及格"endifendifendifltrim(str(s))+"分对应的等级是:"+grade set talk onreturn19、求一名学生的平均成绩** 求一个学生5门功课的平均成绩CLEARs=0i=1DO WHILE i<=5input "请输入各门功课的成绩" to xs=s+xENDDOs/520、用数组的方法,计算一个学生的平均成绩** 用数组保存一个学生五门功课的成绩,然后再计算机其平均成绩CLEARDIMENSION x(5)s=0i=1DO WHILE i<=5input "请输入各门功课的成绩" to x(i)s=s+x(i)i=i+1ENDDOs/5RETURN21、用do case语句实现符号函数的功能** 请输入一个数,当这个数是负数,就返回-1,当这个数是零,就返回零,当这个数是正数,就返回1CLEARinput "请输入一个数" to nDO CASECASE n>0s=1CASE n=0s=0CASE n<0s=-1ENDCASEsRETURN22、用一般选择语句实现符号函数的功能** 符号函数的实现CLEARinput "请输入一个数" to nIF n>0s=1ELSEIF n=0s=0ELSEIF n<0s=-1ENDIFENDIFENDIFs23、用简单选择语句实现符号函数功能** 符号函数的实现CLEARinput "请输入一个数" to nIF n=0s=0ENDIFIF n>0s=1ENDIFIF n<0s=-1ENDIFs24、打开数据库和数据表SET talk offCLEARaccept "请输入数据库名" to xOPEN DATABASE &xaccept "请输入数据表名" to yUSE &yLISTuseSET talk offreturn25、显示表中指定信息SET TALK OFFCLEAROPEN DATABASE 时代超越总公司职员信息数据库USE 职员基本信息表WAIT "请输入待查职工的编号(1-3)" TO nIF VAL(n)<1 .or. VAL(n)>3WAIT "输入无效,结束程序运行!" WINDOW timeout 5 RETURNELSESTORE "0"+n TO aLIST for "职员编号"=aENDIFCLOSE DATABASESSET TALK ONreturn26、询问后再由用户按(Y/N)键执行的程序实现** 求任意一个数的阶乘CLEARDO WHILE .t.input "请输入一个数" to np=1s=0FOR i=1 TO np=p*is=s+pENDFORsWAIT "是否继续计算(Y/N)" TO yn windowIF UPPER(yn)="Y" THENLOOPELSEEXITENDIFENDDORETURN27、根据exact的设置进行字符串匹配比较** exact设置的变化对取值结果的影响SET exact ON && exact为打开状态,字符精确匹配s="in"+SPACE(2)IF s=="in"IF s="in""a"ELSE"b"ENDIFELSEIF s="in""c"ELSE"d"ENDIFENDIFRETURN28、使一个多位正整数逆序排列CLEARinput "请输入一个整数:" to xDO WHILE x>0y=x%10yx=INT(x/10)ENDDORETURN29、按编号查找并列出一条记录set talk offclearaccept "请输入数据库名:家庭成员管理:" to a open databaseaccept "请输入数据表名:stu:" to buselistwait "请输入一个编号:" to c windows timeout 5if val(c)<=0 or val(c)>4wait "输入的数字不合法,请重新输入一个合法的数字:" to c windows timeout 5elsestore "0"+c to aaalist for bh=aaaendifclose databaseset talk onreturn30、打开一个数据库,并显示其中的表内容set talk offclearaccept "请输入一个数据库名:家庭成员管理.dbc" to x open databaseaccept "请输入一个数据表名:stu.dbf" to yuselistuseset talk onreturn30、验证密码程序:set talk offclearaccept "请输入密码:" to aaaif aaa="abc"clearwait "欢迎使用本系统!"elsewait "密码错误,程序将在5秒钟退出!" windows timeout 5 endifset talk onreturn31、编程求税金set talk offclearinput "请输入营业收入:" to pdo casecase p<800r=0case p=<2000r=0.05case p<5000r=0.08case p>=5000r=0.1endcasex=p*r"应纳税金为:" , xset talk onreturn32、用三角形列出乘法口诀表:set talk offclearX=1DO WHILE X<=9Y=1DO WHILE Y<=XS=X*YSTR(Y,1)+"*"+STR(X,1)+"="+STR(S,2)+" " Y=Y+1ENDDOX=X+1ENDDOSET TALK ONRETURN33、将变量A、B值互换:a=1b=2a=a+bb=a-ba=a-ba,b34、找出已知三个数的中间数:INPUT "请输入a 的值:" TO a INPUT "请输入b 的值:" TO b INPUT "请输入c 的值:" TO c IF MAX(a,b)<cMAX(a,b)ELSEIF MIN(a, b)<ccELSEMIN(a,b)ENDIFENDIF35、调用子程序:* MAIN.PRGSET TALK OFF”正在执行主程序”DO SUB1SET TALK ONProcedure SUB1”正在执行SUB1”RETURN36、用参数传递计算圆的面积:set talk offclearinput "请输入圆的半径" to rs=0 &&用参数传递计算必须给实际参数赋初值do arer with r,s &&调用子程序,并指定实际参数r,s"圆的面积为:",sset talk onprocedure arer &&被调用的子程序arerparameter x,y &&指定的形式参数x,yy=3.14*x^2returnset talk on37、我国古代数学家张丘建在“算经”里提出一个世界数学史上有名的百鸡问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁,母,雏各几何?**依题列出方程:x+y+z=1005x+3y+z/3=100set talk offclearfor x=1 to 100for y=1 to 100z=100-x-yif 5*x+3*y+z/3=100"鸡翁:"+str(x,3)"鸡母:"+str(y,3) "鸡雏:"+str(z,3) endifendforendforset talk onreturn。

相关文档
最新文档