1、二级 VISUAL+FOXPRO 机试-131 及答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分数:30.00)1.在考生文件夹下完成如下操作:1打开数据库 SCORE_MANAGER,该数据库中含 3 个有联系的表 STUDENT、SCORE1 和 COURSE,根据已经建立好的索引,建立表之间联系。2为 COURSE 表增加字段:开课学期(N,2,0)。3为 SCORE1 表“成绩”字段设置字段有效性规则:成绩=0,出错提示信息是:“成绩必须大于或等于零。”4将 SCORE1 表“成绩”字段的默认值设置为空值(NULL)。(分数:30.00)_二、二
2、 简单应用题(总题数:1,分数:40.00)2.在考生文件夹下完成如下简单应用:1在 SCORE_MANAGER 数据库中查询学生的姓名和年龄(计算年龄的公式:2003 一 Year(出生日期),年龄作为字段名),结果保存在一个新表 NEW_TABLE1 中。使用报表向导建立报表 NEW_REPORT1,用报表显示NEW_TABLEl 的内容。报表中数据按年龄升序排列,报表标题是“姓名-年龄”,其余参数使用缺省参数。2在 SCORE_MANAGER 数据库中查询没有选修任何课程的学生信息,查询结果包括“学号”、“姓名”和“系部”字段,查询结果按学号升序保存在一个新表 NEW_TABLE2 中。
3、(分数:40.00)_三、三 综合应用题(总题数:1,分数:30.00)3.SCORE_MANAGER 数据库中含有 3 个数据库表 STUDENT、SCORE1 和 COURSE。为了对 SCORE_MANAGER 数据库数据进行查询,设计一个如图所示的表单 Myform1(控件名为 form1,表单文件名 Myform1.scx)。表单的标题为“成绩查询”。表单左侧有文本“输入学号(名称为 Label1 的标签)”和用于输入学号的文本框(名称为 Text1),“查询”(名称为 Command1)和“退出”(名称为 Command2)两个命令按钮,以及 1 个表格控件。(分数:30.00)_
4、二级 VISUAL+FOXPRO 机试-131 答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分数:30.00)1.在考生文件夹下完成如下操作:1打开数据库 SCORE_MANAGER,该数据库中含 3 个有联系的表 STUDENT、SCORE1 和 COURSE,根据已经建立好的索引,建立表之间联系。2为 COURSE 表增加字段:开课学期(N,2,0)。3为 SCORE1 表“成绩”字段设置字段有效性规则:成绩=0,出错提示信息是:“成绩必须大于或等于零。”4将 SCORE1 表“成绩”字段的默认值设置为空值(NULL)。(分数:30.00)_正确答案
5、:(1打开数据库设计器,在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。2打开 COURSE 表表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。3打开表设计器,选中“成绩”字段,在“字段有效性”中的“规则”文本框中填入:成绩=0,在“信息”文本框中填入:“成绩必须大于或等于零”,单击“确定”按钮。4在表设计器对话框中,选择“成绩”字段,单击 NULL 列下的按钮(表示此列允许空值),然后再在“字段有效性”中的默认值中填入.NULL.,单击“确定”。)解析:二、二 简单应用题(总题数:1,分数:40.00)2.在考生文件夹下完成如下简单应用
6、:1在 SCORE_MANAGER 数据库中查询学生的姓名和年龄(计算年龄的公式:2003 一 Year(出生日期),年龄作为字段名),结果保存在一个新表 NEW_TABLE1 中。使用报表向导建立报表 NEW_REPORT1,用报表显示NEW_TABLEl 的内容。报表中数据按年龄升序排列,报表标题是“姓名-年龄”,其余参数使用缺省参数。2在 SCORE_MANAGER 数据库中查询没有选修任何课程的学生信息,查询结果包括“学号”、“姓名”和“系部”字段,查询结果按学号升序保存在一个新表 NEW_TABLE2 中。(分数:40.00)_正确答案:(1在 Visual FoxPro 的命令窗口
7、中输入下列命令:SELECT 姓名,2003-Year(出生日期) as 年龄;FROM student:INTO TABLE new_table1.dbf启动报表向导可在“文件”菜单中选择“新建”或者单击工具栏上的“新建”按钮,打开“新建”对话框,文件类型选择报表,单击“向导”按钮。或者在“工具”菜单中选择“向导”子菜单,选择“报表”,或直接单击工具栏上的“报表向导”图标按钮。然后按照向导提示操作即可。2在 Visual FoxPro 的命令窗口中输入下列命令:SEIJECT student.学号,student.姓名,student.系部;FROM course right OUTER J
8、OIN score1;RIGHT OUTER JOIN student:ON Student.学号=Score1.学号;ON Course.课程号=Score1.课程号;WHERE Student.学号!=Score1.学号;ORDER BY Student.学号;INTO TABLE new_table2.dbf)解析:三、三 综合应用题(总题数:1,分数:30.00)3.SCORE_MANAGER 数据库中含有 3 个数据库表 STUDENT、SCORE1 和 COURSE。为了对 SCORE_MANAGER 数据库数据进行查询,设计一个如图所示的表单 Myform1(控件名为 form1
9、,表单文件名 Myform1.scx)。表单的标题为“成绩查询”。表单左侧有文本“输入学号(名称为 Label1 的标签)”和用于输入学号的文本框(名称为 Text1),“查询”(名称为 Command1)和“退出”(名称为 Command2)两个命令按钮,以及 1 个表格控件。(分数:30.00)_正确答案:(操作过程如下。在命令窗口输入命令:CREATE FORM Myform1,打开表单设计器窗口。在表格上添加各文本框、命令按钮、表格及相关的标签,并进行适当的布置和大小调整。设置各标签、命令按钮以及表单的 Caption 属性值。将表单的 ColumnCount 属性值设置为 2(共两列
10、)、RecordSourceType 属性值设置为“4-SQL 说明”。将表格内两列标头的 Caption 属性分别设置为“课程名”和“成绩”,并适当调整两列的宽度。设置表单的 Load 事件代码:CLOSE ALLUSE STUDENT设置“查询”按钮的 Click 事件代码:GO TOPLOCATE FOR Student.学号=ALLTRIM(THISFORM.TEXT1.VALUE)IF Student.学号=ALLTRIM(THISFORM.TEXT1.VALUE)THISFORM.GRID1.RECORDSOURCE=“SELECT Course.课程名,Score1.成绩;FROM course INNER JOIN score1;INNER JOIN student;ON Student.学号=Score1.学号;ON Course.课程号=Score1.课程号;WHERE Student.学号=ALLTRIM(THISFORM.TEXT1.VALUE);INTO CURSOR TEMP“ELSEMESSAGEBOX(“学号不存在,请重新输入学号“)THISFORM.GRID1.RECORDSOURCE=“ENDIF设置“退出”按钮的 Click 事件代码:THISFORM.RELEASE保存表单,关闭表单设计器窗口。)解析: