在vfp表单设计中怎么写伦敦奥运会倒计时的代码

内容互通,快速登录
还没有帐号? 赶紧
帖子用户版块本版
彩信发帖:2731.
1、本版只允许针对VFP的话题进行交流,与此无关的请移步 2、提问前请先搜索一下论坛,检索你的问题是否已有解决方法。3、要准确描述您所遇到的问题,必要时配上截图或测试数据!4、请勿发布含时政、人身攻击的话题,一经发现直接删除,发现违规帖子请举报!5、本版免费下载,不需要支付 。6、本版上传附件无收益,要收益请上传至 或
1到第1799) ? 1799 :
location='thread.php?fid=2&page='+page+'';}">页1799) ? 1799 :
location='thread.php?fid=2&page='+page+'';">确认
&(+2) &&
1074/75361
&(+10) &&
&[回帖奖励1304] &&
1到第1799) ? 1799 :
location='thread.php?fid=2&page='+page+'';}">页1799) ? 1799 :
location='thread.php?fid=2&page='+page+'';">确认
Powered by & Copyright Time now is:01-30 02:53 &
版权所有 Gzip enabled
Total 0.075862(s) query 1,拒绝访问 | www.ggdoc.com | 百度云加速
请打开cookies.
此网站 (www.ggdoc.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(3e4e6-ua98).
重新安装浏览器,或使用别的浏览器vfp下例题汇总_甜梦文库
vfp下例题汇总
Vfp 下例题汇总序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 计算圆面积 我的第一个面向对象程序 计算三角形面积 计算一元二次方程的根 登录窗口 口令验证 调色板 输入学号查询平均成绩题目 3 3 4 5 6 6 7 8 9 10 11 12 13 14 15 16 17 17 18 19 20 21 22 23 24 25 26 27 28 29 30 30 31 33 34 35 36 38 39 40页数查询并显示指定学生的考试结果 查询并显示指定班级的男女生人数 查询并显示指定班级的奖学金总额 查询并显示指定课程的平均成绩 学生信息表查询 生成数据并统计 矩阵 人工翻动的日历牌 数据转移操作 数据转移操作 输入班级号显示该班同学名单 文字设置 查询并显示指定班级的奖学金总额 查询并显示指定班级的学生名单 命令按钮组调色板 选项按钮组调色板 根据边长计算正方体体积、表面积和总边长 根据边长计算正方体体积、表面积和总边长 统计学生平均成绩或课程平均成绩 字体格式预览 信息窗 数字时钟 电子时钟 日期、星期、时钟表单 设计一个 24 秒倒记时表单,记时精度 1 秒 篮球比赛记时器表单,记时精度 1 秒 运动会 100 米径赛记时器表单,记时精度 0.01 秒 设计一个记时器表单,记时精度 1 秒 小球大小变化 文字缩放 文字水平移 时间信息平行移动第 1 页 共 77 页 Vfp 下例题汇总序号 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 浏览表文件“学生.dbf“ 自动浏览表文件“学生.dbf“ 抽奖表单 三次口令验证 指定表文件字段浏览 选页调色板 学籍信息自动浏览 学籍信息浏览 学生表内容自动浏览(绑定)题目 41 43 43 45 46 47 48 49 50 51 53 54 55 57 58 59 59 60 61 63 64 65 65 67 68 70 71 72 74 75 76页数学生表内容按钮组浏览(绑定) 学生表信息查询(文本框输入) 学生表信息查询(列表框输入) (绑定) 学生表信息查询(组合框输入) (绑定) 输入学号或姓名查询平均成绩 指定姓名查询平均成绩 指定课程名查询平均成绩 指定班级查询平均成绩 学生成绩信息查询 学生或课程成绩信息查询 添加成绩 学生成绩信息查询(2 个表格) 学生成绩信息查询(1 个列表框 1 个表格) 课程成绩信息查询(1 个列表框 1 个表格) 学生或课程成绩信息查询(2 个列表框 1 个表格) 学生成绩信息查询(文本框与表格) 成绩详细信息查询(列表框与文本框) 学生成绩信息查询(文本框与表格) 学生成绩信息查询 学生成绩信息查询 学生表纪录添加 文字逐个显示第 2 页 共 77 页 Vfp 下例题汇总要求: 编辑状态图中所见的属性在属性窗口中设置,其他属性和功能必须用程序代码实现 1. 计算圆面积 1)编辑状态如图 T1; 2)初始运行状态如图 T2;文本框 TEXT1 用于接收用户输入圆的半径,文本框 TEXT1 的初值为 0, (通过程序代码实现) 3)当用户输入圆的半径后,鼠标单击“计算”按钮(COMMAND1),判断输入的数据是否正确; 4)如果输入的半径小于等于 0,则用信息窗口提示错误,如图 T3 所示信息; 5)如果输入的数据正确,则将该圆的面积在文本框 TEXT2 中显示,如图 T4; 6)单击“退出”按钮(COMMAND2)时关闭表单。图 1 设计界面图 2 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=求圆的面积 LABEL1_CAPTION=输入半径 LABEL2_CAPTION=圆的面积 COMMAND1_CAPTION=计算 COMMAND2_CAPTION=退出 代码 THISFORM.TEXT1.VALUE=0 R=THISFORM.TEXT1.VALUE IF R&0 THISFORM.TEXT2.VALUE=PI()*R*R ELSE MESSAGEBOX(?半径必须大于零?) ENDIF THISFORM.RELEASE事件 FORM1 的 INIT 事件 COMMAND1 的 CLICK 事件COMMAND2 的 CLICK 事件2. 我的第一个面向对象程序 要求:如图 1 和图 2 所示,编制一个表单完成如下功能:当用户输入姓名和学号,按下“确定”按 钮后,窗口中显示“这是××的第一个面向对象程序!。 ”第 3 页 共 77 页 Vfp 下例题汇总图 1 设计界面图 2 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=我的第一个面向对象程序 LABEL1_CAPTION=请输入你的姓名 COMMAND1_CAPTION=退出 代码 thisform.text1.value=&这 是 &+allt(thisform.text1.value)+&的 第 一 个 面 向 对 象 程 序!& THISFORM.RELEASE事件 TEXT1 的 VALID 事件 COMMAND2 的 CLICK 事件3. 计算三角形面积 要求:如图 1、图 2 和图 3 所示,编制一个表单完成如下功能:文本框 TEXT1、TEXT2、TEXT3 用于 接收用户输入三角形的边长,文本框 TEXT1、TEXT2、TEXT3 的初值为 0(通过程序代码实现) ,按下 “判断计算”按钮后,如果用户数据能构成三角形,则窗口中显示对应信息和面积值。如果不能构成三 角形,则显示“不能构成三角形” 。图 1 设计界面图 2 运行时界面图 3 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=求三角形面积 LABEL1_CAPTION=请输入三角形的三个边长 LABEL2_CAPTION=A LABEL3_CAPTION=B LABEL4_CAPTION=C LABEL5_CAPTION=?? COMMAND1_CAPTION=判断计算 代码 THISFORM.TEXT1.VALUE=0第 4 页 共 77 页事件 FORM1 的 INIT 事件 Vfp 下例题汇总THISFORM.TEXT2.VALUE=0 THISFORM.TEXT3.VALUE=0 COMMAND1 的 CLICK 事件 A=THISFORM.TEXT1.VALUE B=THISFORM.TEXT2.VALUE C=THISFORM.TEXT3.VALUE IF A&0 AND B&0 AND C&0 AND A+B&C AND A+C&B AND B+C&A S=(A+B+C)/2 AREA=SQRT((S*(S-A)*(S-B)*(S-C)) THISFORM.LABEL5.CAPTION='能构成三角形,面积为:'+ ; ALLT(STR(AREA,10,2)) ELSE THISFORM.LABEL5.CAPTION='不能构成三角形' ENDIF THISFORM.RELEASECOMMAND2 的 CLICK 事件4. 计算一元二次方程的根 要求:如图 1、图 2 和图 3 所示,编制一个表单完成如下功能:文本框 TEXT1、TEXT2、TEXT3 的 初值都为 0(必须用程序代码实现) ,TEXT4 、TEXT5 显示为只读。用户输入分别输入某一元二次方 程的三个系数 A、B、C,按下“计算”按钮后,在对应的文本框中显示方程的根。如果 A=0,用消 息框显示方程无意义。如果方程无实数根,也用消息框提示。图 1 设计界面图 2 运行时界面图 3 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=一元二次方程求解 LABEL1_CAPTION=A LABEL2_CAPTION=B LABEL3_CAPTION=C LABEL4_CAPTION=X1= LABEL5_CAPTION=X2= COMMAND1_CAPTION=计算 COMMAND2_CAPTION=退出 代码 THISFORM.TEXT1.VALUE=0 THISFORM.TEXT2.VALUE=0 THISFORM.TEXT3.VALUE=0 A=THISFORM.TEXT1.VALUE B=THISFORM.TEXT2.VALUE C=THISFORM.TEXT3.VALUE第 5 页 共 77 页事件 FORM1 的 INIT 事件COMMAND1 的 CLICK 事件 Vfp 下例题汇总IF A=0 MESSAGEBOX(?方程无意义?) ELSE IF B*B-4*A*C&0 MESSAGEBOX(?方程无实根?) ELSE S=SQRT(B*B-4*A*C) THISFORM.TEXT4.VALUE=(-B+S)/2*A THISFORM.TEXT5.VALUE=(-B-S)/2*A ENDIF ENDIF COMMAND2 的 CLICK 事件 THISFORM.RELEASE 5. 登录窗口 1) 编辑状态如图 1;初始运行状态如图 2; 2) 正确的用户名为“USER” 、口令为“SQL”,都是大写字母; 3) 在输入口令时不显示口令内容,口令中的字符用“*”代替; 4) 在输入用户名和口令后,单击“登录”按钮(COMMAND1)进行验证,如果用户名和口令都正确, 用信息窗口显示“登录成功” 。否则显示“用户名或口令错误” ; 5) 单击“退出”按钮(COMMAND2)时关闭表单。图 1 编辑时界面图 2 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=登录窗口 LABEL1_CAPTION=用户名 LABEL2_CAPTION=口令 COMMAND1_CAPTION=登录 COMMAND2_CAPTION=退出 代码 THISFOMR.TEXT2.PASSWORDCHAR=?*? IF ALLT(THISFORM.TEXT1.VALUE)== ?USER? AND; ALLT(THISFORM.TEXT2.VALUE)==? SQL? MESSAGEBOX(?登录成功?) ELSE MESSAGEBOX(?用户名或口令错误?) ENDIF THISFORM.RELEASE第 6 页 共 77 页事件 FORM1 的 INIT 事件 COMMAND1 的 CLICK 事件COMMAND2 的 CLICK 事件 Vfp 下例题汇总6. 口令验证 要求:如图 1 和图 2、图 3 所示,编制一个表单完成如下功能:当用户在文本框中输入正确口令后, 在窗口中将显示“正确” ,否则显示“错误” 。口令为学生表中的“姓名”字段的值。图 1 设计界面图 2 运行时界面图 3 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=口令验证窗口 LABEL1_CAPTION=请输入口令 LABEL2_CAPTION=?? “学生”表 事件 FORM1 的 INIT 事件 TEXT1 的 VALID 事件 代码 THISFOMR.TEXT2.PASSWORDCHAR=?*? XM=ALLT(THISFORM.TEXT1.VALUE) LOCATE FOR ALLT(姓名)==XM IF FOUND() THISFORM.LABEL2.CAPTION='欢迎使用系统' ELSE THISFORM.LABEL2.CAPTION='口令错误' ENDIF数据环境7. 调色板 要求:如图 1 和图 2 所示,编制一个表单完成如下功能:当用户在按下窗口中的按钮后,表单窗口将 显示对应的背景颜色。第 7 页 共 77 页 Vfp 下例题汇总图 1 设计界面图 2 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=调色板 COMMAND1_CAPTION=黑 COMMAND2_CAPTION=红 COMMAND3_CAPTION=黄 COMMAND4_CAPTION=白 代码 THISFORM.BACKCOLOR=RGB(0,0,0) THISFORM.BACKCOLOR=RGB(255,0,0) THISFORM.BACKCOLOR=RGB(255,255,0) THISFORM.BACKCOLOR=RGB(255,255,2550)事件 COMMAND1 的 CLICK 事件 COMMAND2 的 CLICK 事件 COMMAND3 的 CLICK 事件 COMMAND4 的 CLICK 事件8. 输入学号查询平均成绩 要求: 1) 如图 1、图 2 和图 3 所示,输入学号后,程序查询成绩表中是否存在该同学的记录,如果存在, 则计算该通许成绩表中所有成绩的平均值,并显示;如果不存在,则显示“该同学没参加考试” 的消息框。 2) 显示平均成绩的文本框只读(要求用代码实现) 。图 1 设计界面图 2 运行时界面图 3 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=查询平均成绩 LABEL1_CAPTION=请输入学号 LABEL2_CAPTION=平均成绩 COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 “成绩”表第 8 页 共 77 页数据环境 Vfp 下例题汇总事件 FORM1 的 INIT 事件 COMMAND1 的 CLICK 事件代码 SET TALK OFF THISFORM.TEXT2.READONLY=.T. N=ALLTRIM(THISFORM.TEXT1.VALUE) LOCATE FOR ALLTRIM(学号)==N IF FOUND() AVERAGE 成绩 TO K FOR 学号==N THISFORM.TEXT2.VALUE=K ELSE THISFORM.TEXT2.VALUE=&& MESSAGEBOX(&该同学没参加考试&) ENDIF SET TALK ON THISFORM.RELEASECOMMAND2 的 CLICK 事件9. 查询并显示指定学生的考试结果 要求:(1)编制一个表单实现在“成绩”表中查询考试结果。(2)在 text1 中输入学号,如果成绩表没 有该同学成绩,则用消息框显示“该同学没参加考试” 。(3)如果该同学的成绩没有小于 60 的,则在 text2 中显示“考试课程全部通过” ,否则显示“下学期开学前补考” 。(4) 显示平均成绩的文本框只 读(要求用代码实现) 。图 1-设计图图 2-运行效果图图 2-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=查询考试结果 LABEL1_CAPTION=请输入学号 LABEL2_CAPTION=考试结果 COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 “成绩”表 事件 FORM1 的 INIT 事件 COMMAND1 的 CLICK 事件 代码 THISFORM.TEXT2.READONLY=.T. N=ALLTRIM(THISFORM.TEXT1.VALUE) LOCATE FOR ALLTRIM(学号)==N IF EOF() THISFORM.TEXT2.VALUE=&& MESSAGEBOX(&该同学没参加考试&)第 9 页 共 77 页数据环境 Vfp 下例题汇总ELSE LOCATE FOR ALLTRIM(学号)==N AND 成绩&60 IF EOF() THISFORM.TEXT2.VALUE=&考试课程全部通过& ELSE THISFORM.TEXT2.VALUE=&下学期开学前补考& ENDIF ENDIF COMMAND2 的 CLICK 事件 THISFORM.RELEASE10. 查询并显示指定班级的男女生人数 要求:(1)编制一个表单,实现在“学生”表中统计班级的男、女生人数的功能。(2)程序运行后,在 text1 中输入班级代号,如果学生表中没有该班级的学生,则消息框提示“该班级不存在” 。(3)如果 学生表中有该班级的同学,则统计该班级的男、女生人数,并分别显示在 text2 和 text3 中。(4) text2 和 text3 只读。 (要求用代码实现) 。图 1-设计图图 2-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=班级信息查询 LABEL1_CAPTION=班级代号 LABEL2_CAPTION=男生人数 LABEL3_CAPTION=女生人数 COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 “学生”表 事件 FORM1 的 INIT 事件 代码 SET TALK OFF THISFORM.TEXT2.READONLY=.T. THISFORM.TEXT3.READONLY=.T. N=ALLTRIM(THISFORM.TEXT1.VALUE) LOCATE FOR LEFT(学号,3)==N IF EOF() THISFORM.TEXT2.VALUE=&& THISFORM.TEXT3.VALUE=&& MESSAGEBOX(&该班级代号不存在&) ELSE第 10 页 共 77 页数据环境COMMAND1 的 CLICK 事件 Vfp 下例题汇总COUNT TO K FOR LEFT(学号,3)==N AND 性别 COUNT TO L FOR LEFT(学号,3)==N AND !性别 THISFORM.TEXT2.VALUE=K THISFORM.TEXT3.VALUE=L ENDIF COMMAND2 的 CLICK 事件 SET TALK ON THISFORM.RELEASE11. 查询并显示指定班级的奖学金总额 要求:(1)编制一个表单,实现在“学生”表中统计指定班级的奖学金总额。(2)程序运行后,在 text1 中输入班级代号,如果学生表中没有该班级的学生,则消息框提示“该班级不存在” 。(3)如果学生 表中有该班级的同学,则统计该班级的奖学金总额,并显示在 text2 中。(4) text2 只读。 (要求用代 码实现) 。图 1-设计图图 2-运行效果图图 3-运行效果图图 4-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=班级奖学金查询 LABEL1_CAPTION=输入班级代号 LABEL2_CAPTION=奖学金总额 COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 “学生”表 事件 FORM1 的 INIT 事件 COMMAND1 的 CLICK 事件 代码 SET TALK OFF THISFORM.TEXT2.READONLY=.T. N=ALLTRIM(THISFORM.TEXT1.VALUE)第 11 页 共 77 页数据环境 Vfp 下例题汇总LOCATE FOR LEFT(学号,3)==N IF EOF() THISFORM.TEXT2.VALUE=&& MESSAGEBOX(&该班级代号不存在&) ELSE SUM 奖学金 TO K FOR LEFT(学号,3)==N THISFORM.TEXT2.VALUE=K ENDIF COMMAND2 的 CLICK 事件 SET TALK ON THISFORM.RELEASE12. 查询并显示指定课程的平均成绩 要求:(1)编制一个表单,实现在“成绩”表中统计指定课程的平均成绩。(2)程序运行后,在 text1 中输入课程号,如果课程表中没有该课程的记录,则消息框提示“该课程成绩没有输入” 。(3)如果 学生表中有该课程的记录,则统计该课程的平均成绩,并显示在 text2 中。(4) text2 只读。 (要求用 代码实现) 。图 1-设计图图 2-运行效果图图 3-运行效果图图 4-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=查询课程平均成绩 LABEL1_CAPTION=输入课程号 LABEL2_CAPTION=平均成绩 COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 “成绩”表第 12 页 共 77 页数据环境 Vfp 下例题汇总事件 FORM1 的 INIT 事件 COMMAND1 的 CLICK 事件代码 SET TALK OFF THISFORM.TEXT2.READONLY=.T. N=ALLTRIM(THISFORM.TEXT1.VALUE) LOCATE FOR ALLTRIM(课程号)==N IF EOF() THISFORM.TEXT2.VALUE=&& MESSAGEBOX(&该课程成绩没有输入&) ELSE AVERAGE FOR ALLTRIM(课程号)==N 成绩 TO K THISFORM.TEXT2.VALUE=K ENDIF SET TALK ON THISFORM.RELEASECOMMAND2 的 CLICK 事件13. 学生信息表查询 要求:如图 1 和 2 所示,编制一个表单完成如下功能:1)当用户在文本框中输入学号,程序在学生 表中查找对应记录,如果记录存在,则显示对应学生信息,如果就不存在,则提示“你所查找的学 生并不存在!。2)在文本框的 valid 事件中判断。 ”图 1-设计图图 2-运行效果图图 3-运行效果图图 4-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=学生表信息查询 LABEL1_CAPTION=请输入学生学号第 13 页 共 77 页 Vfp 下例题汇总LABEL2_CAPTION=?? LABEL3_CAPTION=姓名 LABEL4_CAPTION=性别 LABEL5_CAPTION=出生年月 LABEL6_CAPTION=奖学金 TEXT2_READONLY=.T. TEXT3_READONLY=.T. TEXT4_READONLY=.T. TEXT5_READONLY=.T. 数据环境 事件 FORM1 的 INIT 事件 THIS.SETALL(&VISIBLE&,.F.) THIS.LABEL1.VISIBLE=.T. THIS.TEXT1.VISIBLE=.T. LOCATE FOR ALLTRIM(学号)==ALLTRIM(THIS.VALUE) IF FOUND() THISFORM.LABEL2.CAPTION=&& THISFORM.SETALL(&VISIBLE&,.T.) THISFORM.TEXT2.VALUE=姓名 THISFORM.TEXT3.VALUE=性别 THISFORM.TEXT4.VALUE=出生年月 THISFORM.TEXT5.VALUE=奖学金 ELSE THISFORM.SETALL(&VISIBLE&,.F.) THISFORM.LABEL1.VISIBLE=.T. THISFORM.TEXT1.VISIBLE=.T. THISFORM.LABEL2.VISIBLE=.T. THISFORM.LABEL2.CAPTION=&您所指定的学生并不存在! & ENDIF “学生”表 代码TEXT1 的 VALID 事件14. 生成数据并统计 要求:如图 1 和 2 所示,在文本框中输入一个起始数,则在编辑框中显示 20 个从起始数开始的并 且是 3 的倍数的正整数,而且要求这 20 个数字的个位数字都是 3,利用标签输出这 20 个数的和。 要求编写 Form1 的 init 事件、Text1 的 valid 事件、command1 的 click 事件。第 14 页 共 77 页 Vfp 下例题汇总图 1-设计图图 2-运行效果图图 3-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=生成数据并统计 LABEL1_CAPTION=输入开始值 LABEL2_CAPTION=?? COMMAND1_CAPTION=统计 EDIT1_READONLY=.T. 代码 N=1 S='' A=VAL(THISFORM.TEXT1.VALUE) DO WHILE N&=20 IF(A%3)=0 .AND. A%10=3 N=N+1 S=S+STR(A)+CHR(13) ENDIF A=A+1 ENDDO THISFORM.EDIT1.VALUE=S N=1 S=0 A=VAL(THISFORM.TEXT1.VALUE) DO WHILE N&=20 IF(A%3)=0 .AND. A%10=3 N=N+1 S=S+A ENDIF A=A+1 ENDDO THISFORM.LABEL2.CAPTION=&这组数字的和是&+ALLT(STR(S))事件 TEXT1 的 VALID 事件COMMAND1 的 CLICK 事件15. 矩阵 要求:如图 1 和图 2 所示,文本框中输入 1~10 的数据,单击显示按钮,在编辑框中显示对应行数 和列数的矩阵。第 15 页 共 77 页 Vfp 下例题汇总图 1-设计图图 2-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=生成矩阵 LABEL1_CAPTION=请输入一个 1`10 之间的数字 COMMAND1_CAPTION=显示 代码 N=VAL(THISFORM.TEXT1.VALUE) S=&& FOR I=1 TO N FOR J=1 TO N IF J=I OR J+I=N+1 S=S+&0&+SPACE(1) ELSE S=S+&1&+SPACE(1) ENDIF ENDFOR S=S+CHR(13) ENDFOR THISFORM.EDIT1.VALUE=S事件 COMMAND1 的 CLICK 事件16. 人工翻动的日历牌 要求:如图所示,编制一个表单完成如下功能:1)以“****年**月**日”的格式显示系统当前日期 2)按下微调器的按钮可以显示当前日期之前或之后的日期图 1-设计图图 2-运行效果图属性窗口设置第 16 页 共 77 页 Vfp 下例题汇总属性窗口设置: 事件 FORM1 的 INIT 事件FORM1_CAPTION=人工翻动的日历牌 代码 THISFORM.TEXT1.READONLY=.T. THISFORM.TEXT1.DATEFORMAT=14 THISFORM.TEXT1.VALUE=DATE() THISFORM.TEXT1.VALUE=THISFORM.TEXT1.VALUE+1 THISFORM.TEXT1.VALUE=THISFORM.TEXT1.VALUE-1SPINNER1 的 UPCLICK 事件 SPINNER1 的 DOWNCLICK 事件17. 数据转移操作 要求:如图所示,编制一个表单完成如下功能:程序运行后,左边源数据列表显示学生表中学生的 姓名,右边目标数据列表为空,当源数据列表中选中一位同学后,单击“选择一项”按钮,该同学 姓名就从源数据列表被移动到目标数据列表。当在目标数据列表中选择一位同学后,单击“退还一 项” 该同学姓名就从目标数据列表被移动到源数据列表。 ,图 1-设计图图 2-运行效果图图 3-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=数据转移操作 LABEL1_CAPTION=源数据列表 LABEL2_CAPTION=目数标据列表 COMMAND1_CAPTION=选择一项 COMMAND2_CAPTION=退还一项 “学生”表 事件 FORM1 的 INIT 事件 代码 SCAN THIS.LIST1.ADDITEM(姓名) ENDSCAN THISFORM.LIST2.ADDITEM(THISFORM.LIST1.VALUE) THISFORM.LIST1.REMOVEITEM(THISFORM.LIST1.LISTINDEX) THISFORM.LIST1.ADDITEM(THISFORM.LIST2.VALUE) THISFORM.LIST2.REMOVEITEM(THISFORM.LIST2.LISTINDEX)数据环境COMMAND1 的 CLICK 事件 COMMAND2 的 CLICK 事件18. 数据转移操作 要求:如图 1 和 2 所示,编制一个表单列表框中信息项的互传操作。第 17 页 共 77 页 Vfp 下例题汇总图 1-设计图图 2-运行效果图图 3-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=数据转移操作 LABEL1_CAPTION=源数据列表 LABEL2_CAPTION=目标数据列表 COMMAND1_CAPTION=右移一项 COMMAND2_CAPTION=左移一项 COMMAND3_CAPTION=全部右移 COMMAND4_CAPTION=全部左移 “学生”表 事件 FORM1 的 INIT 事件 代码 SCAN THIS.LIST1.ADDITEM(姓名) ENDSCAN THISFORM.LIST2.ADDITEM(THISFORM.LIST1.VALUE) THISFORM.LIST1.REMOVEITEM(THISFORM.LIST1.LISTINDEX) THISFORM.LIST1.ADDITEM(THISFORM.LIST2.VALUE) THISFORM.LIST2.REMOVEITEM(THISFORM.LIST2.LISTINDEX) THISFORM.LIST2.CLEAR SCAN THISFORM.LIST2.ADDITEM(姓名) ENDSCAN THISFORM.LIST1.CLEAR THISFORM.LIST1.CLEAR SCAN THISFORM.LIST1.ADDITEM(姓名) ENDSCAN THISFORM.LIST2.CLEAR数据环境COMMAND1 的 CLICK 事件 COMMAND2 的 CLICK 事件 COMMAND3 的 CLICK 事件COMMAND4 的 CLICK 事件19. 输入班级号显示该班同学名单 要求:如图 1 和 2 所示,编制一个表单完成如下功能:1)当用户在文本框中输入班级号,程序在学生 表中查找对应记录,如果记录存在,则显示对应学生姓名,如果就不存在,则提示“该班级不存在!。 ”第 18 页 共 77 页 Vfp 下例题汇总图 1-设计图图 2-运行效果图图 3-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=输入班级号显示该班学生名单 LABEL1_CAPTION=请输入班级号 LABEL2_CAPTION=班级学生名单 COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 “学生”表 事件 COMMAND1 的 CLICK 事件 代码 THISFORM.LIST1.CLEAR BJH=ALLTRIM(THISFORM.TEXT1.VALUE) LOCATE FOR LEFT(学号,3)==BJH IF FOUND() SCAN FOR LEFT(学号,3)==BJH THISFORM.LIST1.ADDITEM(姓名) ENDSCAN ELSE MESSAGEBOX('该班级不存在') ENDIF THISFORM.RELEASE数据环境COMMAND2 的 CLICK 事件20. 文字设置(P264) 要求:如图 1 和 2 所示,编制一个表单,通过选择三个组合框中的选项来改变标签中文字的字体、字 号及颜色。 Combo1 中数据项为 “宋体,隶书,黑体,幼圆” Combo2 中数据项为 ; “10,19,28,45,54”Combo3 ; 中数据项为“红色,绿色,蓝色,黄色” 。三个组合框都设为“下拉列表框” 。第 19 页 共 77 页 Vfp 下例题汇总 图 1-设计图 图 2-运行效果图 图 3-运行效果图属性窗口设置 属性窗口设置: 事件 FORM1 的 INIT 事件 FORM1_CAPTION=文字设置 LABEL1_CAPTION=组合框 代码 THISFORM.COMBO1.STYLE=2 THISFORM.COMBO2.STYLE=2 THISFORM.COMBO3.STYLE=2 THISFORM.COMBO1.ROWSOURCETYPE=1 THISFORM.COMBO1.ROWSOURCE=&宋体,隶书,黑体,幼圆& THISFORM.COMBO2.ROWSOURCETYPE=1 THISFORM.COMBO2.ROWSOURCE=&10,19,28,45,54& THISFORM.COMBO3.ROWSOURCETYPE=1 THISFORM.COMBO3.ROWSOURCE=&红色,绿色,蓝色,黄色& THISFORM.LABEL1.FONTNAME=THIS. VALUE THISFORM.LABEL1.FONTSIZE=VAL(THIS.VALUE) DO CASE CASE THIS. VALUE =&红色& THISFORM.LABEL1.FORECOLOR=RGB(255,0,0) CASE THIS. VALUE =&绿色& THISFORM.LABEL1.FORECOLOR=RGB(0,255,0) CASE THIS. VALUE =&蓝色& THISFORM.LABEL1.FORECOLOR=RGB(0,0,255) CASE THIS. VALUE =&黄色& THISFORM.LABEL1.FORECOLOR=RGB(255,255,0) ENDCASECOMBO1 的 INTERACTIVECHANGE 事件 COMBO2 的 INTERACTIVECHANGE 事件 COMBO3 的 INTERACTIVECHANGE 事件21. 查询并显示指定班级的奖学金总额 要求:如图所示,编制一个表单完成如下功能:(1)当用户在组合框中输入或选择班级后,按回车件 或者单击确定按钮时,表单将显示对应班级的奖学金总额。 (2)如果学生表中没有该班级的学生, 则消息框提示“该班级不存在” (3) text1 只读(必须用程序代码实现) 。图 1-设计图图 2-运行效果图第 20 页 共 77 页 Vfp 下例题汇总图 3-运行效果图图 4-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=查询并显示指定班级奖学金总额 LABEL1_CAPTION=请输入或选择班级号: LABEL2_CAPTION=奖学金总额: COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 “学生”表 事件 FORM1 的 INIT 事件 代码 SET TALK OFF INDEX ON LEFT(学号,3) TO INXH UNIQUE SCAN THIS.COMBO1.ADDITEM(LEFT(学号,3)) ENDSCAN SET INDEX TO THISFORM.TEXT1.READONLY=.T. BJH=ALLTRIM(THISFORM.COMBO1.DISPLAYVALUE) LOCATE FOR LEFT(学号,3)==BJH IF FOUND() SUM 奖学金 TO MJXJ FOR LEFT(学号,3)==BJH THISFORM.TEXT1.VALUE=MJXJ ELSE THISFORM.TEXT1.VALUE='' MESSAGEBOX('该班级不存在!') ENDIF THISFORM.RELEASE数据环境COMMAND1 的 CLICK 事件COMMAND2 的 CLICK 事件22. 查询并显示指定班级的学生名单 要求:如图所示,编制一个表单完成如下功能:1)当用户在组合框中输入或选择班级号,程序在学 生表中查找对应记录,如果记录存在,则显示对应学生姓名,如果就不存在,则用消息框提示“该 班级不存在!。 ”第 21 页 共 77 页 Vfp 下例题汇总图 1-设计图图 2-运行效果图图 3-运行效果图图 4-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=查询并显示指定班级奖学金总额 LABEL1_CAPTION=请输入或选择班级号: LABEL2_CAPTION=奖学金总额: COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 “学生”表 事件 FORM1 的 INIT 事件 代码 INDEX ON LEFT(学号,3) TO INXH UNIQUE SCAN THIS.COMBO1.ADDITEM(LEFT(学号,3)) ENDSCAN SET INDEX TO THISFORM.LIST1.CLEAR BJH=ALLTRIM(THISFORM.COMBO1.DISPLAYVALUE) LOCATE FOR LEFT(学号,3)==BJH IF FOUND() SCAN FOR LEFT(学号,3)==BJH THISFORM.LIST1.ADDITEM(姓名) ENDSCAN ELSE MESSAGEBOX('该班级不存在') ENDIF THISFORM.RELEASE数据环境COMMAND1 的 CLICK 事件COMMAND2 的 CLICK 事件23. 命令按钮组调色板 要求: 当用户按了命令按钮组中的某个按钮后,表单的背景色就会变为按钮指定的对应颜色。第 22 页 共 77 页 Vfp 下例题汇总 图 1-设计图 图 2-运行效果图 图 3-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=命令按钮组调色板 COMMANDGROUP1_BUTTONCOUNT=5 COMMANDGROUP1_COMMAND1_CAPTION=红 COMMANDGROUP1_COMMAND2_CAPTION=绿 COMMANDGROUP1_COMMAND3_CAPTION=蓝 COMMANDGROUP1_COMMAND4_CAPTION=黑 COMMANDGROUP1_COMMAND5_CAPTION=白 事件 COMMANDGROUP1 的 CLICK 事件 代码 DO CASE CASE THIS.VALUE=1 THISFORM.BACKCOLOR=RGB(255,0,0) CASE THIS.VALUE=2 THISFORM.BACKCOLOR=RGB(0,255,0) CASE THIS.VALUE=3 THISFORM.BACKCOLOR=RGB(0,0,255) CASE THIS.VALUE=4 THISFORM.BACKCOLOR=RGB(0,0,0) CASE THIS.VALUE=5 THISFORM.BACKCOLOR=RGB(255,255,255) ENDCASE24. 选项按钮组调色板 要求:当用户按了选项按钮组中的某个按钮后,表单的背景色就会变为按钮指定的对应颜色。图 1-设计图图 2-运行效果图图 3-运行效果图属性窗口设置 属性窗口设置: 事件 FORM1 的 INIT 事件 OPTIONGROUP1_BUTTONCOUNT=5 代码 THIS.CAPTION=&选项按钮组调色板& C=&红绿蓝黑白& FOR I=1 TO 5 THIS.OPTIONGROUP1.BUTTONS[I].CAPTION=SUBSTR(C,2*I-1, 2) ENDFOR 的 DO CASE CASE THIS.VALUE=1第 23 页 共 77 页OPTIONGROUP1 CLICK 事件 Vfp 下例题汇总THISFORM.BACKCOLOR=RGB(255,0,0) CASE THIS.VALUE=2 THISFORM.BACKCOLOR=RGB(0,255,0) CASE THIS.VALUE=3 THISFORM.BACKCOLOR=RGB(0,0,255) CASE THIS.VALUE=4 THISFORM.BACKCOLOR=RGB(0,0,0) CASE THIS.VALUE=5 THISFORM.BACKCOLOR=RGB(255,255,255) ENDCASE25. 根据边长计算正方体体积、表面积和总边长 要求:设计一个根据边长计算正方体体积、表面积和总边长的表单。编辑状态如图,选项按钮组的名 称为 Optiongroup1;初始运行状态如图,文本框 TEXT1 中的值为数值型;在 TEXT1 中输入某正方体 的边长,通过选项按钮选择计算的结果是体积、表面积还是总边长,然后,单击“计算”按钮,通过 标签 LABEL2 显示计算结果,单击“退出”按钮时程序结束。图 1-设计图图 2-运行效果图图 3-运行效果图属性设置 属性窗口设置: 事件 FORM1 的 INIT 事件 LABEL2_CAPTION=?? OPTIONGROUP1_BUTTONCOUNT=3 代码 THISFORM.CAPTION=?正方体计算? THISFORM.TEXT1.VALUE=0 THISFORM.LABEL1.CAPTION=?请输入正方体边长? THISFORM.OPTIONGROUP1.OPTION1.CAPTION=?总边长? THISFORM.OPTIONGROUP1.OPTION2.CAPTION=?表面积? THISFORM.OPTIONGROUP1.OPTION3.CAPTION=?体积? THISFORM.COMMAND1.CAPTION=?计算? THISFORM.COMMAND2.CAPTION=?退出? A=THISFORM.TEXT1.VALUE B=THISFORM.OPTIONGROUP1.VALUE DO CASE CASE B=1 THISFORM.LABEL2.CAPTION=?总边长?+STR(12*A)第 24 页 共 77 页COMMAND1 的 CLICK 事件 Vfp 下例题汇总CASE B=2 THISFORM.LABEL2.CAPTION=?表面积?+STR(6*A*A) CASE B=3 THISFORM.LABEL2.CAPTION=?体积?+STR(A*A*A) ENDCASE COMMAND2 的 CLICK 事件 THISFORM.RELEASE26. 根据边长计算正方体体积、表面积和总边长 要求:设计一个根据边长计算正方体体积、表面积和总边长的表单。编辑状态如图,命令按钮组的 名称为 commandgroup1;初始运行状态如图,文本框 TEXT1 中的值为数值型;在 TEXT1 中输入某 正方体的边长,通过选项按钮选择计算的结果是体积、表面积还是总边长,然后,单击“计算”按 钮,通过标签 LABEL2 显示计算结果,单击“退出”按钮时程序结束。图 1-设计图图 2-运行效果图图 3-运行效果图属性设置 属性窗口设置: 事件 FORM1 的 INIT 事件 LABEL2_CAPTION=?? COMMANDGROUP1_BUTTONCOUNT=3 代码 THISFORM.CAPTION=?正方体计算? THISFORM.TEXT1.VALUE=0 THISFORM.LABEL1.CAPTION=?请输入正方体边长? THISFORM.COMMANDGROUP1.COMMAND1.CAPTION=?总边长? THISFORM. COMMANDGROUP1.COMMAND2.CAPTION=?表面积? THISFORM. COMMANDGROUP1.COMMAND3.CAPTION=?体积? R=THISFORM.TEXT1.VALUE X1=THIS.VALUE X2=&正方体& DO CASE CASE X1=1 THISFORM.LABEL2.CAPTION=X2+&周长=&+ALLT(STR(12*R)) CASE X1=2 THISFORM.LABEL2.CAPTION=X2+&表面积=&+ALLT(STR(6*R*R)) CASE X1=3 THISFORM.LABEL2.CAPTION=X2+&体积=&+ALLT(STR(R*R*R)) ENDCASECOMMANDGROUP1 的 CLICK 事件第 25 页 共 77 页 Vfp 下例题汇总27. 统计学生平均成绩或课程平均成绩 要求:统计学生平均成绩或课程平均成绩。编辑状态如图,选项按钮组的名称为 Optiongroup1;初 始运行状态如图,在 TEXT1 中输入某学号或课程号,通过选项按钮选择输入的是学号还是课程号, 单击“计算”按钮,通过 TEXT2 显示计算结果,单击“退出”按钮时程序结束。 要求: 1)编辑状态图中所见的属性在属性窗口中设置,其他属性和功能必须用程序代码实现;图 1-设计图图 2-运行效果图图 3-运行效果图图 4-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=统计平均成绩 LABEL1_CAPTION=输入学号或课程号 LABEL2_CAPTION=平均成绩 OPTIONGROUP1_OPTION1_CAPTION=输入学号 OPTIONGROUP1_OPTION 2_CAPTION=输入课程号 COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 OPTIONGROUP1_BUTTONCOUNT=2 “成绩”表 事件 FORM1 的 INIT 事件 代码 SET TALK OFF THISFORM.TEXT2.READONLY=.T.第 26 页 共 77 页数据环境 Vfp 下例题汇总COMMAND1 的 CLICK 事件S=ALLT(THISFORM.TEXT1.VALUE) IF THISFORM.OPTIONGROUP1.VALUE=1 LOCATE FOR 学号= =S IF FOUND() AVERAGE 成绩 TO PJ FOR 学号= =S THISFORM.TEXT2.VALUE=PJ ELSE THISFORM.TEXT2.VALUE='没有这个同学的成绩' ENDIF ELSE LOCATE FOR ALLT(课程号)= =S IF FOUND() AVERAGE 成绩 TO PJ FOR 课程号= =S THISFORM.TEXT2.VALUE=PJ ELSE THISFORM.TEXT2.VALUE='没有这个课程的成绩' ENDIF ENDIF SET TALK ON THISFORM.RELEASECOMMAND2 的 CLICK 事件28. 字体格式预览 要求: 1) 文字信息从键盘输入至文本框; 2) 选项按钮分别用于设置文本框中的字体“宋体” 、 “楷体”和“隶书” Combo1 中数据项为“10,19,28,45,54” ; ;list1 中数据项为“红色,绿色,蓝色,黄 色” 。 3) 复选框分别设置或取消文本框中字体的“加粗”“倾斜”和“下划线” 、 ,如图。 要求: 1)编辑界面图中所示的属性在属性窗口中设置,其他属性和功能必须用程序代码实现; 2) 编 写 选 项 按 钮 组 OPTIONGROUP1 的 CLICK 事 件 代 码 ; 3) 编 写 list1 和 combo1 的 INTERACTVIECHANGE 事件代码;3)编写 3 个复选框的 CLICK 事件代码; 4)表单中不允许使用 IF 语句,只允许使用 DO--CASE 语句;5)属性设置不允许使用 SETALL 方法。图 1-设计图图 2-运行效果图图 3-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=字体格式预览第 27 页 共 77 页 Vfp 下例题汇总OPTIONGROUP1_BUTTONCOUNT=3 OPTIONGROUP1_OPTION1_CAPTION=宋体 OPTIONGROUP1_OPTION2_CAPTION=楷体 OPTIONGROUP1_OPTION3_CAPTION=隶书 CHECK1_CAPTION=加粗 CHECK2_CAPTION=倾斜 CHECK3_CAPTION=下划线 事件 FORM1 的 INIT 事件 代码 THISFORM.COMBO1.ROWSOURCETYPE=1 THISFORM. COMBO1.ROWSOUR=? 10,19,28,45,54? THISFORM.LIST1.ROWSOURCETYPE=1 THISFORM.LIST1.ROWSOUR=?红色,绿色,蓝色,黄色? DO CASE CASE THIS.VALUE=1 THISFORM.EDIT1.FONTNAME=?宋体? CASE THIS.VALUE=2 THISFORM. EDIT1.FONTNAME=?黑体? CASE THIS.VALUE=3 THISFORM. EDIT1.FONTNAME=?隶书? ENDCASE THISFORM.EDIT1.FONTSIZE=THIS.DISPLAYVALUEOPTIONGROUP1 的 CLICK 事件COMBO1 的 INTERACTIVECHANGE 事 件 LIST1 的 INTERACTIVECHANGE 事 件DO CASE CASE THIS. DISPLAYVALUE =?红色? THISFORM.EDIT1.FORECOLOR=RGB(255,0,0) CASE THIS. DISPLAYVALUE =?绿色? THISFORM. EDIT1.FORECOLOR=RGB(0,255,0) CASE THIS. DISPLAYVALUE =?蓝色? THISFORM. EDIT1.FORECOLOR=RGB(0,255) CASE THIS. DISPLAYVALUE =?黄色? THISFORM. EDIT1.FORECOLOR= RGB(255,255,0) ENDCASE THISFORM. EDIT1.FONTBOLD=THIS.VALUE THISFORM. EDIT1.FONTITALIC= THIS.VALUE THISFORM. EDIT1.FONTUNDERLINE= THIS.VALUECHECK1 的 CLICK 事件 CHECK2 的 CLICK 事件 CHECK3 的 CLICK 事件29. 信息窗 要求:编制一个信息显示(时钟)的界面,显示当前时间(每秒动态显示跳动一次),并将表单的背景颜 色设置为蓝、绿色自动变换(与时间同步切换)第 28 页 共 77 页 Vfp 下例题汇总图 1-设计图图 2-运行效果图图 3-运行效果图属性窗口设置 属性窗口设置: 事件 FORM1 的 INIT 事件 FORM1_CAPTION=信息窗 代码 THIS.TIMER1.INTERVAL=1000 THIS.TIMER1.ENABLED=.T. A=TIME() THISFORM.TEXT1.VALUE=A IF VAL(RIGHT(A,2))%2=0 THISFORM.BACKCOLOR=RGB(0,255,0) ELSE THISFORM.BACKCOLOR=RGB(0,0,255) ENDIF A=TIME() THISFORM.TEXT1.VALUE=A IF VAL(RIGHT(A,2))%2=0 THISFORM.BACKCOLOR=RGB(0,255,0) ELSE THISFORM.BACKCOLOR=RGB(0,0,255) ENDIFTIMER1 的 TIMER 事件30. 数字时钟 要求:编制一个信息显示(时钟)的界面,显示当前时间(每秒动态显示跳动一次),时、分、秒要求用 汉字说明。图 1-设计图图 2-运行效果图属性窗口设置 属性窗口设置: 事件 FORM1 的 INIT 事件 代码 THIS.CAPTION=&数字时钟& THIS.TIMER1.INTERVAL=1000 S=SUBSTR(TIME(),1,2) F=SUBSTR(TIME(),4,2)第 29 页 共 77 页 Vfp 下例题汇总M=SUBSTR(TIME(),7,2) THISFORM.TEXT1.VALUE=S+&时&+F+'分'+M+'秒' THISFORM.TEXT1.READONLY=.T. TIMER1 的 TIMER 事件 S=SUBSTR(TIME(),1,2) F=SUBSTR(TIME(),4,2) M=SUBSTR(TIME(),7,2) THISFORM.TEXT1.VALUE=S+&时&+F+'分'+M+'秒'31. 电子时钟 要求:显示系统当前时间,单击“退出” (COMMAND1)按钮时关闭表单。图 1-设计图图 2-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=电子时钟 LABEL1_CAPTION=当前时间 LABEL2_CAPTION=时 LABEL3_CAPTION=分 LABEL4_CAPTION=秒 COMMAND1_CAPTION=退出 代码 THIS.TIMER1.INTERVAL=1000 THIS.TIMER1.ENABLED=.T. S=SUBSTR(TIME(),1,2) F=SUBSTR(TIME(),4,2) M=SUBSTR(TIME(),7,2) THISFORM.TEXT1.VALUE=S THISFORM.TEXT2.VALUE=F THISFORM.TEXT3.VALUE=M THISFORM.SETALL('READONLY',.T.,'TEXTBOX') S=SUBSTR(TIME(),1,2) F=SUBSTR(TIME(),4,2) M=SUBSTR(TIME(),7,2) THISFORM.TEXT1.VALUE=S THISFORM.TEXT2.VALUE=F THISFORM.TEXT3.VALUE=M事件 FORM1 的 INIT 事件TIMER1 的 TIMER 事件第 30 页 共 77 页 Vfp 下例题汇总32. 日期、星期、时钟表单 1)编辑状态如图 T1;初始运行状态如图 T2; 要求: (1)显示当前“日期” “星期” “时钟” ;(2)时钟每 1 秒种跳一次图 1 设计界面图 2 初始运行界面属性窗口设置 属性窗口设 置: FORM1_CAPTION=日历时钟表单 LABEL1_CAPTION=日期 LABEL2_CAPTION=星期 LABEL3_CAPTION=时钟 LABEL1_WORDWRAP=.T. LABEL2_WORDWRAP=.T. LABEL3_WORDWRAP=.T. TEXT1_READONLY=.T. TEXT2_READONLY=.T. TEXT3_READONLY=.T. 代码 THISFORM.TIMER1.ENABLED=.T. THISFORM.TIMER1.INTERVAL=1000 THISFORM.TEXT1.VALUE=DATE() C=&日一二三四五六& W=DOW(DATE()) THISFORM.TEXT2.VALUE=&星期&+SUBSTR(C,2*W-1,2)+&(&+CDOW(DATE())+&)& THISFORM.TEXT3.VALUE=TIME() THISFORM.TEXT1.VALUE=DATE() C=&日一二三四五六& W=DOW(DATE()) THISFORM.TEXT2.VALUE=&星期&+SUBSTR(C,2*W-1,2)+&(&+CDOW(DATE())+&)& THISFORM.TEXT3.VALUE=TIME()事件 FORM1 的 INIT 事件TIMER1 的 TIMER 事件33. 设计一个 24 秒倒记时表单,记时精度 1 秒: 1)编辑状态如图 1;初始运行状态如图 2; 2)单击“开始”按钮后开始倒记时; 3)单击“暂停”按钮时停止记时; 4) 单击“复位”按钮时,恢复到初始运行状态;第 31 页 共 77 页 Vfp 下例题汇总5 )当倒记时到 0 秒时,自动停止记时,并且“开始”按钮不可用; 要求: 1)编辑状态图 T1 中所见的属性在属性窗口中设置,其他属性和功能必须用程序代码实现; 2)编写表单 FORM1 的 INIT 事件代码; 3)编写命令按钮 COMMAND1、COMMAND2 、COMMAND3 的 CLICK 事件代码; 4)编写计时器控件 TIMER1 的 TIMER 事件代码。图 1 设计界面图 2 初始运行界面图 3 按下“开始”按钮后界面图 4 按下“暂停”按钮后界面图 5 倒计时到‘0’时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=篮球比赛 24 秒倒计时 COMMAND1_CAPTION=开始 COMMAND2_CAPTION=暂停 COMMAND3_CAPTION=复位 代码 THISFORM.TIMER1.ENABLED=.F. THISFORM.TIMER1.INTERVAL=1000 THISFORM.TEXT1.VALUE=24 THISFORM.COMMAND2.ENABLED=.F. THISFORM.TEXT1.VALUE=THISFORM.TEXT1.VALUE-1 IF THISFORM.TEXT1.VALUE =0 THISFORM.TIMER1.ENABLED=.F. THISFORM.COMMAND1.ENABLED=.F. THISFORM.COMMAND2.ENABLED=.F. THISFORM.COMMAND3.ENABLED=.T. ENDIF THISFORM.TIMER1.ENABLED=.T. THISFORM.COMMAND1.ENABLED=.F. THISFORM.COMMAND2.ENABLED=.T. THISFORM.TIMER1.ENABLED=.F.第 32 页 共 77 页事件 FORM1 的 INIT 事件TIMER1 的 TIMER 事件COMMAND1 的 CLICK 事件COMMAND2 的 CLICK 事件 Vfp 下例题汇总THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND2.ENABLED=.F. COMMAND3 的 CLICK 事件 THISFORM.TIMER1.ENABLED=.F. THISFORM.TEXT1.VALUE=24 THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND2.ENABLED=.F.34. 篮球比赛记时器表单,记时精度 1 秒 要求:设计一个篮球比赛计时器表单,记时精度 1 秒:1)编辑状态如图 1;2)初始运行时“开始” 按钮(COMMAND1)可用,“暂停”按钮(COMMAND2)不可用;初始运行状态如图 2;3)单击“开始” 按钮后开始记时; “开始”按钮不可用,“暂停”按钮可用,如图 3 所示;4)单击“暂停”按钮时停止 记时, “开始”按钮可用,“暂停”按钮不可用,如图 4 所示;5)使用公用属性变量记录时间。图 1 设计界面图 2 初始运行界面图 3-运行效果图图 4-运行效果图属性设置 属性窗口设置: FORM1_CAPTION=篮球赛计时表 COMMAND1_CAPTION=开始 COMMAND2_CAPTION=暂停 代码 THISFORM.TEXT1.VALUE=?00:00? THISFORM.TIMER1.ENABLED=.F. THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND2.ENABLED=.F. THISFORM.TIMER1.INTERVAL=1000 PUBLIC A,B STORE 0 TO A,B A=A+1 IF A=60第 33 页 共 77 页事件 FORM1 的 INIT 事件TIMER1 的 TIMER 事件 Vfp 下例题汇总A=0 B=B+1 ENDIF AA=IIF(A&10,?0?+STR(A,1),STR(A,2)) BB= IIF(B&10,?0?+STR(B,1),STR(B,2)) THISFORM.TEXT1.VALUE= BB+?:?+AA COMMAND1 的 CLICK 事件 THISFORM.TIMER1.ENABLED=.T. THISFORM.COMMAND1.ENABLED=.F. THISFORM.COMMAND2.ENABLED=.T. THISFORM.TIMER1.ENABLED=.F. THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND2.ENABLED=.F.COMMAND2 的 CLICK 事件35. 运动会 100 米径赛记时器表单,记时精度 0.01 秒 要求:设计一个运动会 100 米径赛记时器表单,记时精度 0.01 秒:编辑状态如图 1;初始运行状态 如图 2; 单击 “开始” 按钮(COMMAND1)后, 开始记时,如图 3 所示; 单击 “停止” 按钮(COMMAND2) 时,停止记时,如图 4 所示; 单击“复位”按钮(COMMAND3)时,恢复到初始状态,如图 2 所 示;使用公用属性变量记录时间。图 1 设计界面图 2 初始运行界面图 3-运行效果图图 4-运行效果图属性设置 属性窗口设置: FORM1_CAPTION=百分之一秒记时器 COMMAND1_CAPTION=开始 COMMAND2_CAPTION=停止 COMMAND3_CAPTION=复位 代码 THISFORM.TEXT1.VALUE=?00:00? THISFORM.TIMER1.ENABLED=.F. THISFORM.TIMER1.INTERVAL=10 THISFORM.COMMAND2.ENABLED=.F.第 34 页 共 77 页事件 FORM1 的 INIT 事件 Vfp 下例题汇总PUBLIC A,B STORE 0 TO A,B TIMER1 的 TIMER 事件 A=A+1 IF A=100 A=0 B=B+1 ENDIF AA=IIF(A&10,?0?+STR(A,1),STR(A,2)) BB= IIF(B&10,?0?+STR(B,1),STR(B,2)) THISFORM.TEXT1.VALUE=BB+?:?+AA THISFORM.TIMER1.ENABLED=.T. THISFORM.COMMAND1.ENABLED=.F. THISFORM.COMMAND2.ENABLED=.T. THISFORM.TIMER1.ENABLED=.F. THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND2.ENABLED=.F. THISFORM.TEXT1.VALUE=?00:00? THISFORM.TIMER1.ENABLED=.F. THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND2.ENABLED=.F. STORE 0 TO A,BCOMMAND1 的 CLICK 事件COMMAND2 的 CLICK 事件COMMAND3 的 CLICK 事件36. 设计一个记时器表单,记时精度 1 秒: 要求: (1)表单初始显示状态为全零“00:00:00” , (2)按“计数”按钮,将自动以秒为单位从 零开始计数(设:时的计数属性名为 S,分的计数属性名为 F,秒的计数属性名为 M。)并在表单上 动态显示。按“停止”按钮将显示最后一刻的计数时间。图 1 设计界面图 2 初始运行界面第 35 页 共 77 页 Vfp 下例题汇总图 3 运行界面图 4 运行界面属性窗口设置 属性窗口设 置: FORM1_CAPTION=计数器 COMMAND1_CAPTION=计数 COMMAND2_CAPTION=停止 TEXT1_READONLY=.T. 表单-&新建属性 S,F,M 代码 THISFORM.TIMER1.ENABLED=.F. THISFORM.TIMER1.INTERVAL=1000 STORE 0 TO THISFORM.S,THISFORM.F,THISFORM.M THISFORM.TEXT1.VALUE=&00:00:00& THISFORM.TIMER1.ENABLED=.F. THISFORM.M=THISFORM.M+1 &&计时器秒数(M)累加 IF THISFORM.M=60 &&秒数累加到 60 THISFORM.F=THISFORM.F+1 &&计时器分数(F)累加 THISFORM.M=0 &&秒数属性 M 归 0 IF THISFORM.F=60 &&分数累加到 60 THISFORM.S=THISFORM.S+1 &&计时器时数(S)累加 THISFORM.F=0 &&分数属性归 0 ENDIF ENDIF SS=IIF(THISFORM.S&10,&0&+STR(THISFORM.S,1),STR(THISFORM.S,2)) &&将时数 S 转换为字符 FF=IIF(THISFORM.F&10,&0&+STR(THISFORM.F,1),STR(THISFORM.F,2)) &&将分数 F 转换为字符 MM=IIF(THISFORM.M&10,&0&+STR(THISFORM.M,1),STR(THISFORM.M,2)) &&将秒数 M 转换为字符 THISFORM.TEXT1.VALUE=SS+&:&+FF+&:&+MM &&将当前计时结果显示在文本框中 THISFORM.REFRESH THISFORM.TIMER1.ENABLED=.T.新建属性 事件 FORM1 的 INIT 事件TIMER1 的 TIMER 事件COMMAND1 的 CLICK 事第 36 页 共 77 页 Vfp 下例题汇总件 COMMAND2 的 CLICK 事 件 THISFORM.TIMER1.ENABLED=.F.37. 小球大小变化 要求: (1)通过属性窗口设置以下属性:表单的标题属性,Timer1 的时间间隔为 100ms,Timer1 控件不工作; 小球的宽度和高度值初始值皆为 50; (2)新建属性 b,当其值为.F.时,表示小球将逐渐变大,当其值为.T.时,表示小球将逐渐变小; (3)表单刚运行时, “暂停”按钮不可用,如图 2 所示; (4)单击“开始”按钮, “暂停”按钮可用,小球直径以 3 为步长逐渐变大,当其直径大于或等于 100 时,小球直径以 3 为步长逐渐缩小,当其直径小于或等于 40 时,又一次开始逐渐变大,如此反复。 (5)单击“暂停”按钮, “开始”按钮可用,小球停止变化;整个过程不断重复,如图 2、3 所示。 (6)编写 Form1 的 Init 事件、Timer1 的 Timer 事件、command1 和 command2 的 click 事件的代码图 1 设计界面图图 2 初始运行时界面图 3 单击“开始”按钮后运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=小球缩放 SHAPE1_HEIGHT=50 SHAPE1_WIDTH=50 SHAPE1_BACKCOLOR=255,0,0 COMMAND1_CAPTION=开始第 37 页 共 77 页 Vfp 下例题汇总COMMAND2_CAPTION=暂停 新建属性 事件 FORM1 的 INIT 事件 表单-&新建属性 B 代码 THISFORM.TIMER1.ENABLED=.F. THISFORM.TIMER1.INTERVAL=100 THISFORM.COMMAND2.ENABLED=.F. THISFORM.B=.F. IF THISFORM.B THISFORM.SHAPE1.HEIGHT= THISFORM.SHAPE1.HEIGHT-3 THISFORM.SHAPE1.WIDTH= THISFORM.SHAPE1.WIDTH-3 ELSE THISFORM.SHAPE1.HEIGHT= THISFORM.SHAPE1.HEIGHT+3 THISFORM.SHAPE1.WIDTH= THISFORM.SHAPE1.WIDTH+3 ENDIF IF THISFORM.SHAPE1.HEIGHT&=100 THISFORM.B=.T. ENDIF IF THISFORM.SHAPE1.HEIGHT&=40 THISFORM.B= .F. ENDIF THISFORM.TIMER1.ENABLED=.T. THISFORM.COMMAND1.ENABLED=.F. THISFORM.COMMAND2.ENABLED=.T. THISFORM.TIMER1.ENABLED=.F. THISFORM.COMMAND1.ENABLED=.T. THISFORM.COMMAND2.ENABLED=.F.TIMER1 的 TIMER 事件COMMAND1 的 CLICK 事件 COMMAND2 的 CLICK 事件38. 文字缩放 要求:(1)文字信息初始的位置在表单的正中央,表单执行后,第间隔 20 毫秒,文字自动以字号加 1 的幅度逐步向周边延伸变大,直到文字充满整个表单; (2)然后每间隔 20 毫秒,文字会自动以字号加 1 的幅度逐步向中间回缩变小,直到文字复原为初始 的状态; (3)整个过程不间断地缩放(最小字号为 4,最大学号为 52) (4)新建属性 change,当其值为 0 时,表示文字将逐渐变大,当其值为 1 时,表示文字将逐渐变小。图 1 设计界面图图 2 初始运行时界面属性窗口设置 属性窗口设置: 新建属性 事件 FORM1_CAPTION=缩放文字 LABEL1_CAPTION=我是会缩放的文字 表单-&新建属性 change 代码第 38 页 共 77 页 Vfp 下例题汇总FORM1 的 INIT 事件THIS.TIMER1.ENABLED=.T. THIS.TIMER1.INTERVAL=20 THIS.CHANGE=0 IF THISFORM.LABEL1.FONTSIZE=52 THISFORM.CHANGE=1 ENDIF IF THISFORM.LABEL1.FONTSIZE=4 THISFORM.CHANGE=0 ENDIF IF THISFORM.CHANGE=0 THISFORM.LABEL1.FONTSIZE=THISFORM.LABEL1.FONTSIZE+1 ENDIF IF THISFORM.CHANGE=1 THISFORM.LABEL1.FONTSIZE=THISFORM.LABEL1.FONTSIZE-1 ENDIFTIMER1 的 TIMER 事 件39. 文字水平移动 要求: 要求:(1)文字信息(纵向)初始显示位置在表单的左边,表单执行后,每间隔 20 毫秒,文字会自动以 间隔加 1 的幅度逐步向表单右边移动,直到文字到达表单最右边缘; (2)然后,每间隔 20 毫秒文字会自动以间隔加 1 的幅度逐步向表单左边移动,直到文字回复到初始 位置; (3)整个过程不间断地来回移动 (4)新建属性 B,当其值为?L?时,表示文字向左移动,当其值为?R?时,表示文字将向右移动。图 1 设计界面图图 2 初始运行时界面属性窗口设置 属性窗口设 置: FORM1_CAPTION=水平移动的文字 FORM 1_BACKCOLOR=255,255,0 LABEL1_CAPTION=我是会移动的文字 LABEL1_WORDWRAP=.T. 表单-&新建属性 B第 39 页 共 77 页新建属性 Vfp 下例题汇总事件 FORM1 的 INIT 事件 TIMER1 的 TIMER 事件 THISFORM.TIMER1.ENABLED=.T. THISFORM.TIMER1.INTERVAL=20 THIS.B=&R&代码IF THISFORM.LABEL1.LEFT=THISFORM.WIDTH-THISFORM.LABEL1.WIDTH THISFORM.B=&L& ENDIF IF THISFORM.LABEL1.LEFT=0 THISFORM.B=&R& ENDIF IF THISFORM.B=&R& THISFORM.LABEL1.LEFT=THISFORM.LABEL1.LEFT+1 ENDIF IF THISFORM.B=&L& THISFORM.LABEL1.LEFT=THISFORM.LABEL1.LEFT-1 ENDIF40. 时间信息平行移动 要求: 要求:(1)时间信息初始显示位置在表单的最上边,表单执行后,每间隔 20 毫秒,时间信息会自动 以间隔加 1 的幅度逐步向表单下边移动,直到文字到达表单最下边缘; (2)然后,每间隔 20 毫秒文字会自动以间隔加 1 的幅度逐步向表单上边移动,直到文字回复到初始 位置; (3)整个过程不间断地来回移动图 1 设计界面图图 2 初始运行时界面属性窗口设置 属性窗口设置: 事件 FORM1 INIT 事件 的 THISFORM.TIMER1.ENABLED=.T. THISFORM.TIMER1.INTERVAL=20 THISFORM.LABEL1.TOP=0 PUBLIC B B=.T. THISFORM.LABEL1.CAPTION=TIME() IF THISFORM.LABEL1.TOP&=THISFORM.HEIGHT- THISFORM.LABEL1.HEIGHT第 40 页 共 77 页FORM1_CAPTION=信息行动态平行移动表单 代码TIMER1 的 TIMER 事件 Vfp 下例题汇总B=.F. ENDIF IF THISFORM.LABEL1.TOP&=0 B=.T. ENDIF IF B THISFORM.LABEL1.TOP=THISFORM.LABEL1.TOP+1 ELSE THISFORM.LABEL1.TOP=THISFORM.LABEL1.TOP-1 ENDIF 41. 浏览表文件“学生.dbf“ 要求: (1)表单初始显示内容为表文件“学生.dbf”的首记录 (2)当按“前翻”“后翻”“首记录”“末记录”按钮时,表单将自动显示相应记录的内容 、 、 、 (3)当翻至表头或表底时,将自动设置相应按钮不可访问。图 1 设计界面图 2 初始运行界面图 3 运行界面图 4 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=学生表信息浏览 LABEL1_CAPTION=学号 LABEL2_CAPTION=姓名 LABEL3_CAPTION=性别 LABEL4_CAPTION=出生年月 LABEL5_CAPTION=奖学金 TEXT1_READONLY=.T.第 41 页 共 77 页 Vfp 下例题汇总TEXT2_READONLY=.T. TEXT3_READONLY=.T. TEXT4_READONLY=.T. TEXT5_READONLY=.T. COMMANDGROUP1_BUTTONCOUNT=5 COMMANDGROUP1_COMMAND1_CAPTION=首记录 COMMANDGROUP1_COMMAND2_CAPTION=前翻 COMMANDGROUP1_COMMAND3_CAPTION=后翻 COMMANDGROUP1_COMMAND4_CAPTION=末记录 COMMANDGROUP1_COMMAND5_CAPTION=退出 数据环境 事件 FORM1 的 INIT 事件 “学生”表 代码 THISFORM.TEXT1.VALUE=学号 THISFORM.TEXT2.VALUE=姓名 THISFORM.TEXT3.VALUE=性别 THISFORM.TEXT4.VALUE=出生年月 THISFORM.TEXT5.VALUE=奖学金 的 DO CASE CASE THIS.VALUE=1 GO TOP THIS.COMMAND1.ENABLED=.F. THIS.COMMAND2.ENABLED=.F. THIS.COMMAND3.ENABLED=.T. THIS.COMMAND4.ENABLED=.T. CASE THIS.VALUE=2 SKIP -1 IF BOF() THIS.COMMAND1.ENABLED=.F. THIS.COMMAND2.ENABLED=.F. ENDIF THIS.COMMAND3.ENABLED=.T. THIS.COMMAND4.ENABLED=.T. CASE THIS.VALUE=3 SKIP IF EOF() THIS.COMMAND3.ENABLED=.F. THIS.COMMAND4.ENABLED=.F. ENDIF THIS.COMMAND1.ENABLED=.T. THIS.COMMAND2.ENABLED=.T. CASE THIS.VALUE=4 GO BOTTOM THIS.COMMAND1.ENABLED=.T. THIS.COMMAND2.ENABLED=.T.第 42 页 共 77 页COMMANDGROUP1 CLICK 事件 Vfp 下例题汇总THIS.COMMAND3.ENABLED=.F. THIS.COMMAND4.ENABLED=.F. CASE THIS.VALUE=5 THISFORM.RELEASE ENDCASE THISFORM.TEXT1.VALUE=学号 THISFORM.TEXT2.VALUE=姓名 THISFORM.TEXT3.VALUE=性别 THISFORM.TEXT4.VALUE=出生年月 THISFORM.TEXT5.VALUE=奖学金 42. 自动浏览表文件“学生.dbf“ 要求: (1)表单初始显示内容为表文件“学生.dbf”内容的首记录; (2)表单内容将以 10 秒为间隔自动刷新,即自动向后翻记录,当翻至表底时,即自动回到首记 录循环翻动。图 1 设计界面图 2 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=学生表内容只读浏览 LABEL1_CAPTION=学号 LABEL2_CAPTION=姓名 LABEL3_CAPTION=性别 LABEL4_CAPTION=出生年月 LABEL5_CAPTION=奖学金 “学生”表 事件 FORM1 的 INIT 事件 代码 THIS.SETALL(&READONLY&,.T.,&TEXTBOX&) THIS.CHECK1.READONLY=.T. THISFORM.TIMER1.INTERVAL=10000 THISFORM.TIMER1.ENABLED=.T. THISFORM.TEXT1.VALUE=学号 THISFORM.TEXT2.VALUE=姓名 THISFORM.TEXT3.VALUE=出生年月 THISFORM.TEXT4.VALUE=奖学金 THISFORM.CHECK1.VALUE=性别 SKIP第 43 页 共 77 页数据环境TIMER1 的 TIMER 事件 Vfp 下例题汇总IF EOF() GO TOP ENDIF THISFORM.TEXT1.VALUE=学号 THISFORM.TEXT2.VALUE=姓名 THISFORM.TEXT3.VALUE=出生年月 THISFORM.TEXT4.VALUE=奖学金 THISFORM.CHECK1.VALUE=性别 43. 抽奖表单 要求:编制一个抽奖表单,以表文件“学生.dbf”中的学号字段作为抽奖依据,当按“开始”按钮 时,文本框中以 0.1 秒的时间间隔动态滚动显示学号字段的值;当按“抽号”按钮时,文本框中定 格显示抽中的学号字段值。同一学号不允许重复获奖。图 1 设计界面图 2 初始运行界面图 3 运行界面图 4 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=抽奖表单 COMMAND1_CAPTION=开始 COMMAND 2_CAPTION=抽号 COMMAND 3_CAPTION=退出 “学生”表 事件 FORM1 的 INIT 事件 代码 THISFORM.TIMER1.ENABLED=.F. THIS.TIMER1.INTERVAL=100 THIS.TEXT1.VALUE=&学生学号& THIS.TEXT1.READONLY=.T.第 44 页 共 77 页数据环境 Vfp 下例题汇总SET DELETE ON TIMER1 的 TIMER 事件 SKIP IF EOF() GO TOP ENDIF THISFORM.TEXT1.VALUE=学号 THISFORM.TIMER1.ENABLED=.T. THISFORM.TEXT1.FORECOLOR=RGB(0,0,0) THISFORM.TEXT1.VALUE=学号 THISFORM.TIMER1.ENABLED=.F. DELETE THISFORM.TEXT1.FORECOLOR=RGB(0,0,255) SET DELETE OFF RECALL ALL THISFORM.RELEASECOMMAND1 的 CLICK 事件COMMAND2 的 CLICK 事件COMMAND3 的 CLICK 事件44. 三次口令验证 要求:如图所示,口令为“MANAGER”,用户如果三次输错口令,则提示并关闭程序。图 1 设计界面图 2 运行时界面图 3 运行时界面图 4 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=口令验证窗口第 45 页 共 77 页 Vfp 下例题汇总LABEL1_CAPTION=请输入口令 事件 FORM1 的 INIT 事件 TEXT1 的 VALID 事件 PUBLIC INPUTTIME INPUTTIME=0 INPUTTIME=INPUTTIME+1 IF THIS.VALUE=&MANAGER& MESSAGEBOX(&欢迎使用本系统!&) RETURN .T. ELSE IF INPUTTIME&3 MES=&第&+ALLTRIM(STR(INPUTTIME))+&次口令错误,请重新输入!& MESSAGEBOX(MES) RETURN .F. ELSE MESSAGEBOX(&3 次口令错误,您无权使用本系统!&) THISFORM.RELEASE ENDIF ENDIF 代码45. 指定表文件字段浏览。 要求: (1)编制一个界面程序,实现将用户指定的表文件的字段名列表显示 (2)系统自动查询用户指定的表文件是否存在,存在则列表显示指定表文件的所有字段名信息,否 则给出信息提示框图 1 设计界面图 2 运行时界面图 3 运行时界面图 4 运行时界面属性窗口设置 属性窗口设置: FORM1_CAPTION=指定表文件的字段列表 LABEL1_CAPTION=请输入指定的表文件名(扩展名略) : LABEL1_CAPTION=指定表文件中的字段名列表: 代码 THISFORM.LABEL2.VISIBLE=.F. THISFORM.LIST1.VISIBLE=.F. FN=ALLTRIM(THIS.VALUE)+&.DBF& IF FILE(FN) THISFORM.SETALL(&VISIBLE&,.T.) THISFORM.LIST1.CLEAR第 46 页 共 77 页事件 FORM1 的 INIT 事件 TEXT1 的 VALID 事件 Vfp 下例题汇总USE (FN) FOR I=1 TO FCOUNT() THISFORM.LIST1.ADDITEM(FIELD(I)) ENDFOR ELSE THISFORM.LABEL2.VISIBLE=.F. THISFORM.LIST1.VISIBLE=.F. MESSAGEBOX(&您所指定的表文件并不存在!&,0+64,&表文件存在判断&) ENDIF THIS.SELECTONENTRY=.T. FORM1 的 DESTROY 事件 USE46. 选页调色板 要求: (1)编制一个“选页调色板”表单 (2)当用户按了某页后,页框的背景色就会变成指定的对应颜色。图 1 设计界面图 2 初始运行界面图 3 运行界面图 4 运行界面属性窗口设置 属性窗口设置: 事件 FORM1_CAPTION=选页调色板 PAGEFRAME1_PAGECOUNT=5 代码第 47 页 共 77 页 Vfp 下例题汇总FORM1 的 INIT 事件C=&红绿蓝黑白& FOR I=1 TO 5 THIS.PAGEFRAME1.PAGES[I].CAPTION=SUBSTR(C,2*I-1,2) ENDFOR DO CASE CASE THIS.ACTIVEPAGE=1 THIS.PAGE1.BACKCOLOR=RGB(255,0,0) CASE THIS.ACTIVEPAGE=2 THIS.PAGE2.BACKCOLOR=RGB(0,255,0) CASE THIS.ACTIVEPAGE=3 THIS.PAGE3.BACKCOLOR=RGB(0,0,255) CASE THIS.ACTIVEPAGE=4 THIS.PAGE4.BACKCOLOR=RGB(0,0,0) CASE THIS.ACTIVEPAGE=5 THIS.PAGE5.BACKCOLOR=RGB(255,255,255) ENDCASEPAGEFRAME1 的 CLICK 事件47. 学籍信息自动浏览 编制一个表单完成表文件“学生.dbf“、 “成绩.dbf“、 “课程.dbf“内容的编辑浏览显示功能 要求: (1)三个表文件分别显示在三个不同的页面上 (2)表单内容将以 20s 为间隔自动换页刷新,即自动翻页及编辑浏览显示功能 (3)未被激活的页面自动设为不可访问图 1 设计界面图 2 初始运行界面图 3 运行界面属性窗口设置第 48 页 共 77 页 Vfp 下例题汇总属性窗口设置:FORM1_CAPTION=学生学籍信息浏览 PAGEFRAME1_PAGECOUNT=3 PAGEFRAME1_PAGE1_CAPTION=学生 PAGEFRAME1_PAGE2_CAPTION=课程 PAGEFRAME1_PAGE3_CAPTION=成绩 代码 THISFORM.TIMER1.INTERVAL=20000 THISFORM.TIMER1.ENABLED=.T. THISFORM.PAGEFRAME1.SETALL(&ENABLED&,.F.,&PAGE&) THISFORM.PAGEFRAME1.PAGE1.ENABLED=.T. P=THISFORM.PAGEFRAME1.ACTIVEPAGE P=P+1 IF P&3 P=1 ENDIF THISFORM.PAGEFRAME1.SETALL(&ENABLED&,.F.,&PAGE&) THISFORM.PAGEFRAME1.PAGES(P).ENABLED=.T. THISFORM.PAGEFRAME1.ACTIVEPAGE=P事件 FORM1 的 INIT 事件TIMER1 TIMER 事件的48. 学籍信息浏览 编制一个表单完成表文件“学生.dbf“、 “成绩.dbf“、 “课程.dbf“内容的编辑浏览显示功能 要求: (1)三个表文件分别显示在三个不同的页面上 (2)当在选项按钮组选择某个表文件时,页框中的页会自动翻页,即自动翻动为与选择的表文件 对应的页; (3)未被激活的页面自动设为不可访问图 1 设计界面图 2 初始运行界面第 49 页 共 77 页 Vfp 下例题汇总图 3 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=学生学籍信息浏览 OPTIONGROUP1_BUTTONCOUNT=3 OPTIONGROUP1_OPTION1_CAPTION=学生 OPTIONGROUP1_OPTION2_CAPTION=课程 OPTIONGROUP1_OPTION3_CAPTION=成绩 PAGEFRAME1_PAGECOUNT=3 PAGEFRAME1_PAGE1_CAPTION=学生 PAGEFRAME1_PAGE2_CAPTION=课程 PAGEFRAME1_PAGE3_CAPTION=成绩 代码 THISFORM.PAGEFRAME1.SETALL(&ENABLED&,.F.,&PAGE&) THISFORM.PAGEFRAME1.PAGE1.ENABLED=.T. P=THISFORM. OPTIONGROUP1.VALUE THISFORM.PAGEFRAME1.SETALL(&ENABLED&,.F.,&PAGE&) THISFORM.PAGEFRAME1.PAGES(P).ENABLED=.T. THISFORM.PAGEFRAME1.ACTIVEPAGE=P事件 FORM1 的 INIT 事件 OPTIONGROUP1 的 CLICK 事件49. 学生表内容自动浏览(绑定) 编制一个表单完成表文件“学生.dbf”内容的只读浏览显示功能; 要求(1)用绑定方法实现; (2)表单初始显示内容为表文件“学生.dbf”内容的首记录; (3)表单内容将以 10 秒为间隔自动刷新,即自动向后翻记录,当翻至表底时,即自动回到首记 录循环翻动。第 50 页 共 77 页 Vfp 下例题汇总图 1 设计界面图 2 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=学生表内容只读浏览 LABEL1_CAPTION=学号 LABEL2_CAPTION=姓名 LABEL3_CAPTION=性别 LABEL4_CAPTION=出生年月 LABEL5_CAPTION=奖学金 “学生”表 事件 FORM1 的 INIT 事件 代码 THIS.SETALL(&READONLY&,.T.,&TEXTBOX&) THIS.CHECK1.READONLY=.T. THISFORM.TIMER1.INTERVAL=10000 THISFORM.TIMER1.ENABLED=.T. THISFORM.TEXT1.CONTROLSOURCE=&学生.学号& THISFORM.TEXT2.CONTROLSOURCE=&学生.姓名& THISFORM.TEXT3.CONTROLSOURCE=&学生.出生年月& THISFORM.TEXT4.CONTROLSOURCE=&学生.奖学金& THISFORM.CHECK1.CONTROLSOURCE=&学生.性别& SKIP IF EOF() GO TOP ENDIF THISFORM.REFRESH数据环境TIMER1 的 TIMER 事件50. 学生表内容按钮组浏览(绑定) 编制一个表单完成表文件“学生.dbf“内容的只读浏览显示功能,要求用绑定方法实现。 要求: (1)表单初始显示内容为表文件“学生.dbf”的首记录 (2)当按“前翻”“后翻”“首记录”“末记录”按钮时,表单将自动显示相应记录的内容 、 、 、 (3)当翻至表头或表底时,将自动设置相应按钮不可访问。第 51 页 共 77 页 Vfp 下例题汇总图 1 设计界面图 2 初始运行界面图 3 运行界面图 4 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=学生表信息浏览 LABEL1_CAPTION=学号 LABEL2_CAPTION=姓名 LABEL3_CAPTION=性别 LABEL4_CAPTION=出生年月 LABEL5_CAPTION=奖学金 TEXT1_READONLY=.T. TEXT2_READONLY=.T. TEXT3_READONLY=.T. TEXT4_READONLY=.T. TEXT5_READONLY=.T. COMMANDGROUP1_BUTTONCOUNT=5 COMMANDGROUP1_COMMAND1_CAPTION=首记录 COMMANDGROUP1_COMMAND2_CAPTION=前翻 COMMANDGROUP1_COMMAND3_CAPTION=后翻 COMMANDGROUP1_COMMAND4_CAPTION=末记录 COMMANDGROUP1_COMMAND5_CAPTION=退出 “学生”表 事件 FORM1 的 INIT 事件 代码 THISFORM.TEXT1.CONTROLSOURCE=&学生.学号& THISFORM.TEXT2.CONTROLSOURCE=&学生.姓名& THISFORM.TEXT3.CONTROLSOURCE=&学生.性别& THISFORM.TEXT4.CONTROLSOURCE=&学生.出生年月&第 52 页 共 77 页数据环境 Vfp 下例题汇总THISFORM.TEXT5.CONTROLSOURCE=&学生.奖学金& COMMANDGROUP1 CLICK 事件 的 DO CASE CASE THIS.VALUE=1 GO TOP THIS.COMMAND1.ENABLED=.F. THIS.COMMAND2.ENABLED=.F. THIS.COMMAND3.ENABLED=.T. THIS.COMMAND4.ENABLED=.T. CASE THIS.VALUE=2 SKIP -1 IF BOF() THIS.COMMAND1.ENABLED=.F. THIS.COMMAND2.ENABLED=.F. ENDIF THIS.COMMAND3.ENABLED=.T. THIS.COMMAND4.ENABLED=.T. CASE THIS.VALUE=3 SKIP IF EOF() THIS.COMMAND3.ENABLED=.F. THIS.COMMAND4.ENABLED=.F. ENDIF THIS.COMMAND1.ENABLED=.T. THIS.COMMAND2.ENABLED=.T. CASE THIS.VALUE=4 GO BOTTOM THIS.COMMAND1.ENABLED=.T. THIS.COMMAND2.ENABLED=.T. THIS.COMMAND3.ENABLED=.F. THIS.COMMAND4.ENABLED=.F. CASE THIS.VALUE=5 THISFORM.RELEASE ENDCASE THISFORM.REFRESH51. 学生表信息查询(文本框输入) (绑定) 要求:如图 1 和 2 所示,编制一个表单完成如下功能:1)当用户在文本框中输入学号,程序在学生 表中查找对应记录,如果记录存在,则显示对应学生信息,如果就不存在,则提示“你所查找的学 生并不存在!。2)在文本框的 valid 事件中判断。3)text1、text2、text3、text4 要绑定数据源。 ”第 53 页 共 77 页 Vfp 下例题汇总图 1 设计界面图 2 初始运行界面图 3 运行界面图 4 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=学生表信息浏览 LABEL1_CAPTION=学号 LABEL2_CAPTION=姓名 LABEL3_CAPTION=性别 LABEL4_CAPTION=出生年月 LABEL5_CAPTION=奖学金 TEXT2_READONLY=.T. TEXT3_READONLY=.T. TEXT4_READONLY=.T. TEXT5_READONLY=.T. “学生”表 事件 FORM1 的 INIT 事件 代码 THIS.SETALL(&VISIBLE&,.F.) THIS.LABEL1.VISIBLE=.T. THIS.TEXT1.VISIBLE=.T. THIS.TEXT2.CONTROLSOURCE=&学生.姓名& THIS.TEXT3.CONTROLSOURCE=&学生.性别& THIS.TEXT4.CONTROLSOURCE=&学生.出生年月& THIS.TEXT5.CONTROLSOURCE=&学生.奖学金& LOCATE FOR ALLTRIM(学号)==ALLTRIM(THIS.VALUE) IF FOUND()第 54 页 共 77 页数据环境TEXT1 的 VALID 事件 Vfp 下例题汇总THISFORM.LABEL2.CAPTION=&& THISFORM.SETALL(&VISIBLE&,.T.) ELSE THISFORM.SETALL(&VISIBLE&,.F.) THISFORM.LABEL1.VISIBLE=.T. THISFORM.TEXT1.VISIBLE=.T. THISFORM.LABEL2.VISIBLE=.T. THISFORM.LABEL2.CAPTION=&您所指定的学生并不存在!& ENDIF THISFORM.REFRESH RETURN .T. 52. 学生表信息查询(列表框输入) (绑定) 要求:查询与用户指定的学生姓名相匹配的记录,并显示指定学生的所有信息。图 1 设计界面图 2 初始运行界面图 3 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=学生表信息浏览 LABEL1_CAPTION=请选择学生姓名 LABEL2_CAPTION=学号 LABEL3_CAPTION=姓名 LABEL4_CAPTION=性别 LABEL5_CAPTION=出生年月 LABEL6_CAPTION=奖学金第 55 页 共 77 页 Vfp 下例题汇总TEXT1_READONLY=.T. TEXT2_READONLY=.T. TEXT3_READONLY=.T. TEXT4_READONLY=.T. TEXT5_READONLY=.T. 数据环境 事件 FORM1 的 INIT 事件 “学生”表 代码 THIS.SETALL(&VISIBLE&,.F.) THIS.LABEL1.VISIBLE=.T. THIS.LIST1.VISIBLE=.T. THIS.LIST1.ROWSOURCETYPE=6 THIS.LIST1.ROWSOURCE=&学生.姓名& THIS.TEXT1.CONTROLSOURCE=&学生.学号& THIS.TEXT2.CONTROLSOURCE=&学生.姓名& THIS.TEXT3.CONTROLSOURCE=&学生.性别& THIS.TEXT4.CONTROLSOURCE=&学生.出生年月& THIS.TEXT5.CONTROLSOURCE=&学生.奖学金& THISFORM.SETALL(&VISIBLE&,.T.) THISFORM.REFRESHLIST1 的 INTERACTIVECHANGE 事件53. 学生表信息查询(组合框输入) (绑定) 要求:查询与用户指定的学生姓名相匹配的记录,并显示指定学生的所有信息。图 1 设计界面图 2 初始运行界面图 3 运行界面第 56 页 共 77 页 Vfp 下例题汇总属性窗口设置 属性窗口设置: FORM1_CAPTION=学生表信息浏览 LABEL1_CAPTION=请选择学生姓名 LABEL2_CAPTION=学号 LABEL3_CAPTION=姓名 LABEL4_CAPTION=性别 LABEL5_CAPTION=出生年月 LABEL6_CAPTION=奖学金 TEXT1_READONLY=.T. TEXT2_READONLY=.T. TEXT3_READONLY=.T. TEXT4_READONLY=.T. TEXT5_READONLY=.T. “学生”表 事件 FORM1 的 INIT 事件 代码 THIS.SETALL(&VISIBLE&,.F.) THIS.LABEL1.VISIBLE=.T. THIS.COMBO1.VISIBLE=.T. THIS.COMBO1.STYLE=2 THIS.COMBO1.ROWSOURCETYPE=6 THIS.COMBO1.ROWSOURCE=&学生.姓名& THIS.TEXT1.CONTROLSOURCE=&学生.学号& THIS.TEXT2.CONTROLSOURCE=&学生.姓名& THIS.TEXT3.CONTROLSOURCE=&学生.性别& THIS.TEXT4.CONTROLSOURCE=&学生.出生年月& THIS.TEXT5.CONTROLSOURCE=&学生.奖学金& THISFORM.SETALL(&VISIBLE&,.T.) THISFORM.REFRESH数据环境LIST1 的 INTERACTIVECHANGE 事件54. 输入学号或姓名查询平均成绩 编制一个表单完成学生平均成绩的查询 要求: (1)用户在选项按钮组中选择是输入学号还是输入姓名,然后在文本框中输入对应数据; (2)用户单击’确定’按钮后,依据输入数据在学生表中查找是否存在该同学,如果不存在则在 text2 中显示‘没有这个同学’ ;如果存在则在成绩表中查找是否存在该同学的成绩,如果不存在则 在 text2 中显示‘没有该同学成绩’ ,如果存在则计算该同学的平均成绩并显示。第 57 页 共 77 页 Vfp 下例题汇总图 1 设计界面图 2 初始运行界面图 3 运行界面图 4 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=统计平均成绩 LABEL1_CAPTION=输入学号或姓名 LABEL2_CAPTION=平均成绩 OPTIONGROUP1_BUTTONCOUNT=2 OPTIONGROUP1_OPTION1_CAPTION=输入学号 OPTIONGROUP1_OPTION2_CAPTION=输入姓名 COMMAND1_CAPTION=确定 COMMAND2_CAPTION=退出 “学生”表、 “成绩”表 事件 COMMAND1 的 CLICK 事件 代码 SELE 学生 S=ALLT(THISFORM.TEXT1.VALUE) IF THISFORM.OPTIONGROUP1.VALUE=1 LOCATE FOR 学号==S ELSE LOCATE FOR ALLT(姓名)==S ENDIF IF FOUND() SELE 成绩第 58 页 共 77 页数据环境 Vfp 下例题汇总AVERAGE 成绩 TO PJ FOR 学号==学生.学号 THISFORM.TEXT2.VALUE=PJ ELSE THISFORM.TEXT2.VALUE='没有这个同学' ENDIF' COMMAND2 的 CLICK 事件 THISFORM.RELEASE55. 指定姓名查询平均成绩 要求:(1)编制一个表单完成表文件“学生.dbf” “成绩.dbf”内容的查询显示功能;(2)当用户在组合 框(下拉列表)选择姓名后,表单将自动显示对应学生的平均成绩;(3)按“退出”按钮时,自动关闭 表单。图 1 设计界面图 2 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=查询并显示指定学生的平均成绩 LABEL1_CAPTION=请选择学生: LABEL2_CAPTION=平均成绩: COMMAND1_CAPTION=退出 “学生”表、 “成绩”表 事件 FORM1 的 INIT 事件 代码 SET TALK OFF THIS.COMBO1.STYLE=2 THIS.COMBO1.ROWSOURCETYPE=6 THIS.COMBO1.ROWSOURCE=&学生.姓名& SELECT 成绩 AVERAGE 成绩 TO PJCJ FOR ALLTRIM(学号)=ALLTRIM(学 生.学号) THISFORM.TEXT1.VALUE=PJCJ SET TALK ON THISFORM.RELEASE数据环境COMBO1 的 VALID 事件COMMAND1 的 CLICK 事件56. 指定课程名查询平均成绩 要求(1)编制一个表单完成表文件“课程.dbf” “成绩.dbf”内容的查询显示功能;(2)当用户在组合框 选择课程名后,表单将自动显示对应课程的所有学生的总平均成绩;(3)按“退出”按钮时,自动关 闭表单。第 59 页 共 77 页 Vfp 下例题汇总图 1 设计界面图 2 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=查询并显示指定课程的平均成绩 LABEL1_CAPTION=请选择课程名: LABEL2_CAPTION=平均成绩: COMMAND1_CAPTION=退出 “课程”表、 “成绩”表 事件 FORM1 的 INIT 事件 代码 SET TALK OFF THIS.COMBO1.STYLE=2 THIS.COMBO1.ROWSOURCETYPE=6 THIS.COMBO1.ROWSOURCE='课程.课程名' KCH=课程.课程号 SELECT 成绩 AVERAGE 成绩 TO ZPJCJ FOR ALLTRIM(课程号)=KCH THISFORM.TEXT1.VALUE=ZPJCJ SET TALK ON THISFORM.RELEASE数据环境COMBO1 的 VALID 事件COMMAND1 的 CLICK 事件57. 指定班级查询平均成绩 要求:(1)编制一个表单完成表文件“学生.dbf” “成绩.dbf”内容的班级平均成绩查询显示功能;(2) 当用户在组合框输入或选择班级(学号的左 3 位)后,按回车或单击“确定”按钮时,表单将自动显 示对应班级的所有学生的总平均成绩。(3) 按“退出”按钮时,自动关闭表单。图 1 运行界面属性窗口设置 属性窗口设置: FORM1_CAPTION=查询并显示指定班级的平均成绩 LABEL1_CAPTION=请选择班级:第 60 页 共 77 页 Vfp 下例题汇总LABEL2_CAPTION=全班总平均成绩: COMMAND1_CAPTION=退出 数据环境 事件 FORM1 的 INIT 事件 “学生”表、 “成绩”表 代码 SET TALK OFF SELECT 学生 INDEX ON LEFT(学生.学号,3) TO XH UNIQUE SCAN THIS.COMBO1.ADDITEM(LEFT(学生.学号,3)) ENDSCAN SET INDEX TO BJH=ALLTRIM(THISFORM.COMBO1.DISPLAYVALUE) SELECT 成绩 AVERAGE 成绩 TO ZPJCJ FOR LEFT(ALLTRIM(学号),3)= BJH THISFORM.TEXT1.VALUE=ZPJCJ SET TALK ON THISFORM.RELEASECOMBO1 的 VALID 事件COMMAND1 CLICK 事件的58. 学生成绩信息查询 要求:编制一个学生成绩信息查询表单,当在显示学生姓名信息的窗口选择某个学生时,表单自动 在相应控件中自动同步显示出对应那个学生的课程、成绩信息和平均成绩。图 1 设计界面图 2 初始运行界面图 3 运行界面第 61 页 共 77 页 Vfp 下例题汇总属性窗口设置 属性窗口设置: 数据环境 事件 FORM1 的 INIT 事件 “学生”表、 “成绩”表、 “课程”表 代码 THIS.CAPTION=&学生成绩信息查询& THIS.LABEL1.CAPTION=&选择学生姓名:& THIS.LABEL2.CAPTION=&学生成绩信息情况:& THIS.LIST1.ROWSOURCETYPE=6 THIS.LIST1.ROWSOURCE=&学生.姓名& THIS.LABEL2.VISIBLE=.F. THIS.LIST2.VISIBLE=.F. THISFORM.LIST2.CLEAR SELECT 成绩 SCAN FOR 学号=学生.学号 SELECT 课程 LOCATE FOR 课程号==成绩.课程号 THISFORM.LIST2.ADDITEM(课程.课程号+&----&+课程.课程名+; STR(成绩.成绩,5,1)) ENDSCAN AVERAGE 成绩 to pjcj for 学号=学生.学号 THISFORM.LIST2.ADDITEM(&所有课程平均成绩:&+STR(PJCJ,5,1)) THISFORM.LABEL2.CAPTION=&学生&+THIS.VALUE+&成绩信息情况:& THISFORM.LIST2.VISIBLE=.T. THISFORM.LABEL2.VISIBLE=.T.LIST1 的 INTERACTIVECHANGE 事件59. 学生或课程成绩信息查询 要求:编制一个学生信息查询表单,当在列表中选择学生姓名时,列表框 3 显示对应学生的选修课 程名和成绩;当选择课程名时,列表框 3 显示对应课程的选修学生的姓名和成绩。图 1 设计界面图 2 初始运行界面第 62 页 共 77 页 Vfp 下例题汇总图 3 运行界面图 4 运行界面属性窗口设置 属性窗口设置: 数据环境 事件 FORM1 的 INIT 事件 “学生”表、 “成绩”表、 “课程”表 代码 THISFORM.CAPTION='学生成绩信息查询' THISFORM.LIST1.ROWSOURCETYPE=6 THISFORM.LIST1.ROWSOURCE='学生.姓名' THISFORM.LIST2.ROWSOURCETYPE=6 THISFORM.LIST2.ROWSOURCE='课程.课程名' THISFORM.LIST3.CLEAR SELECT 成绩 SCAN FOR 学号=学生.学号 SELECT 课程 LOCATE FOR 课程号=成绩.课程号 THISFORM.LIST3.ADDITEM(课程.课程名+STR(成绩.成绩,5,1)) ENDSCAN THISFORM.LIST3.CLEAR SELECT 成绩 SCAN FOR 课程号=课程.课程号 SELECT 学生 LOCATE FOR 学号=成绩.学号 THISFORM.LIST3.ADDITEM(学生.姓名+STR(成绩.成绩,5,1)) ENDSCANLIST1 的 INTERACTIVECHANGE 事件LIST2 的 INTERACTIVECHANGE 事件60. 添加成绩 编制一个添加成绩的表单,表单控件的初始布局界面如图 1 所示: (1)在 text1、text2、text3 中分别输入学号、课程号和成绩: (2)单击 command1 后,首先,在“学生”表、 “课程”表中找相应学号和课程号,如果找到相应第 63 页 共 77 页 Vfp 下例题汇总的学号和课程号,则把 text1、text2、text3 中输入的学号、课程号和成绩作为一条新记录保存到成 绩表中去,否则,用消息框显示“输入有误” 。 (3)单击 command1 后,退出表单运行。图 1 设计界面图 2 初始运行界面属性窗口设置 属性窗口设置: 数据环境 事件 FORM1 的 INIT 事件 “学生”表、 “成绩”表、 “课程”表 代码 THIS.CAPTION='添加成绩表单' THIS.LABEL1.CAPTION='输入学号' THIS.LABEL2.CAPTION='输入课程号' THIS.LABEL3.CAPTION='输入成绩' THIS.COMMAND1.CAPTION='添加' THIS.COMMAND2.CAPTION='退出' XH=ALLT(THISFORM.TEXT1.VALUE) KCH=ALLT(THISFORM.TEXT2.VALUE) CJ=VAL(THISFORM.TEXT3.VALUE) SELECT 学生 LOCATE FOR 学号==XH IF FOUND() SELECT 课程 LOCATE FOR 课程号==KCH IF FOUND() SELECT 成绩 APPEND BLANK REPLACE 学号 WITH XH ,课程号 WITH KCH,成绩 WITH CJ ELSE MESSAGEBOX('输入有误') ENDIF ELSE MESSAGEBOX('输入有误') ENDIF第 64 页 共 77 页COMMAND1 CLICK 事件的 Vfp 下例题汇总COMMAND2 CLICK 事件的THISFORM.RELEASE61. 学生成绩信息查询(2 个表格) 要求:编制一个学生信息查询表单,表单中的显示学生信息的窗口的指针移动时,在另一个窗口可 以自动显示出对应学生所有的成绩信息 。图 1-设计图图 2-运行效果图属性窗口设置 属性窗口设置: 数据环境 事件 FORM1 的 INIT 事件 “学生”表、 “成绩”表 代码 THIS.CAPTION='学生成绩信息查询' THIS.GRID1.RECORDSOURCETYPE=1 THIS.GRID1.RECORDSOURCE='学生' THIS.GRID2.RECORDSOURCETYPE=1 THIS.GRID2.RECORDSOURCE='成绩' SELECT 成绩 INDEX ON 学号 TO X1 SELECT 学生 SET RELA TO 学号 INTO 成绩62. 学生成绩信息查询(1 个列表框 1 个表格) 要求:编制一个学生信息查询表单,在显示学生姓名的列表框中选择某个学生时,在成绩信息窗口 可以自动同步显示出对应学生所有的成绩信息。第 65 页 共 77 页 Vfp 下例题汇总图 1-设计图图 2-运行效果图属性窗口设置 属性窗口设置: 数据环境 事件 FORM1 的 INIT 事件 LABEL1_CAPTION=请选择学生姓名: “学生”表、 “成绩”表 代码 THIS.CAPTION='学生成绩信息查询' THIS.LIST1.ROWSOURCETYPE=1 THIS.LIST1.ROWSOURCE='学生.姓名' THIS.GRID1.RECORDSOURCETYPE=1 THIS.GRID1.RECORDSOURCE='成绩' SELECT 成绩 INDEX ON 学号 TO X1 SELECT 学生 SET RELA TO 学号 INTO 成绩 THISFORM.LABEL2.CAPTION='学生'+学生.姓名+'成绩信息情况'63. 课程成绩信息查询(1 个列表框 1 个表格) 要求:编制一个课程信息查询表单,在显示课程名的列表框中选择某门课程时,在成绩信息窗口可 以自动同步显示出对应课程所有的成绩信息。第 66 页 共 77 页 Vfp 下例题汇总图 1-设计图图 2-运行效果图属性窗口设置 属性窗口设置: 数据环境 事件 FORM1 的 INIT 事件 LABEL1_CAPTION=请选择学生姓名: “课程”表、 “成绩”表 代码 THISFORM.LIST1.ROWSOURCETYPE=6 THISFORM.LIST1.ROWSOURCE='课程.课程名' THISFORM.GRID1.RECORDSOURCETYPE=1 THISFORM.GRID1.RECORDSOURCE='成绩' SELECT 成绩 INDEX ON 课程号 TO X1 SELECT 课程 SET RELA TO 课程号 INTO 成绩 THISFORM.LABEL2.CAPTION=课程.课程名+'课程考试情况情况' THISFORM.GRID1.VISIBLE=.F. THISFORM.LABEL2.VISIBLE=.F. THISFORM.LABEL2.CAPTION=ALLT(THIS.VALUE)+'成绩信息情况' THISFORM.GRID1.VISIBLE=.T. THISFORM.LABEL2.VISIBLE=.T.LIST1 的 INTERACTIVECHA NGE 事件64. 学生或课程成绩信息查询(2 个列表框 1 个表格) 要求:(1)编制一个学生学籍信息查询表单;2)在显示学生姓名的列表框中选择某个学生时,在成第 67 页 共 77 页 Vfp 下例题汇总绩信息窗口可以自动同步显示出对应学生所有的成绩信息;3)在显示课程名的列表框中选择某门 课程时,在成绩信息窗口可以自动同步显示出对应课程所有的成绩信息。图 1-设计图图 2-运行效果图临时关联方法: 属性窗口设置 属性窗口设置: 数据环境 事件 FORM1 的 INIT 事件 “学生”表、 “课程”表、 “成绩”表 代码 THIS.CAPTION=&学籍信息查询表单& THIS.LIST1.ROWSOURCETYPE=6 THIS.LIST1.ROWSOURCE='学生.姓名' THIS.LIST2.ROWSOURCETYPE=6 THIS.LIST2.ROWSOURCE='课程.课程名' THIS.GRID1.RECORDSOURCETYPE=1 THIS.GRID1.RECORDSOURCE='成绩' SELECT 成绩 INDEX ON 学号 TO X1 INDEX ON 课程号 TO X2 SET INDEX TO X1 SELECT 学生 SET RELATION TO 学号 INTO 成绩第 68 页 共 77 页 Vfp 下例题汇总LIST1 的 GOTFOCUS 事件SELECT 成绩 SET INDEX TO X1 SELECT 学生 SET RELA TO 学号 INTO 成绩 SELECT 成绩 SET INDEX TO X2 SELECT 课程 SET RELA TO 课程号 INTO 成绩LIST2 的 GOTFOCUS 事件SQL 方法: 属性窗口设置 属性窗口设置: 数据环境 事件 FORM1 的 INIT 事件 “学生”表、 “课程”表、 “成绩”表 代码 THIS.CAPTION=&学籍信息查询表单& THIS.LIST1.ROWSOURCETYPE=6 THIS.LIST1.ROWSOURCE='学生.姓名' THIS.LIST2.ROWSOURCETYPE=6 THIS.LIST2.ROWSOURCE='课程.课程名' THIS.GRID1.RECORDSOURCETYPE=1 THIS.GRID1.RECORDSOURCE='' SELECT * FROM 成绩 WHERE 学号=学生.学号; INTO CURSOR CJ THISFORM.GRID1.RECORDSOURCETYPE=1 THISFORM.GRID1.RECORDSOURCE='CJ' SELECT * FROM 成绩 WHERE 课程号=课程.课程号; INTO CURSOR CJ THISFORM.GRID1.RECORDSOURCETYPE=1 THISFORM.GRID1.RECORDSOURCE='CJ'LIST1 的 INTERACTIVECHANGE 事件 LIST1 的 INTERACTIVECHANGE 事件65. 学生成绩信息查询(文本框与表格) 要求:(1)在 text1 中输入学生学号,按回车后或单击显示“按钮”后,系统会将该学生的姓名显示在 对应 text2 中;同时将学生所学各门功课的成绩显示与表格 grid1 中。2)在表格中显示的内容不允 许追加、修改和删除;3)如果输入的学号没有查到对应的学生信息,则显示?查无此人!?信息。4) 当单击?退出?按钮是,系统自动释放表单。第 69 页 共 77 页 Vfp 下例题汇总图 1-设计图图 2-运行效果图图 3-运行效果图属性窗口设置 属性窗口设置: FORM1_CAPTION=学生成绩信息查询表单 LABEL1_CAPTION=学号: LABEL2_CA

我要回帖

更多关于 vfp表单查询 的文章

 

随机推荐