您好,欢迎来到微智科技网。
搜索
您的当前位置:首页国家二级VF机试模拟试卷96(题后含答案及解析)

国家二级VF机试模拟试卷96(题后含答案及解析)

来源:微智科技网


国家二级VF机试模拟试卷96 (题后含答案及解析)

题型有:1. 基本操作题 2. 简单应用题 3. 综合应用题

基本操作题(30分)

1. (1)建立项目文件,文件名为“xm”。 (2)将数据库“公司”添加到新建的项目中。 (3)为数据库中的表“职员信息”建立“候选索引”,索引名称和索引表达式均为“职员编号”。 (4)为“职员信息”表和“部门”表之间的关联设置完整性约束。要求:更新规则为“级联”,删除规则为“”,插入规则为“忽略”。

正确答案:(1)选择【文件】→【新建】命令,选择“项目”,单击“新建文件”按钮,输入项目名称“xm”后单击“保存”按钮。 (2)在项目管理器中选择“数据”选项卡,然后选择列表框中的“数据库”,单击“添加”按钮,在“打开”对话框中选择数据库名“公司”,单击“确定”按钮将数据库“公司”添加到新建的项目“xm”中。 (3)①在项目管理器中,依次展开“数据库”“公司”“表”分支,选择表“职员信息”,单击“修改”命令按钮,打开表设计器。 ②在表设计器的“索引”选项卡的“索引名”中输入“职员编号”,选择索引类型为“候选索引”,索引表达式为“职员编号”。单击“确定”按钮关闭表设计器并保存表“职员信息”结构。 (4)①在项目管理器中,选择“公司”数据库,单击“修改”按钮,在数据库设计器中,将“部门”表中“索引”下面的“部门编号”主索引字段拖曳到“职员信息”表中“索引”下面的“部门编号”索引字段上,建立两个表之间的永久性联系。 ②在数据库设计器中,选择【数据库】→【清理数据库】命令清理数据库。 ③右键单击“部门”表和“职员信息”表之间的关系线,在弹出的快捷菜单中选择“编辑参照完整性”命令,打开参照完整性生成器。 ④单击“更新规则”选项卡,选择“级联”;单击“删除规则”选项卡,选择“”;单击“插入规则”选项卡,选择“忽略”;单击“确定”按钮,保存参照完整性设置。

简单应用题(40分)

2. (1)用SQL语句查询至少有三门的课程成绩在70分以上(包括70分)的学生姓名,并将结果按升序存入表文件results.dbf,然后将该SQL语句粘贴在SQL.TXT文件的第二行(只占一行)。 (2)modi.prg程序的功能是:先为“学生”表增加一个“平均成绩”字段,数据类型为N(6,2):然后根据“选课”表统计每个学生的平均成绩,并写入新添加的字段。 该程序有三处错误,请改正,使程序能正确运行(在指定处修改,不允许增加或删除程序行)。

正确答案:(1)①在命令窗口输入如下SQL查询代码(以下SQL查询语句是通过查询设计器生成):SELECT 学生.姓名;FROM 成绩管理!学生 INNER JOIN成绩管理!选课; ON 学生.学号=选课.学号;WHERE 选课.成绩>=70;ORDER BY 学生.姓名;GROUP BY 学生.学号;HAVING COUNT(选

课.课程号)>=3;INTO TABLE results.dbf ②在命令窗口执行命令:MODIFY FILE SQL,打开文本文件编辑器。将命令窗口的查询语句复制到SQL文本文件中。 (2)步骤1:在命令窗口执行命令:MODIFY COMMAND modi,打开程序文件,文件中的命令代码如下: CLOSE ALL OPEN DATABASE 成绩管理 USE 选课 IN 0 USE 学生 EXCL IN 0*****Error*****DO WHILE EOF( ) SELECT AVG(成绩)FROM选课WHERE学号=学生.学号INTO ARRAY cj*********Error********* REPLACE 平均成绩=cj[1] cj[1]=0 SKIP ENDDO CLOSE DATABASE修改程序中的错误行,修改后的程序如下:CLOSE ALLOPEN DATABASE 成绩管理USE 选课IN 0USE 学生EXCL IN 0ALTER TABLE 学生 ADD 平均成绩N(6,2) SELECT 学生DO WHILE NOT EOF( ) SELECT AVG(成绩)FROM选课WHERE学号=学生.学号INTO ARRAY cj REPLACE 平均成绩 WITH cj[1] cj[1]=0 SKIP ENDDO CLOSE DATABASE 步骤2:保存文件修改,在命令窗口执行命令:DO MODI,执行程序文件。

解析:(1)本题主要考查的是SQL分组计算的查询。根据题目要求,SQL语句主要设计思路如下: 首先对“学生”和“选课”表进行联接,联接条件为两个表中“学号”相同的记录;接着筛选表中成绩大于70的所有记录(通过WHERE短语指出),对筛选后的记录接“学号”字段分组(通过GROUP BY短语分组),然后通过HAVING语句进一步限定分组条件,要求统计每组学号中“课程号”记录总数大于等于3,这样便可得出至少有三门课程成绩在70分以上的学生记录;查询结果最终保存在results表中,输出字段只包括学生的“姓名”字段。 (2)【本题主要考查了SQL定义功能;SQL简单计算查询;DO WHILE循环;Visual FoxPro修改记录命令。题目所提供的源程序功能大致如下: 首先打开“成绩管理”数据库,并打开库中的数据表“选课”和“学生”;接着利用SQL定义功能修改表结构;然后利用DO WHILE循环,依次计算“选课”表中每个学生的平均成绩,计算条件为“选课”表中的“学号”字段值等于“学生”表中当前记录的“学号”字段值,荆将均成绩保存到数组中;最后利用Visual FoxPro修改记录命令REPLACE将数组中的值赋给“学生”表的“平均成.绩”字段。 本题第一处错误是表结构修改语句的错误,为表增加字段的关键字是ADD而不是ALTER,ALTER只能用来修改已存在的字段;第二处错误是DO WHILE循环格式错误,缺少WHILE短语;第三处错误是修陡记录命令格式错误,指定修改值的短语为WITH而不是SET。

综合应用题(30分) 3. (1)打开基本操作题中建立的“学生”数据库,将自由表“student”“score”和“course”添加到数据库中。 (2)在“student”数据库中建立反映学生选课和考试成绩的视图“viewsc”,该视图包括“学号”“姓名”“课程名称”和“成绩”4个字段。 (3)打开表单文件“three”,完成下列操作: ①为“生成数据”命令按钮(Command1)编写代码:用SQL命令查询视图“viewsc”的全部内容,要求先按“学号”升序排列,若“学号”相同再按“成绩”降序排列,并将结果保存在“result”表中; ②为“运行报表”命令按钮编写代码;预览报表; ③为“退出”命令按钮(Command3)编写代码;关闭并释放表单。 最后运行表单“three”,并通过“生成数据”命令按钮产生表“result”文件。

正确答案:①选择【文件】→【打开】命令,选择“学生”数据库,在数据库设计器中单击右键,在弹出的菜单中选择“添加表”,将“student”“score”“course”表添加到数据库中。 ②在数据库设计器中单击右键,在弹出的菜单中选择“新建本地视图”,选择“新建视图”,打开视图设计器,将“student”表和“course”表添加到视图中。选择“字段”按钮,将“student.学号”“student.姓名”“course.课程名称”“score.成绩”添加到视图中。单击“保存”按钮,在弹出的“另存为”对话框中输入表单文件名“viewsc”。 ③选择【文件】→【新建】命令,选择“报表”,选择“报表向导”,将VIEWSC添加到报表中,修改报表样式为简报式,点击保存按钮,在弹出的“另存为”对话框中输入表单文件名“three”。 ④选择【文件】→【打开】命令,打开表单“three”,在表单设计器中,双击“生成数据”命令按钮,在Click事件中输入代码: SELECT*FROM viewsc ORDER BY学号,成绩DESC INTO TABLE result ⑤双击“运行报表”命令按钮,在Click事件中输入代码: report form three preview ⑥双击“退出”命令按钮,在Click事件中输入代码: thisform.release ⑦选择【表单】→【执行表单】命令,运行表单。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务