vfp试题及答案九套
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、基本操作题
一、基本操作题(共4小题,共30分)
1、在考生文件夹下打开数据库CUST_M,为CUST 表建立主索引,索引名为客户编号,索引表达式为客户编号。
2、CUST 表和ORDER1表中必要的索引已经建立,为两表建立永久性联系。
3、为CUST 表增为字段:客户等级C(2),字段值允许为空。
4、为ORDER1表“金额”字段增加有效性规则:金额大于零,否则提示:金额必须大于零。
二、简单应用题
二、简单应用(2小题,计40分)
1、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2,SC 和COURSE2。
三个表如下所示:
STUDENT2(学号,姓名,年龄,性别,院系编号)
SC(学号,课程号,成绩,备注)
COURSE2(课程号,课程名,先修课号,学分)
在考生文件夹下有一个程序dbtest3.prg,该程序的功能是定义一个视图VS1,检索选课门数是3门
以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号,并按平均成绩降序排
序。
请修改程序中的错误,并调试该程序,使之正确运行。
不得增加或删减程序行。
2.在考生文件夹下有一个数据库CUST_M,数据库中有CUST 和ORDER1两个表。
请使用菜单设计器制作一
个名为MY_MENU 的菜单,菜单只有“浏览”一个菜单项。
浏览菜单项中有“客户”、“订单”和“退出”三个子菜单:
客户子菜单使用SELECT * FROM CUST 命令对CUST 表查询;
订单子菜单使用SELECT * FROM ORDER1命令对ORDER1表查询;
退出子菜单使用SET SYSMENU TO DEFAULT 命令返回系统菜单。
三、综合应用题 三、综合应用(1小题,计30分)
在考生文件夹下有学生管理数据库stu_3,数据库中有score_fs
表,其表结构
是学号C(10)
、物理
I
、高数I 、 英语I 和平均分N(6.2)。
成绩如果用-1表示,说明学生没有选学该门课程。
其中,该表前四项已有数据。
请编写并运行符合下列要求的程序:
设计一个名为form_my 的表单,表单中有两个命令按钮,按钮的名称分别为cmdYes 和
CmdNo
,标题分别为
“统计”和“关闭”。
程序运行时,单击“统计”按钮应完成下列操作:
(1)计算每一个学生的平均分存入平均分字段。
注意:分数为-1不记入平均分,例如一个学生的三门成绩
存储的是90,-1,70,平均分应是80。
(2)根据上面的计算结果,生成一个新的表PJF ,该表只包括学号和平均分两项,并且按平均分的降序排序,
如果平均分相等,则按学号升序排序。
单击“关闭”按钮,程序终止运行。
答案
一、基本操作题
无
二、简单应用题
简单应用第1题,本题是一个程序修改题。
第一个错误是在“USE DATABASE SDB”行,打开数据库的命令
错误,应该是“OPEN DATABASE”。
第二个错误是在“FROM STUDENT2,
COURSE2”,按题目所给程序下一
行“WHERE STUDENT2.学号= SC.学号”,可知此处应在STUDENT2和SC 表中选择,应把COURSE2改为SC。
第三个错误在“ORDER BY 成绩”行中,因要求按平均成绩降序排序,所以应改为“ORDER BY 平均成绩DESC”。
第2题,本题的主要考核点是建立菜单。
新建菜单可按下列步骤:选择“文件”菜单中的“新建”命令,在
“新建”对话框中选择“菜单”,单击“新建文件”按钮。
在“新建菜单”对话框中选择“菜单”按钮,
调出“菜单设计器”。
也可用CREATE MENU命令直接调出菜单设计器。
在菜单名称中填入“浏览”,结果为子菜单,
单击编辑;在子菜单的菜单名称中分别输入“客户”、“订单”和“退出”,结果都为命令。
分别在对应的命令栏
内输入相应的命令,保存为MY_MENU。
三、综合应用题
综合应用本题主要考核点:
表单的建立、程序设计中循环结构、条件结构的应用、SELECT语句的应用等知识点
解题思路:
第一步:利用表单设计器建立所要求的表单,将在表单上添加两个按钮控件。
分别设置两个按钮控件的标题和名字属性。
第二步:双击标题为"计算"的按钮控件,在新打开的窗口中添加此按钮的CLICK 事件代码:
SET TALK OFF &&在程序中要关闭命令结果的显示
SET SAFETY OFF &&关闭当生成的文件出现重名时的提示
OPEN DATABASE STU_3 &&打开数据库文件STU_3 (也可以直接将数据库文件加入到表单的数据环境之中)
USE SCORE_FS
GO TOP
DO WHILE NOT EOF() &&遍历每一条记录
STORE 0 TO RS,PJF &&RS表示参加了几个科目的考试,PJF表示参加考试科目的成绩之和
IF 物理<>-1 THEN &&判断是否参加了物理科的考试
RS=RS+1 &&如果参加了物理科的考试,则考试科目加1
PJF=PJF+物理&&如果参加了物理科的考试,成绩加上物理科的成绩
ENDIF
IF 高数<>-1 THEN
RS=RS+1
PJF=PJF+高数
ENDIF
IF 英语<>-1 THEN
RS=RS+1
PJF=PJF+英语
ENDIF
IF RS<>0 THEN &&在有参加科目考试的情况下计算出平均成绩
REPLACE 平均分WITH PJF/RS && 计算出平均成绩并写入当前记录的"平均分"字段
ENDIF
SKIP
ENDDO
SELECT学号,平均分FROM SCORE_FS ORDER BY 平均分DESC,学号INTO TABLE PJF
&&利用SELECT语句中的ORDER BY 子句进行查询的排序,ORDER BY 子句默认的排序是升序,如果要指
&&写为降序需用DESC,如果有多个排序的依据,则按排序依据的优先顺序依次放在ORDER BY 子句的后面,
&&相互之间用,隔开;可以利用INTO TABLE子句将查询的结果生成一个永久
表,也可以生成一个临时表
&&格式为:INTO CURSOR 临时表名
CLOSE ALL &&关闭打开的数据库等
SET SAFETY ON &&恢复原来的设置
SET TALK ON
第三步:用同样的方法为标题为"退出"的按钮控件添加如下的CLICK的事件代码:
thisForm.releash &&退出此表单。