计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx
- 文档编号:2534671
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:33
- 大小:34.89KB
计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx
《计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级VisualFoxPro上机试题及解题思路汇总4059.docx(33页珍藏版)》请在冰点文库上搜索。
计算机等级考试二级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的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试 二级 VisualFoxPro 上机 试题 解题 思路 汇总 4059