管理数据库VFP常见编程实例.doc_第1页
管理数据库VFP常见编程实例.doc_第2页
管理数据库VFP常见编程实例.doc_第3页
管理数据库VFP常见编程实例.doc_第4页
管理数据库VFP常见编程实例.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

程序设计实例(一)建立/编辑自由表结构(1)表设计器:(2)命令(3)SQL建立如图的学生情况表结构,命名为Students.dbf,为下一步录入记录数据做好准备。学号姓名性别出生日期专业入学成绩班级简历相片05001李国防男05/12/87营销学598营销05-1memoGenC(5)C(10)C(2)D(8)C(10)N(6,2)C(12)M(4)G(4)(二)自由表_ 添加新记录(1)输入框(2)程序*.prg(3)表单*.scx录入李国防同学的信息05001李国防男05/12/87营销学598营销05-1简历相片在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()thisform.image1.picture=&p添加:接收各控件的当前值,然后将数组写入员工.dbf表尾记录a(1)=thisform.text1.valuea(2)=thisform.text2.valueIf thisform.optiongroup1.option1.value=1a(3)=男elsea(3)=女endifcsrq=+thisform.text3.value+a(4)=&csrqa(5)=bo1.valuea(6)=thisform.spinner1.valuea(7)=thisform.edit1.valueselect 员工Append from array a fields 员工编号,姓名,性别,出生日期,职务,工资 if empty(thisform.edit1.value)=.f.replace 简历 with a(7) addiendifif empty(p)=.f.append gene 相片 from &p endif取消:清除各控件值thisform.text1.value=thisform.text2.value=thisform.text3.value=bo1.value=thisform.spinner1.value=0thisform.edit1.value=thisform.image1.picture=“”P=“”退出:释放表单thisform.release(三)记录数据的计算(1)命令:(2)prg程序(3)表单*.scx在VFP系统的默认文件夹中有数据“表”如图,要求统计并显示男同学的人数、总分、平均入学成绩。写出其操作指令 解题思路(算法)1、打开表2、计算男人数,赋给n3、计算男总分,赋给s4、计算男平均,赋给p5、显示 n, s, p7、关闭表Use studentscount all for 性别=”男” to nsum all for 性别=”男” 入学成绩to saverage all for 性别=”男”入学成绩 to p? “男生人数=”,n? “男生入学总成绩=”,s? “男生平均入学成绩”,puse在VFP系统的默认文件夹中有数据“表”如图,若A、B、C三个数据能构成三角形,则计算三角形面积,将面积S和“构成三角形”信息写入对应记录的字段,若A、B、C三个数据不能构成三角形,则将面积“0”和“不能构成三角形” 信息写入对应记录的字段。提示:1、构成三角形条件:二边之和必大于第三边2、 其中input三角形的第一边长= to xinput三角形的第二边长= to yinput三角形的第三边长= to zif x=0 or y=0 or z=0 or x+y=z or x+z=y or y+z=3,成立,退出VFP四运行form_loadpublic nn=0 Command1_clickxm=bo1.valuemm=val(thisform.text1.value)locate for pass.用户姓名=xm and pass.密码=mmif found()y=messagebox(正确!身份验证通过)Thisform.releaseelsey=messagebox(错误!身份验证没通过)endifn=n+1if n=3quitendif(2)触发器密码输入:students-修改clearaccept 输入插入触发器密码ps1: to ps1accept 输入更新触发器密码ps2: to ps2if ps1=42 and ps2=142 use 员工信息 appendelse Y=messagebox(密码错误,信息报告)(3)文档备份对话框:(4)浏览记录浏览删除表单:表单中删除按钮的代码:ans=messagebox(确定要删除当前记录吗?,4+32,信息提醒)if ans=6 delete pack messagebox(当前记录已经被成功删除) endif go top thisform.refresh注意:执行此表单时一定要将数据环境中的员工表的属性exclusive设为.T.浏览修改与查询表单: 查询按钮代码:n1=alltrim(bo1.value) do case case n1=姓名 locat for 姓名=alltrim(thisform.text1.value) if found() thisform.txt员工编号.value=alltrim(员工.员工编号) thisform.txt姓名.value=alltrim(员工.姓名) thisform.txt性别.value=alltrim(员工.性别) thisform.txt出生日期.value=dtoc(员工.出生日期) thisform.txt职务.value=alltrim(员工.职务) thisform.txt工资.value=str(员工.工资) thisform.edt简历.value=alltrim(员工.简历) * thisform.pageframe1.page1.ole.controlsource=员工.相片 else messagebox(没有该员工) endif case n1=员工编号 locat for 员工编号=alltrim(thisform.text1.value) if found() thisform.txt员工编号.value=alltrim(员工.员工编号) thisform.txt姓名.value=alltrim(员工.姓名) thisform.txt性别.value=alltrim(员工.性别) thisform.txt出生日期.value=dtoc(员工.出生日期) thisform.txt职务.value=alltrim(员工.职务) thisform.txt工资.value=str(员工.工资) thisform.edt简历.value=alltrim(员工.简历)else messagebox(没有该员工) endif endcase thisform.refresh (九)数值(数学)计算(1)顺序:1XX超市面上的商品交易结算,输入商品数量和单价,计算出应付金额input 商品单价p= to pinput 商品数量x= to xy=p*x? 应付金额=,y2输入一个三位整数,将其反向输出(如输入123,输出321)input 输入数据X= to xc=mod(x,10)a=int(x/100)b=int(x/10)%10x=c*100+b*10+a?x=,x(2)分支:1计算:在VFP系统的默认文件夹中有数据“表”如图,计算个人的社会保险,所得税和实发金额。提示:1、社会保险为总收入的10%2、个人所得税纳税条例规定:个人总收入不足2000元的不纳税,个人总收入超过2000元的,超过部分按20%纳税。input 总收入x= to xinput 社会保险y= to yy=x*0.1? 社会保险=,yinput 总收入x= to xif x2000x=x*0.8elsex=xendif?实际收入x=,x2教材p164.3输入学生成绩,若大于80,则输出“优良” ,小于60则输出“不合格”,否则输出“良好”input”输入学生成绩x=” to xif x80p=”优秀”else if x60p=”不合格”else p=”中等” endifendif? “这个学生属于”,p(3)循环:1求1100之间全部奇数(或偶数)之和。y=0for x=1(奇)/x=2(偶) to 100 step 2y=y+xendfor? 1到100之间奇数和y=,y2P146例9.6求水仙花数for x=100 to 999a=int(x/100)b=int(x/10)%10c=mod(x,10)if x=a3+b3+c3?水仙花数,xendifendfor3P146例9.7 查最值input 从键盘中输入一个数: to a store a to max,minfor i=2 to 15input 从键盘中输入一个数: to a if maxamin=a endifendfor?最大值为:,max?最小值为:,min4输入一个下整数N,计算N的阶乘结果(4!=1*2*3*4=24)* 求5的阶乘CLEARj=1i=1DO WHILE i2y=y*(n-1)n=n-1enddo?结果=,y(2)input 需求阶乘数= to ay=1for x=1 to a step 1y=y*xendfor?结果,y操作:1、建立表单:安放控件(如图)2、数据环境定义:students.dbf3、各对象控件捆绑students.dbf表中字段4、编写程序(1)文件首:go top ; 更新;按钮抑制(2)上一个记录:skip -1; 更新;按钮抑制(3)下一个记录:skip +1; 更新;按钮抑制(4)文件尾:go bottom; 更新;按钮抑制(5)退出游览:thisform.release(1)go topthisform.refreshif bof()=.T.mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.t.endif(2)skip-1thisform.refreshif bof()=.T.mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.t.endif(3)skip+1thisform.refreshif eof()=.T.mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.t.endif(4)go bottomthisform.refreshif eof()=.T.mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.mand1.enabled=.mand2.enabled=.mand3.enabled=.mand4.enabled=.t.endif(5)thisform.release计算阶乘fac=5! (即fac =1*2*3*4*5)Input “x=” to xfac=1for n=1 to x step 1fac=fac*nendfor? “fac=” , fac一定范围内质数之和clears=0for i=2 to 100 n=0 for j=1 to i-1 if mod(i,j)=0 n=n+1 endif endfor if n=1 s=s+i endifendfor?1100的素数之和:,s计算11000之间全部奇数之和及全部偶数之和y1=0y2=0for x=1 to 100if x%2 0/if mod(x,2)=0y1=y1+xelsey2=y2+xendifendfor?11000之间所有的奇数和为:,y1?11000之间所有的偶数和为:,y2口令主程序的设计。(1)输入用户名和密码:与pass.dbf中预设权限比较。(2)用户名和密码正确通过,信息框报告“执行子程序sub1操作”。(3)用户名和密码不正确,提示信息“用户名或密码错误!”,若三次均不正确,关闭VFP系统。1变量Xm,mm2计算处理3解题思路(算法):1打开pass表2组织循环n=1 3 输入姓名xm,mm 顺序查找locate for if 判断查找(用户姓名和密码正确) 调用子程序(do sub1.prg) 否则 显示报告信息Go top3 if n3 条件成立,退出VFP系统。4事件保持4程序设计 (命令窗口) modi comm p95上机运行通过(正确) (命令窗口)do p9.prgUse pass.dbfFor n=1 to 3 step 1Accept “用户姓名=” to xmInput “密码=” to mmLocate all for 用户姓名=xm and 密码=mmIf found( )Y=messagebox(“执行do sub1,进行sub1过程操作”) exit & do sub1.prgelse wait “用户名或密码错误!,再来一次”EndifEndforIf ( n 3) QuitEndifReturn &read events明湖百货有限公司的商品销售表“明湖超市.dbf”如图,编写程序实现按销售员分组SQL查询指定月份的销售汇总,生成一张自由表yhz(销售员,总金额), 若指定月

温馨提示

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

评论

0/150

提交评论