VF题库14.docx
《VF题库14.docx》由会员分享,可在线阅读,更多相关《VF题库14.docx(17页珍藏版)》请在冰豆网上搜索。
VF题库14
第1套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
注意:
基本操作题为4道SQL题,请将每道题的SQL命令粘贴到sql_a1.txt文件,每条命令占一行,第1道题的命令是第1行,第2道题的命令是第2行,以此类推;如果某道题没有做,相应行为空。
在考生文件夹下完成下列操作:
(1)利用SQLSELECT命令将表stock_sl.dbf复制到stock_bk.dbf。
(2)利用SQLINSERT命令插入记录("600028",4.36,4.60,5500)到stock_bk.dbf表。
(3)利用SQLUPDATE命令将stock_bk.dbf表中"股票代码"为"600007"的股票"现价"改为8.88。
(4)利用SQLDELETE命令删除stock_bk.dbf表中"股票代码"为"600000"的股票。
【解析】本大题主要考查了SQL的操作功能,包括数据的插入(INSERT)、更新(UPDATE)和删除(DELETE)。
复制表可以使用SQL查询功能中表的去向语句来实现。
【答案】
请查看sql_a1.txt文件,其中的4条语句分别为:
(1)SELECT*FROMstock_s1INTOTABLEstock_bk
(2)INSERTINTOstock_bkVALUE("600028",4.36,4.60,5500)
(3)UPDATEstock_bkSET现价=8.88WHERE股票代码="600007"
(4)DELETEFROMstock_bkWHERE股票代码
二、简单应用题(共2小题,每题20分,计40分)
(1)在考生文件夹下建立数据库sc2,将考生文件夹下的自由表score2添加进sc2中。
根据score2表建立一个视图score_view,视图中包含的字段与score2表相同,但视图中只能查询到积分小于1500的信息。
然后利用新建立的视图查询视图中的全部信息,并将结果按积分升序存入表v2。
(2)建立一个菜单filemenu,包括两个菜单项"文件"和"帮助","文件"将激活子菜单,该子菜单包括"打开"、"存为"和"关闭"3个菜单项;"关闭"使用SETSYSMENUTODEFAULT命令返回到系统菜单,其他菜单项的功能不做要求。
【解析】本大题1小题考查的主要是视图的建立及查询,我们可以在视图设计器中根据题意为自由表建立一个视图文件score_view,并在视图设计器的对应选项卡中为视图设置条件,然后通过查询设计器完成视图的查询,并决定输出去向为表。
2小题中主要是考查菜单设计器的"结果"下拉框中各项的使用功能,例如要建立下级菜单,在"结果"下拉框中就必须选择"子菜单",而要执行某条菜单命令,就应该选择"命令"或"过程"。
【答案】
(1)在命令窗口输入命令:
MODIFYDATABASEsc2,新建一个数据库文件,在数据库设计器中将考生文件夹下的自由表score2添加到数据库中,如图1-1所示。
图1-1
利用菜单命令或常用工具栏中的图标按钮,打开"新建"对话框,新建一个视图文件,将数据表score2添加到视图设计器中。
视图设计器中有6个选项卡,根据题意,在"字段"选项卡中,单击"全部添加"命令按钮,将"可用字段"列表框中的3个字段全部添加到右边的"选定字段"列表框中,接着在"筛选"选项卡中的"字段名"下拉框中选择"score2.积分"字段,在"条件"下拉框中选择"<",在"实例"文本框中输入"1500",然后在"排序依据"选项卡中,将"可用字段"列表框中的"score2.积分"字段添加到右边的"选定字段"列表框中,在"排序选项"中选择"升序"单选项,将视图文件以score_view名保存在考生文件夹下,如图1-2所示。
图1-2
因为视图设计器中没有"查询去向"的问题,因此要将查询结果保存在数据表中,必须利用查询设计器来完成。
在"新建"对话框中选择"查询"单选项,打开查询设计器,将视图score_view添加到查询设计器中,如图1-3所示。
图1-3
在查询设计器的"字段"选项卡中,单击"全部添加"命令按钮,将"可用字段"列表框中的字段全部添加到"选定字段"中,然后执行菜单命令"查询"-"查询去向",系统弹出"查询去向"对话框,在对话框中单击"表"图标按钮,在"表名"文本框中输入保存查询结果的表名"v2",单击"确定"按钮关闭对话框。
执行菜单命令"查询"-"运行查询",查询结果将自动保存到数据表v2中。
(2)在命令窗口输入命令:
CREATEMENUfilemenu,系统弹出一个"新建"对话框,在对话框中单击"菜单"图形按钮,进入菜单设计器环境。
根据题目要求,首先输入两个主菜单名称"文件"和"帮助",在"结果"下拉框中全部选择"子菜单"。
单击"文件"名行中的"创建"按钮进入下级菜单的设计界面,此设计窗口与主窗口大致相同,然后编写每个子菜单项的名称"打开"、"存为"和"关闭",如图1-4所示。
根据题意,系统不再要求设计下级菜单,因此在3个子菜单的"结果"对话框中选择"过程"或"命令"。
最后在"退出"菜单项的"命令"文本框中编写程序代码:
SETSYSMENUTODEFAULT。
要回到上级菜单,只要从窗口的"菜单级"下拉框中选择"菜单栏"即可。
选择菜单命令"菜单"-"生成",生成一个菜单文件"filemenu.mpr",如图1-5所示。
图1-4 图1-5
三、综合应用题(1小题,计30分)
在考生文件夹下有学生成绩数据库xuesheng3,包括如下所示3个表文件以及相关的索引文件:
1)xs.dbf(学生文件:
学号C8,姓名C8,性别C2,班级C5;另有索引文件XS.IDX,索引键:
学号)
2)cj.dbf(成绩文件:
学号C8,课程名C20,成绩N5.1;另有索引文件CJ.IDX,索引键:
学号)
3)cjb.dbf(成绩表文件:
学号C8,姓名C8,班级C5,课程名C12,成绩N5.1)
设计一个名为XS3的菜单,菜单中有两个菜单项"计算"和"退出"。
程序运行时,单击"计算"菜单项应完成下列操作:
将所有选修了"计算机基础"的学生的"计算机基础"成绩,按成绩由高到低的顺序填到成绩表文件CJB.DBF中(首先须将文件中原有数据清空)。
单击"退出"菜单项,程序终止运行。
(注:
相关数据表文件存在于考生文件夹下)
三、综合应用题
【解析】本大题考查的主要是通过学生表和成绩表的连接,将符合要求的记录添加到新的数据表中。
在菜单的"计算"菜单命令设计过程中,在"结果"下拉框选项中应该选择"过程"选项,然后进行查询程序的编辑,在程序设计过程中,可以使用SQL查询语句及插入语句来完成设计过程。
【答案】
在命令窗口输入命令:
CREATEMENUxs3,系统弹出一个"新建菜单"对话框,在对话框中单击"菜单"图形按钮,进入菜单设计器环境。
根据题目要求,首先输入两个主菜单名称"计算"和"退出",接着在"计算"菜单行的"结果"下拉框中选择"过程"选项(用于编写程序),在"退出"菜单行的"结果"下拉框中选择"命令"选项(可参考二大题2小题的设计过程)。
单击"计算"菜单行中的"编辑"按钮,进入程序设计的编辑窗口,在命令窗口中输入如下程序段:
**********"计算"菜单命令的程序设计**********
SETTALKOFF
OPENDATABASExuesheng3
SELECTcj.学号,xs.班级,xs.姓名,cj.课程名,c.成绩;
FROMxuesheng3!
xsINNERJOINxuesheng3!
cj;
ONxs.学号=cj.学号;
WHEREcj.课程名='计算机基础';
ORDERBYcj.成绩DESC;
INTOARRAYAFieldsValue
DELETEFROMcjb
INSERTINTOcjbFROMARRAYAFieldsValue
CLOSEALL
USEcjb
PACK
USE
SETTALKON
**********************************************
在"退出"菜单项的"命令"文本框中编写程序代码:
SETSYSMENUTODEFAULT。
选择菜单命令"菜单"-"生成",生成一个菜单文件"xs3.mpr"。
关闭设计窗口,在命令窗口输入命令:
DOxs3.mpr,看到VisualFoxPro的菜单栏被新建的菜单所代替,单击"退出"菜单命令将恢复系统菜单。
第2套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下完成下列操作(在"成绩管理"数据库中完成):
(1)为"学生"表在"学号"字段上建立升序主索引,索引名为学号。
(2)为"学生"表的"性别"字段定义有效性规则,规则表达式为"性别$的"男女"",出错提示信息是""性别必须是男或女""。
(3)在"学生"表的"性别"和"年龄"字段之间插入一个"出生日期"字段,数据类型为"日期型"(修改表结构)。
(4)用SQL的UPDATE命令将学生"李勇"的出生日期修改为1984年3月5日,并将该语句粘贴在sql_a2.TXT文件中(第一行、只占一行)。
一、基本操作题
【解析】本大题所考查的都是数据表结构的一些基本操作,包括字段索引的建立、字段的有效性规则建立以及字段的新增,可在"字段"选项卡中完成,主索引的建立需要在"索引"选项卡中进行设置。
【答案】
(1)在命令窗口输入命令:
USE学生
MODIFYSTRUCTURE
打开表设计器,在"索引"选项卡的"索引名"中输入"学号",选择索引类型为"主索引",索引表达式为"学号"。
(2)在"学生"表设计器的字段选项卡中,首先选中"性别"字段,然后在规则文本框中输入:
"性别$"男女"";在信息文本框中输入"性别必须是男或女",如图2-1所示。
图2-1
(3)在"学生"表设计器的"字段"选项卡中,选中"年龄"字段,然后单击右边的"插入"命令按钮,新增一个字段,将字段名改为"出生日期",将"类型"改为日期型。
(4)请查看sql_a2.txt文件中的命令,其中的SQL语句为UPDATE学生STE出生日期={1983/03/04}WHERE姓名="李勇"。
二、简单应用题(共2小题,每题20分,计40分)
(1)根据考生文件夹下的txl表和jsh表建立一个查询query2,查询出单位是"南京大学"的所有教师的姓名、职称、电话,要求查询去向是表,表名是query2.dbf,并执行该查询。
(2)建立表单enterf,表单中有两个命令按钮,按钮的名称分别为cmdin和cmdout,标题分别为"进入"和"退出"。
【解析】本大题1小题考查的是多表查询文件的建立以及查询去向。
在设置查询去向的时候,应该注意表的选择;2小题考查的主要是表单中一些基本控件的建立以及属性的设置,属性设置可直接在属性面板中修改。
【答案】
(1)可以直接在命令窗口输入命令:
CREATEQUERYquery2,打开查询设计器,新建一个查询。
在查询设计器中,分别将txl和jsh两个数据表文件添加到查询设计器中,系统自动查找两个数据表中匹配的字段进行内部联接,单击"确定"按钮,如图2-2所示。
图2-2
在查询设计器中的"字段"选项卡中,将"可用字段"列表框中的jsh.姓名、jsh.职称和txl.电话3个字段添加到右边的"选定字段"列表框中,在"筛选"选项卡的"字段名"下拉框中选择"txl.单位"字段,在"条件"下拉框中选择"=",在"实例"文本框中输入"南京大学"。
执行菜单命令"查询"-"查询去向",系统弹出"查询去向"对话框,单击"表"图标按钮,在"表名"文本框中输入表名query2,单击"确定"退出,如图2-3所示。
图2-3
执行菜单"查询"-"运行查询",查询结果将自动保存到query2数据表中。
(2)在命令窗口输入命令:
CREATEFORMenterf,打开表单设计器。
单击表单控件工具栏上的"命令按钮"控件图标,为表单添加两个命令按钮command1和command2,如图2-4所示。
图2-4
在属性对话框中将命令按钮command1的Name属性值修改为cmdin,将Caption属性值修改为"进入",以同样的方法,将第二个命令按钮(command2)的Name属性值修改为cmdout,将Caption属性值修改为"退出",如图2-5所示。
图2-5
三、综合应用题(1小题,计30分)
在考生文件夹下有仓库数据库ck3,包括如下所示两个表文件:
ck(仓库号C(4),城市C(8),面积N(4))
zg(仓库号C(4),职工号C(4),工资N(4))
设计一个名为ZG3的菜单,菜单中有两个菜单项"统计"和"退出"。
程序运行时,单击"统计"菜单项应完成下列操作:
检索出所有职工的工资都大于1220元(不包括1220元)的职工所管理的仓库信息,将结果保存在wh1数据表(wh1为自由表)文件中,该文件的结构和CK数据表文件的结构一致,并按面积升序排序。
单击"退出"菜单项,程序终止运行。
(注:
相关数据表文件存在于考生文件夹下)
【解析】本大题考查的主要是利用SQL的嵌套查询来完成两个数据表之间的记录查找,此处应注意运算符IN和NOTIN的使用;在菜单的设计过程中主要是注意两个菜单命令在"结果"下拉框中应选择的类型。
【答案】
在命令窗口输入命令:
CREATEMENUzg3,系统弹出一个"新建菜单"对话框,在对话框中单击"菜单"图形按钮,进入菜单设计器环境。
根据题目要求,首先输入两个主菜单名称"统计"和"退出",接着在"统计"菜单行的"结果"下拉框中选择"过程"选项(用于编写程序),在"退出"菜单行的"结果"下拉框中选择"命令"选项,如图2-6所示。
图2-6
单击"统计"菜单行中的"编辑"按钮,进入程序设计的编辑窗口,在命令窗口中输入如下程序段:
*********"统计"菜单命令的程序设计*********
SETTALKOFF
SETSAFETYOFF
OPENDATABASEck3.dbc
USEck
SELECT*FROMckWHERE仓库号NOTIN;
(SELECT仓库号FROMzgWHERE工资<=1220);
AND仓库号IN(SELECT仓库号FROMzg);
ORDERBY面积;
INTOTABLEwh1.dbf
CLOSEALL
SETSAFETYON
SETTALKON
**********************************************
在"退出"菜单项的"命令"文本框中编写程序代码:
SETSYSMENUTODEFAULT。
选择菜单命令"菜单"-"生成",生成一个菜单文件"zg3.mpr"。
关闭设计窗口,在命令窗口输入命令:
DOzg3.mpr,看到VisualFoxPro的菜单栏被新建的菜单所代替,单击"退出"菜单命令将恢复系统菜单。
执行"统计"菜单命令后,系统自动生成新数据表文件wh1.dbf用来保存查询结果。
第3套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
(1)请在考生文件夹下建立一个数据库ks4。
(2)将考生文件夹下的自由表stud、cour、scor加入到数据库ks4中。
(3)为stud表建立主索引,索引名和索引表达式均为学号;
为cour表建立主索引,索引名和索引表达式均为课程编号;
为scor表建立两个普通索引,其中一个索引名和索引表达式均为学号,另一个索引名和索引表达式均为课程编号。
(4)在以上建立的各个索引的基础上为3个表建立联系。
【解析】本大题主要考查的是数据库和数据表之间的联系,以及字段索引的建立。
新建数据库可以通过菜单命令、工具栏按钮或直接输入命令来建立,添加或修改数据库表以及建立表之间的联系,可以通过数据库设计器来完成,建立表索引可以在数据表设计器中完成。
【答案】
(1)在命令窗口输入命令:
MODIFYDATABASEks4,新建一个数据库。
(2)右键单击数据库设计器,选择"添加表"快捷菜单命令,系统弹出"打开"对话框,将考生文件夹下的stud、cour和scor三个自由表分别添加到数据库ks4中。
(3)在数据库设计器中,右键单击数据库表stud.dbf,选择"修改"快捷菜单命令,进入stud.dbf的数据表设计器界面,在"字段"选项卡中为"学号"字段选择一个索引排序,然后单击"索引"选项卡,此处字段索引名默认的为"学号",在"索引"下拉框中选择索引类型为"主索引"。
根据题意,以同样的方法为数据表cour和scor建立相应的索引。
(4)在数据库设计器中,将stud表中"索引"下面的"学号"主索引字段拖到scor表中"索引"下面的"学号"索引字段上,建立stud和scor两表之间的联系,以同样的方法建立cour和scor两表间的联系,关联字段为"课程编号",这样就建立了3个表之间的联系。
二、简单应用题(共2小题,每题20分,计40分)
(1)在考生文件夹下有一个数据库stsc,其中有数据库表student、score和course,利用SQL语句查询选修了"网络工程"课程的学生的全部信息,并将结果按学号降序存放在netp.dbf文件中(表的结构同student,并在其后加入课程号和课程名字段)。
(2)在考生文件夹下有一个数据库stsc,其中有数据库表student,使用一对多报表向导制作一个名为cjb的报表,存放在考生文件夹下。
要求:
从父表student中选择学号和姓名字段,从子表score中选择课程号和成绩,排序字段选择学号(升序),报表式样为简报式,方向为纵向。
报表标题为"学生成绩表"。
【解析】本大题1小题考查的是利用SQL语句进行多表查询以及查询输出,程序设计中应注意数据表之间的关联以及查询结果的分组排序;2小题主要考查报表向导的使用,只要根据每个向导界面的提示来完成相应的步骤即可。
【答案】
(1)在命令窗口输入命令:
MODIFYCOMMANDquery,打开程序文件编辑器;
在程序文件编辑窗口中输入如下程序段
**********程序文件query.prg程序内容**********
SELECTstudent.*,score.课程号,course.课程名;
FROMstsc!
studentINNERJOINstsc!
score;
INNERJOINstsc!
course;
ONscore.课程号=course.课程号;
ONstudent.学号=score.学号;
WHEREAT("网络工程",course.课程名)>0;
ORDERBYstudent.学号DESC;
INTOTABLEnetp.dbf
**********************************************
保存程序文件,在命令窗口输入命令:
DOquery,完成查询。
(2)请按以下步骤完成:
利用菜单命令"文件"-"新建",或从常用工具栏中单击新建图标按钮,在弹出的"新建"对话框中选择"报表"单选项,再单击"向导"图标按钮,系统弹出"向导选取"对话框,在列表框中选择"一对多报表向导",单击"确定"按钮。
选择"一对多报表向导"后,系统首先要求选择一对多报表中作为父表的数据表文件。
根据题意,选择student表作为父表,如图3-1所示,从"可用字段"列表框中将"姓名"和"学号"字段添加到右边的"选定字段"列表框中,用作父表的可用字段。
图3-1
单击"下一步"设计子表的可用字段,操作方法与父表选取字段的方法一样,将score表中的"课程号"和"成绩"字段添加到"选定字段"列表框中。
单击"下一步"进入"建立表关联"的设计界面,在此处系统已经默认设置好进行关联的字段:
父表的"学号"和子表的"学号"字段。
单击"下一步"进入"选择排序方式"的设计界面,将"可用字段或索引标识"列表框中的"学号"字段添加到右边的"选定字段"列表框中,并选择"升序"单选项。
单击"下一步"进入"选择报表样式"的界面,在"样式"列表框中选择"简报式",在"方向"选项组中选择"纵向"。
单击"下一步",进入最后的"完成"设计界面,在"标题"文本框中输入"学生成绩表"为报表添加标题,单击"完成"命令按钮,在系统弹出的"另存为"对话框中,将报表以cjb文件名保存在考生文件夹下,退出报表设计向导。
三、综合应用题(1小题,计30分)
在考生文件夹下有工资数据库wage3,包括数据表文件:
zg(仓库号C(4),职工号C(4),工资N(4))。
设计一个名为tj的菜单,菜单中有两个菜单项"统计"和"退出"。
程序运行时,单击"统计"菜单项应完成下列操作:
检索出工资小于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库号升序,在仓库号相同的情况下再按职工号升序存放到emp1(emp1为自由表)文件中,该数据表文件和zg数据表文件具有相同的结构。
单击"退出"菜单项,程序终止运行。
(注:
相关数据表文件存在于考生文件夹下)
【解析】本大题考查的主要是利用SQL语句的进行分组计算查询,在本题应了解SQL中用于求平均值的函数AVG的使用;在菜单的设计过程中主要是注意两个菜单命令在"结果"下拉框中应选择的类型。
【答案】
在命令窗口输入命令:
CREATEMENUtj,系统弹出一个"新建菜单"对话框,在对话框中单击"菜单"图形按钮,进入菜单设计器环境。
根据题目要求,首先输入两个主菜单名称"统计"和"退出",接着在"统计"菜单行的"结果"下拉框中选择"过程"选项(用于编写程序),在"退出"菜单行的"结果"下拉框中选择"命令"选项。
单击"统计"菜单行中的"编辑"按钮,进入程序设计的编辑窗口,在程序编辑窗口中输入如下程序段:
*********"统计"菜单命令的程序设计*********
SETTALKOFF
SETSAFETYOFF
OPENDATABASEwage3
SELECT仓库号,AVG(工资)ASavggz;
FROMzg;
GROUPBY仓库号;
INTOCURSORcurtable
SELECTzg.仓库号,zg.职工号,zg.工资;
FROMzg,curtable;
WHEREzg.工资<=curtable.avggz;
ANDzg.仓库号=curtable.仓库号;
ORDERBYzg.仓库号,职工号;
INTOTABLEemp1
CLOSEALL
SETSAFETYON
SETTALKON
**********************************************
在"退出"菜单项的"命令"文本框中编写程序代码:
SETSYSMENUTODEFAULT。
选择菜单命令"菜单"-"生成",生成一个菜单文件"tj.mpr"。
关闭设计窗口,在命令窗口输入命令:
DOtj.mpr,看到VisualFoxPro的菜单栏被新建的菜单所代替,单击"退出"菜单命令将恢复系统菜单。
执行"统计"菜单命令后,系统自动生成新数据表文件emp1.dbf用来保存查询结果。
第4