二级VFP机试试题10Word文件下载.docx
《二级VFP机试试题10Word文件下载.docx》由会员分享,可在线阅读,更多相关《二级VFP机试试题10Word文件下载.docx(6页珍藏版)》请在冰豆网上搜索。
![二级VFP机试试题10Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/20/fe975f70-b9c4-43c2-b769-528f1905a6ea/fe975f70-b9c4-43c2-b769-528f1905a6ea1.gif)
项目的建立、将数据库添加到项目中、字段的添加、为字段设置默认值。
解题思路:
1.建立项目
创建项目可用"
文件"
菜单中的"
新建"
命令。
2.将数据库加入到项目中:
在项目管理器的"
数据"
选项卡选择数据库,单击"
添加"
,在"
打开"
对话框中选择要添加的数据库
3.打开CUST表的表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。
字段值允许为空,则选中"
NULL"
项。
4.在表设计器中,选中"
字段,在"
字段有效性-默认值"
中填入"
(此处要双引号),单击确认。
二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹下,有一个数据库SDB,其中有数据库表STUDENT、SC和
COURSE。
表结构如下:
STUDENT(学号,姓名,年龄,性别,院系号)
SC(学号,课程号,成绩,备注)
COURSE(课程号,课程名,先修课程号,学分)
在表单向导中选取一对多表单向导创建一个表单。
要求:
从父表STUDENT中
选取字段学号和姓名,从子表SC中选取字段课程号和成绩,表单样式选
"
浮雕式"
,按钮类型使用"
文本按钮"
,按学号降序排序,表单标题为"
学生
成绩"
,最后将表单存放在考生文件夹中,表单文件名是form1。
2、在考生文件夹中有一数据库SDB,其中有数据库表STUDENT,SC和COURSE。
建
立成绩大于等于60分,按学号升序排序的本地视图GRADELIST,该视图按顺
序包含字段学号、姓名、成绩和课程名,然后使用新建立的视图查询视图中
的全部信息,并将结果存入表v_grade。
第1题,本题的主要考核点是使用表单向导制作表单。
启动表单向导可在"
菜单中选择"
或者单击工具栏上的"
按钮,打开"
对话框,文件类型选择表单,单击向导按钮。
或者在"
工具"
向导"
子菜单,选择"
表单"
,或直接单击工具栏上的"
表单向导"
图标按钮。
在"
向导选取"
对话框中选择"
一对多表单向导"
然后按照表单向导提示及题目要求操作即可。
第2题,本题的主要考核点是建立视图。
先打开数据库SDB,在数据库设计器中单击右键,选择"
建立本地视图"
,打开"
视图设计器"
将数据库的三个表添加到视图中,按提示建立联接。
选择字段学号、姓名、成绩和课程名,在"
筛选"
栏中的字段名中选择"
sc.成绩"
条件中选择"
>
="
,实例中输入"
60"
(不要双引号),关闭并保存。
在数据库设计器中打开视图,用copytov_grade命令或在"
导出"
,将结果存入新表v_grade。
三、综合应用(1小题,计30分)
在考生文件夹下有股票管理数据库stock_4,数据库中有stock_mm表和stock_cc
表,stock_mm的表结构是股票代码C(6)、买卖标记L(.T.表示买进,.F.表示卖
出),单价N(7.2)、本次数量N(6)。
stock_cc的表结构是股票代码C(6),持仓
数量N(8)。
stock_mm表中一只股票对应多个记录,stock_cc表中一只股票对应
一个记录(stock_cc表开始时记录个数为0)。
请编写并运行符合下列要求的程序:
设计一个名为menu_lin的菜单,菜单中有两个菜单项"
计算"
和"
退出"
程序运行时,单击"
菜单项应完成下列操作:
(1)根据stock_mm统计每只股票的持仓数量,并将结果存放到stock_cc表。
计算
方法:
买卖标记为.T.(表示买进),将本次数量加到相应股票的持仓数量;
买卖标记为.F.(表示卖出),将本次数量从相应股票的持仓数量中减去。
(注意:
stock_cc表中的记录按股票代码从小到大顺序存放)。
(2)将stock_cc表中持仓数量最少的股票信息存储到自由表stock_x中(与
stock_cc表结构相同)。
单击"
菜单项,程序终止运行。
本题主要考核点:
菜单的建立、结构化查询语言(SQL)中的联接查询、查询的排序、临时表的概念、查询结果的去向等知识点。
本题解题思路:
第一步:
利用菜单设计器定义两个菜单项,在菜单名称为"
的菜单项的结果列中选择"
过程"
,并通过单击"
编辑"
按钮打开一个窗口来添加"
菜单项要执行的命令。
在菜单名称为"
命令"
,并在后面的"
选项"
列中输入以下退出菜单的命令:
SETSYSMENUTODEFAULT
第二步:
在单击"
菜单项后面的"
按钮所打开的窗口中添加如下的过程代码:
SETTALKOFF
&
&
在程序中常常要关闭命令结果的显示
OPENDATABASESTOCK_4
打开数据库文件STOCK_4
SELECT股票代码,SUM(本次数量)AS持仓数量FROMSTOCK_MM;
WHERE买卖标记GROUPBY股票代码;
INTOCURSORCurTable1
WHERENOT买卖标记GROUPBY股票代码;
INTOCURSORCurTable2
SELECTCurTable1.股票代码,(CurTable1.持仓数量-CurTable2.持仓数量)AS持仓数量;
FROMCurTable1,CurTable2;
WHERECurTable1.股票代码=CurTable2.股票代码;
ORDERBYCurTable1.股票代码;
INTOARRAYAfieldsValue
由于每种股票的买进的数量的和与卖出的数量的和在两个不同的临时表CurTable1和
CurTable2中。
因此要想得到两者之间的差,需要进行联接查询,可以通过"
股票代码"
来
做为联接的条件,置于WHERE的后面;
可以用ORDERBY子句来确定查询的排序依据,
这里以股票代码的升序进行排序:
ORDERBY股票代码;
可以利用INTOARRAY数组名子句
将SELECT语句的查询结果放在一个数组中,以备后面的程序利用
DELETEFROMSTOCK_CC
删除STOCK_CC表中以前的记录
DELETESQL语句可以将满足指定条件的记录加上删除标记
DELETEFROM[DatabaseName!
]TableName
[WHEREFilterCondition1[AND|ORFilterCondition2...]]
INSERTINTOSTOCK_CC
FROMARRAYAfieldsValue
将所得到每支股票的代码和持仓数量的数组插入到表STOCK_CC中
INSERTSQL语句可以向指定的表追加一条新的记录
INSERT可以直接将一个数组中的值做为记录值追加到表中,
利用FROMARRAY数组变量名来实现
CLOSEALL
USESTOCK_CC
PACK
物理删除加上删除标记的记录
USE
SELECT*TOP1FROMSTOCK_CCORDERBY持仓数量INTOTABLESTOCK_X
SELECT语句中可以通过TOP来限制返回结果集中行数TOPn[PERCENT]n指定返回的行数。
如果未指定PERCENT,n就是返回的行数。
如果指定了PERCENT,n就是返回的结果集行的&
百分比;
INTOTABLE表名可以将结果集生成一个表
SETTALKON
第三步:
保存所编辑的菜单为menu_lin.mnx,并生成菜单menu_lin.mpr,运行。