1、二级 VISUAL+FOXPRO 机试 33 及答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.在考生文件夹下建立项目 market。 (2)在项目 market 中建立数据库 prod_m。 (3)把考生文件夹中自由表 category 和 products 加入到 prod_m 数据库中。 (4)为 category 表建立主索引,索引名为primarykey,索引表达式为“分类编码”; 为 products 表建立普通索引,索引名为 regularkey,索引表达式为“分类编码”。(分数:30.00)_二、B二 简单应用题/
2、B(总题数:1,分数:40.00)2.使用 SQL 命令查询 2001 年(不含)以前进货的商品,列出其“分类名称”、“商品名称”和“进货日期”,查询结果按“进货日期”升序排序并存入文本文件 infor.txt 中,所用命令存入文本文件 sql.txt 中。 (2)用 SQL UPDATE 命令为所有“商品编码”首字符是“3”的商品计算销售价格:销售价格为在进货价格基础上加 22.68%,并把所用命令存入文本文件 update.txt 中。(分数:40.00)_三、B三 综合应用题/B(总题数:1,分数:30.00)3.对考生目录下的数据库 rate 建立文件名为 myf 的表单。表单含有一个
3、表格控件,用于显示用户查询的信息;表单上有一个按钮选项组,含有“外币浏览”、“个人持有量”和“个人资产”三个选项按钮:表单上有一个命令按钮,标题为“浏览”。 当选择“外币浏览”选项按钮并单击“浏览”按钮时,在表格中显示“汇率”表的全部字段;选择“个人持有量”选项按钮并单击“浏览”按钮时,表格中显示“数量”表中的“姓名”,“汇率”表中的“外币名称”和“数量”表中的“持有数量”;选择“个人资产”选项按钮并单击“浏览”按钮时,表格中显示“数量”表中每个人的“总资产” (每个人拥有的所有外币中的每种基准价*持有数量的总和)。单击“关闭”按钮退出表单。(分数:30.00)_二级 VISUAL+FOXPR
4、O 机试 33 答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.在考生文件夹下建立项目 market。 (2)在项目 market 中建立数据库 prod_m。 (3)把考生文件夹中自由表 category 和 products 加入到 prod_m 数据库中。 (4)为 category 表建立主索引,索引名为primarykey,索引表达式为“分类编码”; 为 products 表建立普通索引,索引名为 regularkey,索引表达式为“分类编码”。(分数:30.00)_正确答案:()解析:在命令窗口直接输入命令:CREAT
5、E PROJECT market,建立一个新的项目管理器。 (2)在项目管理器中,单击“数据”选项卡,选中列表框中的“数据库”,单击选项卡右边的“新建”命令按钮,在系统弹出的对话框中单击“新建数据库”按钮,系统接着弹出“创建”对话框,在数据库名文本框内输入新的数据库名称 prod_m,将数据库保存到考生文件夹下。 (3)右键单击数据库设计器,选择“添加表”快捷菜单命令,在弹出的“打开”对话框中,将考生文件夹下的 category 和 products 两个自由表分别添加到数据库 prod_m 中。 (4)在“数据”选项卡中,选中新加的数据表文件 category,然后单击右边的“修改”命令按钮
6、,系统弹出表设计器,在“字段”选项卡中为“分类编码”字段选择一个索引排序,然后单击“索引”选项卡,在此选项卡中,字段索引名默认的为“分类编码”,将索引名修改为 primarykey,在“索引”下拉框中选择索引类型为“主索引”,如图 3-31 所示。以相同的方法为 products 表建立普通索引。 解析 本大题考查的是通过项目管理器来完成一些数据库及数据库表的基本操作,项目的建立可以直接在命令窗口输入命令建立,数据库和数据库表的建立和修改,可以通过项目管理器中的命令按钮,打开相应的设计器进行管理。二、B二 简单应用题/B(总题数:1,分数:40.00)2.使用 SQL 命令查询 2001 年(
7、不含)以前进货的商品,列出其“分类名称”、“商品名称”和“进货日期”,查询结果按“进货日期”升序排序并存入文本文件 infor.txt 中,所用命令存入文本文件 sql.txt 中。 (2)用 SQL UPDATE 命令为所有“商品编码”首字符是“3”的商品计算销售价格:销售价格为在进货价格基础上加 22.68%,并把所用命令存入文本文件 update.txt 中。(分数:40.00)_正确答案:()解析:(1)在命令窗口中输入命令:MODIFY FILE sq1,在文本编辑器窗口输入如下程序段: *文件sq1.txt 中的程序段* SELECT 分类名称,商品名称,进货日期; FROM 商品
8、,分类; WHERE 分类.分类编码=商品.分类编码; AND YEAR(进货日期)2001; TO FILE infor; ORDER BY 进货日期 * 在命令窗口输入命令:DOsq1.txt,运行程序。程序运行结果如图 3-32 所示。 (2)在命令窗口中输入命令:MODIFY FILE update,在文本编辑器窗口输入如下程序段。 *文件 update.txt 中的程序段* UPDATE 商品 SET 销售价格=进货价格*1.2268; WHERE LEFT(商品编码,1)=3 * 在命令窗口输入命令:DO update.txt,运行程序。通过 BROWSE 命令可直接查看修改结果,
9、结果如图 3-33 所示。 解析 本大题两个小题主要考查的是 SQL语句的应用,而且还考查了函数的应用,考生应该熟悉各个函数的功能,以及注意数据表之间的联系。三、B三 综合应用题/B(总题数:1,分数:30.00)3.对考生目录下的数据库 rate 建立文件名为 myf 的表单。表单含有一个表格控件,用于显示用户查询的信息;表单上有一个按钮选项组,含有“外币浏览”、“个人持有量”和“个人资产”三个选项按钮:表单上有一个命令按钮,标题为“浏览”。 当选择“外币浏览”选项按钮并单击“浏览”按钮时,在表格中显示“汇率”表的全部字段;选择“个人持有量”选项按钮并单击“浏览”按钮时,表格中显示“数量”表
10、中的“姓名”,“汇率”表中的“外币名称”和“数量”表中的“持有数量”;选择“个人资产”选项按钮并单击“浏览”按钮时,表格中显示“数量”表中每个人的“总资产” (每个人拥有的所有外币中的每种基准价*持有数量的总和)。单击“关闭”按钮退出表单。(分数:30.00)_正确答案:()解析:在命令窗口中输入命令:CREATE FORM myf,打开表单设计器,通过“表单控件”工具栏向表单添加 1 个表格、1 个选项按钮组和 2 个命令按钮。 选中表单,在属性面板顶端的下拉框中选择 Command1,修改该命令按钮控件的 Caption 属性值为“浏览”,以同样的方法将第二个命令按钮设置 Caption
11、属性值改为“关闭”,在属性面板顶端的下拉框中选择 (Optiongroup1),将其 ButtonCount 属性值改为 3,右击选项按钮组,选择“编辑”快捷菜单命令,在此状态下(编辑状态下,控件四周出现蓝色框线),分别修改三个单选项的 Caption 属性值为“外币浏览”、“个人持有量”和“个人资产”。 双击命令按钮“浏览”,编写该控件的 Click 事件,程序代码如下: *命令按钮 Command1(浏览)的 Click 事件代码* DO CASE CASE This form.Optiongroup1.Value=1 SELECT*; FROM 汇率; INTO CURSOR temp
12、Thisform.Grid1.RecordSourceType=1 Thisform.Grid1.RecordSource=“temp“ CASE Thisform.Optiongroup1.Value=2 SELECT 数量.姓名,外币名称,持有数量; FROM 数量,汇率; WHERE汇率.外币代码=数量.外币代码; INT OCURSOR temp Thisform.Grid1.RecordSourceType=1 Thisform.Grid1.RecordSource=“temp“ CASE Thisform.Optiongroup1.Value=3 SELECT 姓名,SUM(持有数
13、量*基准价)AS 总资产; FROM 汇率,数量; WHERE 汇率,外币代码:数量.外币代码; GROUP BY 姓名; INTO CURSOR temp Thisform.Grid1.RecordSourceType=1 Thisform.Grid1.RecordSource=“temp“ ENDCASE * 以同样的方法为“关闭”命令按钮编写 Click 事件代码:Thisform.Release。保存表单完成设计,运行结果如图 3-34 所示。 解析 本大题考查的是表单设计,在本题中需要注意的地方是选项按钮组控件中改变单选按钮的属性是ButtonCount,修改选项组中每个单选按钮的属性,可以通过属性面板中顶端的下拉框的控件名来选定,也可以右击该控件,选择“编辑”快捷菜单命令,在编辑状态下单个选定控件;程序设计中,查询语句为基本 SQL 查询,在程序控制上可以通过分支语句 DO CASE-END CASE 语句来进行判断选项组中选定的单选按钮,并执行相应的命令,选项组中当前选定的单选按钮,可通过 Case Thisform.Optiongroup1.Value=1,2,3语句来判断。