内容发布更新时间 : 2024/11/16 16:27:59星期一 下面是文章的全部内容请认真阅读。
2009_10学年第1学期VFP上机练习题参考答案(定稿) 情况说明:
1. 此答案经修改,确定为定稿。各位老师在给学生做辅导时以此答案为准,不要做一题多解的解析。 2. 各位老师在给学生做辅导时,请强调:(1)在编写菜单的命令或过程代码及控件的事件代码时,代
码中所引用的对象的属性名、方法名和事件名要写全名。(2)在进行程序改错时,除需要修改的两条语句外,其它语句必须完全按照给定的原代码输入,不得增减字符。 3. 此答案不宜发给学生,以免学生死背答案,不认真进行上机操作练习。
王维民 2009-12-11
一、项目、数据库和表操作 (一)、
1.(2)MPH字段的输入掩码:99X999 (3)SXP字段的默认值: .T.
(4)候选索引abcd的索引表达式:MPH+STR(CH) 或 MPH+STR(CH,1) 3.XS表的删除触发器的表达式:XH=”04”或LEFT(XH,2)=”04” (二)、
1.(2)DH字段的有效性规则:!EMPTY(dh) 或 NOT EMPTY(dh) 或LEN(ALLTRIM(dh))>0 (3)DW字段的默认值:“南京大学” (4)普通索引abcd的索引表达式:DZXM+DW 3.JS表的删除触发器的表达式:YEAR(CSRQ)<=1949 (三)、
1.(2)FLH字段的有效性规则:!EMPTY(flh) 或 NOT EMPTY(flh) 或LEN(ALLTRIM(flh))>0 (3)RKRQ字段的默认值:DATE()
(4)普通索引abcd的索引表达式:DOW(RKRQ)或DOW(RKRQ,1) 3. JS表的更新触发器的表达式:YEAR(CSRQ)<1949 (四)、
1.(1)XB字段的有效性规则:xb=\男\女\或 xb$\男女\(2)SFZ字段的输入掩码:999999999999999999 (注:为十八个9) (3)创建普通索引abcd的索引表达式:xb+sfz 2.在打开JXGL的项目管理器后: ① 选择菜单命令:项目 / 项目信息
② 在“项目信息”对话框中使“附加图标”复选框有效 ③ 在“打开”对话框中选择图标文件:PC.ICO ④ 鼠标单击“确认”按钮
3.将XS表和JS表设置为“包含”状态的步骤为: ① 在JXGL的项目管理器中鼠标右击XS表
② 在弹出的快捷菜单中选择:包含
(JS表的设置与上述步骤相同)
二、设计查询(注:查询设计中,输出字段的顺序一律按题目要求的顺序设置) (一)、
SELECT Zzmm.mc AS 政治面貌名称, Js.xb AS 性别, COUNT(*) AS 人数,; AVG(YEAR(DATE())-YEAR(csrq)) AS 平均年龄; FROM jxsj!js INNER JOIN jxsj!zzmm ; ON Js.zzmm = Zzmm.dm;
GROUP BY zzmm.mc(或zzmm.dm), Js.xb; ORDER BY Zzmm.mc, Js.xb (二)、
SELECT TOP 5 Jc.cbsmc AS 出版社名称, COUNT(*) AS 教材数; FROM jxsj!jc;
WHERE Jc.cbnf >= \或LEFT(Jc.cbnf,4)>=\ GROUP BY Jc.cbsmc; ORDER BY 2 DESC; TO FILE cbs.txt (三)、
SELECT Js.whcd(或Whcd.dm) AS 文化程度代码, Whcd.mc AS 文化程度名称,; MAX(YEAR(gzrq)-YEAR(csrq)) AS 最大开始工作年龄,; AVG(YEAR(gzrq)-YEAR(csrq)) AS 平均开始工作年龄; FROM jxsj!js INNER JOIN jxsj!whcd ; ON Js.whcd = Whcd.dm; GROUP BY Js.whcd(或Whcd.dm); ORDER BY 3 DESC (四)、
SELECT IIF(js.mzdm=\汉族 \其他民族\民族,; COUNT(*) AS 人数; FROM jxsj!js; GROUP BY 1;
ORDER BY 1 DESC(或ORDER BY 2); TO FILE mz.txt 三、设计菜单 (三)
3.“打印(P)”菜单项的跳过条件为:NOT DBUSED(“jxsj”)或!DBUSED(“jxsj”)
四、设计表单 (一)、
1.设置表单的BorderStyle属性: 2 — 固定对话框 2.形状控件的BackColor属性设置为:0,255,0
3.文本框控件的BorderStyle属性设置为:0—无;并将其拖至圆的中心 4.设置计时器控件Timer1的Interval属性为:1000
5. 添加命令按钮控件Command1,并设置其Caption属性:开始; 设置其Click事件代码为:
ThisForm.Timer1.Enabled = .T.
6.修改计时器控件Timer1的Click事件代码:
在第1个空行内输入代码:ThisForm.Text1.Value = t2 在第2个空行内输入代码:ThisForm.Text1.Value = t1 (二)、
1.设置表单的WindowState属性:2 — 最大化 2.设置表单的Picture属性:Back.jpg 3.设置标签的以下属性: Backstyle属性:0 – 透明 FontName属性:楷体 FontBold属性:.T.
4.添加计时器Timer1,并设置其Interval属性为:60 5.修改表单的ShowLab方法,在代码的空白处增加命令: IF ThisForm.Label1.Left = - ThisForm.Label1.Width 6.编写计时器Timer1的Timer事件代码:ThisForm.ShowLab (三)、
1.设置表单Form1的以下属性值: Caption属性:交通灯控制 MaxButton属性:.F. MinButton属性:.F.
2.设置形状控件Shap1的Curvature属性:99
3.设置文本框Text1的BackStyle属性:0 — 透明,并将其拖至圆的中心 4.设置新添加的计时器Timer1的以下属性: Enabled属性:.F. Interval属性:1000
5.编写计时器Timer1的Click事件代码:ThisForm.Jtdkz
6.编写命令按钮Command1的Click事件代码:ThisForm.Timer1.Enabled = .T.
(四)、
1.设置表单Form1的以下属性值:
Caption属性:SPACE(0)或“”或直接清除内容 Icon属性:cddrive.ico MaxButton属性:.F. MinButton属性:.F.
2.设置新添加的计时器Timer1的Interval属性:50 3.设置标签Label1的以下属性: FontSize属性:14 FontBold属性:.T.
4.修改表单的ShowLab方法,在代码的空白处增加命令: ThisForm.Label1.Left = ThisForm.Width
5.编写计时器Timer1的Timer事件代码:ThisForm.ShowLab
五、程序改错 (一)、
①第3行:IF flag(i)=1 (二)、
①倒数第6行:ENDFOR (三)、 ①第8行:EXIT (四)、 ①第6行:EXIT
改为:RETURN
改为:LOOP 改为:IF n>m
改为:ENDO
改为:FOR i = 0 TO 12
改为:IF flag(i)=.F.或!flag(i)或not flag(i)
②第11行:s=c4+c3+c2+cl 改为:s=VAL(c4+c3+c2+cl)
②倒数第3行:FOR i = 0 TO 52