《计算机二级vfp题库.doc》由会员分享,可在线阅读,更多相关《计算机二级vfp题库.doc(173页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流计算机二级vfp题库【精品文档】第 173 页1.【操作步骤】(1)打开Visual FoxPro,在命令窗口输入: INSE INTO 零件信息 VALUES(p7,PN7,1020)并按下回车键执行语句。然后创建一个程序文件one.prg,把代码复制过去并保存。(2)在命令窗口输入: DELE FROM 零件信息 WHERE 单价600 并按下回车键执行语句。然后创建一个程序文件two.prg,把代码复制过去并保存。(3)在命令窗口输入: UPDATE 零件信息 SET 单价=1090 WHERE 零件号=p4并按下回车键执行语句。然后创建一个程序文
2、件three.prg,把代码复制过去并保存。(4) 打开菜单mymenu.mnx后,选择系统菜单中的菜单,然后选择生成。(1)【操作步骤】打开考生文件夹下的程序文件,并按题目的要求进行改错,修改完成后运行程序文件。*程序提供的代码*SELECT 零件名称 FROM 零件信息 WHERE 零件号 = ;(SELECT 零件号 FROM 使用零件;GROUP BY 项目号 HAVING COUNT(项目号) = 3) ;ORDER BY 零件名称 ;INTO FILE results其中,第1行中的=需改为IN;第3行中的GROUP BY 项目号需改为GROUP BY 零件号;第5行中的INTO
3、FILE需改为TO FILE。(2)【操作步骤】步骤1:打开考生文件夹下的项目信息表,通过一对多报表向导创建一个报表。步骤2:选择表并添加相应的字段到选定字段中。步骤3:按题目要求选择排序并设置报表样式。步骤4:在步骤6完成中输入报表标题。步骤5:输入报表文件名report。(1)【操作步骤】步骤1:单击常用工具栏中的新建按钮,新建一个查询,依次将题目所要求的表添加到查询设计器中。步骤2:分别选中字段项目信息项目号、项目信息项目名、零件信息零件名称和使用零件数量并添加到可用字段。步骤3:在排序依据选项卡中为查询设置排序。步骤4:在系统菜单中单击保存按钮保存查询,输入查询名chaxun。最后单击
4、常用工具栏中的运行按钮运行查询。(2)【操作步骤】步骤1:在命令窗口输入CREATE FORM myform新建表单。并修改表单的Name属性为myform。步骤2:从表单控件工具栏向表单中添加一个表格控件和一个命令按钮控件,修改表单控件的属性。步骤3:设置命令按钮与表格等宽且左对齐。步骤4:双击退出按钮,写入Click事件代码。*退出按钮Click事件代码*ThisForm.Release2【操作步骤】(1)在命令窗口输入命令:Create Data 订单管理,打开数据库设计器,将自由表employee、orders和customer添加到数据库中。(2)在数据库设计器中为表orders建立
5、普通索引,索引名为nf,索引表达式为year(签订日期)。(3)按照上述操作步骤分别为表employee和orders建立主索引和普通索引,在数据库设计器中从主索引拖到普通索引建立表的联系。(4)打开参照完整性编辑器,按题目的要求设置规则。(1)【操作步骤】步骤1:打开表单formone,在表单的空白处单击右键,将Orders表添加到表单的数据环境中。步骤2:修改列表框和表格的属性。步骤3:双击显示按钮,修改其Click事件代码如下。*程序提供的*下面代码的功能是根据用户对列表框的选择结果构建字段列表,然后进一步构建select语句并据此为表格的相关属性设值。*修改所有* FOUND *下面的
6、一条语句。*不能修改其他语句。不能增加语句,也不能删除语句。s=f=.T.* FOUND *FOR i=1 TO thisform.List1.ColumnCount IF thisform.List1.Selected(i) IF f* FOUND * s=thisform.List1.value f=.F. ELSE* FOUND * s=s+thisform.List1.value ENDIF ENDIFENDFORst=select &s from orders into cursor tmpthisform.Grid1.RecordSource=st【操作步骤】步骤1:在命令窗口输入
7、 Create form myform新建表单。步骤2:将表单的ShowWindow属性设置为2-作为顶层表单。步骤3:双击表单空白处,编写表单的Init事件代码: DO mymenu.mpr WITH THIS, myform步骤4:新建菜单,输入菜单项统计(T)和退出(=1保存并运行程序,查看运行结果。(1)【操作步骤】打开考生文件夹下的程序文件temp.prg,并按题目的要求进行改错,修改完成后运行程序文件,如下所示。*程序提供的代码*&下句只有一处有错误SELECT 课程号 FROM 课程表 WHERE 课程名=数据结构 TO ARRAY a&下句有错误OPEN 教师表STORE 0
8、TO sum&下句两处有错误SCAN OF 课程号=a OR 工资=4000&下句有错误 sum+1ENDSCAN?sum【操作步骤】步骤1:在命令窗口输入: Create Form oneform并按回车键,新建一个名为oneform表单。步骤2:在表单控件中以拖拽的方式向表单中添加两个标签、一个选项组、一个组合框和两个命令按钮,并修改各控件的属性。步骤3:双击表单空白处,编写表单的load事件代码:*表单的load事件代码*public a(3)a(1)=3000a(2)=4000a(3)=5000步骤4:双击命令按钮,分别编写生成和退出按钮的Click事件代码。*生成按钮的Click事件
9、代码*x=val(bo1.value)if thisform.optiongroup1.value = 1 sele * from 教师表 where 工资 = x order by 工资 desc,姓名 into table salaryelse sele * from 教师表 where 工资 0 if int(x/2)=x/2 s1=s1+1 else s2=s2+1 endif*found* if div(x,3)=0 s3=s3+1 endif x=x-1enddothisform.text2.value=s1thisform.text3.value=s2thisform.text4
10、.value=s3thisform.text5.value=s1+s2+s3错误1:改为 STORE 0 TO x,s1,s2,s3。错误2:改为 x=val(thisform.text1.value)。错误3:改为 if mod(x,3)=0。步骤2:以同样的方法修改退出按钮的Click事件代码为Thisform.Release【操作步骤】步骤1:确定命令按钮的Click事件如下。 *确定按钮的Click事件代码*SELECT Student.姓名, Course.课程名称, Score.考试成绩; FROM student INNER JOIN score; INNER JOIN cour
11、se ; ON Score.课程编号 = Course.课程编号 ; ON Student.学号 = Score.学号; where &cn; ORDER BY Course.课程名称, Score.考试成绩 DESC; INTO TABLE zonghe.dbf步骤2:保存并运行表单。5【操作步骤】(1)打开数据库SCORE_MANAGER,在父表中选中主索引,按住鼠标左键拖动至子表相应的普通索引上,释放鼠标。(2)打开表COURSE,在系统菜单中执行显示菜单下的表设计器命令,在最下面输入字段名开课学期,数据类型为数值型(2,0)。(3)在数据库设计器中双击SCORE1表的任意位置打开该表,
12、单击显示菜单中的表设计器命令,在弹出的表设计器中选中成绩字段,在字段有效性中的规则文本框中填入:成绩=0,在信息文本框中填入成绩必须大于或等于零。(4)同上题打开表设计器,选择成绩字段,单击NULL列下的按钮(表示此列允许空值),然后再在字段有效性中的默认值中填入.NULL.。 (1)【操作步骤】步骤1:在命令窗口中输入如下语句,并执行。SELECT 姓名,2003-Year(出生日期) as 年龄;FROM student; INTO TABLE new_table1.dbf步骤2:通过工具栏中的新建按钮新建报表。步骤3:选择表new_table1的全部字段作为选定字段。步骤4:单击下一步到
13、步骤5,选择按字段年龄升序排序。步骤5:单击下一步,输入报表标题姓名年龄。步骤6:完成报表,输入报表名为new_report1。(2)【操作步骤】步骤1:新建菜单,分别输入查询和退出两个菜单项。步骤2:在退出的结果中选择命令,并在后面的框中输入: SET SYSMENU TO DEFAULT步骤3:保存菜单为query_menu并生成可执行菜单。【操作步骤】步骤1:打开考生文件夹下的数据库SCORE_MANAGER。步骤2:在命令窗口输入: CREATE FORM myform1新建一个表单。按题目的要求添加控件,并修改控件的属性。步骤3:添加数据环境表course和 score1。步骤4:编
14、写命令按钮的Click事件代码。*查询按钮的Click事件代码*SELECT course.课程名,score1.成绩;FROM course,score1;WHERE course.课程号=score1.课程号 AND score1.学号= ThisForm.Text1.text;INTO TABLE coruse_cursorIF RECC() = 0 MESSAGEBOX(学号不存在,请重新输入学号)ELSE ThisForm.Grid1.RecordSource=coruse_cursor ThisForm.Grid1.refreshENDIF*退出按钮的Click事件代码*6【操作步
15、骤】(1)启动Visual FoxPro 6.0,按照题目的要求新建一个名为供应的项目文件。(2)按照题目的要求,将供应零件数据库添加到项目供应中。(3)步骤1:按照题目的要求为零件表建立主索引。步骤2:以同样的方法为供应表建立普通索引。步骤3:在数据库设计器中从主索引拖拽到普通索引建立联系。(4) 按照题目的要求为供应表中的数量字段设置字段有效性规则。 (1)【操作步骤】步骤1:按照题目的要求建立名为query1.prg的程序文件,并在程序文件窗口中输入符合题目要求的程序段。*query1.prg中的程序段*SELECT 供应.供应商号,供应.工程号,供应.数量;FROM 零件,供应 WHE
16、RE 供应.零件号=零件.零件号;AND 零件.颜色=红;ORDER BY 供应.数量 desc;INTO DBF supply_temp步骤2:以query1为文件名保存并运行程序。也可以先按照题目的要求通过查询设计器建立查询,然后打开查询设计器工具栏中的工具按钮将其中的SQL语句复制到指定的程序文件中,操作过程如图3.9所示。一般来说,简单的SQL查询语句都可以通过查询设计器来实现,且比较简单,建议考生掌握这种方法的使用。(2)【操作步骤】步骤1:按照题目的要求新建一个快捷菜单并保存。步骤2:为快捷菜单添加菜单项,并生成可执行文件menu_quick.mpr。步骤3:打开表单myform,
17、按照题目的要求编写表单的RightClick事件代码DO menu_quick.mpr。【操作步骤】步骤1:新建一个表单,并按题目要求修改表单的属性。步骤2:在表单中添加一个表格控件、两个命令按钮控件、一个标签控件和一个文本框控件,并按照题目的要求设置各控件的属性。步骤3:将供应表和零件表添加到表单的数据环境中。步骤4:编写两个命令按钮的Click事件代码。*查询按钮的Click事件代码*Select 零件.零件名,零件.颜色,零件.重量;From 供应,零件;Where 零件.零件号=供应.零件号 and 供应.工程号=thisform.text1.value;Order By 零件名;In
18、to dbf ppThisForm.Grid1.RecordSource=pp*退出按钮的Click事件代码*THISFORM.RELEASE 7【操作步骤】(1)新建一个数据库,在数据库设计器中按题目要求添加表。(2)按照题目的要求为authors表建立主索引。(3)按照题目要求为books表建立两个普通索引。(4)按照题目的要求为authors表和books表建立永久性联系。(1)【操作步骤】步骤1:打开表单myform4-4,并按照题目的要求修改表单的标题。步骤2:在表单设计器窗口中,按照题目的要求修改文本的相关属性。步骤3:在表单中添加命令按钮,修改其Caption属性为关闭,并为其C
19、lick事件添加代码ThisForm.Release。(2)【操作步骤】步骤1:按照题目的要求新建一个名为myform4的表单。步骤2:编写两个命令按钮的Click事件代码。*查询按钮的Click事件代码*SELECT Authors.作者姓名,Authors.所在城市; FROM authors,books ; WHERE Authors.作者编号 = Books.作者编号; GROUP BY Authors.作者姓名 HAVING COUNT(Books.图书编号) = 3; ORDER BY Authors.作者姓名;INTO TABLE NEW_VIEW4*退出按钮的Click事件代码
20、*THISFORM.RELEASE 步骤3:保存表单为myform4并运行。【小技巧】也可以先按照题目的要求通过查询设计器建立查询,然后打开查询设计器工具栏中的工具按钮将其中的SQL语句复制到指定的程序文件中。【操作步骤】步骤1:在命令窗口中输入下列代码,用于将BOOKS表中满足条件的记录复制到BOOKS_BAK表中,并按回车键以执行该代码。SELECT * FROM BOOKS WHERE 书名 LIKE %计算机% INTO TABLE BOOKS_BAK步骤2:在命令窗口中输入下列代码,用于更新BOOKS_BAK表中的价格字段,并按回车键以执行该代码。UPDATE BOOKS_BAK S
21、ET 价格=价格*(1-0.05)步骤3:在命令窗口中输入下列代码,并按回车键以执行该代码。SELECT TOP 1 Books_bak.出版单位,avg(books_bak.价格) as 均价;FROM books_bak;GROUP BY Books_bak.出版单位;HAVING 均价=25;ORDER BY 2;INTO TABLE new_table4.dbf【小技巧】步骤1和步骤3的代码可以通过建立一个查询,并查看其中的SQL语句来完成。其中,步骤3通过查询设计器来实现要简单一些。8 【操作步骤】(1)在命令窗口输入CREATE PROJECT 库存管理(也可写作CREA PROJ
22、 库存管理),并按回车键以新建一个项目。或者,单击常用工具栏中的新建命令新建一个项目(新建方法前面已有讲解,这里不再赘述)。(2)按照题目的要求,在项目中新建数据库,并将考生文件夹下的自由表添加到数据库中。(3)在数据库设计器中打开表设计器,并按题目的要求为零件信息表增加一个字段。(4)按照题目的要求打开并修改mymenu菜单文件。设计完成后,关闭菜单设计器并保存菜单文件。(1)【操作步骤】步骤1:按照题目的要求,通过查询设计器新建查询,或者在命令窗口输入以下命令。SELECT 项目信息.项目号, 项目信息.项目名, 零件信息.零件号,; 零件信息.零件名称; FROM 使用零件情况!零件信息
23、 INNER JOIN 使用零件情况!使用零件; INNER JOIN 使用零件情况!项目信息 ; ON 使用零件.项目号 = 项目信息.项目号 ; ON 零件信息.零件号 = 使用零件.零件号; ORDER BY 项目信息.项目号 DESC, 零件信息.零件号; INTO TABLE item_temp.dbf步骤2:按照题目的要求新建文本文件item.txt,并将满足条件的SQL语句粘贴到文本文件中。步骤3:在命令窗口输入DO item.txt并按回车键运行查询。(2)【操作步骤】步骤1:打开数据库设计器,按照题目的要求新建本地视图。注意,将表全部添加到视图中时,按默认联接即可。步骤2:按
24、照题目的要求设计视图。步骤3:按照题目的要求保存视图。【操作步骤】步骤1:按照题目的要求新建表单,表单的新建可以通过常用工具栏中的新建按钮来实现(操作步骤在前面的解析中已经讲到),也可以在命令窗口中输入Crea Form form_item,然后按回车键。步骤2:从表单控件工具栏向表单添加一个组合框、一个文本框和两个命令按钮,然后在属性窗口中修改各控件的相关属性。步骤3:按照题目的要求设置组合框的数据源。步骤4:分别双击命令按钮统计和退出,为它们编写Click事件代码。*统计按钮的Click事件代码*x=allt(bo1.value)SELECT SUM(使用零件.数量*零件信息.单价) as
25、 je; FROM 使用零件,零件信息 ; WHERE 使用零件.零件号 = 零件信息.零件号; AND 使用零件.项目号 = x; GROUP BY 使用零件.项目号; into array b thisform.text1.value=b退出按钮的Click事件代码为:*退出按钮的Click事件代码*ThisForm.Release9【操作步骤】(1)打开考生文件夹下的订单管理数据库,按要求删除指定的表。(2)按照题目的要求为employee表建立普通索引。(3)按照题目的要求为employee表建立普通索引。(4)按照题目的要求为employee表和orders表建立永久联系。(1)【操
26、作步骤】步骤1:打开表单设计器,将题目要求的两个表添加到其数据环境中。然后关闭数据环境设计器。步骤2:按照题目的要求,在属性窗口中修改控件的相关属性。步骤3:双击组合框,按照题目的要求修改组合框的相关方法。*程序提供的代码* 下面代码的功能是读取所选职员的职员号,然后计算该职员所签订单的平均金额,并显示在文本框内。* 修改所有* FOUND *下面的一条语句。* 不能修改其他语句。不能增加语句,也不能删除语句。dime a(1,1)a(1,1)=0m1=employee.职员号select avg(金额) from orders where 职员号=m1 into array am2=a(1,
27、1)*FOUND*thisform.text1.value=m2【操作步骤】步骤1:新建一个菜单,并按照题目的要求设计菜单的显示方式及位置。步骤2:按照题目要求设计各级菜单。步骤3:选中统计行,单击后面的创建按钮,在弹出的窗口中输入如下代码,为统计菜单编写代码。*统计菜单项中的代码*SELECT Employee.组别, Employee.姓名 AS 负责人,sum(orders.金额) as 合计; FROM 订单管理!employee INNER JOIN 订单管理!orders ;ON Employee.职员号 = Orders.职员号; WHERE Employee.职务 = 组长;
28、GROUP BY Employee.组别; ORDER BY 3 DESC; INTO TABLE tabletwo.dbf步骤4:为返回菜单编写代码SET SYSMENU TO DEFAULT,方法同步骤3。步骤5:保存菜单并生成可执行文件。步骤6:在命令窗口中输入DO mymenu.mpr运行程序,并分别执行统计和返回菜单命令。10【操作步骤】(1)打开Visual FoxPro,通过常用工具栏中的新建命令按钮新建项目文件,并将该项目以图书管理为文件名保存在考生文件夹下。(2)按照题目的要求在项目管理器中新建一个数据库。设计完成后,关闭数据库设计器。(3)按照题目的要求将考生文件夹下的自由
29、表添加到图书数据库中。本小题中的自由表是book.dbf、borrows.dbf和loans.dbf3个表。(4)步骤1:通过图书管理项目管理器新建查询。步骤2:将book表添加到查询设计器中。步骤3:将全部字段添加到选定字段列表框中。步骤4:在筛选选项卡下,为查询添加筛选条件。步骤5:在排序依据选项卡中,按要求设置排序依据。步骤6:执行文件菜单下的另存为菜单命令,并以book_qu.qpr为文件名对查询文件进行保存。(1)【操作步骤】步骤1:新建查询,为查询添加order、orderitem和goods三个表。步骤2:按题目要求为查询添加字段。步骤3:在筛选选项卡中,为查询添加筛选条件。步骤
30、4:在排序依据选项卡中按要求设置排序条件。步骤5:为查询设置查询去向。步骤6:以queryone.qpr为文件名保存查询,最后单击常用工具栏中的运行按钮运行查询。(2)【操作步骤】步骤1:将菜单设置为顶层表单。步骤2:在命令窗口执行命令,新建表单form_menu,修改表单的ShowWindow属性为2作为顶层表单。步骤3:双击表单空白处,分别输入表单Init和Destroy事件。*Init*DO menu_lin.mpr With This,abc*destroy*Release Menu abc Extended步骤4:保存并运行表单。【操作步骤】步骤1:在命令窗口输入命令Create F
31、orm form_book,建立表单。步骤2:从表单控件中以拖拽的方式在表单中添加一个组合框、一个文本框和两个命令按钮,并修改各控件的属性,为表单添加数据环境book表。步骤3:双击命令按钮,写入命令按钮的Click事件。*统计命令按钮的Click事件*SELECT COUNT(*) FROM BOOK; WHERE 出版社=THISFORM.COMBO1.VALUE; INTO ARRAY TEMPTHISFORM.TEXT1.VALUE=TEMP(1)*退出命令按钮的Click事件*ThisForm.Release步骤4:保存并运行表单。11【操作步骤】(1)打开表单one,通过属性窗口设
32、置3个命令按钮的焦点移动顺序。(2)打开表单two,按下SHIFT键的同时选中3个命令按钮控件,通过布局工具栏设置其对齐方式。(3)新建一个程序,输入下列命令: Create table 分组情况表(组号 c(2),组名 c(10)将该程序保存为three.prg并运行。(4)方法同上建立程序four.prg,输入命令: INSERT INTO 分组情况表 VALUES(01,通俗唱法)【解题思路】WHILE循环语句的格式为如下。DO WHILE 条件表达式 语句体ENDDO故第1处错误应改为DO WHILE .NOT. EOF();由题意可知,one表中的组号实际上是歌手编号的前两位,故第2
33、处错误应改为SELECT COUNT(*) FROM 歌手表 WHERE LEFT(歌手表.歌手编号,2)=zuhao INTO ARRAY A;表中记录值的修改可以通过REPLACE命令来完成,其格式为:REPLACE 字段名 WITH 常量故第3处错误应改为REPLACE 歌手人数 WITH A。(1)【操作步骤】步骤1:打开程序five,修改其中的错误如下。*计算按钮的Click事件代码*&根据歌手表计算每个组的歌手人数CLOSE DATAUSE oneGO TOPWHILE.NOT. EOF() &错误 zuhao=组号 SELECT COUNT(*) FROM 歌手表 WHERE 歌
34、手表.歌手编号=zuhao INTO ARRAY A &错误 REPLACE 歌手人数 INTO A &错误 SKIP ENDDO步骤2:保存并运行程序。(2)【操作步骤】步骤1:新建一个名为歌手大奖赛的数据库文件,在数据库设计器中空白处单击右键,并将歌手表、评委表和评分表添加到数据库中。步骤2:新建一个视图,并将表歌手表、评委表和评分表添加到视图设计器中。步骤3:将评委表评委姓名、歌手表歌手姓名和评分表分数3个字段添加到选定字段框中。步骤4:在排序选项卡中按歌手姓名升序排序,再按分数降序排序。步骤5:保存视图名为songer_view。【操作步骤】步骤1:新建一个表单文件,通过表单控件工具栏
35、按题目要求向表单中添加各控件。步骤2:通过属性窗口设置表单及相关各控件的属性。 步骤3:双击计算命令按钮编写其Click事件代码。*计算按钮的Click事件代码*SELECT * FROM 评分表; WHERE left(评分表.歌手编号,2) = ThisForm.List1.list(ThisForm.List1.listindex); INTO TABLE two.dbf; ORDER BY 评分表.歌手编号 DESC, 评分表.分数步骤4:最后以myform为文件名将表单保存在考生文件夹下,并运行该表单。12【操作步骤】(1)打开数据库设计器,按题目要求为其中的课程表建立主索引。以同样
36、的方法为教师表建立普通索引。(2)打开程序one,将循环语句中的条件i1,保存并运行程序。(3)通过报表向导新建报表,保存报表名为two并预览。(4)新建一个程序three,在其中编写代码:alter table 教师表 alter 职工号 set check LEFT(职工号,4)=1102,保存并运行。(1)【操作步骤】步骤1:打开程序four.prg,修改如下:CREATE TABLE 工资表(职工号 C(8) primary KEY,姓名 C(6) ,工资 N(10,2)INSERT INTO 工资表 VALUES (11020034,宣喧,4500)USE 工资表APPEND FRO
37、M 教师表UPDATE 工资表 set 工资=工资*1.1 WHERE 工资3000DELETE FROM 工资表 where 姓名=ThomasPACK步骤2:保存并运行程序。(2)【操作步骤】步骤1:单击常用工具栏中的新建按钮,新建一个查询,添加表教师表和学院表到新建的查询中。步骤2:添加字段教师表姓名、教师表工资和学院表系名到选定字段中。步骤3:添加筛选条件。步骤4:为查询设置排序依据。步骤5:输入查询去向为表five。步骤6:保存查询名为teacher_q,运行查询。【操作步骤】步骤1:在命令窗口输入: Crea form myform按下回车键新建一个表单,按要求修改表单的Name属性为myform。在表单的RightClick事件中写入: DO mymenu.mpr步骤2:新建一个快捷菜单,菜单项分别为取前3名和取前5名,结果均为过程。步骤3:分别单击两个菜单项后面的创建按钮,编写对应的过程代码:*取前3名菜单项中的代码*SELECT TOP 3 学院表.系名,avg(教师表.工资) as 平均工资;FROM 学院表,教师表 ;WHERE 学院表.系号 = 教师表.系号;GROUP BY 学院表.系名;ORDER BY 2 DESC;INTO TABLE sa_three.dbf*取前5名菜单项中的代码*SELECT TOP 5 学院表.
限制150内