vf练习题及答案_第1页
vf练习题及答案_第2页
vf练习题及答案_第3页
vf练习题及答案_第4页
vf练习题及答案_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、VF练习题1新建商品数据表SB.DBF,字段有:商品号(C,5),商品名(C,8),单价(N,5,2),出厂单价(N,5,2),产地(C,6)。并添加如下记录:商品号(C,5),商品名(C,8),单价(N,6,2),出厂单价(N,6,2),产地(C,6)。10001 电视机 800.0 500.0 青岛20001 电子字典 360.0 200.0 深圳10002 手机8210 980.0 600.0 北京30001 MP3 800.0 560.0 广州10003 商务通 890.0 460.0 深圳设计一个名称为MY_FORM的表单,上面有“浏览”、“调整”、“备份”和“退出”四个命令按钮,“

2、商品名称”标签和文本框text1。1)在text1中输入文本,单击“浏览”按钮时,显示商品名含有该文本的所有商品记录。2)单击“调整”按钮时,将“商品号”前两位编号为“10”的商品的“单价”修改为出厂单价的110%。3)单击“备份”按钮时,将“商品表”进行备份(使用命令COPY TO ),备份文件名为“商品表备份.DBF”,4)单击“退出”按钮时,关闭表单。答案:法一:(1)如图:建表:建表单:(2)写代码:- 1 -Commandgroup1:浏览command1:clickn=thisform.text1.valueselect * from sb where 商品名=n调整command

3、2:clickupdate sb set 单价=出厂单价*1.1 where left(商品号,2)=10备份command3:clickcopy to d:晴天图书馆vfvf练习题商品表备份退出command4:clickThisform.release法二:代码:“浏览”按钮:clicka=thisform.text1.valuesele * from SB where 商品名 like allt(a) to screenthisform.text1.selstart=0thisform.text1.sellength=len(allt(thisform.text1.text)thisfo

4、rm.text1.setfocus“调整”按钮:clickupdate sb set 单价=出厂单价*1.1 where left(商品号,2)=10“备份”按钮:clickcopy to g:vfp上机考试练习第一题商品备份表.dbf“退出”按钮:clickthisform.release3在建立“E:专业姓名”文件夹下,建立表单(bd2.scx),添加标签“输入字符串”、文本框,添加“输出”、“退出”命令按钮,并编写代码。“输出”Click代码:把文本框内输入的字符串,去掉左、右、中间所有空格字符后,在信息框显示。“退出”:结束表单运行。答案:法一:- 2 -(1)如图:(2)代码:输出c

5、ommand1:clickn=thisform.text1.valuemessagebox(字符串为:+alltrim(n),0+64+0,输出字符串)退出command2:clickthisform.release法二:代码:“输出”按钮:clickx=thisform.text1.valuey=allt(x)z=chrt(y, ,)=messagebox(z,0+64+0,输入值)thisform.text1.selstart=0thisform.text1.sellength=len(thisform.text1.text)thisform.text1.setfocus“退出”按钮:cl

6、ickthisform.release4设计一个电话计费程序。假定每分钟通话费用为0.12元。要求:表单窗口中用标签形式列出开始时间、结束时间、通话时间及应付金额(元),再设计一个开始按钮(按下后开始计时)和计费按钮(按下后显示结束时间、通话时间及费用)答案:(1)如图:(2)写代码:开始command1:clickpublic a- 3 -a=time()thisform.label1.caption=开始时间:+a计时command2:clickb=time()thisform.label2.caption=结束时间:+time()c=ctot(b)-ctot(a)d=int(c/60)e

7、=c%60if e=0y=d*0.12elsey=(d+1)*0.12endifthisform.label3.caption=通话时间:+alltrim(str(d)+分+alltrim(str(e)+秒thisform.label4.caption=应付金额:+str(y,6,2)+元5建立“学生管理” 数据库,在其中新建“成绩”数据表并任意输入3条记录,结构如下:学号C(8),姓名C(8),计算机N(5.1),英语N(5.1),数学N(5.1),总成绩N(5.1)。建立表单(bd1.scx),用表格显示该数据表,添加标签“计算机平均成绩”及显示该数据的文本框。添加“计算”、“退出”命令按

8、钮,并编写代码。“计算”Click代码:计算“总成绩”字段的值(总成绩计算机+英语+数学),计算“计算机平均成绩”的值并在文本框显示。“退出”:结束表单运行。答案:(1)如图:建数据库:建成绩表:- 4 -建表单:(2)写代码:计算command1:click:update 成绩 set 总成绩=计算机+英语+数学select avg(计算机) from 成绩 into array an=athisform.text1.value=n退出command2:click:thisform.release表格grid1:属性Recordsource:成绩Recordsourcetype:1-别名6建

9、“订货管理”数据库。在其中新建数据表customer,表结构如下:客户号(C/8)、客户名(C/10)、地址(C/20)、电话(C/12)。以客户号建立主索引。新建数据表order_list,表结构如下:客户号(C/8)、订单号(C/10)、日期(D)、总金额(N/12,2)。以客户号建立普通索引,并与customer建立表间永久关系。1)两个数据表各添加3条记录(保证两个表的客户号存在一对一关系)。2)新建项目“订单”并将数据库添加到该项目中。3)在项目中新建表单。如下:当指针指向首记录“上一条”不能用;当指针指向末记录“下一条”不能用 - 5 -答案:(1)如图:建数据库:建表单:(2)写

10、代码:commandgroup1:代码n=this.valuedo casecase n=1skip -1if bof()mand1.enabled=.f. mand2.enabled=.t. endifcase n=2skip 1if eof()mand2.enabled=.f. mand1.enabled=.t. endif- 6 -endcasethisform.refresh7首先创建一个student.dbf数据表 其结构为学号(C,3),姓名(C,6),性别(C,2),出生日期(D,8)。记录内容自定。要求,根据输入限制条件的上限和下限来查找数据表中的记录,表单会显示查找到的结果。

11、程序的演示效果如图所示。答案:法一:(1)如图:?(2)写代码:查找command1:clickthisform.grdstudent.recordsource=;select * from student where 学号=thisform.text1.value and 学号=thisform.text2.value into cursor temp关闭command2:clickThisform.release(3)表格grid1:属性Recordsource:无Recordsourcetype:4-SQL说明法二:代码:“查找”按钮:clicka=thisform.text1.valu

12、eb=thisform.text2.valueif abthisform.grid1.recordsource=;select 学号,姓名,性别,出生日期 from student where val(a)val(学号) and val(学号)=80 and 成绩80 and 成绩=60update book!score set 学分=学分+3 where 高数=60update book!score set 学分=学分+4 where 英语=60select * from score.dbf order by 学分,学号 desc into dbf xf关闭command2:thisform

13、.release10 有一学生管理数据库stu,该数据库中有CHENGJI表和XUESHENG表,各表结构如下:1) XUESHENG表(学号C(9)、姓名C(10)、平均分N(7,2), 该表是学生信息,个学生只有一个记录,“学号”字段是表的主关键字。2) CHENGJI表(学号c(9)、课程号c(3)、成绩N(7,2),该表用于记录学生的考试成绩, 一个学生可以有多项记录,(登记一个学生的多门成绩),其中,字段“学号”与“课程名”的组合构成表CHENGJI的主关键字。请编写符合下列要求的程序并运行程序。设计一个名为FORM_STU的表单、表单中有两个命令按钮,按钮的名称分别是CMDYES和

14、CMDNO,标题分别为“统计”和“关闭”。程序运行时,单击“统计”按钮应完成下列操作:1)根据CHENGJI表计算每个学生的平均分,并将结果存入XUESHENG表的平均分字段。2)根据上面的计算结果,生成一个新的表PINGJUN,该表的字段按顺序取自XUESHENG表的学号、姓名和平均分3项,并按平均分升序排序,如果平均分相等,则按学号升序排序。单击“关闭”按扭,程序终止运行。答案:(1)如图:建数据表:(主索引)建表单:- 10 -(2)写代码: 统计command1:clickselect 学号,avg(成绩) 平均分 from chengji group by 学号 into curso

15、r bbbdo while not eof()update xuesheng set 平均分=bbb.平均分 where xuesheng.学号=bbb.学号skipenddoselect * from xuesheng order by 平均分,学号 into dbf pingjun 关闭command2:clickThisform.release11 *设计一个能进行查询的表单,界面如图所示。当输入学生姓名并单击“查询统计”按钮时,会在右边的表格内显示该同学所选各科的成绩,并在左边相应的文本框内显示其中的最高分、最低分以及平均成绩。单击“退出”按钮将关闭表单。答案:(1)如图:建数据表:建

16、表单:- 11 -(2)写代码:“查询统计”按钮:clicka=thisform.text1.valuesele 课程号,成绩 from xuesheng,chengji where xuesheng.学号=chengji.学号 and xuesheng.姓名=a into cursor tempsele max(成绩) from temp into array bsele min(成绩) from temp into array csele avg(成绩) from temp into array dthisform.text2.value=str(b,4,1)thisform.text3.

17、value=str(c,4,1)thisform.text4.value=str(d,4,1)thisform.grid1.recordsource=;sele * from temp into cursor bbb“退出”按钮:clickthisform.release12 有“学生管理”数据库。在其中新建数据表student,表结构如下:学号(C/8)、姓名(C/10)、专业号(C/4)、成绩(N/4)。以学号建立主索引,以专业号建立普通索引。建数据表class,表结构如下:专业号(C/4)、专业名称(C/10),以专业号建立主索引,并与student(专业号为外部关键字段)建立表间永久关

18、系。1)两个数据表各添加3条记录(要有”英语”专业的记录)。2)新建项目“管理”并将数据库添加到该项目中。3)在项目中新建表单FORM1。选择选项按钮后“运行”可以完成相应的操作。答案:(1)如图:建数据表:建项目:建表单:- 12 -(2)写代码:“运行”按钮:clickn=thisform.optiongroup1.valuedo casecase n=1sele student.姓名,class.专业名称 from student,class where student.专业号=class.专业号 into dbf xzcase n=2sele class.专业名称,count(*) 人

19、数 from student,class group by 专业名称 wherestudent.专业号=class.专业号 into cursor tempcase n=3sele 专业号 from class where 专业名称=英语 into array bbbupdate student set 成绩=成绩+5 where student.专业号=bbbendcase13 新建“学生管理”数据库。在其中新建数据表student,表结构如下:学号(C/8)、姓名(C/10)、专业号(C/4)、成绩(N/4)。以学号建立主索引,以专业号建立普通索引。新建数据表class,表结构如下:专业号

20、(C/4)、专业名称(C/10),以专业号建立主索引,并与student(专业号为外部关键字段)建立表间永久关系。1)两个数据表各添加3条记录(要有”英语”专业的记录)。2)新建表单如下图。选择选项按钮后“运行”可以完成相应的操作(用SQL语句实现)。14 设计如图表单,要求对于学生管理数据库std.dbc用SQL语句完成如下功能:(1) 点击学生名单显示学号,姓名(若选中复选框显示详细信息,则显示学号, 姓名,性别,出生日期,入学日期,专业)。(2) 点击计算成绩,重新计算总成绩。(3) 点击显示成绩,按照总成绩升序或降序显示std_cj表所有字段。(4) 点击选课统计,所有学生的学号,姓名

21、及选课的门数。- 13 -答案:(1)如图:建表单:(2)写代码:学生名单command1:clickif thisform.check1.value=0select 学号,姓名 from std_daelseselect 学号,姓名,性别,出生日期,入校成绩,专业 from std_daendif计算成绩command2:click?显示成绩command3:clickn= thisform.optiongroup1.valueif n=1select * from std_cj order by 总成绩 ascelseselect * from std_cj order by 总成绩 de

22、scendif选课统计command4:clickselect std_da.学号,std_da.姓名,count(*) as 选课门数 from std_da,std_xk,tch_pk group by std_da.学号 wherestd_xk.课程代号=tch_pk.课程代号 and std_da.学号=std_xk.学号15 设计如上图表单,要求用SQL语句完成如下功能:1)击学生成绩显示学号,总成绩(若选中复选框显示详细信息,则显示学号, 姓名,性别,专业,总成绩)。2)点击班级成绩表,按照班级(学号字段的前4位为班级号)统计各班级平均成绩。3)点击课程列表,显示所有选课的代码,名称及学生数。答案:(1)如图:建表单:- 14 -(2)写代码:学生成绩command1:clickif thisform.check1.value=0select 学号,总成绩 from std_cjelseselect std_cj.学号,std_cj.姓名

温馨提示

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

评论

0/150

提交评论