全国计算机等级考试二级Visual FoxPro上机试卷
简单应用题答案:
第一处将“USE sdb”改为“OPEN DATA sdb”, 第二处将“CREATE VIEW”改为“CREA VIEW S_VIEW AS” 第三处将“WHERE Student.班级号=Class.班级号,Teacher.教师号=Class.班主任号”改为
“WHERE Student.班级号=Class.班级号 and Teacher.教师号 = Class.班主任号”。(加 and)
第 46 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下,打开一个公司销售数据库SELLDB,完成如下操作:
1. 为各部门分年度季度销售金额和利润表S_T创建一个主索引和普通索引(升序),主索引的索引名为NO,索引表达式为\部门号+年度\;普通索引的索引名和索引表达式均为部门号。
2. 在S_T表中增加一个名为\备注\的字段、字段数据类型为\字符\、宽度为30。
3. 使用SQL的ALTER TABLE语句将S_T表的年度字段的默认值修改为\,并将该SQL语句存储到命令文件ONE.PRG中。
4. 通过\部门号\建立S_T表和DEPT表间的永久联系,并为该联系设置参照完整性约束:更新规则为\级联\;删除规则为\限制\;插入规则为\忽略\。
二、简单应用(2小题,每题20分,计40分)
在考生文件夹下,打开公司销售数据库SELLDB,完成如下简单应用:
1. 使用一对多表单向导生成一个名为SD_EDIT的表单。要求从父表DEPT中选择所有字段,从子表S_T表中选择所有字段,使用\部门号\建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为部门号(升序);表单标题为\数据输入维护\。 2. 在考生文件夹下打开命令文件TWO.PRG,该命令文件用来查询各部门的分年度的部门号、部门名、年度、全年销售额、全年利润和利润率(全年利润/全年销售额),查询结果先按年度升序、再按利润率降序排序,并存储到S_SUM表中。 注意,程序在第5行、第6行、第8行和第9行有错误,请直接在错误处修改。修改时,不可改变SQL语句的结构和短语的顺序,不允许增加或合并行。 三、综合应用(1小题,计30分)
在考生文件夹下,打开公司销售数据库SELLDB,完成如下综合应用:设计一个表单名为Form_one、表单文件名为SD_SELECT、表
单标题名为\部门年度数据查询\的表单,其表单界面如图所示。其他要求如下:1. 为表单建立数据环境,向数据环境添加S_T表(Cursor1)。2. 当在\年度\标签右边的微调控件中(Spinner1)选择年度并单击\查询\按钮(Command1)时,则会在下边的表格(Grid1)控件内显示该年度各部门的四个季度的销售额和利润。指定微调控件上箭头按钮(SpinnerHighValue属性)与下箭头按钮(SpinnerLowValue属性)值范围为2010-1999,缺省值(Value属性)为2003,增量(Increment属性)为1。 3. 单击\退出\按钮(Command2)时,关闭表单。要求:表格控件的RecordSourceType属性设置为\-SQL说明\。 基本操作题答案:
4、ALTER TABLE S_T ALTER COLUMN 年度 SET DEFAULT \
简单应用题答案:(注意:FROM S_T DEPT;少一“,”应改为“FROM S_T,DEPT;”,题中没说) 第一处将:“一季度利润+二季度利润+三季度利润+四季度利润/一季度销售额+二季度销售额+三季度销售额+四季度销售额 AS 利率”
改为:
“(一季度利润+二季度利润+三季度利润+四季度利润)/(一季度销售额+二季度销售额+三季度销售额+四季度销售额) AS 利润率”。 第二处将“GROUP BY 年度 利润率 DESC”改为“ORDER BY 年度,利润率 DESC” 第三处将“INTO S_SUM”改为 “INTO TABLE S_SUM”。 综合应用题答案:
“查询”命令按钮的CLICK事件代码为:
aa=(thisform.spinner1.value) aa=alltrim(str(aa)) aa=left(aa,4)
ThisForm.Grid1.RecordSource=\年度=aa\“退出”命令按钮的CLICK事件代码为:thisform.release
第 47 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
1. 用命令新建一个名为\外汇\的数据库,并将该命令存储于one.txt中;
2. 将自由表\外汇汇率\、\外汇账户\、\外汇代码\加入到新建的\外汇\数据库中;
3. 用SQL新建一个表rate,其中包含4个字段\币种1代码\、\币种2代码\、\买入价\、\卖出价\,请将SQL语句存储于two.txt中。
4. 表单文件test_form中有一个名为form1的表单(如图),请将编辑框控件Edit1的滚动条去掉。
第 26 页, 共 56 页
全国计算机等级考试二级Visual FoxPro上机试卷
二、简单应用(2小题,每题20分,计40分)
1. 编写程序three.prg完成下列操作:根据\外汇汇率\表中的数据产生rate自由表中的数据。 要求:将所有\外汇汇率\表中的数据插入rate表中并且顺序不变,由于\外汇汇率\中的币种1和币种2存放的是外币名称,而rate表中的币种1代码和币种2代码应该存放外币代码,所以插入时要做相应的改动,外币名称与外币代码的对应关系存储在\外汇代码\表中。注意:程序必须执行一次,保证rate表中有正确的结果。
2. 使用查询设计器建立一个查询文件four.qpr。查询要求:外汇帐户中有多少日元和欧元。查询结果包括了外币名称、钞汇标志、金额,结果按外币名称升序排序,在外币名称相同的情况下按金额降序排序,并将查询结果存储于表five.dbf 中。 三、综合应用(1小题,计30分)
设计一个文件名和表单名均为myaccount的表单。表单的标题为\外汇持有情况\。表单中有一个选项按钮组控件(myOption)、一个表格控件(Grid1)以及两个命令按钮\查询\(Command1)和\退出\(Command2)。其中,选项按钮组控件有两个按钮\现汇\(Option1)、\现钞\(Option2)。运行表单时,首先在选项组控件中选择\现钞\或\现汇\,单击\查询\命令按钮后,根据选项组控件的选择将\外汇账户\表的\现钞\或\现汇\(根据钞汇标志字段确定)的情况显示在表格控件中。单击\退出\按钮,关闭并释放表单。注:在表单设计器中将表格控件Grid1的数据源类型设置为\说明\。 基本操作题答案:
1、creat database 外汇
3、create table rate (币种1代码 C(2), 币种2代码 C(2), 买入价 N(8,4), 卖出价 N(8,4)) 4、将编辑框(EDIT1)的ScrollBars属性设置为“无” 简单应用题答案:
1、程序three.prg的内容如下:
SELECT 外汇代码.外币代码 AS 币种1代码, aa.外币代码 AS 币种2代码,买入价,卖出价 FROM 外汇代码,外汇汇率,; 外汇代码 aa where 币种2 =aa.外币名称 and 外汇代码.外币名称=币种1 INTO array temp insert into rate from array temp
综合应用题答案:
“查询”按钮的CLICK事件代码为:
DO CASE
CASE THISFORM.myOption.VALUE=1
THISFORM.GRID1.RECORDSOURCE=\外币代码,金额 FROM 外汇账户 WHERE 钞汇标志='现汇' into table temp\ CASE THISFORM.myOption.VALUE=2
THISFORM.GRID1.RECORDSOURCE=\外币代码,金额 FROM 外汇账户 WHERE 钞汇标志='现钞' into table temp\
ENDCASE
“退出”按钮的CLICK事件代码为:thisform.release
第 48 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 建立项目\超市管理\;并把\商品管理\数据库加入到该项目中。
2. 为商品表增加字段:销售价格N(6,2),该字段允许出现\空\值,默认值为.NULL.。
3. 为\销售价格\字段设置有效性规则:销售价格>0;出错提示信息是:\销售价格必须大于零\。
4. 用报表向导为商品表创建报表:报表中包括商品表中全部字段,报表样式用\经营式\,报表中数据按商品编码升序排列,报表文件名report_a.frx。其余按缺省设置。
二、简单应用(2小题,每题20分,计40分)
1. 使用SQL命令查询2001年(不含)以前进货的商品,列出其分类名称、商品名称、进货日期,查询结果按进货日期升序排序并存入文本文件infor_a.txt中;所用命令存入文本文件cmd_aa.txt中;
2. 用SQL UPDATE 命令为所有商品编码首字符是\的商品计算销售价格:销售价格为在进货价格基础上加22.68%,并把所用命令存入文本文件cmd_ab.txt中。
第 27 页, 共 56 页
全国计算机等级考试二级Visual FoxPro上机试卷
三、综合应用(1小题,计30分)
建立表单,表单文件名和表单名均为myform_a,表单标题为\商品浏览\,表单样例如图所示(左图)。其它功能要求如下: 1. 用选项按钮组(OptionGroup1)控件选择商品分类(饮料(Option1)、调味品(Option2)、酒类(Option3)、小家电(Option4)); 2. 单击\确定\(Command2)命令按钮,显示选中分类的商品,要求使用DO CASE语句判断选择的商品分类(如右图所示); 3. 在右图所示界面中按Esc键返回左图所示界面;
4. 单击\退出\(Command1)命令按钮,关闭并释放表单。 注:选项按钮组控件的Value属性必须为数值型。 简单应用题答案:
1、cmd_aa.txt的内容如下:
SELECT 分类名称,商品名称,进货日期 FROM 商品,分类WHERE 商品.分类编码=分类.分类编码 AND 进货日期<{^2001-01-01}; order by 进货日期 TO FILE infor_a.txt 2、cmd_ab.txt的内容如下:
update 商品 set 销售价格=进货价格*1.2268 where substr(商品编码,1,1)=\综合应用题答案:
“确定”命令按钮的CLICK事件代码为: DO CASE
CASE THISFORM.OPTIONGROUP1.VALUE=1
SELECT 商品.* FROM 分类,商品 WHERE分类.分类编码=商品.分类编码 and 分类.分类名称=\饮料\
CASE THISFORM.OPTIONGROUP1.VALUE=2
SELECT 商品.* FROM 分类,商品 WHERE分类.分类编码=商品.分类编码 and 分类.分类名称=\调味品\ CASE THISFORM.OPTIONGROUP1.VALUE=3
SELECT 商品.* FROM 分类,商品 WHERE分类.分类编码=商品.分类编码 and 分类.分类名称=\酒类\ CASE THISFORM.OPTIONGROUP1.VALUE=4
SELECT 商品.* FROM 分类,商品 WHERE分类.分类编码=商品.分类编码 and 分类.分类名称=\小家电\
ENDCASE
“退出”命令按钮的CLICK事件代码为:thisform.release
第 49 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生目录下打开表单文件calculator.scx,并完成下列操作: 1.设置表单控件名为calculator,保存表单。
2.设置表单内文本控件 Text2的输入掩码使其具有如下功能:仅允许输入数字,宽度为10(直接使用相关掩码字符设置),保存表单。
3.设置表单内文本控件Text3为只读控件,保存表单。
4.为其增加一组如图所示选项按钮组(Optiongroup1),4个按钮依次为\、\、\、\,保存表单。
注意:所涉及的数字和字母均为半角字符。 二、简单应用(2小题,每题20分,计40分)
1. 打开程序文件cylinder.prg,请按要求修改程序并运行程序。
2. 以表employee.dbf和orders.dbf中数据为基础,使用SQL命令检索订单数最多的前三名职工的职工号、姓名和订单数,检索结果按订单数降序排序存入表newcoun.dbf,同时将所用SQL命令存入文件new.txt文件。 三、综合应用(1小题,计30分)
基于数据库pdtmng建立如图所示顶层表单应用,表单文件名为myform.scx,表单控件名为goods,表单标题为\商品\。1. 表单内含一表格控件Grid1(默认控件名),当表单运行时,该控件将按用户的选择(单击菜单)来显示products.dbf中某一类商品数据,RecordSourceType的属性为4(SQL说明); 2. 建立如图所示的菜单(菜单文件名为mymenu.mnx),其条形菜单的菜单项为\商品分类\和\退出\,\商品分类\的下拉菜单为\小家电\、\饮料\和\酒类\;单击下拉菜单中任何一个菜单命令后,表格控件均会显示该类商品(在过程中完成);3. 在表单的Load事件中执行菜单程序mymenu.mpr;4. 菜单项\退出\的功能是关闭表单并返回到系统菜单(在过程中完成)。
第 28 页, 共 56 页
全国计算机等级考试二级Visual FoxPro上机试卷
简单应用题答案:
1、第六行改为: carea=cya(r,h), 第十四行改为: RETURN C 2、NEW.TXT的内容如下:
SELE TOP 3 Employee.职工号,姓名,COUNT(Employee.职工号) AS 订单数 FROM employee,orders; WHERE Employee.职工号=Orders.职工号 GROU BY Employee.职工号 ORDE BY 3 DESC INTO TABL newcoun
综合应用题答案:步骤如下:
1、建立好要求样式的表单,将表单的showwindos属性设置为2。表单的LOAD事件代码为:do mymenu.mpr with this,.t. 2、建立好下拉式菜单,将“显示”—>“常规选项”—>“顶层表单”选中 3、菜单项“小家电”的过程代码如下:
myform.grid1.recordsource=\分类编码=category.分类编码 and; category.分类名称='小家电' into cursor aaa\菜单项“饮料”的过程代码如下:
myform.grid1.recordsource=\分类编码=category.分类编码 and; category.分类名称='饮料' into cursor aaa\菜单项“酒类”的过程代码如下:
myform.grid1.recordsource=\分类编码=category.分类编码 and; category.分类名称='酒类' into cursor aaa\菜单项“退出”的命令代码为: Myfrom.release 4、生成菜单
第 50 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
1. 打开数据库\外汇\,通过\外币代码\字段为\外汇代码\和\外汇账户\建立永久联系。 2. 新建一个名为\外汇管理\的项目文件,将数据库\外汇\加入\外汇管理\项目中。
3. 修改mymenu菜单文件,为\文件\下的子菜单项\查找\设置访问键F(显示方式为\查找F\),并生成新的菜单程序。
4. 修改one.prg中的SQL语句,使之正确(该语句的功能是从rate表中删除币种1代码为14,并且币种2代码为27的记录)。 二、简单应用(2小题,每题20分,计40分)
1. 用SQL语句进行以下查询:查询\外汇账户\表中的日元信息。查询结果包括钞汇标志、金额,结果按金额降序排序,并存储于表two.dbf 中,并将SQL语句存储于新建的there.txt文件中。
2. 用一对多报表向导建立报表,\外汇代码\表为父表,\外汇账户\表为子表。要求:选择父表和子表中的全部字段;用\外币代码\字段为两个表建立关系;排序方式为按\外币代码\升序;报表样式为\帐务式\,方向为\横向\;报表标题为\外汇账户情况\;报表文件名为report_account。然后在报表设计器中修改该报表,在报表标题带区的右端利用OLE对象插入文件picture.gif。 三、综合应用(1小题,计30分)
设计一个文件名和表单名均为rate的表单,表单的标题为\外汇汇率查询\,表单界面如图所示,表单中有两个下拉列表框(Combo1和Combo2),这两个下拉列表框的数据源类型(RowSourceType属性)均为字段,且数据源(RowSource属性)分别是外汇汇率表的\币种1\和\币种2\字段;另外有币种1(Label1)和币种2(Label2)两个标签以及两个命令按钮\查询\(Command1)和\退出\(Command2)。运行表单时,首先从两个下拉列表框选择币种,然后单击\查询\按钮,用SQL语句从外汇汇率表中查询相应币种(匹配币种1和币种2的信息),并将结果存储到表temp_rate中。单击\退出\按钮关闭表单。
基本操作题答案:
1、 将“查找”改为:“查找\\ 2、 修改后的内容为:delete from rate where 币种1代码=“14” AND 币种2代码=“27” 简单应用题答案: 1、sele钞汇标志,金额 from外汇代码,外汇账户 where外汇代码.外币代码=外汇账户.外币代码 and 外汇代码.外币名称=; \日元\金额 desc into table two 综合应用题答案: Combo1和Combo2的style属性设为:2-下拉列表框,数据环境设为外汇汇率,rowsource属性分别设为:“外汇汇率.币种1”和“外汇汇率.币种2” “查询”命令按钮的CLICK事件代码为: sele * from 外汇汇率 wher 币种1=thisform.combo1.value .and. 币种2=thisform.combo2.value into table temp_rate “退出”命令按钮的CLICK事件代码为:thisform.release 第 29 页, 共 56 页 全国计算机等级考试二级Visual FoxPro上机试卷 第 51 套 一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 打开\学生管理\数据库,并从中永久删除\学生\表。 2. 建立一个自由表\教师\,表结构如下: 编号 字符型(8) 姓名 字符型(10) 性别 字符型(2) 职称 字符型(8) 3. 利用查询设计器建立一个查询,该查询包含课程名为\数据库\的\课程\表中的全部信息,生成的查询保存为query。 4. 用 SQL UPDATE语句将\课程\表中课程名为\数据库\的课程的任课教师更改为\,并将相应的SQL语句存储在文件Four.prg中。 二、简单应用(2小题,每题20分,计40分) 1. 建立表单,表单文件名和表单控件名均为formtest,表单标题为\考试系统\,表单背景为灰色(BackColor=255,255,255),其他要求如下:(1) 表单上有\欢迎使用考试系统\(Label1)8个字,其背景颜色为灰色(BackColor=255,255,255),字体为楷体_GB2312,字号为24,字的颜色为桔红色(ForeColor=255,128,0);当表单运行时,\欢迎使用考试系统\个字向表单左侧移动,移动由计时器控件Timer1控制,间隔(interval属性)是每200毫秒左移10个点(提示:在Timer1控件的Timer事件中写语句:THISFORM.Label1.Left=THISFORM.Label1.Left-10)。当完全移出表单后,又会从表单右侧移入。(2) 表单有一命令按钮(Command1),按钮标题为\关闭\,表单运行时单击此按钮关闭并释放表单。 2. 在\学生管理\数据库中利用视图设计器建立一个视图sview,该视图包含3个字段:课程编号、课程名和选课人数。然后利用报表向导生成一个报表creport,该报表包含视图sview的全部字段和内容。 三、综合应用(1小题,计30分) 在考生目录下有myform 表单文件,将该表单设置为顶层表单,然后设计一个菜单,并将新建立的菜单应用于该表单(在表单的load事件中运行菜单程序)。新建立的菜单文件名为mymenu,结构如下(表单、报表和退出是菜单栏中的3个菜单项): 表单 浏览课程 浏览选课统计 报表 预览报表 退出 各菜单项的功能如下:● 选择\浏览课程\时在表单的表格控件中显示\课程\表的内容(在过程中完成,直接指定表名);● 选择\浏览选课统计\时在表单的表格控件中显示简单应用题建立的视图sview的内容(在过程中完成,直接指定视图名);● 选择\预览报表\时预览简单应用题建立的报表 creport(在命令中完成);● 选择\退出\时关闭和释放表单(在命令中完成)。注意:最后要生成菜单程序,并注意该菜单将作为顶层表单的菜单。 基本操作题答案: 4、UPDA 课程 SET 任课教师='T2222' WHER 课程名=\数据库\简单应用题答案: 1、Timer1的timer事件代码为: IF THISFORM.Label1.Left+THISFORM.Label1.WIDTH<0 THISFORM.Label1.Left=THISFORM.WIDTH ELSE THISFORM.Label1.Left=THISFORM.Label1.Left-10 ENDIF 2、本题用视图设计器做,下列语句仅供不会的同学参考。 SELECT 考试成绩.课程编号,课程名,count(学号) as 选课人数 FROM 考试成绩,课程 where; 考试成绩.课程编号=课程.课程编号 GROUP BY 考试成绩.课程编号 综合应用题答案:具体操作步骤如下: 1、 打开表单,将表单的SHOWWINDOWS属性设置为2 2、 表单的LOAD事件代码为:DO MYMENU.MPR WITH THIS,.t. ;表单的DESTORY事件代码为: release menu mymenu 3、 建立好下拉式菜单,将“显示”—>“常规选项”—>“顶层单表”项选中 4、 菜单项“浏览课程”的过程代码如下:myform.grid1.recrodsource=“课程” 菜单项“浏览选课统计”的过程代码如下:myform.gird1.recordsource=“SVIEW” 菜单项“预览报表”的过程代码如下:report form creport preview 菜单项“退出”的命令为代码为:myform.release 第 52 套 一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1.建立数据库orders_manage,将自由表employee和orders添加到新建的数据库中。 2.为employee表的性别字段设置默认值\男\。 3.为employee表的\性别\字段定义有效性规则,规则表达式为:性别 $ \男女\,出错提示信息为\性别必须是男或女\。 4.使用SQL命令从employee表中查询所有已婚(婚否字段值为逻辑真)记录的职工号、姓名和出生日期信息,结果按出生日期 降序排序存入表infor_da中,同时把所用命令存入文本文件cmd_da.txt。 二、简单应用(2小题,每题20分,计40分) 1.建立表单,表单文件名和表单控件名均为myform_da。为表单建立快捷菜单scmenu_d,快捷菜单有选项\时间\和\日期\;运行表单时,在表单上单击鼠标右键弹出快捷菜单,选择快捷菜单的\时间\项,表单标题将显示当前系统时间,选择快捷菜单\日期\项,表单标题将显示当前系统日期。 注意:显示时间和日期用过程实现。 第 30 页, 共 56 页