计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx

上传人:b****5 文档编号:12055931 上传时间:2023-04-16 格式:DOCX 页数:33 大小:34.89KB
下载 相关 举报
计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx_第1页
第1页 / 共33页
计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx_第2页
第2页 / 共33页
计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx_第3页
第3页 / 共33页
计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx_第4页
第4页 / 共33页
计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx

《计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx(33页珍藏版)》请在冰豆网上搜索。

计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx

计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059

计算机等级考试二级VisualFoxPro上机试题及解题思路汇总40-59三、综合应用(1小题,计30分)

  在考生文件夹下有职员管理数据库staff_8,数据库中有YUANGONG表和ZHICHENG表,YUANGONG的表结构是职工编码C(4)、姓名C(10)、职称代码C

(1)、工资N(10.2)。

ZHICHENG的表结构是职称代码C

(1)和职称名称C(8),增加百分比N(10.2),然后编写并运行符合下列要求的程序:

设计一个名为staff_m的菜单,菜单中有两个菜单项"计算"和"退出"。

  程序运行时,单击"计算"菜单项应完成下列操作:

  在表yuangong中增加一新的字段:

新工资N(10.2)

  现在要给每个人增加工资,请计算YUANGONG表的新工资字段,方法是根据

  ZHICHENG表中相应职称的增加百分比来计算:

  新工资=工资*(1+增加百分比/100)

  单击"退出"菜单项对应命令SETSYSMENUTODEFAULT,使之可以返回到系统菜单,程序终止运行。

  本题主要考核点:

  菜单的建立、结构化查询语言(SQL)中的联接查询、查询的排序、分组查询、临时表的概念、查询结果的去向等知识点。

  本题解题思路:

  第一步:

利用菜单设计器定义两个菜单项,在菜单名称为"计算"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗口来添加"计算"菜单项要执行的命令。

在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令:

SETSYSMENUTODEFAULT

  第二步:

在单击"计算"菜单项后面的"编辑"按钮所打开的窗口中添加如下的过程代码:

  SETTALKOFF&&在程序工作方式下关闭命令结果的显示

  USEZHICHENGIN2&&在第二工作区打开表ZHICHENG

  USEYUANGONGIN1&&在第一工作区打开表YUANGONG

  ALTERTABLEYUANGGONGADD新工资N(7,2)

  &&ALTERTABLESQL语句可以对现有的表结构进行修改,可以修改表的字段、索引、

  &&默认值、有效性等,也可以增加以上内容。

增加一个字段如下:

  &&ALTERTABLE表名ADD字段名数据类型标识[(字段长度[,小数位数])]

  SELECT2

  DOWHILENOTEOF()&&遍历ZHICHENG表中的每一条记录

  SELECT1

  UPDATEYUANGONGSET新工资=工资*(1+ZHICHENG.增加百分比/100);

  WHEREYUANGONG.职称代码=ZHICHENG.职称代码

  &&UPDATESQL语句对记录进行修改

  SELECT2

  SKIP

  ENDDO

  SETTALKON

  第三步:

以staff_m.mnx名保存菜单,生成菜单,并运行。

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

  1、在考生文件夹下建立数据库STSC

  2、把自由表STUDENT、COURSE、SCORE加入到数据库中。

  3、为SCORE表的"成绩"字段建立有效性规则:

成绩大于等于零,否则提示信息:

成绩必须大于等于零

  4、为STUDENT表建立主索引,索引名为PRIMARYKEY,索引表达式为学号。

  本题的主要考核点:

  数据库的建立、将自由表添加到数据库中、建立有效性规则、索引的建立。

  1.建立数据库的常用方法有以下三种:

  在项目管理器中建议数据库

  通过"新建"对话框建议数据库

  使用命令交互建议数据库,命令为:

CREATEDATABASE[DatabaseName|?

]

  其中DatabaseName给出了要建立的数据库的名称,如果不指定数据库名称或使用?

号都会弹出创建对话框请用户输入数据库名称。

  此处可用后两种。

  2.将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。

在数据库设计器中可以从"数据库"菜单或在数据库设计器上单击右键弹出菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。

还可用ADDTABLE命令添加一个自由表到当前数据库中。

  3.建立有效性规则比较简单直接的方法是在表设计器中建立。

在表设计器中首先选中要定义有效性规则的字段"成绩",在"规则"一栏中输入"成绩>=0"(或用表达式生成器生成),在"信息"栏中输入:

"成绩必须大于等于零"。

  4.建立索引在表设计器中的索引选项卡中完成。

计算机等级考试二级VisualFoxPro上机试题及解题思路(42)

来源:

青年人(Qnr.Cn) 2010-9-1710:

05:

54 【青年人:

中国教育考试第一门户】 资料下载 教材购买

-

二、简单应用(2小题,每题20分,计40分)

  1、在考生文件夹中有一个商品数据库COMMDB,其中有数据库表SP存放商品信息,使用菜单设计器制作一个名为SMENU的菜单,菜单包括"数据操作"和"文件"两个菜单栏。

  每个菜单栏都包括一个子菜单。

菜单结构如下:

  数据操作

  数据输出

  文件

  退出

  其中:

  数据输出子菜单对应的过程完成下列操作:

打开数据库COMMDB,使用SQL的

  SELECT语句查询数据库表SP中所有信息,然后关闭数据库。

  退出菜单项对应的过程含有命令SETSYSMENUTODEFAULT,使之可以返回到

  系统菜单。

  2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2、SC和

  COURSE2。

三个表如下所示:

  STUDENT2(学号,姓名,年龄,性别,院系编号)

  SC(学号,课程号,成绩,备注)

  COURSE2(课程号,课程名,先修课号,学分)

  用SQL语句查询"数据库"课程的考试成绩在85分以上(含85分)的学生的全部信息并将结果按学号升序存入自由表NINE.DBF文件中。

(库的结构同STUDENT2,并在其后加入成绩字段)

  第1题,本题的主要考核点是建立菜单和foxpro中的基本命令。

  新建菜单可按下列步骤:

选择“文件”菜单中的“新建”命令,在“新建”对话框中选择“菜单”,单击“新建文件”按钮。

在“新建菜单”对话框中选择“菜单”按钮,调出“菜单设计器”。

也可用CREATEMENU命令直接调出菜单设计器。

在菜单名称中填入“数据操作”,结果为子菜单,单击编辑;在子菜单的菜单名称中输入“数据输出”,结果为过程。

在过程中输入下列命令:

  opendatacommdb

  select*fromsp

  closeall

  文件菜单创建过程同上。

  第2题本题的主要考核点是SQL语句查询。

  SELECTStudent2.*,Sc.成绩;

  FROMsdb!

student2INNERJOINsdb!

sc;

  INNERJOINsdb!

course2;

  ONSc.课程号=Course2.课程号;

  ONStudent2.学号=Sc.学号;

  WHERECourse2.课程名IN("数据库");

  ANDSc.成绩>=85;

  ORDERBYStudent2.学号;

  INTOTABLEnine.dbf

三、综合应用(1小题,计30分)

  考生文件夹下有学生管理数据库stu_nine,数据库中有score1表,其库结构是学

  号C(10)、少数民族L、优秀干部L、三好生L、考试成绩I、总成绩I。

其中,前

  五项已有数据

  请编写并运行符合下列要求的程序:

  设计一个名为form_stu的表单,表单中有两个命令按钮,按钮的名称分别为

  cmdYes和cmdNo,标题分别为"计算"和"关闭"。

  程序运行时,单击"计算"按钮应完成下列操作

  

(1)计算每一个学生的总成绩。

总成绩的计算方法是:

考试成绩+加分,加分的规

  则是:

如果该生是少数民族(相应数据字段为.T.)加分5分,优秀干部加分10分,三好生加分20分,加分不累计,取最高的。

例如,如果该生既是少数民族又是三好生,加分为20分。

如果都不是,总成绩=考试成绩

  

(2)根据上面的计算结果,生成一个新的自由表ZCJ,该表只包括学号和总成绩两项,并按总成绩的升序排序,如果总成绩相等,则按学号的升序排序。

单击"关闭"按钮,程序终止运行。

  本题主要考核点:

  表单的建立、程序设计中循环结构、条件结构的应用、SELECT语句的应用等知识点

  解题思路:

  第一步:

利用表单设计器建立所要求的表单,将在表单上添加两个按钮控件。

分别设置两个按钮控件的标题和名字属性。

  第二步:

双击标题为"计算"的按钮控件,在新打开的窗口中添加此按钮的CLICK事件代码:

  SETTALKOFF&&在程序运行下关闭命令结果的显示

  OPENDATABASESTU_NINE&&打开数据库文件

  USESCORE1&&打开成绩表

  DOWHILENOTEOF()&&遍历成绩表中的每一条记录

  STORE0TOJF&&对变量JF赋值0

  DOCASE

  CASE三好生

  JF=20

  CASE优秀干部

  JF=10

  CASE少数民族

  JF=5

  OTHERWISE

  JF=0

  ENDCASE

  &&DOCASE…..ENDCASE条件语句中每次仅运行其中的一组命令。

  &&如果第一个CASE条件表达式中条件表达式为.T.,则执行第一个CASE

  &&和第二个CASE之间的语句,而即使下面的有满足条件的CASE也不再执行

  &&如果所有的CASE条件都不满足,则执行OTHERWISE与ENDCASE之间的语句

  &&所以这里要将"三好生"放在第一个CASE的位置;"优秀干部"话在第二个CASE中

  &&"少数民族"放在第三个CASE中

  REPLACE总成绩WITH考试成绩+JF

  &&用当前的成绩与可以加的分之和做为总成绩

SKIP

  ENDDO

  SELECT学号,总成绩FROMSCORE1ORDERBY总成绩,学号;

  INTOTABLEZCJ

  &&利用ORDERBY子句可以将查询结果集按一定的顺序进行排序

  &&默认是以升序进行排序,如果要以降序进行排序,需在排序依据的后面加DESC

  &&在排序的时候可以指定多个排序的依据,根据优先级的不同依次放在ORDERBY的后面

  &&利用INTOTABLE表名可以将结果集放入一个永久表中

  CLOSEALL

  SETTALKON&&恢复命令结果的显示

  第三步:

双击标题为"退出"的按钮控件,在新打开的窗口中添加此按钮的CLICK事件代码:

  THISFORM.RELEASE&&退出本表单

  第四步:

以文件名form_stu保存表单,并运行表单

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

  1、在考生文件夹下建立项目STSC_M。

  2、把数据库STSC加入到STSC_M项目中。

  3、打开STSC数据库,三个表中必要的索引已经建立,为三个表建立永久性联系。

  4、为COURSE表增加字段:

开课学期I

  本题的主要考核点:

  项目的建立、将数据库添加到项目中、为已建立索引的表建立永久性联系、字段的添加。

  解题思路:

  1.建立项目

  创建项目可用"文件"菜单中的"新建"命令。

  2.将数据库加入到项目中:

  在项目管理器的"数据"选项卡选择数据库,单击"添加",在"打开"对话框中选择要添加的数据库

  3.为表和表建立永久性联系,方法是在数据库设计器中,选中父表中的主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。

  4.添加字段:

  打开表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。

  二、简单应用(2小题,每题20分,计40分)

  1、在考生文件夹中有数据库STSC,其中有数据库表STUDENT、SCORE和COURSE。

三个表如下所示:

  STUDENT(学号、姓名、性别、院系、出生日期)

  SCORE(学号、课程编号、成绩)

  COURSE(课程编号、课程名称、开课院系、开课学期)在考生文件夹下有一个程序dbtest4.prg,该程序的功能是检索选课门数是3门以上的(包括3门)每个学生的学号、姓名、平均成绩、最低分、选课门数和院系,并按平均成绩降序排序,同时将结果存放到表TEST1中,请修改程序中的错误,并调试该程序,使之正确运行。

不得增加或删减程序行。

  2、在考生文件夹中有数据库STSC,其中有数据库表STUDENT、SCORE和COURSE。

  三个表如下所示:

  STUDENT(学号,姓名,性别,院系,出生日期)

  SCORE(学号,课程编号,成绩)

  COURSE(课程编号,课程名称,开课院系,开课学期)

  使用CREATEQUERY命令建立一个文件名为QUSC.QPR的查询,要求含有学号、姓名、成绩和课程名称,按课程名称升序排序,查询去向是表(表名QUSC.DBF),然后执行该查询。

  第1题:

本题是一个程序修改题,题中的第一个错误是"SUM(课程编号)>=3;",因为题面要求是统计选课门数是3门以上的,所以不应用SUM,应改为COUNT;第二个错误"ORDERBY平均成绩";题面要求按平均成绩降序排序,而此命令是按平均成绩的升序排列的,所以在其后应加DESC;第三个错误是"INTOTEST1SDF",此程序最后要求将结果存放到表TEST1中,正确命令格式应为"INTOtabletest1"。

  第2小题:

本题的主要考核点是使用命令建查询,在命令窗口中输入CREATEQUERY命令调出查询设计器,添加数据库的三个表,从字段中选择学号、姓名、成绩和课程名称字段,单击排序依据,选择课程名称,单击升序,再单击查询菜单下的查询去向,选择表,输入表名QUSC.DBF。

运行查询,最后将查询保存为QUSC.QPR。

三、综合应用(1小题,计30分)

  在考生文件夹下有职员管理数据库staff_10,数据库中有YUANGONG表结

  构是职工编码C(4)、姓名C(10)、夜值班天数I、昼值班天数I、加班费N

  (10.2)。

ZHIBAN表结构是值班时间C

(2),每天加班费N(7.2),ZHIBAN表

  中只有两条记录,分别记载了白天和夜里的每天加班费标准。

  请编写运行符合下列要求的程序:

  设计一个名为staff_m的菜单,菜单中有两个菜单项"计算"和"退出"。

  程序运行时,单击"计算"菜单项应完成下列操作:

  

(1)计算YUANGONG表的加班费字段值,计算方法是:

  加班费=夜值班天数*夜每天加班费+昼值班天数*昼每天加班费

  

(2)根据上面的结果,将员工的职工编码、姓名、加班费存储到的自由表

  staff_d中,并按加班费降序排列,如果加班费相等,则按职工编码的升序排列。

  单击"退出"菜单项,程序终止运行。

  本题考查知识点:

数据表的查询,记录的更新,数据表的定义等

  本题解题思路:

  SETTALKOFF&&在程序运行时关闭命令结果的显示

  SETSAFETYOFF&&关闭文件重名的提示

  OPENDATABASESTAFF_10&&打开数据库文件STAFF_10

  SELECT每天加班费FROMZHIBANWHERE值班时间="昼"INTOARRAYzhou

  &&由于要得到"昼"和"夜"的每天的加班费,所以要用到SELECTSQL查询

  &&WHERE条件表达式可以用来限定结果集,将条件表达式:

值班时间="昼"

  &&放在WHERE的后面;也可以将结果集的列数进行限制,这里我们只需要得到

  &&每天加班费,将其放在SELECT的后面;可以将返回的结果集放入一个数组变量中

  &&用到INTOARRAY数组变量名

  SELECT每天加班费FROMZHIBANWHERE值班时间="夜"INTOARRAYye

  &&同上,这样可以在ye中得到:

值班时间="夜"的每天加班费

  UPDATEYUANGONGSET加班费=夜值班天数*ye+昼值班天数*zhou

  &&UPDATESQL语句用来修改某一个,某几个字段的值

  &&UPDATE表名SET字段名1=表达式1[,字段名2=表达式2...]

  &&[WHERE条件表达式1[AND|OR条件表达式2…]]

  SELECT职工编码,姓名,加班费FROMYUANGONGORDERBY加班费DESC,职工编码;

  INTOTABLESTAFF_D

  &&利用SELECTSQL语句中的ORDERBY子句可以对结果集进行排序,有多个排序依据时

  &&它们按优先级的高低依次排在ORDERBY的后面,默认是以升序进行排序的,如果要以

  &&降序进行排序需要显示指明DESC;利用INTOTABLE表名可以将结果集放入一个永久表中

  CLOSEALL

  &&关闭所有打开的文件

  SETSAFETYON

  &&恢复文件重复的提示设置

  SETTALKON

  &&恢复命令结果显示设置

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

  在考生文件夹下完成如下操作:

  1.创建一个新的项目"客户管理"。

  2.在新建立的项目"客户管理"中创建数据库"订货管理"。

  3.在"订货管理"数据库中建立表order_list,表结构如下:

  客户号字符型(6)

  订单号字符型(6)

  订购日期日期型

  总金额浮动型(15.2)

  4.为order_list表创建一个主索引,索引名和索引表达式均是"订单号"。

  本题主要考核点:

  创建项目、建立数据库、在数据库中建立表、索引的建立

  解题思路:

  第一步:

在VisualFoxPro主窗口下按组合键Ctrl+N,则系统弹出"新建"对话框,在文件类型中选择"项目",再点击"新建文件"按钮;

  第二步:

在弹出的"创建"对话框中,选定考生文件夹,在项目文件中填入"客户管理.pjx",再点击保存按钮;这样便新建了一个项目;

  第三步:

在弹出的项目管理器中先选择"数据"标签,再选择"数据库",最后点击"新建"按钮;

  第四步:

在弹出的"新建数据库"对话框中点击"新建文件";

  第五步:

在弹出的"创建"对话框中,选定考生文件夹,在"数据库名"中填入"订货管理.dbc",再点击保存按钮;这样便完成了数据库的添加;

  第六步:

在已新建的项目客户管理的项目管理器中先选择"数据"标签,再选择"表",最后点击"新建"按钮;

  第七步:

在弹出的"新建表"对话框中点击"新建表",并在弹出的"创建"对话框中,选定考生文件夹,在"输入表名"中填入"order_list.dbf",再点击保存,

  第八步:

在弹出的"表设计器中",按题所要求建立表的结构后,选择"索引"标签,在索引名列中填入"订单号",在索引类型列中选择"主索引",在索引表达式列中填入"订单号",点击"确定"按钮,保存表结构。

二、简单应用(2小题,每题20分,计40分)

  在考生文件夹下完成如下简单应用:

  1.将order_list1表中的全部记录追加到order_list表中,然后用SQLSELECT语句完成查询:

按总金额降序列出所有客户的客户号、客户名及其订单号和总金额,并将结果存储到results表中(其中客户号、客户名取自customer表,订单号、总金额取自order_list表)

  2.打开form1表单,并按如下要求进行修改(注意:

最后保存所做的修改):

  

(1)表单中有5个随机排列的命令按钮,不要移动或改变"基准按钮"位置(否则影响成绩),然后使其他命令按钮与"基准按钮"左部对齐;

  

(2)在这组命令按钮的右边添加一个表格控件,并将它的RecordSourceType属性设置为"表",然后设置另一个相关属性使在表格控件中显示customer表的记录。

  本题主要考核点:

  SQL中的查询SELECT查询,联接查询,查询的排序,查询的结果的去向;以及INSERT语句,表单的建立、控件布局、向表单中添加数据环境、控件与数据源的绑定等知识

  解题思路:

  第一小题:

将order_list1中的全部记录追加到order_list中,要将一个表的所有记录追加到另一个表中使用APPENDFROM命令,首先打开order_list:

USEORDER_LIST,在APPENDFROM的后面是要追加到order_list的表名,这里是order_list1。

查询表中的数据要用到SELECT命令,要查询的数据来源于customer和order_list表,将它们置于FROM的后面,并用逗号隔开,并分别为它们指定一个别名Cu和ORD;由于是联接查询要指明查询的条件,将联接条件CU.客户号=ORD.客户号放在WHERE短语的后面,同时要对结果集按照总金额的降序进行排序,所以要将:

总金额DESC放在ORDERBY短语的后面,结果集要存储到results表中,所以要将:

results放在INTOTABLE后面。

由于查询的结果不是所有的属性,所以需要指明结果的属性,并且客户号在两个表中都存在,所以要特别指定此属性来自那一个源表(这里用表的别名来代替)。

这样就形成了一个完整的查询语句:

  SELECTCU.客户号,CU.客户名,ORD.订单号,ORD.总金额;

  FROMCUSTOMERCU,ORDER_LISTORD;

  WHERECU.客户号=ORD.客户号;

  ORDERBY总金额DESC;

  INTOTABLERESULTS

  第二题:

打开考生文件夹下FROM1窗体,拖动鼠标选中5个随机放置的按钮和"基准按钮"控件,点击"布局"工具栏中的"左边对齐",便完成了所有按钮的左对齐。

在表单上放置一表格控件,为表单"数据环境"设置为customer表,并设置表格控件的RecordSourceType属性设置为"表",RecordSource属性设置为"customer",这样表格控件便可以显示表customer的内容。

  本题主要考核点:

  SQL中的查询SELECT查询,联接查询,查询的排序,查询的结果的去向;以及INSERT语句,表单的建立、控件布局、向表单中添加数据环境、控件与数据源的绑定等知识

  解题思路:

  第一小题:

将order_list1中的全部记录追加到order_list中,要将一个表的所有记录追加到另一个表中使用APPENDFROM命令,首先打开order_list:

USEORDER_LIST,在APPENDFROM的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1