1、国家二级 VF 机试-试卷 201 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)为各部门分年度季度销售金额和利润表 XL 创建一个主索引和普通索引(升序),主索引的索引名为no,索引表达式为“部门编号+年份”;普通索引的索引名和索引表达式均为“部门编号”。 (在“销售”数据库中完成) (2)在 xl 表中增加一个名为“备注”的字段,字段数据类型为“字符”,宽度为 50。 (3)使用 SQL 的 ALTERTABLE 语句将 xl 表的“年份”字段的默认值修改为“2003”,并将该 SQL 语句存
2、储到命令文件 bbs.prg 中。 (4)通过“部门编号”字段建立 xl 表和 ma 表间的永久联系,并为该联系设置参照完整性约束:更新规则为“级联”;删除规则为“限制”;插入规则为“忽略”。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)在“医院”数据库中有“医生信息”表、 “处方信息”表和“药信息”表。用 SQL 语句查询开了药物“银翘片”的医生的所有信息,将使用的 SQL 语句保存在 my.txt 中。 (2)在考生文件夹下有一个数据库“医院”,其中有数据库表“医生信息”,在考生文件夹下设计一个表单 ys,该表单为“医生信息
3、”表的窗口输入界面,表单上还有一个标题为“关闭”的按钮。单击该按钮,则退出表单。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.现有医院数据库 doct3,包括 3 个表文件:yisheng.dbf(医生)、yao.dbf(药品)、chufang.dbf(处方)。设计一个名为 chufang3 的菜单,菜单中有两个菜单项“查询”和“退出”。 程序运行时,单击“查询”应完成下列操作:查询同一处方中,包含“感冒”两个字的药品的处方号、药名和生产厂,以及医生的姓名和年龄,把查询结果按处方号升序排序存入 jg9 资料表中。jg9 的结构为(姓名
4、,年龄,处方号,药名,生产厂)。最后统计这些医生的人数(注意不是人次数),并在 jg9 中追加一条记录,将人数填入该记录的处方号字段中。 单击“退出”菜单项,程序终止运行。 (注:相关资料表文件存在于考生文件夹下)(分数:2.00)_国家二级 VF 机试-试卷 201 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)为各部门分年度季度销售金额和利润表 XL 创建一个主索引和普通索引(升序),主索引的索引名为no,索引表达式为“部门编号+年份”;普通索引的索引名和索引表达式均为“部门编号”。 (在
5、“销售”数据库中完成) (2)在 xl 表中增加一个名为“备注”的字段,字段数据类型为“字符”,宽度为 50。 (3)使用 SQL 的 ALTERTABLE 语句将 xl 表的“年份”字段的默认值修改为“2003”,并将该 SQL 语句存储到命令文件 bbs.prg 中。 (4)通过“部门编号”字段建立 xl 表和 ma 表间的永久联系,并为该联系设置参照完整性约束:更新规则为“级联”;删除规则为“限制”;插入规则为“忽略”。(分数:2.00)_正确答案:(正确答案:(1)从菜单栏里单击“文件”并选择“打开”,或直接单击工具栏上的“打开”图标,在弹出的对话框中选择要打开的数据库文件“销售.db
6、c”。 在数据库设计器中,右键单击数据库表xl,在弹出的快捷菜单中选择“修改”菜单命令,进入 x1 的数据表设计器界面,然后单击“索引”选项卡,此选项卡中的“索引名”和“索引表达式”分别改为 no 和“部门编号+年份”,在“索引类型”的下拉框中,选择“主索引”。以同样的方法建立普通索引。 (2)在 x1 表设计器的“字段”选项卡中,输入新的字段名“备注”,类型选择“字符”型,宽度设置为“50”。 (3)在命令窗口输入命令:MODIFY COMMAND bbs,打开文件编辑器,输入如下语句: ALTER TABLE XL ALTER 年份 SET DEFAULT 2003 在命令窗口输入命令:D
7、O bbs,执行文件。 (4)在数据库设计器中,将 ma 表中“索引”下面的“部门编号”主索引字段拖到 xl 表中“索引”下面的“部门编号”索引字段上,建立了两个表之间的永久性联系。 在数据库设计器中,选择菜单命令“数据库”“清理数据库”,右键单击 xl 表和 ma 表之间的关系线,选择“编辑参照完整性”快捷菜单命令,在参照完整性生成器中,根据题意,分别在 3 个选项卡中设置参照完整性规则。)解析:解析:本大题主要考查的是数据库和数据表之间的联系,对数据表的连接、以及字段索引、表结构的修改,参照完整性的建立。建立索引表可以在数据表设计器中完成。对数据表进行连接及设置参照完整性都是在数据库设计器
8、中完成。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)在“医院”数据库中有“医生信息”表、 “处方信息”表和“药信息”表。用 SQL 语句查询开了药物“银翘片”的医生的所有信息,将使用的 SQL 语句保存在 my.txt 中。 (2)在考生文件夹下有一个数据库“医院”,其中有数据库表“医生信息”,在考生文件夹下设计一个表单 ys,该表单为“医生信息”表的窗口输入界面,表单上还有一个标题为“关闭”的按钮。单击该按钮,则退出表单。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口中输入命令:MODIFY FILE my.txt,在文本编辑
9、器窗口输入如下程序段: *文件 my.txt 中的程序段* SELECT 医生信息.职工号,医生信息.姓名,医生信息.职称,医生信息.部门,医生信息.年龄; FROM 医生信息,处方信息,药信息; WHERE 医生信息职工号:处方信息职工号; AND 处方信息.药编号=药信息.药编号; 药信息药名=“银翘片” * 在命令窗口输入命令:DO my.txt,程序运行结果如图 3-19 所示。(2)从菜单栏里单击“文件”并选择“新建”,或直接单击工具栏上的“新建”图标,在弹出的对话框中文件类型选择“表单”,单击对话框右边的“新建文件”图标,弹出了 Forml 的表单设计器,单击工具栏上的“保存”图标
10、,以 ys 名保存在考生文件夹下; 在表单设计器中,鼠标右键单击空白表单,选择“数据环境”快捷菜单命令,打开表单的数据环境,将数据表文件“医生信息”添加到数据环境中,将数据环境中的“医生信息”表拖放到表单中,可看到在表单中出现一个表格控件,此时实现了“医生信息”表的窗口式输入界面,最后在“表单控件”工具栏中,选中命令按钮控件添加到表单中,在“属性”对话框修改该命令按钮的 Caption 属性值为“关闭”,双击该命令按钮,在 Click 事件中输入程序。 *命令按钮 Commandl(关闭)的 Click 事件代码* Thisform.Release * 在命令窗口输入命令:DO FORM ys
11、,运行表单,结果如图 3-20 所示。 )解析:解析:本大题 1 小题考查了 SQL 联接查询,设计过程中主要注意两个表之间进行关联的字段。2 小题考查的是在表单中设定数据环境,通过表单的数据环境快速建立表单控件和数据之间的联系。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.现有医院数据库 doct3,包括 3 个表文件:yisheng.dbf(医生)、yao.dbf(药品)、chufang.dbf(处方)。设计一个名为 chufang3 的菜单,菜单中有两个菜单项“查询”和“退出”。 程序运行时,单击“查询”应完成下列操作:查询同一处方中,包含“
12、感冒”两个字的药品的处方号、药名和生产厂,以及医生的姓名和年龄,把查询结果按处方号升序排序存入 jg9 资料表中。jg9 的结构为(姓名,年龄,处方号,药名,生产厂)。最后统计这些医生的人数(注意不是人次数),并在 jg9 中追加一条记录,将人数填入该记录的处方号字段中。 单击“退出”菜单项,程序终止运行。 (注:相关资料表文件存在于考生文件夹下)(分数:2.00)_正确答案:(正确答案:在命令窗口输入命令:CREATE MENU chufang3,系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“查询”和“退出”,接着在“查
13、询”菜单行的“结果”下拉列表中选择“过程”选项(用于编写程序),在“退出”菜单行的“结果”下拉列表中选择“命令”选项。 单击“查询”菜单行中的“查询”按钮,进入程序设计的编辑窗口,在命令窗口中输入如下程序段: *“查询”菜单命令的程序设计* SET TALK OFF SET SAFETY OFF SELECT 姓名,年龄,处方号,药名,生产厂; FROM yisheng,yao,chufang; WHERE chufang.药编号=yao.药编号; AND chufang.职工号=yisheng.职工号AND 药名 IN(“感冒“); ORDER BY 处方号; INTO TABLE js9
14、SELECT * FROM jg9 GROUP BY 姓名 INTO cursor curtable INSERT INTO jg9(处方号)VALUES(J) 在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。 选择菜单命令“菜单”“生成”,生成一个菜单文件chufang3.mpr。关闭设计窗口,在命令窗口输入命令:DO chufang3.mpr,看到 Visual FoxPro 的菜单栏被新建的菜单所代替,单击“退出”菜单命令将恢复系统菜单。 执行“查询”菜单命令后,系统将查询结果自动保存到表 jg9.dbf 中。)解析:解析:本大题考查的主要是利用 SQL 语句进行多表查询,其中只要注意每两个表之间进行的关联字段即可,部分语句可以参考第二大题 2 小题的设计,最后还要注意的是人数的统计,因为要统计的人数,不是人次数,因此可以通过姓名字段的排序,将排序结果存放到一个临时表中,然后通过 COUNT 函数统计出人数(此函数不统计相邻的重复出现的数据)。