1、国家二级 VF机试(操作题)模拟试卷 435及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下完成下列操作:(1)使用 SQL命令根据“教师”表产生一个结构和数据完全一致的“高校教师”表,并按职工号递增排序。(2)使用报表向导为“教师”表创建一个名为 two的报表,选择“教师”表的所有字段,按“职工号”降序排列,标题为“教师情况报表”,其他选项取默认值。(3)修改threeprg 中的程序,使之能够正确的将 1000以内能够被 3整除的整数存储于 four表中。(4)创建一个新类 MyCheckBox,该类扩展 VisualFoxp
2、ro的 CheckBox基类,新类保存在考生文件夹下的 myclasslib类库中。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.在考生文件夹下完成下列操作:(1)使用 SQL语句完成下列功能:根据“职工”和“部门”两个表,计算每个部门 1980-1990年出生的职工人数,存储于新表 new中,新表中包括“部门号”和“人数”两个字段,结果按“人数”递减排序。请将 SQL语句存储于 test中并执行。(2)修改程序 fiveprg 并执行。程序的功能是:1)建立数据库表“学生”(表结构为“姓名”20 个字符,“学号”10 个字符,其中学号为主键);2)为刚建立的“学生”表增
3、加一个字段:“总分”,整型;3)定义“总分”的有效性规则:“总分”大于等于 0并且小于等于 800;4)插入一条记录(“林红“、“20100808“、788)到“学生”表中;5)将刚插入的学号为“20100808”的记录的总分修改为 786。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下完成下列操作:(1)新建一个名为“职工管理”的数据库文件,将自由表“部门”“职工”添加到该数据库中。(2)将“部门”中的“部门号”定义为主索引,索引名是“部门号”。(3)建立一个视图 myview,视图中的数据是部门名为“通信”并且工资大于 3000的人员,视图中包括“姓名”
4、和“工资”两个字段,按工资升序排列。(4)建立表单 formtwo:包括四个标签(LabellLabe14 的标题分别为“部门名”“最高工资”“最低工资”“平均工资”)、一个列表框( List1)、三个文本框(TextlText3 分别用于显示“最高工资”“最低工资”“平均工资”)和一个命令按钮(退出)。(分数:2.00)_国家二级 VF机试(操作题)模拟试卷 435答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下完成下列操作:(1)使用 SQL命令根据“教师”表产生一个结构和数据完全一致的“高校教师”表,并按职工号递增排序。(2)
5、使用报表向导为“教师”表创建一个名为 two的报表,选择“教师”表的所有字段,按“职工号”降序排列,标题为“教师情况报表”,其他选项取默认值。(3)修改threeprg 中的程序,使之能够正确的将 1000以内能够被 3整除的整数存储于 four表中。(4)创建一个新类 MyCheckBox,该类扩展 VisualFoxpro的 CheckBox基类,新类保存在考生文件夹下的 myclasslib类库中。(分数:2.00)_正确答案:(正确答案:(1)建立程序可以使用菜单命令的方式,选择“文件”菜单下的“新建”自命令,弹出“新建”对话框,文件类型选择“程序”。 单击“新建文件”图标按钮打开程序
6、编辑界面。 输入建立“高校教师”表的命令:selec*from 教师 into dbf高校教师 order by职工号 执行该程序并保存。 (2)启动报表向导可以通过菜单命令来完成,选择“文件”菜单项下面的“新建”子菜单,打开“新建”对话框,文件类型选择报表,单击“向导”图标按钮。 弹出“向导选取”对话框,选择“报表向导”,然后单击“确定”按钮。 弹出“报表向导”的 步骤 1选择字段,单击“数据库和表”后面的“浏览”按钮,找到并打开“教师”表,然后选择该表的所有字段到“选定字段”,如图 481所示。 单击“下一步”按钮,进入步骤 24,保留默认设置,不需要修改。 单击“下一步”按钮,进入步骤
7、5设置表间连接,采用默认值不需要修改。 单击“下一步”按钮,进入步骤 4设置排序,选取“职工号”字段,排序为降序,如图 482所示。 单击“下一步”按钮,进入步骤 6,设置“报表标题”为“教师情况报表”,如图 483所示。 )解析:解析:本大题考查了项 SQL语句、报表设计和自定义类设计。 使用报表向导建立报表,按照向导的要求一步一步地设置报表参数,使用起来非常方便。二、简单应用题(总题数:1,分数:2.00)2.在考生文件夹下完成下列操作:(1)使用 SQL语句完成下列功能:根据“职工”和“部门”两个表,计算每个部门 1980-1990年出生的职工人数,存储于新表 new中,新表中包括“部门
8、号”和“人数”两个字段,结果按“人数”递减排序。请将 SQL语句存储于 test中并执行。(2)修改程序 fiveprg 并执行。程序的功能是:1)建立数据库表“学生”(表结构为“姓名”20 个字符,“学号”10 个字符,其中学号为主键);2)为刚建立的“学生”表增加一个字段:“总分”,整型;3)定义“总分”的有效性规则:“总分”大于等于 0并且小于等于 800;4)插入一条记录(“林红“、“20100808“、788)到“学生”表中;5)将刚插入的学号为“20100808”的记录的总分修改为 786。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:建立菜单可以使用菜单命令的方式,选
9、择“文件”菜单下的“新建”自命令,弹出“新建”对话框,文件类型选择“程序”。 步骤 2:单击“新建文件”图标按钮打开程序编辑界面。 步骤 3:在代码编辑界面输入命令: select 部门部门号,count(*)as 人数; from 职工,部门 where部门部门号=职工,部门号 and year(出生日期)=1980 and year(出生日期)=19 90; order by 人数 desc; group by 部门,部门号 into dbf new 步骤 4:单击菜单工具栏的“保存”按钮,弹出“另存为”对话框,输入程序名为:testprg,保存到考生文件夹。 步骤 5:执行该程序。 SQ
10、L语句和查询的设计。 (2)步骤 1:打开 fiveprg 程序。 步骤 2:第一个错误处应改为:create table学生(姓名 C(20),学号 C(10) primary key)。 步骤 3:第二个错误处应改为:alter table 学生add总分 I。 步骤 4:第三个错误处应改为:alter table 学生 alter总分 set check总分=800 and 总分=0。 步骤 5:第四个错误处应改为:insert into 学生 values(“林红“,“20100808“,788)。 步骤6:第五个错误处应改为:update 学生 set总分=786 where 学号=
11、“20100808“。 步骤 7:修改完成后保存程序,并执行该程序。 SQL 的使用。)解析:解析:(1)本题考查了 SQL的使用。 题目要求根据“职工”和“部门”两个表,计算每个部门1980到 1990年出生的职工人数,因此查询的筛选条件为:部门部门号=职工部门号 and year(出生日期)=1980and year(出生日期)=1990,统计人数使用 count函数。 (2)本题考查 SQL的应用。 题目建立数据库表“学生”的时候设置学号为主键,因此第 2行需要补充主键设置。第 3行处是修改表结构,增加一个字段,使用 add命令。第 4行处是定义“总分”字段的有效性规则,使用 alter
12、命令。第 5行处是使用 insert插入一条记录。最后一行是修改记录,使用 update命令,需要制定更新的条件。三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下完成下列操作:(1)新建一个名为“职工管理”的数据库文件,将自由表“部门”“职工”添加到该数据库中。(2)将“部门”中的“部门号”定义为主索引,索引名是“部门号”。(3)建立一个视图 myview,视图中的数据是部门名为“通信”并且工资大于 3000的人员,视图中包括“姓名”和“工资”两个字段,按工资升序排列。(4)建立表单 formtwo:包括四个标签(LabellLabe14 的标题分别为“部门名”“最高工资”“最低
13、工资”“平均工资”)、一个列表框( List1)、三个文本框(TextlText3 分别用于显示“最高工资”“最低工资”“平均工资”)和一个命令按钮(退出)。(分数:2.00)_正确答案:(正确答案:步骤 1:单击常用工具栏的“新建”按钮,弹出“新建”对话框,文件类型选择“数据库”。 步骤 2:单击“新建文件”图标按钮,弹出“创建”对话框,输入数据库名称:职工管理dbc,保存到考生目录下, 步骤 3:在打开的数据库设计器中,单击鼠标右键,弹出快捷菜单,选择“添加表”命令,弹出“打开”对话框,将考生目录下的表“部门”添加到数据库中,重复本步骤继续把“职工”添加到数据库中。 步骤 4:在数据库设计
14、器中,选中“部门”表,在其上单击右键,弹出快捷菜单,选择“修改”命令,打开表设计器。 步骤 5:在打开的表设计器中,单击“索引”选项卡,输入索引名“部门号”,类型设为“主索引”,索引表达式为“部门号”。 步骤 6:单击“确定”按钮保存对表的修改。 步骤 7:在命令窗口执行命令创建视图:CREATE VIEW,弹出“添加表或视图”对话框,选择考生目录下“部门”表,然后单击“添加”按钮完成数据表的添加,继续添加“职工”表,并根据“职工部门号=部门,部门号”建立表间联系,然后单击“关闭”按钮,进入视图设计器。 步骤 8:选择“字段”选项卡,选择“职工,姓名”和“职工,工资”添加到“选定字段”。 步骤
15、 9:选择“筛选”选项卡,“字段名”选择“部门部门名”,“条件”选择“=”,“实例”中输入“通信”,“逻辑关系”选择“AND”。输入另外一个条件,“字段名”选择“职工工资”,“条件”选择“”,“实例”中输入“3000”如图 484所示。 步骤 10:选择“排序依据”选项卡,选择“职工,工资”单击“添加”按钮添加到“排序条件”中,“排序选择”选择“升序”。 步骤 11:单击菜单栏的“保存”按钮,弹出“另存为”对话框,输入视图文件名:m)rview,保存到考生文件夹。 步骤 12:在命令窗口输入命令建立表单:CREATE FORM formtwo,并打开表单设计器。 步骤 13:为表单添加数据库环
16、境,在“显示”菜单下选择“数据环境”子菜单,弹出“添加表或视图”对话框,单击“其他”按钮,弹出“打开”对话框找到并打开“部门”表和“职工”表,单击“关闭”按钮关闭该对话框。 步骤 14:在表单生添加 4个标签、1 个列表框、3 个文本框和 1个命令按钮,分别设置属性如表 418所示,并进行适当布置和大小调整。 )解析:解析:本大题考查了数据库的建立、索引设置、视图设计器和表单设计器的使用。 本题的 SQL查询比较复杂,题目要求表单运行时,用户双击列表框中选项时,将“部门名”、“最高工资”、“最低工资”和“平均工资”四个字段的信息显示在文本框中,因此 SQL查询的时候需要使用 max、min、avg 函数。在列表框的双击事件代码过程中,定义一个变量保存列表框的选定值,在 SQL查询中可以使用该变量,用在筛选条件中。