问答题
说明:以下操作题所使用的文件均在T盘中,新建文件也必须保存在该盘中。
问答题
项目、数据库和表操作。
打开项目文件JXGL,在该项目中已有一个数据库JXSJ。根据以下要求进行操作:
(1)在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并设置相关属性。
字段名
|
数据类型
|
宽度
|
字段标题
|
DWMC
|
C
|
20
|
单位名称
|
DWXZ
|
C
|
12
|
单位性质
|
SZSS
|
C
|
30
|
所在省市
|
CSHY
|
C
|
20
|
从事行业
|
SYQGZ
|
N
|
8.2
|
试用期工资
|
①设置表的注释:人才招聘会参会单位基本情况一览表。 ②设置DWXZ字段的默认值:企业。 ③设置SYQGZ字段的有效性规则:大于等于1000,且小于等于10000。 ④设置表的插入触发器:不能插入单位性质为“政府机关”的记录。 ⑤创建索引名为ABCD的普通索引,要求按“单位性质”排序,相同时按“试用期工资”排序。 ⑥在AB表中输入如下记录:
DWMC
|
DWXZ
|
SZSS
|
CSHY
|
SYQGZ
|
南京慧生科技
|
企业
|
江苏省南京市
|
信息产业
|
4500
|
(2)将JXSJ数据库中DMB表设置为“包含”,将项目JXGL的作者设置为考生自己的姓名。
(3)KC表与JC表具有相同的字段KCDM,以KC表为主表,JC表为子表,根据KCDM建立永久关系,并设置两表之间的参照完整性:更新级联、删除级联。
【正确答案】
【答案解析】项目、数据库和表操作。
(1)创建表,其中:
● 表结构为4~6个字段,2~3种数据类型。
● 表注释或长表名。
● 字段默认值、格式、掩码、属性、显示类,选1个。
● 字段有效性规则或记录有效性规则或触发器。
● 基于两个字段的索引。
● 输入记录。
本部分内容是操作题中最容易的部分,具体操作方法如果不会,请参阅《Visual FoxPro实验指导书(2013版)》(苏州大学出版社)中的相关实验或《Visual FoxPro教程(2013版)》中的相关章节。
问答题
设计查询。
项目JXGL中的图书表(TSB)含有分类号(FLH)、书名(SM)等字段;借阅表(JYB)含有分类号(FLH)、借阅日期(JYRQ)、还书日期(HSRQ)等字段,且该表中所有的图书已还。按如下要求修改项目JXGL中的查询CHAXUN:
基于TSB表和JYB表查询每本图书的借阅情况,要求输出字段包括:分类号、图书名、被借次数、最多借阅天数。输出结果按“最多借阅天数”降序排序,相同时按“被借次数”降序排序。输出字段个数、顺序必须符合题目要求。
【正确答案】
【答案解析】设计查询。
SELECT tsb.flh AS分类号, tsb.sm AS图书名, ;
COUNT(*) AS被借次数, MAX(jyb.hsrq-jyb.jyrq) AS最多借阅天数;
FROM tsb INNER JOIN jyb ON tsb.flb=jyb.flh;
ORDER BY 4 DESC, 3 DESC
查询设计也是分步给分的,因此,在查询设计器中,根据题意,能做多少尽量做出来,不要因为部分不会而放弃全部。
问答题
设计菜单。
利用菜单设计器,按如下要求修改项目JXGL中的菜单MENU,修改后菜单运行效果如下图所示。
【正确答案】
【答案解析】设计菜单。
菜单设计只要掌握以下内容,基本可拿满分:
● 构建菜单的基本结构,包括菜单、子菜单、分组线等。
● 设置访问键或快捷键或跳过条件。
● 设置命令或过程。
本部分的难度可能在“设置命令或过程”中,这个设计需要用到编程语句或SQL命令。
问答题
设计表单。
项目JXGL中的表单FMC14a用于随机产生30个100~300之间的正整数,并且存储在一个5行6列的二维数组中。按下列要求修改表单,修改后表单运行时如图所示。
【正确答案】
【答案解析】设计表单。
设计表单题考查点一般是:
● 添加控件(2~3个)及设置数据环境。
● 设置表单、控件属性6个左右。
● 设置事件代码。
如下:
题号
|
对象名
|
属性/事件/方法名
|
属性值/代码
|
1
|
Form1
|
Icon
|
Pc.ico
|
BolderStyle
|
2
|
2
|
Edit1
|
Height
|
102
|
Width
|
260
|
3
|
Command1
|
Caption
|
生成数组(/<C)
|
Command2
|
Click
|
ThisForm.Release
|
问答题
程序改错。
假定按如下规则定义一种三十二进制数:用“0,1,2,…,9,A,B,C,…,U,V”32个符号表示从0至31的32个十进制数。例如,三十二进制数“A8T”对应的十进制数的计算过程为
(A8T)
32
=A×32
2
+8×32
1
+T×32
0
=10×1024+8×32+29×1=(10525)
10
下面程序的功能是将一个三十二进制数字字符串转换为十进制数形式。修改该程序以实现其功能。要求:
①项目中有一个程序文件Pcode,将下列程序代码复制到其中并进行修改。
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
(1) Num32="A8T"
(2) Num10=0
(3) FOR i=LEN(Num32)-1 TO 0
(4) c=SUBSTR(Num32, LEN(Num32)-i, 1)
(5) IF ISDIGIT(c)
(6) d=VAL(c)
(7) ELSE
(8) IF BETWEEN(UPPER(c), "A", "V")
(9) d=ASC(UPPER(c))-55
(10) ELSE
(11) MESSAGEBOX("非法的32进制数!", 16)
(12) EXIT
(13) ENDIF
(14) ENDIF
(15) Num10=Num10+d*32^i
(16) ENDFOR
(17) MESSAGEBOX("32进制数:"+Num32+"的十进制形式是:"+STR(Num10), 64)
【正确答案】
【答案解析】程序改错。
第3行改为:FOR i=LEN(Num32)-1 TO 0 STEP-1
第12行改为:RETURN