1、二级 VISUAL+FOXPRO 机试-130 及答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分数:30.00)1.在考生文件夹下完成如下操作:1新建一个名为“学生”的数据库。2将“学生”、“选课”、“课程”3 个自由表添加到新建的数据库“学生”中。3通过“学号”字段为“学生”表和“选课”表建立永久联系。4为上面建立的联系设置参照完整性约束:更新和删除规则为“级联”,插入规则为“限制”。(分数:30.00)_二、二 简单应用题(总题数:1,分数:40.00)2.在考生文件夹下完成如下简单应用:1用 SQL 语句完成下列操作:将选课在 5 门课程以上(包括
2、 5 门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表 stu_temp 中(字段名为学号、姓名、平均分和选课门数)。2建立一个名为 menu_lin 的下拉式菜单,菜单中有两个菜单项“查询”和“退出”。“查询”项下还有一个子菜单,子菜单有“按姓名”和“按学号”两个选项。在“退出”菜单项下创建过程,该过程负责使程序返回到系统菜单。(分数:40.00)_三、三 综合应用题(总题数:1,分数:30.00)3.设计名为 mystu 的表单(控件名为 form1,文件名为 mystu)。表单的标题为“学生学习情况统计”。表单中有一个选项组控件(命名为 myOption)
3、和两个命令按钮“计算”(名称为 Command1)和“退出”(名称为Command2)。其中,选项组控件有两个按钮“升序”(名称为 Option1)和“降序”(名称为 Option2)运行表单时,首先在选项组控件中选择“升序”或“降序”,单击“计算”命令按钮后,按照成绩“升序”或“降序”(根据选项组控件)将选修了“C 语言”的学生学号和成绩分别存入 stu_sort1.dbf 和stu_sort2.dbf 文件中。单击“退出”按钮关闭表单。(分数:30.00)_二级 VISUAL+FOXPRO 机试-130 答案解析(总分:100.00,做题时间:90 分钟)一、一 基本操作题(总题数:1,分
4、数:30.00)1.在考生文件夹下完成如下操作:1新建一个名为“学生”的数据库。2将“学生”、“选课”、“课程”3 个自由表添加到新建的数据库“学生”中。3通过“学号”字段为“学生”表和“选课”表建立永久联系。4为上面建立的联系设置参照完整性约束:更新和删除规则为“级联”,插入规则为“限制”。(分数:30.00)_正确答案:(在 Visual FoxPro 主窗口中按下组合键 Ctrl+N,系统弹出“新建”对话框,在文件类型中选择“数据库”,单击“新建文件”按钮,在弹出的对话框的“数据库名”处输入“学生”,单击“保存”按钮。2打开考生文件夹下的“学生”数据库,打开数据库菜单选择“添加表(A)”
5、,在弹出的“打开”对话框中,选定考生文件夹下的“学生”表,再单击“确定”按钮即可。这样表“学生”就添加到了“学生”数据库中,用同样的方法,将“选课”表、“课程”表也添加到“学生”数据库中。3在数据库设计器中选中表“学生”,在主菜单中选择“修改(Y)”,弹出表设计器,选择表设计器“索引”标签,在索引名列中填入“学号”,在索引类型列中选择“主索引”,在索引表达式列中填入“学号”,单击“确定”按钮以保存表结构。用类似的方法为“选课”表建立必要的索引。在数据库设计器中,选中“学生”表中的索引“学号”将其拖动到表“选课”的“学号”的索引上并松开,这样两个表之间就建立起了永久联系。4在第 3 题建立好永久
6、联系之后,在“学生”表和“选课”表的“学号”索引之间有一条线,单击这条表示两个表之间联系的线(线会加粗),此时在主菜单中选择“数据库”中的“编辑参照完整性(I)”,系统弹出“参照完整性生成器”对话框,在“更新规则”标签中,选择“级联”规则,在“删除”规则中选择“级联”,在“插入规则”中选择“限制”,单击“确定”按钮保存所编辑的参照完整性。)解析:二、二 简单应用题(总题数:1,分数:40.00)2.在考生文件夹下完成如下简单应用:1用 SQL 语句完成下列操作:将选课在 5 门课程以上(包括 5 门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表 stu_temp
7、 中(字段名为学号、姓名、平均分和选课门数)。2建立一个名为 menu_lin 的下拉式菜单,菜单中有两个菜单项“查询”和“退出”。“查询”项下还有一个子菜单,子菜单有“按姓名”和“按学号”两个选项。在“退出”菜单项下创建过程,该过程负责使程序返回到系统菜单。(分数:40.00)_正确答案:(1在 Visual FoxPro 的命令窗口中输入下列命令:SELECT 学生.学号,学生.姓名,AVG(选课.成绩) as 平均分,;COUNT(选课.课程号) AS 选课门数;FROM 学生! 学生 INNER JOIN 学生! 选课;INNER JOIN 学生! 课程;ON 课程.课程号=选课.课程
8、号;ON 学生.学号=选课.学号;GROUP BY 学生.姓名;HAVING COUNT(选课.课程号)=5;ORDER BY 3 DESC:INTO TABLE stu_temp.dbf)解析:三、三 综合应用题(总题数:1,分数:30.00)3.设计名为 mystu 的表单(控件名为 form1,文件名为 mystu)。表单的标题为“学生学习情况统计”。表单中有一个选项组控件(命名为 myOption)和两个命令按钮“计算”(名称为 Command1)和“退出”(名称为Command2)。其中,选项组控件有两个按钮“升序”(名称为 Option1)和“降序”(名称为 Option2)运行表
9、单时,首先在选项组控件中选择“升序”或“降序”,单击“计算”命令按钮后,按照成绩“升序”或“降序”(根据选项组控件)将选修了“C 语言”的学生学号和成绩分别存入 stu_sort1.dbf 和stu_sort2.dbf 文件中。单击“退出”按钮关闭表单。(分数:30.00)_正确答案:(第一步:在 Visual FoxPro 主窗口中按下组合键 Ctrl+N,系统弹出“新建”对话框,在文件类型中选择“表单”,单击“新建文件”按钮,系统将打开表单设计器;或直接在命令窗口中输入“crea form mystu”。第二步:单击工具栏按钮“表单控件工具栏”,在弹出的“表单控件”对话框中,选中“选项按钮
10、组”控件,在表单设计器中拖动鼠标,这样在表单上得到一个“选项按钮组”控件 optiongroup1,用类似的方法为表单加入一个“命令按钮”控件 command2,两个“文本框”控件 text1 和 text2。相关控件的属性值如下所示:对象 属性 属性值Form1 Caption 学生学习情况统计Optiongroup1 Name myOptionMyOption.option1 Caption 升序MyOption.option2 Caption 降序Command1 Caption 计算Command2 Caption 退出*命令按钮 command1(计算)的 Click 事件代码如下*
11、DO CASECASE THISFORM.myOption.VALUE=1SELECT 学生.学号,选课.成绩;FROM 学生! 课程 INNER JOIN 学生! 选课;INNER JOIN 学生! 学生;ON 学生.学号=选课.学号;ON 课程.课程号=选课.课程号;WHERE AT(“C 语言“,课程.课程名称)0;ORDER BY 选课.成绩;INTO TABLE stu_sort1CASE THISFORM.myOption.VALUE=2SELECT 学生.学号,选课.成绩;FROM 学生! 课程 INNER JOIN 学生! 选课;INNER JOIN 学生! 学生;ON 学生.学号=选课.学号;ON 课程.课程号=选课.课程号;WHERE AT(“C 语言“,课程.课程名称)0;ORDER BY 选课.成绩 DESC;INTO TABLE stu_sort2ENDCASE*命令按钮 command2(退出)的 Click 事件代码如下*THISFORM.RELEASE)解析: