VisualFoxpro编程实例
- 格式:doc
- 大小:514.50 KB
- 文档页数:21
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 &&这个表达式可有可无,为了省事完全省略也可以。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==foxpro编程范例篇一:Visual Foxpro编程实例实验五 Visual Foxpro编程实践一. 实验目的与要求掌握利用Visual Foxpro编制开发自己的应用程序的实践知识,并学会在程序调试中自行发现问题和修改程序代码,最终完成应用程序的无错运行。
二. 相关知识利用Visual Foxpro自行开发编制应用程序的步骤:1.设置好系统的工作环境(尤其注意工作目录的默认设置)。
2.如果是初次进行,应当先建立一个项目,为该项目命名,激活项目管理器。
如果是接着上次的工作进行,则打开上次工作的本项目,同样也激活项目管理器。
3.在项目管理器的“数据”?“数据库”下面创建一个数据库,并命名(如已创建,则跳过本步骤)。
4.在项目管理器的“数据”?“数据库”?“表”下面进行数据表的创建或修改工作,并输入少量的正确数据以便将来的运行调试(如果已经创建了数据表,则跳过本步骤)。
5.在项目管理器的“文档”下面创建该应用程序所用到的所有表单,设计好各表单的界面并为表单里的控件填写程序代码.(注意为表单添加各自的数据环境,否则会出错!) 6.试运行各表单,发现问题后重新修改有问题的表单的代码,反复调试和修改直至最后能无错运行。
7.将应用程序打包发布或制作成安装文件。
三. 实验内容与步骤本次实验以一个简单的学生成绩管理系统为例。
首先,对该系统作一个简单的介绍:该应用系统为完成学生信息和成绩的管理系统,主要有以下几个应用模块: (1) 用户登录管理:系统具有管理员功能,只有取得管理员权限的人才能使用本系统。
(2) 数据添加功能:对学生基本信息、教师基本信息、班级信息、课程信息、学生成绩信息进行添加录入。
(3) 数据查询功能:对上述信息的基本查询。
(4) 数据修改功能:对上述信息可进行修改工作。
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分,则显示及格;成绩不及格”否则显示不及格。
实验五 Visual Foxpro编程实践一. 实验目的与要求掌握利用Visual Foxpro编制开发自己的应用程序的实践知识,并学会在程序调试中自行发现问题和修改程序代码,最终完成应用程序的无错运行。
二. 相关知识利用Visual Foxpro自行开发编制应用程序的步骤:1.设置好系统的工作环境(尤其注意工作目录的默认设置)。
2.如果是初次进行,应当先建立一个项目,为该项目命名,激活项目管理器。
如果是接着上次的工作进行,则打开上次工作的本项目,同样也激活项目管理器。
3.在项目管理器的“数据”“数据库”下面创建一个数据库,并命名(如已创建,则跳过本步骤)。
4.在项目管理器的“数据”“数据库”“表”下面进行数据表的创建或修改工作,并输入少量的正确数据以便将来的运行调试(如果已经创建了数据表,则跳过本步骤)。
5.在项目管理器的“文档”下面创建该应用程序所用到的所有表单,设计好各表单的界面并为表单里的控件填写程序代码.(注意为表单添加各自的数据环境,否则会出错!)6.试运行各表单,发现问题后重新修改有问题的表单的代码,反复调试和修改直至最后能无错运行。
7.将应用程序打包发布或制作成安装文件。
三. 实验容与步骤本次实验以一个简单的学生成绩管理系统为例。
首先,对该系统作一个简单的介绍:该应用系统为完成学生信息和成绩的管理系统,主要有以下几个应用模块:(1)用户登录管理:系统具有管理员功能,只有取得管理员权限的人才能使用本系统。
(2)数据添加功能:对学生基本信息、教师基本信息、班级信息、课程信息、学生成绩信息进行添加录入。
(3)数据查询功能:对上述信息的基本查询。
(4)数据修改功能:对上述信息可进行修改工作。
(5)统计操作:可分别按个人成绩、单科成绩统计出最高成绩、最低成绩和平均成绩等。
(6)打印功能:对上述信息可进行打印。
实验步骤如下:1.数据库设计:首先设置好系统的运行环境和工作目录,然后建立项目,为项目命名为“学生成绩管理系统”,激活项目管理器,并在在项目管理器的“数据”“数据库”下面创建一个数据库,命名为“学生成绩管理”,在“数据库”的“表”下面创建以下各数据表:字段名称类型宽度用户名字符型10密码字符型10字段名称类型宽度学号字符型8字符型10(3)教师信息表 teacher创建好以上数据表以后,应该向每个表中添加适量合法数据以便后面的测试。
2.表单设计2.1登录模块功能描述:实现只有指定的用户才能访问系统的功能。
并且,只有身份为“管理员”的用户才可以调用修改模块修改数据。
界面设计:表单名称: login文件名: login.scx数据环境: user.dbf对象设置:对象属性值说明Form1 Caption 欢迎使用学生成绩管理系统Lable1 Caption 学生成绩管理系统Lable2 Caption 请输入用户名:Lable3 Caption 请输入密码:Combo1 RowSourceType 6-字段指定数据值来源类型RowSource User.用户名指定数据值来源Cammand1 Caption 登录Cammand2 Caption 退出函数与方法声明:(1)Command1中的Click事件功能:完成在登录时对输入的用户名和密码的检验,如果数据表user中存在输入的用户名和密码信息,则调用主窗口(如果是管理员则不但调用主窗口,还允许执行主窗口的修改功能),否则提示输入错误。
程序清单:private kl,yh,stst='密码不正确,请重新输入!'use userkl=alltrim(thisform.text1.value)yh=alltrim(bo1.value)*将用户输入的用户名和密码的值分别保存在yh和kl变量中locate for alltrim(bo1.value)= =alltrim(user.用户名)*在user表中查找是否有与yh和kl匹配的记录if found() and alltrim(user.密码)= =kl*正确的用户名和密码thisform.visible=.f.close tables alldo form main.scxif yh= ='admin'*如果是超级用户管理员,则允许他使用main表单中的第三组按钮(即修改模块) main.optiongroup1.option3.enabled=.t.endifthis.parent.text1.value=''else*错误的用户名和密码,系统给出提示,延迟2秒wait window st timeout 2thisform.text1.value=''thisform.text1.setfocusendif(2)Command2中的Click事件功能:退出学生成绩管理系统程序清单:clear eventsquit(3)Form1的Destroy事件功能:意外关闭程序窗口时的处理程序清单:clear events2.2 主界面模块功能描述:主要是提供本系统各功能模块的入口.界面设计:表单名称: main文件名: main.scx数据环境:无对象设置:(1)Optiongroup1中的IntelactiveChange事件:功能:根据Optiongroup1中的选择单击按钮,调用各重要功能模块.程序清单:do casecase this.value=1do form 添加case this.value=2do form 查询case this.value=3do form 修改case this.value=4do form 统计case this.value=5do form 打印case this.value=6thisform.releasequitendcase(2)Optiongroup1中的每一个Option的Click事件:功能:与(1)中不同,(1)是指在Optiongroup中的各个Option切换时才触发的程序,仅这样还不够,还要编写每个Option被单击时触发的程序才完整。
程序清单:对应Optiongroup1.Option1的Click事件: do form 添加……(其余类推)2.3 数据添加模块功能描述:用户通过5个不同的页面来完成对学生信息表、教师信息表、班级表、课程表和成绩表的数据添加操作。
界面设计:表单名称:添加文件名:添加.scx数据环境: student.dbf, class.dbf, score.dbf, teacher.dbf, course.dbf 对象设置:对象属性值说明Form1 Caption 添加PageFrame1 PageCount 5Command1 Caption 返回主菜单主表单中的Command1Page1 Caption 学生表Page2 Caption 教师表Page3 Caption 班级表Page4 Caption 课程表Page5 Caption 成绩表Command1 Caption 添加与上面的Command1不同,这是在各个页面中Command2 Caption 清空的Command1因为添加表单中对于5个表的操作方法类似,所以这里只给出学生表的添加部分,其余4个页面的程序请同学们自己对照思考和编制。
(1)Form1中的Active事件功能:设置焦点位置程序清单:this.pageframe1.page1.text1.setfocus(2)Form1中的Command1的Click事件功能:释放当前窗口程序清单:thisform.release(3)Page1中Command1的Click事件功能:将输入的新记录信息添加到学生表中,完成新记录的添加工作程序清单:num1=alltrim(thisform.pageframe1.page1.text1.value)num2=alltrim(thisform.pageframe1.page1.text2.value)num3=alltrim(thisform.pageframe1.page1.text3.value)num4=alltrim(thisform.pageframe1.page1.text4.value)num5=alltrim(dtoc(thisform.pageframe1.page1.text5.value)) &&并非是alltrim(thisform.pageframe1.page1.text5.value)set exact ondo casecase num1=''messagebox('学号不能为空!',0+48,'系统提示!')thisform.pageframe1.page1.text1.setfocuscase num2=''messagebox('不能为空!',0+48,'系统提示!')thisform.pageframe1.page1.text2.setfocuscase num3=''messagebox('性别不能为空!',0+48,'系统提示!')thisform.pageframe1.page1.text3.setfocuscase num4=''messagebox('班级编号不能为空!',0+48,'系统提示!')thisform.pageframe1.page1.text4.setfocuscase num5=''messagebox('出生日期不能为空!',0+48,'系统提示!')thisform.pageframe1.page1.text5.setfocusotherwisea=messagebox('确认添加么?',1+64+0,'系统提示!')if a=1select studentgo bottominsert into student(学号,,性别,班级编号,出生日期) values(num1,num2,num3,num4,ctod (num5))messagebox('添加成功!')elsethisform.pageframe1.page1.text1.setfocusendifendcase(4)Page1中的Command2的Click事件:功能:清空当前页面上输入的数据程序清单:this.parent.text1.value=''this.parent.text2.value=''this.parent.text3.value=''this.parent.text4.value=''this.parent.text5.value=''由于其它各个页面上的添加数据的操作小异,这里不再赘述。