国家二级计算机VF 答案

申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

文档介绍

国家二级计算机VF 答案

第一套题:一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.新建一个名为"供应"的项目文件。2.将数据库"供应零件"加入到新建的"供应"项目文件中。3.通过"零件号"字段为"零件"表和"供应"表建立永久联系("零件"是父表,"供应"是子表)。4.为"供应"表的数量字段设置有效性规则:数量必须大于0并且小于9999;错误提示信息是"数量超范围"(注意:公式必须为数量>0.and.数量<9999)。考查知识点:项目文件的建立,添加。数据库表的永久关系的建立,有效性规则的设立。解题思路:1.选择"文件"菜单中的"新建",在类型选择框中选择"项目",单击新建文件按钮,输入项目名:"供应"。2.在项目管理器中选择"数据"节点下的"数据库",单击"添加"按钮并选择"供应零件"数据库3.首先要为两个表建立索引,并且父表必须为主索引或候选索引。具体方法是:在项目管理器中选择"供应零件"数据库,单击"修改"按钮,打开数据库设计器,在数据库设计器中选中"零件"表,单击数据库菜单中的修改,在表设计器中的索引选项卡中建立索引,索引名为"零件号",索引表达式为"零件号",索引类型为主索引,保存修改。用同样的方法为"供应"表建立索引,索引名为"零件号",索引表达式为"零件号",索引类型为"普通索引"。建立永久联系的方法是:在数据库设计器中单击"零件"表中的索引"零件号",按住鼠标左键拖动到"供应"表中的相应索引上即可。4.打开"供应"表的表设计器,先在列表框中选中"数量"字段,然后在字段有效性规则区域中的规则文本框中输入:数量>0.and.数量<9999(也可以用表达式构造器生成),在信息文本框中输入:"数量超范围"(双引号不可少)二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.用SQL语句完成下列操作:列出所有与"红"颜色零件相关的信息(供应商号,工程号和数量),并将检索结果按数量降序排序存放于表sup_temp中。2.建立一个名为m_quick的快捷菜单,菜单中有两个菜单项"查询"和"修改"。然后在表单myform中的RightClick事件中调用快捷菜单m_quick。考查知识点:SQL查询语句,查询去向,子查询等。快捷菜单的建立,在表单中调用快捷菜单。解题思路:1.在"零件"表中得到所有颜色为"红"的零件号,然后在"供应"表中获得与此零件号相关的零件信息select供应商号,工程号,数量from供应;where零件号iN(select零件号from零件where颜色="红");intotablesup_temporderby数量desc2.首先建立菜单,并生成相应的mpr文件,然后在表单中调用。具体方法是:在"文件"菜单中选择"新建",在"新建"对话框中选择"菜单",单击"新建文件"按钮,选择"快捷菜单",在菜单设计器中输入两个菜单项"查询"和"修改",单击"菜单"菜单中的"生成",按提示保存为m_quick,并生成菜单程序文件(MPR)。打开表单myform,双击表单设计器打开代码窗口,在对象中选择form1,在过程中选择RightClick,输入代码:dom_quick.mpr,保存表单。三、综合应用(1小题,计30分)设计名为mysupply的表单(表单的控件名和文件名均为mysupply)。表单的形式如下图n表单标题为"零件供应情况",表格控件为Grid1,命令按钮"查询"为Command1、"退出"为Command2,标签控件label1和文本框控件text1(程序运行时用于输入工程号)。运行表单时,在文本框中输入工程号,单击"查询"命令按钮后,表格控件(名称grid1)中显示相应工程所使用的零件的零件名、颜色和重量(通过设置有关"数据"属性实现),并将结果按"零件名"升序排序存储到pp.dbf文件。单击"退出"按钮关闭表单。完成表单设计后运行表单,并查询工程号为"J4"的相应信息。解析考查知识点:表单的建立,控件的使用,SQL查询命令等。解题思路:1.选择"文件"菜单中"新建"命令,在文件类型选择框中选择"表单",单击"新建文件"按钮。2.在表单设计器中设置表单的Name属性为"mysupply",Caption属性为"零件供应情况",从控件工具栏中分别选择一个表格、一个标签、一个文本框和两个命令按钮放置到表单上,分别设置标签label1的Caption属性为"工程号",命令按钮Command1的Caption属性为"查询",Command2的Caption属性为"退出",表格的Name属性为"grid1",RecordSourceType属性为"0-表"。3.在Command1按钮的Click事件中输入:select零件名,颜色,重量from零件innerjoin供应;on零件.零件号=供应.零件号where工程号=alltrim(thisform.text1.value);orderby零件.零件名intotablepp.dbfthisform.grid1.recordsource="pp"4.在Command2按钮的Click事件中输入:Thisform.release。5.保存表单并运行,在文本框中输入J4,并单击"查询"命令按钮。第二套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.新建一个名为"图书管理"的项目。2.在项目中建立一个名为"图书"的数据库。3.将考生文件夹下的所有自由表添加到"图书"数据库中。4.在项目中建立查询book_qu:查询价格大于等于10的图书(book表)的所有信息,查询结果按价格降序排序。考查知识点:项目文件的建立,项目管理器的使用,数据库文件的建立,数据库表的添加,查询文件的建立解题思路:1.单击"文件"菜单中的"新建",在类型选择对话框中选择"项目",单击"新建文件"按钮,输入文件名"图书管理"n2.选择项目管理器中"数据"节点下的"数据库",单击"新建"按钮,输入数据库文件名"图书",这时,数据库设计器自动打开3.在数据库设计器中单击右键,选择"添加表",将考生文件夹下的所有表文件依次添加到数据库中4.选择项目管理器中"数据"节点下的"查询",单击"新建"按钮,在弹出的对话框中选择"新建查询",这时查询设计器打开,将"book"表添加到查询设计器中。在查询设计器下方的"字段"选项卡中选中所有字段,在"筛选"选项卡中的"字段"列中选择"book.价格",条件列中选择">=",结果列中输入10,在"排序依据"选项卡中选择"价格"字段,降序排列.单击工具栏上的保存铵钮,输入查询文件名book_qu,保存查询后关闭查询设计器二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.用SQL语句完成下列操作:检索"田亮"所借图书的书名、作者和价格,结果按价格降序存入booktemp表中。2.在考生文件夹下有一个名为menu_lin的下拉式菜单,请设计顶层表单frmmenu,将菜单menu_lin加入到该表单中,使得运行表单时菜单显示在本表单中,并在表单退出时释放菜单。考查知识点:SQL查询语句,联接查询,子查询,查询去向等,在表单中调用菜单题解思路:1.首先对loans表和borrows表进行联接查询,找到"田亮"所借图书的"图书登记号"select图书登记号fromloans,borrows;whereloans.借书证号=borrows.借书证号andborrows.姓名="田亮"然后利用这个查询结果在book表中查找相应的记录,完整语句如下:select书名,作者,价格frombook;wherebook.图书登记号in;(select图书登记号fromloans,borrows;whereloans.借书证号=borrows.借书证号andborrows.姓名="田亮");orderby价格desc;intotablebooktemp查询结果按价格降序排列通过orderby子句实现;将查询结果输出到booktemp表中通过intotable子句实现(或intodbf子句)2.在表单中调用下拉式菜单,需要以下条件:(1)表单为顶层表单;(2)在表单的init事件中用do菜单程序名.mprwiththis[,.t.]调用菜单;(3)在表单的Destroy事件代码中添加清除菜单的命令,命令格式如下:RELEASEMENU<菜单名>[EXTENDED]。具体实现是:(1)单击"文件"菜单中的"新建",在新建文件类型选择对话框中选择"表单",单击"新建文件"按钮,这时打开表单设计器。在表单的属性窗口中设置Showwindow属性为"2-作为顶层表单";(2)双击表单,打开代码编辑窗口,选择表单对象的"init"事件,输入以下代码:domenu_lin.mprwiththis(3)选择表单对象的"Destroy"事件,输入以下代码:RELEASEMENUmenu_linEXTENDED(4)单击工具栏上的保存按钮,将表单保存为frmmenu.scx(考生可运行表单进行检查)三、综合应用(1小题,计30分)设计名为formbook的表单(控件名为form1,文件名为formbook)。表单的标题设为"图书情况统计"。表单中有一个组合框(名称为Combo1)、一个文本框(名称为Text1)和两个命令按钮"统计"(名称为Command1)和"退出"(名称为Command2)。运行表单时,组合框中有三个条目"清华"、"北航"、"科学"(只有三个出版社名称,不能输入新的)可供选择,在组合框中选择出版社名称后,如果单击"统计"命令按钮,则文本框显示出"图书"表中该出版社图书的总数。单击"退出"按钮关闭表单。注意:完成表单设计后要运行表单的所有功能。考查知识点:表单控件的使用(组合框,文本框,按钮),SQL查询命令解题思路:n1.单击"文件"菜单中的"新建",在类型选择框中选择"表单",单击"新建文件"按钮,打开表单设计器.2.在属性窗口中设置表单form1的Caption属性为"图书情况统计".Name属性为"form1".从表单控件工具栏中选择一个组合框,两个按钮,一个文本框放置在表单上.设置组合框的RowsourceType属性为"1-值",RowSource属性为"清华,北航,科学",Style属性为"2-下拉列表框".设置按钮Command1的Caption属性为"统计",Command2的Caption属性为"退出"3.在Command1的Click事件中输入:selectcount(*)frombookwhere出版社=thisform.combo1.value;intoarrayTempthisform.text1.value=temp(1)4.在Command2的Click事件中输入:thisform.release5.保存表单文件为"formbook.scx"第三套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.根据SCORE数据库,使用查询向导建立一个含有学生"姓名"和"出生日期"的标准查询QUERY31.QPR。2.从SCORE数据库中删除视图NEWVIEW。3.用SQL命令向SCORE1表插入一条记录:学号为"993503433"、课程号为"0001"、成绩是99。4.打开表单MYFORM34,向其中添加一个"关闭"命令按钮(名称为Command1),单击此按钮关闭表单(不可以有多余的命令)。本题主要考核点:查询的创建,视图的删除,添加记录,向表单中添加对象等知识点本题解题思路:第一步:打开考生文件夹下的"SCORE"数据库第二步:打开"文件"、"新建"菜单选择"查询",在弹出的"新建"对话框中,选择"查询",单击"向导"按钮,按照向导,选定student表的姓名,出生日期字段,连续单击下一步,输入保存的查询名为"QUERY31",再点击"完成"即可第三步:在数据库设计器中的"NEWVIEW"上单击右键,在弹出的菜单中选择"删除",并在弹出的对话框中选择"移去"即可。第四步:用INSERT语句来完成,格式为INSERTINTOdbf_name[(fname1[,fname2,...])]VALUES(eExpression1[,eExpression2,...])本题的命令为INSERTINTOscore1(学号,课程号,成绩)VALUES("993503433","0001",99)第五步:打开表单后,添加工具栏中的命令按钮到表单中,双击该按钮,输入命令THISFORM.RELEASE。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.建立视图NEW_VIEW,该视图含有选修了课程但没有参加考试(成绩字段值为NULL)的学生信息(包括"学号"、"姓名"和"系部"3个字段)。2.建立表单MYFORM3,在表单上添加表格控件(名称为grdCourse),并通过该控件显示表course的内容(要求RecordSourceType属性必须为0)。本题主要考核点:视图的建立方法、查询语句的应用、表单的建立方法等知识点解题思路:第一小题:打开考生文件夹下数据库"SCORE",在命令窗口中输入下列命令来建立view视图:CREATEVIEWNEW_VIEWASSELECTStudent.学号,Student.姓名,Student.系部FROMscore!courseINNERJOINscore!score1INNERJOINscore!studentONStudent.学号=Score1.学号ONCourse.课程号=Score1.课程号WHERECourse.课程号ISNOTNULLANDScore1.成绩ISNULL第二小题:按CTRL+N,选择"表单",然后点击"新建文件"按钮,弹出"表单设计器"。在表单设计器中放置一个表格控件。将表格控件的name属性改为:grdCourse。点击工具栏中的"数据"按钮,在弹出的"添加表或视图"对话框中选择SCORE数据库下的course表。点击"添加"按钮,然后点击"关闭"按钮。在表单设计器中对grdCourse表格控件的RecordSourceType和RecordSource属性分别设为:0-表和course,以文件名MYFORM3.scx将所编辑的表单保存在考生文件夹下。三、综合应用(1小题,计30分)n利用菜单设计器建立一个菜单TJ_MENU3,要求如下:(1)主菜单(条形菜单)的菜单项包括"统计"和"退出"两项;(2)"统计"菜单下只有一个菜单项"平均",该菜单项的功能是统计各门课程的平均成绩,统计结果包含"课程名"和"平均成绩"两个字段,并将统计结果按课程名升序保存在表NEWTABLE中。(3)"退出"菜单项的功能是返回VFP系统菜单(SETSYSMENUTODEFAULT)。菜单建立后,运行该菜单中各个菜单项。本题主要考核点:菜单的建立、结构化查询语言(SQL)中的联接查询、查询的排序、分组查询、临时表的概念、查询结果的去向等知识点。本题解题思路:第一步:利用菜单设计器定义两个菜单项,在菜单名称为"统计"的字菜单下建立"平均"菜单,"平均"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗口来添加"平均"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令:SETSYSMENUTODEFAULT第二步:在单击"平均"菜单项后面的"编辑"按钮所打开的窗口中添加如下的过程代码:SETTALKOFF&&在程序工作方式下关闭命令结果的显示OPENDATABASESCORESELECTCourse.课程名,AVG(Score1.成绩)平均成绩;FROMscore!courseINNERJOINscore!score1;ONCourse.课程号=Score1.课程号;GROUPBYCourse.课程名;ORDERBYCourse.课程名;INTOTABLENEWTABLECLOSEALLSETTALKON完成之后,单击菜单->生成,选择考试文件夹,文件名为TJ_MENU3,系统将生成一可执行菜单程序,在命令窗口输入dotj_menu3.mpr,单击统计->平均,完成操作。第四套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.建立数据库BOOKAUTH.DBC,把表BOOKS.DBF和AUTHORS.DBF添加到该数据库。2.为AUTHORS表建立主索引,索引名"PK",索引表达式"作者编号"。3.为BOOKS表分别建立两个普通索引,其一索引名为"RK",索引表达式为"图书编号";其二索引名和索引表达式均为"作者编号"。4.建立AUTHORS表和BOOKS表之间的联系。本题的主要考核点:数据库的建立、将自由表添加到数据库中、在数据库中建立新表、主索引和普通索引的建立、为已建立索引的表建立联系解题思路:1.建立数据库的常用方法:在项目管理器中建立数据库;通过"新建"对话框建立数据库;使用命令交互建立数据库,命令为:CREATEDATABASE[DatabaseName|?]将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。在数据库设计器中可以从"数据库"菜单或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADDTABLE命令添加一个自由表到当前数据库中。2.打开数据库设计器,在"数据库"菜单中或在数据库设计器上对准要建立索引的表单击右键,在弹出的菜单中选择"修改"。3.在表设计器中的索引页面建立索引。4.建立两个表的联系:在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。二、简单应用(2小题,每题20分,计40分)n在考生文件夹下完成如下简单应用:1.打开表单MYFORM44,把表单(名称为Form1)标题改为"欢迎您",将文本"欢迎您访问系统"(名称为label1的标签)的字号改为25,字体改为隶书。再在表单上添加"关闭"(名称为Command1)命令按钮,单击此按钮关闭表单。最后保存并运行表单。2.设计一个表单MYFORM4,表单中有两个命令按钮"查询"(名称为Command1)和"退出"(名称为Command2)。(1)单击"查询"按钮,查询BOOKAUTH数据库中出版过三本以上(含三本)图书的作者信息,查询信息包括:作者姓名,所在城市;查询结果按作者姓名升序保存在表NEWVIEW中。(2)单击"退出"按钮关闭表单。最后保存并运行表单。注意:完成表单设计后要运行表单的所有功能。本题主要考核点;数据环境的添加、控件的属性的修改、如何用SQL语句进行记录的更新、表单的退出等知识点解题思路:第一小题:第一步:打开考生文件夹下的myform44.scx表单第二步:更改FORM的CAPTION属性为"欢迎您",选中LABEL1标签,在属性栏内更改FONTSIZE为25,FONTNAME为"隶书"第三步:在表单上画一个命令按钮,双击该按钮,输入THISFORM.RELEASE,再单击工具栏的保存按钮。第二小题:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮;第二步:系统打开表单设计器;点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"中,选中"命令按钮",在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"对象command1,设置它的caption属性为"查询",双击command1在打开的代码编辑器窗口中输入以下代码:SELECTAuthors.作者姓名,Authors.所在城市;FROMauthors,books;WHEREAuthors.作者编号=Books.作者编号;GROUPBYAuthors.作者姓名HAVINGCOUNT(Books.图书编号)>=3;ORDERBYAuthors.作者姓名;INTOTABLENEWVIEW用同样的方法,在表单上放置command2对象,它的Click的事件代码为:THISFORM.RELEASE第三步:以文件名myform4.scx保存表单,并且保存在考生文件夹下。三、综合应用(1小题,计30分)在考生文件夹下完成如下综合应用:(1)首先将BOOKS.DBF中所有书名中含有"计算机"3个字的图书复制到表BOOKSBAK中,以下操作均在BOOKSBAK表中完成;(2)复制后的图书价格在原价格基础上降价5%;(3)从图书均价高于25元(含25)的出版社中,查询并显示图书均价最低的出版社名称以及均价,查询结果保存在表newtable中(字段名为出版单位和均价)。本题主要考核点:程序的建立方法、程序中循环结构的使用、SQL查询语句的使用、记录的修改方法等知识点本题解题思路:第一步:打开数据库bookauth.dbc,可以使用命令OPENDATABASEBOOKAUTH第二步:将books中的所有书名中含有计算机3个字的图书复制到表BOOKSBAK中SELECT*FROMbooksWHEREAT("计算机",书名)>0INTOTABLEBOOKSBAK第三步:价格在原价格基础上降价5%UPDATEBOOKSBAKSET价格=价格*0.95第四步:查询出各个图书的均价放到临时表中SELECT出版单位,AVG(价格)AS均价FROMBOOKSBAKINTOCURSORCURSOR1GROUPBY出版单位orderby均价第五步:在临时表中查询均价高于25的图书中价格最低的出版社名称和均价nSELECT*TOP1FROMCURSOR1WHERE均价>=25intotablenewtableORDERBY均价第五套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下的数据库rate中完成下列操作:1.将自由表rate_exchange和currency_sl添加到rate数据库中。2.为表rate_exchange建立一个主索引,为表currency_sl建立一个普通索引(升序),两个索引的索引名和索引表达式均为"外币代码"。3.为表currency_sl设定有效性规则:"持有数量<>0",错误提示信息是"持有数量不能为0"。4.打开表单文件test_form,该表单的界面如下图所示,请修改"登录"命令按钮的有关属性,使其在运行时可以使用。本题主要考核点:将一个自由表添加到数据库中、表索引的建立、字段有效规则的建立等知识点本题解题思路:第一步:打开考生文件夹下的"rate"数据库。第二步:打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下rate_exchange表,再点击"确定"即可,这样表rate_exchange就添加到了"rate"数据库中,用同样的方法,将currency_sl表也添加到"rate"数据库中。第三步:在数据库设计器中选中表rate_exchange,在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"索引"标签,在索引名列中填入"外币代码",在索引类型列中选择"主索引",在索引表达式列中填入"外币代码",点击"确定"按钮,保存表结构,用类似的方法,为currency_sl表建立普通索引。第四步:在表设计器中首先选中要定义有效性规则的字段"持有数量",在"规则"一栏中输入"持有数量<>0"(或用表达式生成器生成),在"信息"栏中输入:"持有数量不能为0"。第五步:打开考生文件夹下的"test_form"表单,右击"登录"命令按钮,选择"属性(P)",在弹出的"属性"对话框中将"登录"命令按钮的"Enable"值置为.T.,接着保存表单即可。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.用SQL语句完成下列操作:列出"林诗因"持有的所有外币名称(取自rate_exchange表)和持有数量(取自currency_sl表),并将检索结果按持有数量升序排序存储于表rate_temp中,同时将你所使用的SQL语句存储于新建的文本文件rate.txt中。2.使用一对多报表向导建立报表。要求:父表为rate_exchange,子表为currency_sl,从父表中选择字段:"外币名称";从子表中选择全部字段;两个表通过"外币代码"建立联系;按"外币代码"升序排序;报表样式为"经营式",方向为"横向",报表标题为:"外币持有情况";生成的报表文件名为currency_report。题主要考核点:SQL语句的查询、使用报表向导制作报表等知识点本题解题思路:第1题,本题的主要考核点是SQL语句的查询。SELECTRate_exchange.外币名称,Currency_sl.持有数量;FROMcurrency_slINNERJOINrate_exchange;ONCurrency_sl.外币代码=Rate_exchange.外币代码;nWHERECurrency_sl.姓名="林诗因";ORDERBYCurrency_sl.持有数量;INTOTABLErate_temp.dbf第2题,本题的主要考核点是使用报表向导制作报表。启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。三、综合应用(1小题,计30分)设计一个表单名和文件名均为currency_form的表单,所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为:"外币市值情况"。表单中有一个"姓名"标签控件Lable1、文本框控件Text1、一个表格控件Grid1和两个命令按钮"查询"(command1)和"退出"(command2),如下图所示:运行表单时,在文本框text1中输入某人的姓名,然后单击"查询",则在表格控件Grid1中会显示出他所持有的全部"外币名称"及对应的"人民币数量",并按人民币数量降序排序,同时将结果存储到自由表DBFA中。注意:某种外币相当于人民币数量的计算公式:人民币数量=该种外币的"现钞买入价"*该种外币"持有数量"。单击"退出"按钮时关闭表单。运行该表单,查询"林诗因"的外币市值情况。本题主要考核点:表单的建立、控件的使用、SQL查询命令等知识点解题思路:1.选择"文件"菜单中"新建"命令,在文件类型选择框中选择"表单",单击"新建文件"按钮。2.在表单设计器中设置表单的Name属性为"currency_form",Caption属性为"外币市值情况",从控件工具栏中分别选择一个表格、一个标签、一个文本框和两个命令按钮放置到表单上,分别设置标签label1的Caption属性为"姓名",命令按钮Command1的Caption属性为"查询",Command2的Caption属性为"退出",表格的Name属性为"grid1",RecordSourceType属性为"0-表"。3.在Command1按钮的Click事件中输入:select外币名称,现钞买入价*持有数量as人民币数量;fromcurrency_slinnerjoinrate_exchange;oncurrency_sl.外币代码=rate_exchange.外币代码;wherecurrency_sl.姓名=alltrim(thisform.text1.value);orderby人民币数量descintotableDBFAthisform.grid1.recordsource="DBFA"4.在Command2按钮的Click事件中输入:Thisform.release。5.保存表单并运行,在文本框中输入林诗因,并单击"查询"命令按钮。第六套题n一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.新建一个名称为"外汇数据"的数据库。2.将自由表rate_exchange和currency_sl添加到数据库中。3.通过"外币代码"字段为rate_exchange和currency_sl建立永久联系(如果必要请建立相关索引)。4.打开表单文件test_form,该表单的界面如下图所示,请将标签"用户名"和"口令"的字体都改为"黑体"。本题主要考核点:数据库的建立、将自由表添加到数据库中、表索引的建立、表之间的永久联系的建立等知识点本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"数据库",点击"新建文件"按钮,在弹出的对话框的"数据库名"处输入"外汇数据",单击保存按钮。第二步:打开考生文件夹下的"外汇数据"数据库。第三步:打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的rate_exchange表,再点击"确定"即可,这样表rate_exchange就添加到了"外汇数据"数据库中,用同样的方法,将currency_sl表也添加到"外汇数据"数据库中。第四步:在数据库设计器中选中表rate_exchange,在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"索引"标签,在索引名列中填入"外币代码",在索引类型列中选择"主索引",在索引表达式列中填入"外币代码",点击"确定"按钮,保存表结构,用类似的方法,为currency_sl表建立普通索引。第五步:在数据库设计器中,选中rate_exchange表中的索引"外币代码"并拖动到表currency_sl的"外币代码"的索引上并松开,这样两个表之间就建立起了永久联系。第六步:打开考生文件夹下的"test_form"表单,按CTRL键选中标签"用户名"和"口令"后,按鼠标右键,选择"属性(P)",在弹出的"属性"对话框中将标签"用户名"和"口令"的"FontName"值置为"黑体",保存表单即可。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.rate_pro.prg中的程序功能是计算出"林诗因"所持有的全部外币相当于人民币的价值数量,summ中存放的是结果。注意:某种外币相当于人民币数量的计算公式:人民币价值数量=该种外币的"现钞买入价"*该种外币"持有数量"。请在指定位置修改程序的语句,不得增加或删除程序行,请保存所做的修改。2.建立一个名为menu_rate的菜单,菜单中有两个菜单项"查询"和"退出"。"查询"项下还有子菜单,子菜单有"日元"、"欧元"、"美元"三个选项。在"退出"菜单项下创建过程,该过程负责返回系统菜单。本题主要考核点:文件菜单建立等知识点本题解题思路:第1题:本题是一个程序修改题,题中的第一个错误是findfor姓名="林诗因",应改为locafor姓名="林诗因";第二个错误whilenoteof(),应改为dowhilenoteof();第三个错误是"summ=summ+a[1]*rate_exchange.持有数量",应改为summ=summ+a[1]*currency_sl.持有数量。第2题,本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATEMENU命令直接调出菜单设计器。在菜单名称中填入"查询"、"退出","查询"结果为子菜单,单击编辑;在子菜单的菜单名称中输入"日元"、"欧元"、"美元","退出"结果为过程"SETSYSMENUTODEFAULT"。三、综合应用(1小题,计30分)n设计一个文件名为myrate的表单,所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为"外汇持有情况"。表单中有一个选项组控件(命名为myOption)和两个命令按钮"统计"(command1)和"退出"(command2)。其中,选项组控件有三个按钮"日元"、"美元"和"欧元"。运行表单时,首先在选项组控件中选择"日元"、"美元"或"欧元",单击"统计"命令按钮后,根据选项组控件的选择将持有相应外币的人的姓名和持有数量分别存入rate_ry.dbf(日元)或rate_my.dbf(美元)或rate_oy(欧元)中。单击"退出"按钮时关闭表单。表单建成后,要求运行表单,并分别统计"日元"、"美元"和"欧元"的持有数量。本题主要考核点:控件的属性的修改、SQL语句运用、表单的退出等知识点本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮(系统将打开表单设计器);或直接在命令窗口中输入creaformmyrate。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"选项组"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"选项组"控件optiongroup1,用类似的方法为表单再加入两个"命令按钮"控件command1和command2。相关控件的属性值如下:对象属性属性值Form1Caption外汇持有情况选项组NamemyOptionButtonCount3MyOption.option1Caption日元MyOption.option2Caption美元MyOption.option3Caption欧元Command1Caption统计Command2Caption退出***********命令按钮command1(统计)的Click事件代码如下************DOCASECASEthisform.myOption.option1.value=1SELECTCurrency_sl.姓名,Currency_sl.持有数量;FROM外汇数据!rate_exchangeINNERJOIN外汇数据!Currency_sl;ONrate_exchange.外币代码=Currency_sl.外币代码;WHERErate_exchange.外币名称="日元";INTOTABLErate_ry.DBFCASEthisform.myOption.option2.value=1SELECTCurrency_sl.姓名,Currency_sl.持有数量;FROM外汇数据!rate_exchangeINNERJOIN外汇数据!Currency_sl;ONrate_exchange.外币代码=Currency_sl.外币代码;WHERErate_exchange.外币名称="美元";INTOTABLErate_my.DBFCASEthisform.myOption.option3.value=1SELECTCurrency_sl.姓名,Currency_sl.持有数量;FROM外汇数据!rate_exchangeINNERJOIN外汇数据!Currency_sl;ONrate_exchange.外币代码=Currency_sl.外币代码;WHERErate_exchange.外币名称="欧元";INTOTABLErate_oy.DBFENDCASE***********命令按钮command2(退出)的Click事件代码如下************thisform.release第七套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:n1.新建一个名为"学生管理"的项目文件。2.将"学生"数据库加入到新建的项目文件中。3.将"教师"表从"学生"数据库中移出,使其成为自由表。4.通过"学号"字段为"学生"和"选课"表建立永久联系(如果必要请先建立有关索引)。本题主要考核点:创建项目、数据库相关操作、在数据库中建立表、索引的建立本题解题思路:第一步:在VisualFoxPro主窗口下按组合键Ctrl+N,则系统弹出"新建"对话框,在文件类型中选择"项目",再点击"新建文件"按钮;第二步:在弹出的"创建"对话框中,选定考生文件夹,在项目文件中填入"学生管理",再点击保存按钮;这样便新建了一个项目;第三步:在弹出的项目管理器中先选择"数据"标签,再选择"数据库",最后点击"添加"按钮;第四步:在弹出的"打开"对话框中的"选择数据库"处,选择"学生"数据库;第五步:在数据库设计器窗口中单击选中"教师"表,打开主窗口的数据库菜单选择"移去(R)",并在弹出的菜单中选择"移去(R)"即可,这样就将表"教师"表从数据库中移出而成为了自由表;第六步:在数据库设计器中选中表"学生",在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"索引"标签,在索引名列中填入"学号",在索引类型列中选择"主索引",在索引表达式列中填入"学号",点击"确定"按钮,保存表结构,用类似的方法,为"选课"表建立普通索引第七步:在数据库设计器中,选中"学生"表中的索引"学号"并拖动到表"选课"表的"学号"的索引上并松开,这样两个表之间就建立起了永久联系。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.用SQL语句对自由表"教师"完成下列操作:将职称为"教授"的教师新工资一项设置为原工资的120%,其他教师的新工资与原工资相等;插入一条新记录,该教师的信息:姓名"林红",职称"讲师",原工资10000,新工资10200,同时将你所使用的SQL语句存储于新建的文本文件teacher.txt中(两条更新语句,一条插入语句,按顺序每条语句占一行)。2.使用查询设计器建立一个查询文件stud.qpr,查询要求:选修了"英语"并且成绩大于等于70的学生的姓名和年龄,查询结果按年龄升序存放于stud_temp.dbf表中。(完成后要运行)本题主要考核点:SQL语句的使用、使用查询设计器建立查询本题解题思路:第1题:本题的主要考核点是SQL语句的使用。update教师set新工资=原工资*1.2where职称=教授update教师set新工资=原工资where职称!=教授insertinto教师values("林红","讲师",10000,10200)第2题,本题的主要考核点是建立查询。建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"学生","课程"和"选课"表添加入查询中,从字段中选择姓名和年龄字段;切换到"筛选"选项卡,在其中进行如下设置:字段名条件实例逻辑课程.课程名称="英语"AND选课.成绩>=70;切换到"排序依据"中选择字段"学生.年龄",在"排序选项"处选择"升序";单击查询菜单下的查询去向,选择表,输入表名stud_temp,最后运行该查询。三、综合应用(1小题,计30分)设计名为mystu的表单(文件名为mystu,表单名为form1),所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为"计算机系学生选课情况"。表单中有一个表格控件(Grid1),该控件的RecordSourceType的属性设置为4(SQL说明)和两个命令按钮"查询"(command1)和"退出"(command2)。运行表单时,单击"查询"命令按钮后,表格控件中显示6系(系字段值等于字符6)的所有学生的姓名、选修的课程名和成绩。单击"退出"按钮关闭表单。注意:完成表单设计后要运行表单的所有功能。本题主要考核点:控件的属性的修改、SQL语句运用、表单的退出等知识点n本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮(系统将打开表单设计器);或直接在命令窗口中输入creaformmystu。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"表格"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"表格"控件grid1,用类似的方法为表单再加入两个"命令按钮"控件command1和command2;相关控件的属性值如下:对象属性属性值Form1Caption计算机系学生选课情况Grid1RecordSourceType4(SQL说明)Command1Caption查询Command2Caption退出***************命令按钮command1(查询)的Click事件代码如下***************THISFORM.GRID1.RECORDSOURCE="SELECT学生.姓名,课程.课程名称,选课.成绩;FROM学生!课程INNERJOIN学生!选课;INNERJOIN学生!学生;ON学生.学号=选课.学号;ON课程.课程号=选课.课程号;WHERE学生.系='6';INTOCURSORtemp"***************命令按钮command2(退出)的Click事件代码如下***************thisform.release第八套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.新建一个名为"饭店管理"的项目。2.在新建的项目中建立一个名为"使用零件情况"的数据库,并将考生文件夹下的所有自由表添加到该数据库中。3.修改"零件信息"表的结构,增加一个字段,字段名为"规格",类型为字符型,长度为8。4.打开并修改mymenu菜单文件,为菜单项"查找"设置快捷键Ctrl+T。本题主要考核点:项目的建立、将数据库添加到项目中、将自由表添加到数据库中、菜单中快捷键的建立本题解题思路:1.建立项目创建项目可用"文件"菜单中的"新建"命令。2.将数据库加入到项目中在项目管理器的"数据"选项卡选择数据库,单击"添加",在"打开"对话框中选择要添加的数据库。3.将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。在数据库设计器中可以从"数据库"菜单或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADDTABLE命令添加一个自由表到当前数据库中。4.菜单中快捷键的建立,主要是在菜单设计器中完成,具体操作如下:双击考生文件夹下的"mymenu.mnx"->在弹出的菜单设计器中单击"文件"->单击"编辑"按钮->单击"查找"菜单项下的按钮->在弹出的"提示选项"对话框中的键标签处按下"CTRL+T"->单击"确定"按钮->在VisualFoxPro的主菜单栏中点击"菜单"-"生成"。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.用SQL语句完成下列操作:查询与项目号"s1"的项目所使用的任意一个零件相同的项目号、项目名、零件号和零件名称(包括项目号s1自身),结果按项目号降序排序,并存放于item_temp.dbf中,同时将你所使用的SQL语句存储于新建的文本文件item.txt中。2.根据零件信息、使用零件和项目信息三个表,利用视图设计器建立一个视图view_item,该视图的属性列由项目号、项目名、零件名称、单价、数量组成,记录按项目号升序排序,筛选条件是:项目号为"s2"。n本题主要考核点:SQL查询语句,查询去向,子查询等,利用视图设计器建立视图等本题解题思路:第1题,本题的主要考核点是:SQL查询语句,查询去向,子查询。select项目信息.项目号,项目信息.项目名,零件信息.零件号,;零件信息.零件名称;from零件信息innerjoin使用零件;innerjoin项目信息;on使用零件.项目号=项目信息.项目号;on零件信息.零件号=使用零件.零件号;where使用零件.零件号in(select零件号from使用零件where项目号="s1");intotableitem_temporderby使用零件.项目号desc或者:select项目信息.项目号,项目信息.项目名,零件信息.零件号,;零件信息.零件名称;from零件信息,使用零件,项目信息;where使用零件.项目号=项目信息.项目号;and零件信息.零件号=使用零件.零件号;and使用零件.零件号;in(select零件号from使用零件where项目号="s1");intotableitem_temporderby使用零件.项目号desc第2题,本题的主要考核点是:利用视图设计器建立视图。在新建对话框中、项目管理器中、或用CREATVIEW命令打开视图设计器。建立一个视图,将"项目信息"表,"零件信息"表,"使用零件"表添加到视图中,并将题中指定字段添加入视图;切换到"筛选"选项卡,并在"筛选"选项卡中做如下设置:字段名条件实例项目信息.项目号="s2";切换到"排序依据"中选择字段"项目信息.项目号",在"排序选项"处选择"升序";最后将视图命名为view_item。三、综合应用(1小题,计30分)设计一个文件名和表单名均为form_item的表单,所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题设为"使用零件情况统计"。表单中有一个组合框(combo1)、一个文本框(text1)和两个命令按钮"统计"(command1)和"退出"(command2)。运行表单时,组合框中有三个条目"s1"、"s2"、"s3"(只有三个,不能输入新的,RowSourceType的属性为"数组",Style的属性为"下拉列表框")可供选择,单击"统计"命令按钮以后,则文本框显示出该项目所用零件的金额(某种零件的金额=单价*数量)。单击"退出"按钮关闭表单。注意:完成表单设计后要运行表单的所有功能。本题主要考核点:控件的属性的修改、SQL语句运用、表单的退出等知识点本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入creaformform_item。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"组合框"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"组合框"控件combo1,用类似的方法为表单再加入一个"文本框"控件text1和两个"命令按钮"控件command1和command2;相关控件的属性值如下表所示:对象属性属性值Form1Caption使用零件情况统计Nameform_itemCombo1RowSourceType5-数组Style2-下拉式列表框nRowSourcess(3)Command1Caption统计Command2Caption退出***************表单form_item的Load事件代码如下***************publicss(3)ss(1)="s1"ss(2)="s2"ss(3)="s3"*********命令按钮command1(统计)的Click事件代码如下***********SELECTSUM(零件信息.单价*使用零件.数量);FROM零件信息INNERJOIN使用零件;INNERJOIN项目信息;ON使用零件.项目号=项目信息.项目号;ON零件信息.零件号=使用零件.零件号;WHERE使用零件.项目号=ALLTRIM(THISFORM.combo1.VALUE);GROUPBY项目信息.项目号;INTOARRAYTEMPTHISFORM.TEXT1.VALUE=TEMP**********命令按钮command2(退出)的Click事件代码如下**********thisform.release第九套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.建立一个名称为"外汇管理"的数据库。2.将表currency_sl.DBF和rate_exchange.DBF添加到新建立的数据库中。3.将表rate_exchange.DBF中"买出价"字段的名称改为"现钞卖出价"。4.通过"外币代码"字段建立表rate_exchange.DBF和currency_sl.DBF之间的一对多永久联系(需要首先建立相关索引)。本题主要考核点:数据库的建立、将自由表添加到数据库中、表索引的建立、表之间的永久联系的建立等知识点本题解题思路:第1题:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"数据库",点击"新建文件"按钮,在弹出的对话框的"数据库名"处输入"外汇数据",单击"保存"按钮。第2题:打开考生文件夹下的"外汇数据"数据库;打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的rate_exchange表,再点击"确定"即可,这样表rate_exchange就添加到了"外汇数据"数据库中,用同样的方法,将currency_sl表也添加到"外汇数据"数据库中。第3题:在数据库设计器中选中表rate_exchange,在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"字段"标签,在"字段名"列中将"买出价"字段的名称改为"现钞卖出价"。第4题:在数据库设计器中选中表rate_exchange,在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"索引"标签,在索引名列中填入"外币代码",在索引类型列中选择"主索引",在索引表达式列中填入"外币代码",点击"确定"按钮,保存表结构,用类似的方法,为currency_sl表建立普通索引;在数据库设计器中,选中rate_exchange表中的索引"外币代码"并拖动到表currency_sl的"外币代码"的索引上并松开,这样两个表之间就建立起了永久联系。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.在建立的"外汇管理"数据库中利用视图设计器建立满足如下要求的视图:1)视图按顺序包含列Currency_sl.姓名、Rate_exchange.外币名称、Currency_sl.持有数量和表达式Rate_exchange.基准价*Currency_sl.持有数量;2)按"Rate_exchange.基准价*Currency_sl.持有数量"降序排序;3)将视图保存为view_rate。2.使用SQLSELECT语句完成一个汇总查询,结果保存在results.dbf表中,该表含有"姓名"和"人民币价值n"两个字段(其中"人民币价值"为每人持有外币的"Rate_exchange.基准价*Currency_sl.持有数量"的合计),结果按"人民币价值"降序排序。本题主要考核点:SQL查询语句,查询去向,统计,数据分组,利用视图设计器建立视图等本题解题思路:第1题,本题的主要考核点是:利用视图设计器建立视图。在新建对话框中、项目管理器中、或用CREATEVIEW命令打开视图设计器。建立一个视图,将"Currency_sl"表,"Rate_exchange"表,表添加到视图中,并将题中指定字段,和表达式添加入视图;切换到"排序依据"中选择表达式"Rate_exchange.基准价*Currency_sl.持有数量",在"排序选项"处选择"降序";最后将视图命名为view_rate。第2题,本题的主要考核点是:SQL查询语句,查询去向,统计,数据分组。SELECTCurrency_sl.姓名,SUM(Rate_exchange.基准价*Currency_sl.持有数量)as人民币价值;FROMrate_exchangeINNERJOINcurrency_sl;ONRate_exchange.外币代码=Currency_sl.外币代码;GROUPBYCurrency_sl.姓名;ORDERBY2DESC;INTOTABLEresults三、综合应用(1小题,计30分)设计一个表单,所有控件的属性必须在表单设计器的属性窗口中设置,表单文件名为"外汇浏览",表单界面如下所示:其中:1."输入姓名"为标签控件Label1;2.表单标题为"外汇查询";3.文本框的名称为Text1,用于输入要查询的姓名,如张三丰;4.表格控件的名称为Grid1,用于显示所查询人持有的外币名称和持有数量,RecordSourceType的属性为0(表);5."查询"命令按钮的名称为Command1,单击该按钮时在表格控件Grid1中按持有数量升序显示所查询人持有的外币名称和数量(如上图所示),并将结果存储在以姓名命名的DBF表文件中,如张三丰.DBF;6."退出"命令按钮的名称为Command2,单击该按钮时关闭表单。完成以上表单设计后运行该表单,并分别查询"林诗因"、"张三丰"和"李寻欢"所持有的外币名称和持有数量。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出等知识点本题解题思路:操作过程:①在命令窗口输入命令:CREATEFORM外汇浏览,打开表单设计器窗口。n②在表格上添加各文本框、命令按钮、表格及相关的标签,并进行适当的布置和大小调整。③设置各标签、命令按钮以及表单的Caption属性值。④将表单的RecordSourceType属性值设置为"0(表)"。⑤设置"查询"按钮的Click事件代码:SETTALKOFFSETSAFETYOFFa=ALLTRIM(THISFORM.text1.VALUE)SELECTRate_exchange.外币名称,Currency_sl.持有数量;FROM外汇管理!rate_exchangeINNERJOIN外汇管理!currency_sl;ONRate_exchange.外币代码=Currency_sl.外币代码;ORDERBYCurrency_sl.持有数量;WHERECurrency_sl.姓名=a;INTOTABLE(a)THISFORM.Grid1.RECORDSOURCE="(a)"SETTALKONSETSAFETYON⑥设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑦保存表单,关闭表单设计器窗口。第十套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.用SQL语句从rate_exchange.dbf表中提取外币名称、现钞买入价和卖出价三个字段的值并将结果存入rate_ex.dbf表(字段顺序为外币名称、现钞买入价、卖出价,字段类型和宽度与原表相同,记录顺序与原表相同),并将相应的SQL语句保存为文本文件one.txt。2.用SQL语句将rate_exchange.dbf表中外币名称为"美元"的卖出价修改为829.01,并将相应的SQL语句保存为文本文件two.txt。3.利用报表向导根据rate_exchange.dbf表生成一个外币汇率报表,报表按顺序包含外币名称、现钞买入价和卖出价三列数据,报表的标题为"外币汇率"(其他使用默认设置),生成的报表文件保存为rate_exchange。4.打开生成的报表文件rate_exchange进行修改,使显示在标题区域的日期改在每页的注脚区显示。本题主要考核点:SQL查询语句,查询去向,统计,利用报表向导建立报表等本题解题思路:第1题:select外币名称,现钞买入价,卖出价fromrate_exchangeintotablerate_ex。第2题:updaterate_exchangeset卖出价=829.01where外币名称="美元"。第3题:本题的主要考核点是使用报表向导制作报表。启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。第4题:双击生成的报表文件rate_exchange,在报表设计器中,将显示在"标题"区域的日期拖到"页注脚"区,保存报表文件即可二、简单应用(2小题,每题20分,计40分)1.设计一个如下图所示的时钟应用程序,具体描述如下:n表单名和表单文件名均为timer,表单标题为"时钟",表单运行时自动显示系统的当前时间;1)显示时间的为标签控件label1(要求在表单中居中,标签文本对齐方式为居中);2)单击"暂停"命令按钮(Command1)时,时钟停止;3)单击"继续"命令按钮(Command2)时,时钟继续显示系统的当前时间;4)单击"退出"命令按钮(Command3)时,关闭表单。提示:使用计时器控件,将该控件的interval属性设置为500,即每500毫秒触发一次计时器控件的timer事件(显示一次系统时间);将计时器控件的interval属性设置为0将停止触发timer事件;在设计表单时将timer控件的interval属性设置为500。2.使用查询设计器设计一个查询,要求如下:1)基于自由表currency_sl.DBF和rate_exchange.DBF;2)按顺序含有字段"姓名"、"外币名称"、"持有数量"、"现钞买入价"及表达式"现钞买入价*持有数量";3)先按"姓名"升序排序、再按"持有数量"降序排序;4)查询去向为表results.dbf;5)完成设计后将查询保存为query文件,并运行该查询。本题主要考核点:简单应用程序的建立,使用查询设计器设计查询等本题解题思路:第1题:本题的主要考核点是简单应用程序的建立。可以用三种方法建立表单:调用表单设计器;在项目管理器环境下调用;单击"文件"菜单中的"新建",打开"新建"对话框,选择"表单";在命令窗口输入"CREATEFORM时钟"命令。打开表单设计器后,将表单的Name属性改为:timer;在表单控件工具栏上单击"命令按钮",在表单上放置三个按钮控件,分别修改其Caption属性为"暂停","继续","退出";单击"标签控件",在表单中央放置一个标签控件,修改其Alignment属性为"2-中央";单击"计时器控件",在表单上放置一个计时器控件,修改其interval属性为500。相关代码如下:command1(暂停)按钮的click事件为thisform.timer1.interval=0command2(继续)按钮的click事件为thisform.timer1.interval=500command3(退出)按钮的click事件为thisform.releasetimer1的timer事件为thisform.label1.caption=time()第2题:本题的主要考核点是运用查询设计器建立查询。建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"currency_sl"表和"rate_exchange"表添加入查询中,从字段选项卡中依次选择"姓名"、"外币名称"、"持有数量"、"现钞买入价"及表达式"现钞买入价*持有数量";切换到"排序依据"选项卡并在其中选择字段"姓名",用相同方法设置按"持有数量"降序排序;单击查询菜单下的"查询去向",在"选择表"对话框中输入表名results,最后运行该查询。三、综合应用(1小题,计30分)设计一个满足如下要求的应用程序,所有控件的属性必须在表单设计器的属性窗口中设置:1.建立一个表单,表单文件名和表单名均为form1,表单标题为"外汇";2.表单中含有一个页框控件(PageFrame1)和一个"退出"命令按钮(Command1);3.页框控件(PageFrame1)中含有三个页面,每个页面都通过一个表格控件显示有关信息:1)第一个页面Page1上的标题为"持有人",其上的表格控件名为grdCurrency_sl,记录源的类型(RecordSourceType)为"表",显示自由表currency_sl中的内容;2)第二个页面Page2上的标题为"外汇汇率",其上的表格控件名为grdRate_exchangen,记录源的类型(RecordSourceType)为"表",显示自由表rate_exchange中的内容;3)第三个页面Page3上的标题为"持有量及价值",其上的表格控件名为Grid1,记录源的类型(RecordSourceType)为"查询",记录源(RecordSource)为"简单应用"题目中建立的查询文件query。4.单击"退出"命令按钮(Command1)关闭表单。注意:完成表单设计后要运行表单的所有功能。本题主要考核点:控件的属性的修改(页框,表格)、表单的退出等知识点本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入:creaformform1。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"页框"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"页框"控件PageFrame1,用类似的方法为表单再加入三个"表格"控件(右击页框,点击编辑按钮),1个"命令按钮"控件command1;相关控件的属性值如下表所示:对象属性属性值Form1Caption外汇PageFrame1pagecount3PageFrame1.page1Caption持有人PageFrame1.page2Caption外汇汇率PageFrame1.page3Caption持有量及价值PageFrame1.page1.grid1NamegrdCurrency_slPageFrame1.page2.grid1NamegrdRate_exchangePageFrame1.page1.grdCurrency_slRecordSourceType0-表PageFrame1.page1.grdCurrency_slRecordSourcecurrency_slPageFrame1.page2.grdRate_exchangeRecordSourceType0-表PageFrame1.page2.grdRate_exchangeRecordSourcerate_exchangePageFrame1.page3.grid1RecordSourceType3-查询PageFrame1.page3.grid1RecordSourcequeryCommand1Caption退出******命令按钮command1(退出)的Click事件代码如下******thisform.release第十一套题面一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.打开数据库customer,并将自由表customer和order添加到数据库中。2.为表order的"订单日期"字段定义默认值为系统的当前日期。3.为表customer建立主索引,索引名和索引表达式均为"客户编号"。4.为表order建立普通索引,索引名和索引表达式均为"客户编号",然后通过"客户编号"字段建立表customer和order之间的永久联系。本题主要考核点:将一个自由表添加到数据库中、表索引的建立、表之间的永久联系的建立等知识点本题解题思路:第1题:打开考生文件夹下的"customer"数据库;打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的customer表,再点击"确定"即可,这样表customer就添加到了"customer"数据库中,用同样的方法,将order表也添加到"customer"数据库中。第2题:在数据库设计器中选中表order,在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"字段"标签,在字段名列单击"订单日期"字段,定义默认值DATE()。第3题:在数据库设计器中选中表customer,在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"索引"标签,在索引名列中填入"客户编号",在索引类型列中选择"主索引",在索引表达式列中填入"客户编号",点击"确定"按钮,保存表结构。第4题:数据库设计器中选中表order,在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"n索引"标签,在索引名列中填入"客户编号",在索引类型列中选择"普通索引",在索引表达式列中填入"客户编号",点击"确定"按钮,保存表结构,选中customer表中的索引"客户编号",将其拖动到表order的"客户编号"的索引上并松开,这样两个表之间就建立起了永久联系。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.请按要求修改modi1.prg程序文件中的错误并使之能够正确运行(具体修改要求在程序文件中)。注意:不可以增加或删除程序行。2.在考生目录下有表customer(客户)和order(订单),用SQLSELECT语句查询所有客户的订单信息,要求在结果中包括公司名称、订单编号、金额和送货方式四个字段的信息,并先按公司名称升序排序、再按订单编号升序排序,查询结果存放在results.dbf文件中,并要求将完整的SQLSELECT语句保存在SQL.PRG文件中。本题主要考核点:VFP命令,SQL查询语句,查询去向等本题解题思路:第1题,本题是一个程序修改题。空行处应填usecustomer。第二个错误为SCANWHILE所在地='北京',应改为SCANFOR所在地='北京'。第2题,本题的主要考核点是SQL查询,查询去向。SELECTCustomer.公司名称,Order.订单编号,Order.金额,Order.送货方式;FROMcustomerINNERJOINorder;ONCustomer.客户编号=Order.客户编号;ORDERBYCustomer.公司名称,Order.订单编号;INTOTABLEresults三、综合应用(1小题,计30分)建立满足如下要求的应用并运行,所有控件的属性必须在表单设计器的属性窗口中设置:1.建立一个表单myform(文件名和表单名均为myform),其中包含两个表格控件,第一个表格控件名称是grd1,用于显示表customer中的记录,第二个表格控件名称是grd2,用于显示与表customer中当前记录对应的order表中的记录。要求两个表格尺寸相同、水平对齐。2.建立一个菜单mymenu,该菜单只有一个菜单项"退出",该菜单项对应于一个过程,并且含有两条语句,第一条语句是关闭表单myform,第二条语句是将菜单恢复为默认的系统菜单。3.在myform的Load事件中执行生成的菜单程序mymenu.mpr。注意:程序完成后要运行所有功能。本题主要考核点:表单文件的创建、表格生成器的使用、菜单文件的建立、表单的退出等知识点本题解题思路:操作过程:①在命令窗口输入命令:CREATEFORMmyform,打开表单设计器窗口。②从常用工具栏中单击表格控件,添加两个表格到新建得表单中,右击表单,选择"数据环境"快捷菜单命令,在数据环境中添加"customer"和"order",建立好两表得关联。然后右键单击表格grd1,在弹出的快捷菜单中选择"生成器",弹出表格生成器对话框,在"1.表格项"中选择"customer",将表中所有字段添加到选定字段中。以同样的方法设置第二个表格的生成器,选择"4.关系"选项卡,把"父表中的关键字段"设置为customer.客户编号,把"子表中的相关索引"设置为客户编号。③在命令窗口输入命令:CREATEMENUmymenu,在弹出的"菜单设计器"中的"菜单名称"列处输入"退出",结果为过程,相关代码如下所示:myform.releasesetsysmenutodefa④点击主菜单栏中的菜单-生成。⑤保存菜单,关闭菜单设计器。⑥设置表单的Load事件代码:domymenu.mpr⑦保存表单,关闭表单设计器窗口。第十二套题面n一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.用SQLINSERT语句插入元组("p7","PN7",1020)到"零件信息"表(注意不要重复执行插入操作),并将相应的SQL语句存储在文件one.prg中。2.用SQLDELETE语句从"零件信息"表中删除单价小于600的所有记录,并将相应的SQL语句存储在文件two.prg中。3.用SQLUPDATE语句将"零件信息"表中零件号为"p4"的零件的单价更改为1090,并将相应的SQL语句存储在文件Three.prg中。4.打开菜单文件mymenu.mnx,然后生成可执行的菜单程序mymenu.mpr。本题主要考核点:SQL查询语句的插入,删除,更新操作,及生成菜单程序等知识点本题解题思路:第1题:insertinto零件信息values("p7","PN7",1020)第2题:deletefrom零件信息where单价<600第3题:update零件信息set单价=1090where零件号="p4"第4题:双击考生文件夹下的mymenu.mnx,在菜单设计器环境下,选择"菜单"菜单中的"生成"命令,然后在"生成菜单"对话框中指定菜单程序文件的名称和存放路径,最后单击"生成按钮"。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.modi1.prg程序文件中SQLSELECT语句的功能是查询哪些零件(零件名称)目前用于三个项目,并将结果按升序存入文本文件results.txt。给出的SQLSELECT语句中在第1、3、5行各有一处错误,请改正并运行程序(不可以增、删语句或短语,也不可以改变语句行)。2.根据项目信息(一方)和使用零件(多方)两个表、利用一对多报表向导建立一个报表,报表中包含项目号、项目名、项目负责人、(联系)电话、(使用的)零件号和数量等6个字段,报表按项目号升序排序,报表样式为经营式,在总结区域(细节及总结)包含零件使用数量的合计,报表标题为"项目使用零件信息",报表文件名为report。本题主要考核点:VFP命令,报表向导的使用等知识点本题解题思路:第1题:本题是一个程序修改题。第一处错误SELECT零件名称FROM零件信息WHERE零件号=,应改为SELECT零件名称FROM零件信息WHERE零件号IN;第二处错误为GROUPBY项目号HAVINGCOUNT(项目号)=3),应改为GROUPBY零件号HAVINGCOUNT(项目号)=3);第三处错误为INFILEresults,应改为TOFILEresults第2题:本题的主要考核点是使用报表向导制作报表。启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。三、综合应用(1小题,计30分)按如下要求完成综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):1.根据"项目信息"、"零件信息"和"使用零件"三个表建立一个查询(注意表之间的连接字段),该查询包含项目号、项目名、零件名称和(使用)数量四个字段,并要求先按项目号升序排序、再按零件名称降序排序,保存的查询文件名为chaxun;2.建立一个表单,表单名和文件名均为myform,表单中含有一个表格控件Grid1,该表格控件的数据源是前面建立的查询chaxun;然后在表格控件下面添加一个"退出"命令按钮Command1,要求命令按钮与表格控件左对齐、并且宽度相同,单击该按钮时关闭表单。本题主要考核点:查询文件的建立、控件的属性的修改、表单的退出等知识点本题解题思路:第1题:建立查询的文件的方法有两种,一是用查询设计器来建立查询;二是用SQL命令来建立查询。其中以SQL命令建立查询的代码如下:SELECT项目信息.项目号,项目信息.项目名,零件信息.零件名称,使用零件.数量;nFROM零件信息INNERJOIN使用零件;INNERJOIN项目信息;ON使用零件.项目号=项目信息.项目号;ON零件信息.零件号=使用零件.零件号;ORDERBY项目信息.项目号,零件信息.零件名称DESC第2题:本题考核的知识点是表单的建立,控件的属性的修改,表单的退出。第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入creaformmyform。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"表格"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"表格"控件grid1,用类似的方法为表单再加入一个"命令按钮"控件command1;相关控件的属性值如下表所示:对象属性属性值Form1NamemyformGrid1RecordSourceType3-查询RecordSourcechaxunCommand1Caption退出******命令按钮command1(退出)的Click事件代码如下******thisform.release第三步:同时选中命令按钮与表格控件(按住shift键不放),单击主菜单栏中的"格式"->"大小"->"调整到最宽";"格式"->"对齐"->"左边对齐"。第四步:关闭并保存该表单文件。第13套题面一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生目录下完成如下操作:1.打开数据库SCORE_MANAGER,该数据库中含三个有联系的表STUDENT、SCORE1和COURSE,根据已经建立好的索引,建立表之间联系。2.为COURSE表增加字段:开课学期(N,2,0)。3.为SCORE1表"成绩"字段设置字段有效性规则:成绩>=0,出错提示信息是:"成绩必须大于或等于零"。4.将SCORE1表"成绩"字段的默认值设置为空值(NULL)。本题主要考核点:为已建立索引的表建立联系、设置字段的默认值、字段的添加、字段有效性的设置等知识点本题解题思路:第1题:本题的主要考核点是建立两个表之间永久联系。在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。第2题:本题的主要考核点是字段的添加的方法。打开COURSE表表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。第3题:本题的主要考核点是字段有效性的设置。在表设计器中,选中"成绩"字段,在"字段有效性"中的"规则"文本框中填入:成绩>=0,在"信息"文本框中中填入"成绩必须大于或等于零",单击确定。第4题:本题的主要考核点是字段默认值的设置。在表设计器对话框中,选择"成绩"字段,点击NULL列下的按钮(表示此列允许空值),然后再在"字段有效性"中的默认值中填入.NULL.,单击确定。二、简单应用(2小题,每题20分,计40分)在考生目录下完成如下简单应用:1.在SCORE_MANAGER数据库中查询学生的姓名和2003年的年龄(计算年龄的公式是:2003-Year(出生日期),年龄作为字段名),结果保存在一个新表NEW_TABLE1中。使用报表向导建立报表NEW_REPORT1,用报表显示NEW_TABLE1的内容。报表中数据按年龄升序排列,报表标题是"姓名-年龄",其余参数使用缺省参数。2.在SCORE_MANAGER数据库中查询没有选修任何课程的学生信息,查询结果包括"学号"、"姓名"和"系部"字段,查询结果按学号升序保存在一个新表NEW_TABLE2本题主要考核点:n本题的主要考核点是SQL查询语句的使用,查询去向、报表向导的使用等知识点本题解题思路:第1题:本题的主要考核点是SQL查询语句的使用,查询去向、报表向导的使用。SELECT姓名,2003-Year(出生日期)as年龄;FROMstudent;INTOTABLEnew_table1.dbf启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。第2题:本题的主要考核点是SQL查询语句的使用。SELECTStudent.学号,Student.姓名,Student.系部;FROMcourserightOUTERJOINscore1;rightOUTERJOINstudent;ONStudent.学号=Score1.学号;ONCourse.课程号=Score1.课程号;WHEREStudent.学号!=Score1.学号;ORDERBYStudent.学号;INTOTABLEnew_table2.dbf三、综合应用(1小题,计30分)SCORE_MANAGER数据库中含有三个数据库表STUDENT、SCORE1和COURSE。为了对SCORE_MANAGER数据库数据进行查询,设计一个如图所示的表单Myform1(控件名为form1,表单文件名Myform1.scx)。表单的标题为"成绩查询"。表单左侧有文本"输入学号(名称为Label1的标签)"和用于输入学号的文本框(名称为Text1)以及"查询"(名称为Command1)和"退出"(名称为Command2)两个命令按钮以及1个表格控件。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出等知识点本题解题思路:操作过程:①在命令窗口输入命令:CREATEFORMMyform1,打开表单设计器窗口。②在表格上添加各文本框、命令按钮、表格及相关的标签,并进行适当的布置和大小调整。③设置各标签、命令按钮以及表单的Caption属性值。④将表单的ColumnCount属性值设置为2(共两列)、RecordSourceType属性值设置为"4-SQL说明"。⑤将表格内两列标头的Caption属性分别设置为"课程名"和"成绩",并适当调整两列的宽度。⑥设置表单的Load事件代码:CLOSEALLUSESTUDENT⑦设置"查询"按钮的Click事件代码:GOTOPLOCATEFORStudent.学号==ALLTRIM(THISFORM.TEXT1.VALUE)IFStudent.学号==ALLTRIM(THISFORM.TEXT1.VALUE)THISFORM.GRID1.RECORDSOURCE="SELECTCourse.课程名,Score1.成绩;FROMcourseINNERJOINscore1;INNERJOINstudent;ONStudent.学号=Score1.学号;ONCourse.课程号=Score1.课程号;WHEREStudent.学号=ALLTRIM(THISFORM.TEXT1.VALUE);INTOCURSORTEMP"ELSEMESSAGEBOX("学号不存在,请重新输入学号")THISFORM.GRID1.RECORDSOURCE=''ENDIF⑧设置"退出"按钮的Click事件代码:THISFORM.RELEASEn⑨保存表单,关闭表单设计器窗口。。第十四套题面一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生目录下完成如下操作:1.建立菜单QUERY_MENU。该菜单只有"查询"和"退出"两个主菜单项(条形菜单),其中单击菜单项"退出"时,返回到VFP系统菜单(相应命令写在命令框中,不要写在过程中)。2.将COURSE表的"开课系部"字段名改为"开课单位",其余不变。3.从数据库SCORE_MANAGER中移去表TEMP2.DBF(不是删除)。4.将SCORE1表中记录按学号从低到高排序,在学号相同的情况下再按成绩从高到低排序,排序结果存入表NEW_ORDER。本题主要考核点:菜单的建立、字段改名、数据库表的逻辑删除、表的排序及查询去向等知识点本题解题思路:第1题:本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATEMENU命令直接调出菜单设计器。在菜单名称中填入"查询"、"退出","退出"结果为命令"SETSYSMENUTODEFAULT"。第2题:本题的主要考核点是字段的改名。打开COURSE表表设计器,将光标移动到"开课系部"字段格中,将其改为"开课单位"。第3题:本题的主要考核点是数据库表的逻辑删除。打开考生文件夹下的"SCORE_MANAGER"数据库,在"SCORE_MANAGER"数据库设计器中,选中"TEMP2"表,点击主菜单"数据库"下的"移去",在弹出的对话框中点击"移去"按钮,在随后弹出的对话框中点击"是"按钮,至此便完成了"从数据库"SCORE_MANAGER"中移去表TEMP2(不是删除)"的操作。第4题:本题的主要考核点是表的排序知识,查询去向。select*fromscore1orderby学号,成绩desc;intotablenew_order二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.在SCORE_MANAGER数据库中统计选修了课程的学生人数(选修多门时,只计算1次),统计结果保存在一个新表NEW_TABLE中,表中只有一个字段,字段名为学生人数。2.在SCORE_MANAGER数据库中查询没有学生选修的课程,查询结果含"课程名"和"开课单位"字段,结果按课程名升序保存在一个新表NEW_TABLE2中(注意:字段名"开课单位"是在基本操作中根据"开课系部"修改后的字段名本题主要考核点:本题的主要考核点是SQL查询语句的使用,查询去向等知识点。本题解题思路:第1题:本题可以通过新建一个程序来实现统计,相关代码如下所示:selectcount(distinct学号)as学生人数;fromscore1intotableNEW_TABLE第2题:本题的主要考核点是SQL查询语句的使用。SELECTCourse.课程名,Course.开课单位;FROMcourseLEFTOUTERJOINscore1;LEFTOUTERJOINstudent;ONStudent.学号=Score1.学号;ONCourse.课程号=Score1.课程号;WHERECourse.课程号!=Score1.课程号;ORDERBYCourse.课程名;INTOTABLEnew_table2.dbfn三、综合应用(1小题,计30分)SCORE_MANAGER数据库中含有三个数据库表STUDENT、SCORE1和COURSE。为了对SCORE_MANAGER数据库数据进行查询,设计一个表单Myform3(控件名为form1,表单文件名为Myform3)。表单标题为"成绩查询";表单有"查询"(名称为Command1)和"退出"(名称为Command2)两个命令按钮。表单运行时,单击"查询"按钮,查询每门课程的最高分,查询结果中含"课程名"和"最高分"字段,结果按课程名升序保存在表NEW_TABLE3。单击"退出"按钮,关闭表单。注意:完成表单设计后要运行表单的所有功能。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出等知识点本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入creaformMyform3。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"工具栏中,选中"命令按钮"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"控件command1,用同样的方法为表单再加入一个"命令按钮"控件command2;相关控件的属性值如下:对象属性属性值Form1Caption成绩查询Command1Caption查询Command2Caption退出****命令按钮command1(查询)的Click事件代码如下****SELECTCourse.课程名,MAX(score1.成绩)AS最高分;FROMcourseINNERJOINscore1;INNERJOINstudent;ONStudent.学号=Score1.学号;ONCourse.课程号=Score1.课程号;GROUPBYCourse.课程名;INTOTABLENEW_TABLE3****命令按钮command2(退出)的Click事件代码如下****thisform.release第十五套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生目录下完成如下操作:1.建立菜单QUERY_MENU。该菜单只有"查询"和"退出"两个主菜单项(条形菜单),其中单击菜单项"退出"时,返回到VFP系统菜单(相应命令写在命令框中,不要写在过程中)。2.将COURSE表的"开课系部"字段名改为"开课单位",其余不变。3.从数据库SCORE_MANAGER中移去表TEMP2.DBF(不是删除)。4.将SCORE1表中记录按学号从低到高排序,在学号相同的情况下再按成绩从高到低排序,排序结果存入表NEW_ORDER。本题主要考核点:菜单的建立、字段改名、数据库表的逻辑删除、表的排序及查询去向等知识点本题解题思路:第1题:本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATEMENU命令直接调出菜单设计器。在菜单名称中填入"查询"、"退出","退出"结果为命令"SETSYSMENUTODEFAULT"。第2题:本题的主要考核点是字段的改名。打开COURSE表表设计器,将光标移动到"开课系部"字段格中,将其改为"开课单位"。第3题:本题的主要考核点是数据库表的逻辑删除。打开考生文件夹下的"SCORE_MANAGER"数据库,在"SCORE_MANAGER"数据库设计器中,选中"TEMP2"表,点击主菜单"数据库"下的"移去",在弹出的对话框中点击"移去"按钮,在随后弹出的对话框中点击"是"n按钮,至此便完成了"从数据库"SCORE_MANAGER"中移去表TEMP2(不是删除)"的操作。第4题:本题的主要考核点是表的排序知识,查询去向。select*fromscore1orderby学号,成绩desc;intotablenew_order、二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.在SCORE_MANAGER数据库中统计选修了课程的学生人数(选修多门时,只计算1次),统计结果保存在一个新表NEW_TABLE中,表中只有一个字段,字段名为学生人数。2.在SCORE_MANAGER数据库中查询没有学生选修的课程,查询结果含"课程名"和"开课单位"字段,结果按课程名升序保存在一个新表NEW_TABLE2中(注意:字段名"开课单位"是在基本操作中根据"开课系部"修改后的字段名)。本题主要考核点:本题的主要考核点是SQL查询语句的使用,查询去向等知识点。本题解题思路:第1题:本题可以通过新建一个程序来实现统计,相关代码如下所示:selectcount(distinct学号)as学生人数;fromscore1intotableNEW_TABLE第2题:本题的主要考核点是SQL查询语句的使用。SELECTCourse.课程名,Course.开课单位;FROMcourseLEFTOUTERJOINscore1;LEFTOUTERJOINstudent;ONStudent.学号=Score1.学号;ONCourse.课程号=Score1.课程号;WHERECourse.课程号!=Score1.课程号;ORDERBYCourse.课程名;INTOTABLEnew_table2.dbf三、综合应用(1小题,计30分)SCORE_MANAGER数据库中含有三个数据库表STUDENT、SCORE1和COURSE。为了对SCORE_MANAGER数据库数据进行查询,设计一个表单Myform3(控件名为form1,表单文件名为Myform3)。表单标题为"成绩查询";表单有"查询"(名称为Command1)和"退出"(名称为Command2)两个命令按钮。表单运行时,单击"查询"按钮,查询每门课程的最高分,查询结果中含"课程名"和"最高分"字段,结果按课程名升序保存在表NEW_TABLE3。单击"退出"按钮,关闭表单。注意:完成表单设计后要运行表单的所有功能。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出等知识点本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入creaformMyform3。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"工具栏中,选中"命令按钮"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"控件command1,用同样的方法为表单再加入一个"命令按钮"控件command2;相关控件的属性值如下:对象属性属性值Form1Caption成绩查询Command1Caption查询Command2Caption退出****命令按钮command1(查询)的Click事件代码如下****SELECTCourse.课程名,MAX(score1.成绩)AS最高分;FROMcourseINNERJOINscore1;INNERJOINstudent;ONStudent.学号=Score1.学号;ONCourse.课程号=Score1.课程号;nGROUPBYCourse.课程名;INTOTABLENEW_TABLE3****命令按钮command2(退出)的Click事件代码如下****thisform.release第十六套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下有一表单文件myform.scx,其中包含Text1和Text2两个文本框,以及Ok和Cancel两个命令按钮。打开该表单文件,然后在表单设计器环境下通过属性窗口设置相关属性完成如下操作:1.将文本框Text1和Text2的宽度都设置为100。2.设置Text1,使其在表单打开时显示123,数据类型为字符型。3.设置Text2,使其在表单打开时显示表单的宽度值,数据类型为数值型。注意:表单打开时的初始宽度可以是任意值。4.将Ok按钮设置为"确认"按钮,即通过按Enter键就可以选择该按钮;将Cancel按钮的第1个字母C设置成"访问键",即通过按字母键C就可以选择该按钮。本题的主要考核点:表单属性的设置、快捷访问键的设置等。解题思路:1.在"文件"菜单中选择"打开"命令,打开表单设计器或直接在命令窗口中输入MODIFYFORMmyform。2.文本框Text1和Text2的width属性设置为100。3.右键点击Text1,点击"生成器"命令打开"文本框生成器"对话框,在"格式"选项卡中将数据类型设置为"字符型",将Text1的value值设为:="123";Text2的数据类型设置方法同Text1,将Text2的value值设为:=thisform.width4.将Ok按钮的default属性值设为.T.;将Cancel按钮的Caption属性设置为:(selectavg(数学)fromchengji);and英语>(selectavg(英语)fromchengji);and信息技术>(selectavg(信息技术)fromchengji);orderbyxuesheng.学号desc;intotabletable2.dbf在菜单名称中填入"返回",结果为过程,在过程中输入此命令:SETSYSMENUTODEFAULT3.最后保存菜单mymenu.mnx,并生成菜单程序mymenu.mpr,且行菜单程序并依次执行"计算"和"返回"菜单命令。第十七套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下有一表单文件myform.scx。打开该表单文件,然后在表单设计器环境下完成如下操作:1.在属性窗口中设置表单的有关属性,使表单在打开时在VFP主窗口内居中显示。2.在属性窗口中设置表单的有关属性,使表单内的Center、East、South、West和North五个按钮的大小都设置为宽60、高25。3.将West、Center和East三个按钮设置为顶边对齐,顶边距离是100;将North、Center和South三个按钮设置为左边对齐,左边距离是200。4.按Center、East、South、West、North的顺序设置各按钮的Tab键次序。本题的主要考核点:表单及表单中各控件属性的设置。解题思路:在"文件"菜单中选择"打开"命令,打开表单设计器或直接在命令窗口中输入MODIFYFORMmyform。表单及表单相关控件的属性值如下:对象属性属性值Form1AutoCenter.T.CenterHeight25Width60Top100Left200TabIndex1EastHeight25Width60Top100TabIndex2SouthHeight25Width60Left200TabIndex3WestHeight25Width60Top100TabIndex4nNorthHeight25Width60Left200TabIndex5二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.利用查询设计器创建查询,从考生目录下的xuesheng表和chengji表中查询数学、英语和信息技术三门课中至少有一门课在90分以上(含90分)的学生记录。查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序;查询去向为表table1。最后将查询保存在query1.qpr文件中,并运行该查询。2.首先创建数据库cj_m,并向其中添加xuesheng表和chengji表。然后在数据库中创建视图view1:利用该视图只能查询少数民族学生的英语成绩;查询结果包含学号、姓名、英语3个字段;各记录按英语成绩降序排序,若英语成绩相同按学号升序排序。最后利用刚创建的视图view1查询视图中的全部信息,并将查询结果存放在表table2中。本题的主要考核点是利用查询设计器建立查询、数据库的建立、向数据库中添加表、视图的建立等。第1题的解题步骤:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将xuesheng和chengji表添加入查询中,从字段中选择学号、姓名、数学、英语和信息技术5个字段;切换到"筛选"选项卡,在其中进行如下设置:字段名条件实例逻辑chengji.数学>=90ORchengji.英语>=90ORchengji.信息技术>=90切换到"排序依据"中选择字段"xuesheng.学号",在"排序选项"处选择"降序";单击查询菜单下的查询去向,选择表,输入表名table1,最后将查询保存在query1.qpr文件中,并运行该查询。第2题的解题步骤:1.创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中依次添加xuesheng表和chengji表。再通过新建命令打开视图设计器,在"添加表或视图"对话框中添加xuesheng表和chengji表,并设置两表间的联系;在"字段"选项卡中选择学号、姓名、英语3个字段;切换到"筛选"选项卡,在其中进行如下设置:字段名否条件实例逻辑xuesheng.民族√="汉"切换到"排序依据"中选择字段"chengji.英语",在"排序选项"处选择"降序",再选择字段"xuesheng.学号",在"排序选项"处选择"升序";最后将视图保存在view1文件中。2.利用刚创建的视图view1查询视图中的全部信息,在"添加表或视图"对话框中选择view1视图,在字段中选择所有字段,设置查询去向为表table2。三、综合应用(1小题,计30分)利用表设计器在考生目录下建立表table3,表结构如下:学号字符型(10)姓名字符型(6)课程名字符型(8)分数数值型(5,1)然后编写程序prog1.prg,从xuesheng表和chengji表中找出所有成绩不及格(分数小于60)的学生信息(学号、姓名、课程名和分数),并把这些数据保存到表table3中(若一个学生有多门课程不及格,在表table3中就会有多条记录)。表table3中的各记录应该按分数升序排序,分数相同则按学号降序排序。要求在程序中用SETRELATION命令建立chengji表和xuesheng表之间的关联(同时用INDEX命令建立相关的索引),并通过DOWHILE循环语句实现规定的功能。最后运行程序。本题的主要考核点是自由表的建立以及程序的创建与编写。1.建立表可以使用"文件"菜单完成,选择文件--新建--表--新建文件,在打开的表设计器中依次输入各字段内容。2.建立程序可以使用"文件"菜单完成,选择文件--新建-程序--新建文件,在打开的程序文本框中输入下列命令:SETTALKOFFOPENDATABASEcj_mSELECT*FROMtable3WHERE.f.INTOTABLEtempnSELECT1USExueshengINDEXON学号TAG学号SELECT2USEchengjiINDEXON学号TAG学号SETRELATIONTO学号INTOxueshengGOTOPDOWHILE.NOT.EOF()IFchengji.数学<60INSERTINTOtempvalues(xuesheng.学号,xuesheng.姓名,'数学',chengji.数学)ENDIFIFchengji.英语<60INSERTINTOtempvalues(xuesheng.学号,xuesheng.姓名,'英语',chengji.英语)ENDIFIFchengji.信息技术<60INSERTINTOtempvalues(xuesheng.学号,xuesheng.姓名,'信息技术',chengji.信息技术)ENDIFSKIPENDDOSELECT*FROMtempORDERBY分数,学号DESCINTOARRAYarrINSERTINTOtable3FROMARRAYarrCLOSEDATABASECLOSETABLESALLDROPTABLEtempSETTALKONRETURN最后运行程序(本评析仅供参考).第十八套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.修改菜单my_menu,my_menu中的"文件"菜单项下有子菜单项"新建"、"打开"、"关闭"和"退出",请在"关闭"和"退出"之间加一条水平的分组线,并为"退出"菜单项设置一条返回到系统菜单的命令(不可以使用过程)。2.创建一个快速报表sport_report,报表中包含了表"金牌榜"中的"国家代码"和"金牌数"两个字段。3.使用SQL建立表的语句建立一个与自由表"金牌榜"结构完全一样的自由表golden.dbf。请将该SQL语句存储在文件one.prg中,否则不得分。4.使用SQL语句向自由表golden.dbf中添加一条记录("011",9,7,11)。请将该SQL语句存储在文件two.prg中,否则不得分。本题的主要考核点是菜单的修改、快速报表的建立、复制表结构和添加表记录命令的应用等。1.修改菜单可通过"文件"菜单下的"打开"命令来打开"my_menu.mnx",也可用命令:MODIFYMENUmy_menu。选中"文件"菜单项,点"编辑"按钮,若在"关闭"和"退出"之间加一条水平的分组线,即在"关闭"和"退出"之间插入一行,"菜单名称"为:-;将"退出"项的结果设置为"命令",并输入:SETSYSMENUTODEFAULT。2.通过"文件"菜单下的"新建"命令打开报表设计器,利用"报表"菜单下的"快速报表"命令创建快速报表sport_report。3.用SQL命令复制一个空表结构的命令是:use金牌榜copystrutogolden.dbf并将此命令存储到one.prg文件中。4.用SQL命令向表中添加记录的命令是:insertintogoldenvalue("011",9,7,11),并将此命令存储到two.prg文件中。二、简单应用(2小题,每题20分,计40分)n在考生文件夹下完成如下简单应用:1.使用SQL语句完成下面的操作:根据"国家"和"获奖牌情况"两个表统计每个国家获得的金牌数("名次"为1表示获得一块金牌)结果包括"国家名称"和"金牌数"两个字段,并且先按"金牌数"降序、再按"国家名称"降序排列存储到表temp中。请将该SQL语句存储在文件three.prg中,否则不得分。2.建立一个文件名和控件名均为myform的表单,表单构造见下图。表单中包括一个列表框(List1)、一个选项组(Optiongroup1)和一个"退出"命令按钮(Command1),这三个控件名使用系统默认的名字。相关控件属性设置要求:表单的标题为"奖牌查询",列表框的数据源使用SQL语句根据"国家"表显示国家名称,选项组中有三个按钮,标题分别为金牌(Option1)、银牌(Option2)和铜牌(Option3)。本题的主要考核点是SQL语句的应用以及表单的创建、表单控件的添加和属性的设置。1.用SQL命令查询表的命令是:SELECT国家.国家名称,COUNT(获奖牌情况.名次)AS金牌数;FROM国家INNERJOIN获奖牌情况;ON国家.国家代码=获奖牌情况.国家代码;WHERE获奖牌情况.名次=1;GROUPBY国家.国家名称;ORDERBY2DESC,国家.国家名称DESC;INTOTABLEtemp.dbf并将此命令存储到three.prg文件中。2.建立表单可以使用"文件"菜单完成,选择文件--新建--表单--新建文件,在"显示"菜单中打开"表单控件工具栏",利用表单控件工具栏向表单中添加各控件;通过属性窗口设置表单及表单相关控件的属性,表单及表单相关控件的属性值如下:对象属性属性值表单NamemyformCaption奖牌查询list1RowSourceType3-SQL语句RowSourceselect国家名称from国家Optiongroup1ButtonCount3Option1Caption金牌Option2Caption银牌Option3Caption铜牌Command1Caption退出三、综合应用(1小题,计30分)打开考生文件夹下的sport_project项目,项目中有一个表单sport_form,表单中包括三个命令按钮。请完成如下操作:1.编写并运行程序Four.prg。程序功能是:根据"国家"和"获奖牌情况"两个表统计并建立一个新表"假奖牌榜",新表包括"国家名称"和"奖牌总数"两个字段,要求先按奖牌总数降序排列(注意"获奖牌情况"的每条记录表示一枚奖牌)、再按"国家名称"升序排列。2.为表单sport_form中的"生成表"命令按钮编写一条命令,执行Four.prg程序。n3.将在基本操作中建立的快速报表sport_report加入项目文件,并为表单sport_form中的命令按钮"浏览报表"编写一条命令,预览快速报表sport_report。4.将自由表"国家"和"获奖牌情况"加入项目文件sport_project,然后将项目文件连编成应用程序文件sport_app.app。第十九套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,完成如下操作:1.打开考生文件夹下的表单one(如图所示),在"显示"命令按钮的Click事件中增加一条语句,使表单运行时单击该命令按钮的结果是在Text1文本框中显示当前系统日期的年份。(提示:通过设置文本框的Value属性实现,系统日期函数是date,年份函数是year)。2.打开考生文件夹下的表单two(如图所示),选择"表单"菜单中的"新建方法程序"命令,在"新建方法程序"对话框中,为该表单新建一个方法test,该方法的功能是使"测试"按钮变为不可用。(提示:即将该按钮的Enabled属性设置为.f.)("测试"按钮的Click事件中已经有一条语句负责调用test方法)。3.创建一个快速报表study_report,报表中包含"课程表"中的所有字段。4.使用SQL语句为"教师表"的"职工号"字段增加有效性规则:职工号的最左边三位字符是110,表达式应为:LEFT(职工号,3)="110"。请将该SQL语句存储在three.prg文件中,否则不得分。本题的主要考核点是建立表单方法及方法调用、表单控件代码、快速报表的建立、SQL语句的应用。1.利用"文件"菜单下的"打开"命令来打开表单one,或使用命令MODIFYFORMone。在"显示"命令按钮的Click事件中输入代码:thisform.text1.value=year(date())2.利用"文件"菜单下的"打开"命令来打开表单two,或使用命令MODIFYFORMtwo。在"表单"菜单中选择"新建方法程序"命令,新建一个名为test的方法,在属性窗口中双击此方法打开用户自定义过程代码:thisform.command1.enabled=.f.3.通过"文件"菜单下的"新建"命令打开报表设计器,利用"报表"菜单下的"快速报表"命令创建快速报表study_report。4.使用SQL语句设置表字段有效性规则的命令是:altertable教师表alter职工号setcheckLEFT(职工号,3)="110",然后将此命令保存在three.prg文件中。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.打开数据库文件"课程管理",使用SQL语句建立一个视图salary,该视图包括了系号和(该系的)平均工资两个字段,并且按平均工资降序排列。请将该SQL语句存储在four.prg文件中,否则不得分。2.打开考生文件夹下的表单six(如图所示),"登录"命令按钮Click事件中的程序功能是:当用户输入用户名和口令以后,单击"登录"按钮时,程序根据自由表"用户表"的内容进行操作,若在"用户表"中找不到相应的用户名,则提示"用户名错误",若用户名输入正确,而口令输入错误,则提示"口令错误"。在"登录"命令按钮Click事件中空行处填加适当的语句,使其能够正确运行。注意:不得做其他修改。n本题的主要考核点是SQL语句的应用、文件的创建、表单控件代码等。1.利用"文件"菜单下的"打开"命令来打开数据库文件"课程管理",或使用命令MODIFYDATABASE课程管理。使用SQL语句来建立视图salary,SQL命令为:createsqlviewsalaryas;select教师表.系号,AVG(教师表.工资)AS平均工资;FROM课程管理!教师表;GROUPBY教师表.系号;ORDERBY2DESC并将此命令语句存储在four.prg文件中。2.利用"文件"菜单下的"打开"命令来打开表单six,或使用命令MODIFYFORMsix。根据题目要求在"登录"命令按钮的Click事件的空行处添加适当的语句:USE用户表GOTOPflag=0dowhilenoteof()&&添加一条语句IFAlltrim(用户名)==Alltrim(Thisform.Text1.Value)IFAlltrim(口令)==Alltrim(Thisform.Text2.Value)WAIT"欢迎使用"WINDOWTIMEOUT2ELSEWAIT"口令错误"WINDOWTIMEOUT2endif&&添加一条语句flag=1EXITENDIFskip&&添加一条语句ENDDOIFflag=0&&添加一条语句WAIT"用户名错误"WINDOWTIMEOUT2ENDIF三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:1.建立一个如图所示的表单名和文件名均为myform的表单。表单的标题是"教师情况",表单中有两个命令按钮(Command1和Command2),两个复选框(Check1和Check2)和两个单选钮(Option1和Option2)。Command1和Command2的标题分别是"生成表"和"退出",Check1和Check2的标题分别是"系名"和"工资",Option1和Option2的标题分别是"按职工号升序"和"按职工号降序"。n2.为"生成表"命令按钮编写程序。程序的功能是根据表单运行时复选框指定的字段和单选钮指定的排序方式生成新的自由表。如果两个复选框都被选中,生成的自由表命名为two.dbf,two.dbf的字段包括职工号、姓名、系名、工资和课程号;如果只有"系名"复选框被选中,生成的自由表命名为one_x.dbf,one_x.dbf的字段包括职工号、姓名、系名和课程号;如果只有"工资"复选框被选中,生成的自由表命名为one_xx.dbf,one_xx.dbf的字段包括职工号、姓名、工资和课程号。3.运行表单,并分别执行如下操作:(1)选中两个复选框和"按职工号升序"单选钮,单击"生成表"命令按钮;(2)只选中"系名"复选框和"按职工号降序"单选钮,单击"生成表"命令按钮;(3)只选中"工资"复选框和"按职工号降序"单选钮,单击"生成表"命令按钮。本题的主要考核点是表单的创建、表单控件的添加、表单控件属性的设置以及控件代码等。1.利用"文件"菜单下的"新建"命令可创建新的表单文件,在"显示"菜单中打开表单控件工具栏,通过表单控件工具栏向表单中添加各控件。2.通过属性窗口设置表单及各控件的相关属性,表单及各控件的相关属性值如下:对象属性名值表单NamemyformCaption教师情况Command1Caption生成表Command2Caption退出Check1Caption系名Check2Caption工资Option1Caption按职工号升序Option2Caption按职工号降序3.为"生成表"命令按钮的Click事件编写程序代码:a=thisform.check1.valueb=thisform.check2.valuec=thisform.optiongroup1.option1.valued=thisform.optiongroup1.option2.valueifa=1andb=1ifc=1select职工号,姓名,系名,工资,课程号from课程管理!教师表,课程管理!学院表;where教师表.系号=学院表.系号;orderby职工号;intotabletwo.dbfelseifd=1select职工号,姓名,系名,工资,课程号from课程管理!教师表,课程管理!学院表;where教师表.系号=学院表.系号;orderby职工号desc;intotabletwo.dbfendifendifendififa=1andb=0nifc=1select职工号,姓名,系名,课程号from课程管理!教师表,课程管理!学院表;where教师表.系号=学院表.系号;orderby职工号;intotableone_x.dbfelseifd=1select职工号,姓名,系名,课程号from课程管理!教师表,课程管理!学院表;where教师表.系号=学院表.系号;orderby职工号desc;intotableone_x.dbfendifendifendififa=0andb=1ifc=1select职工号,姓名,工资,课程号from课程管理!教师表,课程管理!学院表;where教师表.系号=学院表.系号;orderby职工号;intotableone_xx.dbfelseifd=1select职工号,姓名,工资,课程号from课程管理!教师表,课程管理!学院表;where教师表.系号=学院表.系号;orderby职工号desc;intotableone_xx.dbfendifendifendif4.将表单以myform为文件名保存在考生文件夹下并根据题目要求运行表单,生成正确的记录。第二十套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,打开"宾馆"数据库,完成如下操作:1.打开"客户"表,给"性别"字段增加约束:性别只能为"男"或"女",默认值为:"女",表达式为:性别$"男女";2.为"入住"表创建一个主索引,主索引的索引名为fkkey,索引表达式为:"客房号+客户号";3.根据各表的名称、字段名的含义和存储的内容建立表之间的永久联系,并根据要求建立相应的普通索引,索引名与建索引的字段名相同,升序排序。4.使用SQL的SELECT语句查询"客户"表中性别为"男"的客户号、身份证、姓名和工作单位字段值,并将结果存储到名为TABA的表(注意,该表不需要排序)。请将该语句存储到名为ONE.PRG的文件中。本题的主要考核点是主字段有效规则的建立、索引的建立,为已建立索引的表建立永久联系,SQL语言的使用。1.利用"文件"菜单下的"打开"命令打开数据库"宾馆"。再打开"客户"表的表设计器,选择"性别"字段,在其字段有效性规则栏中输入:性别$"男女",在默认值栏中输入:"女"。2.打开"入住"表的表设计器,打开"索引"选项卡,在索引名处输入:fkkey,类型选择"主索引",表达式为:客房号+客户号。3.分别建立各表相应的普通索引表,分别为"入住"表建立索引名和索引表达式均为"客房号"和"客户号"的普通索引,为"客房"表建立索引名和索引表达式均为"类型号"的普通索引。在数据库设计器中建立四个表的联系:选中"客户"表中的主索引"客户号",按住鼠标拖动到"入住"表的普通索引"客户号"上,用同样的方法可以建立"客房"表和"入住"表的"客房号"之间的联系,"房价"表和"客房"表的"类型号"之间的联系。4.使用SQL语句查询相应的记录值,SQL命令为:SELECT客户号,身份证,姓名,工作单位FROM客户;WHERE性别="男";INTOTABLETABA.DBFn二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开"宾馆"数据库,完成如下简单应用:1.使用查询设计器设计一个名称为TWO的查询,查询房价价格大于等于280元的每个客房的客房号、类型号(来自客房表)、类型名和价格。查询结果按类型号升序排序,并将查询结果输出到表TABB中。设计完成后,运行该查询。2.修改一个名称为THREE.PRG的命令文件。该命令文件用来查询与"姚小敏"同一天入住宾馆的每个客户的客户号、身份证、姓名、工作单位,查询结果包括"姚小敏"本人。查询结果输出到表TABC中。该命令文件在第3行、第5行、第7行和第8行有错误(不含注释行),打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。修改完成后,运行该命令文件本题的主要考核点是利用查询设计器建立查询、修改程序文件等。第1题的解题步骤:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"房价"和"客房"表添加入查询中并建立相关联接,从字段中选择客房号、类型号、类型名和价格4个字段;切换到"筛选"选项卡,在其中进行如下设置:字段名条件实例逻辑房价.价格>=280切换到"排序依据"中选择字段"客房表.类型号",在"排序选项"处选择"升序";单击查询菜单下的查询去向,选择表,输入表名TABB,最后将查询保存在TWO.QPR文件中,并运行该查询。第2题的解题步骤:利用"文件"菜单下的"打开"命令打开程序文件THREE.PRG或者用命令:MODIFYCOMMANDTHREE.PRG来打开文件。将命令文件中修改为:OPENDATABASE宾馆SELECT客户.客户号,身份证,姓名,工作单位;FROM客户JOIN入住on客户.客户号=入住.客户号;WHERE入住日期IN;(SELECT入住日期;FROM客户,入住;WHERE客户.客户号=入住.客户号AND姓名="姚小敏");INTOTABLETABC三、综合应用(1小题,计30分)在考生文件夹下,先打开"宾馆"数据库,然后创建一个文件名为test的表单,如图所示。该表单完成如下综合应用:在该表单中设计一个标签(Label1)、一个文本框(Text1)和两个命令按钮。标签的标题文本为"退房日期大于或等于"。文本框用于输入退房日期。两个命令按钮的功能如下:⑴"查询"按钮(Command1):在该按钮的Click事件中使用SQL的SELECT命令查询退房日期大于或等于输入日期的客户号、身份证、姓名、工作单位和该客户入住的客房号、类型名、价格信息,查询结果按价格降序排序,并将查询结果存储到表TABD中。表TABD的字段为客户号、身份证、姓名、工作单位、客房号、类型名、价格。⑵"退出"按钮(Command2)的功能是"关闭和释放表单"。表单设计完成后,运行该表单,查询退房日期大于或等于2005-04-01的顾客信息本题的主要考核点是表单的创建、表单控件的添加、表单控件属性的设置以及控件代码等。1.利用"文件"菜单下的"新建"命令可创建新的表单文件,在"显示"n菜单中打开表单控件工具栏,通过表单控件工具栏向表单中添加各控件。2.通过属性窗口设置表单及相关各控件的属性,表单及相关各控件的属性值如下:对象属性名值Lable1Caption退房日期大于或等于Command1Caption查询Command2Caption退出3.为"查询"命令按钮的Click事件编写程序代码:SELECT客户.客户号,客户.身份证,客户.姓名,客户.工作单位,客房.客房号,;房价.类型名,房价.价格;FROM宾馆!客户,宾馆!房价,宾馆!入住,宾馆!客房;WHERE客户.客户号=入住.客户号;AND客房.客房号=入住.客房号;AND房价.类型号=客房.类型号;AND入住.退房日期>=ctod(thisform.text1.value);ORDERBY房价.价格DESC;INTOTABLEtabd.dbf4.为"退出"命令按钮的Click事件编写程序代码:THISFORM.RELEASE5.最后以test为文件名将表单保存在考生文件夹下,并运行该表单。第21套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.建一个表单,表单文件名和表单控件名均为myform。2.将myform表单设置为模式表单,并将其标题设置为"表单操作"。3.将考生目录中的xuesheng表和chengji表依次添加到myform表单的数据环境中。确保两个表对应的对象名称分别为cursor1和cursor2。4.在数据环境中为xuesheng表和chengji表建立关联关系:当xuesheng表中的记录指针移动时,chengji表中的记录指针会自动移到学号相同的对应记录上。本题的主要考核点是表单文件的创建、控件的属性的修改、数据环境的添加以及建立表之间的关系等知识点。1.利用"文件"菜单下的"新建"命令可创建新的表单文件,将表单保存为myform.scx。2.通过属性窗口设置表单的属性,表单及相关各控件的属性值如下:对象属性名值myformNamemyformmyformWindowType1-模式myformCaption表单操作3.为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境",将xuesheng表和chengji表依次添加到数据环境之中。4.在数据环境中,选中xuesheng表中的"学号",按住鼠标拖动到chengji表的"学号"字段上。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.利用查询设计器创建查询,从xuesheng和chengji表中查询数学、英语和信息技术三门课都在85分以上(含),或者数学、英语都在90分以上(含)而信息技术在75分以上(含)的学生记录。查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序;查询去向为表table1。最后将查询保存在query1.qpr文件中,并运行该查询。2.首先创建数据库cj_m,并向其中添加xuesheng表和chengji表。然后在数据库中创建视图view1:利用该视图只能查询20001001班(学号的前8位数字串为班号)的学生记录;查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序。最后利用刚创建的视图view1查询视图中的全部信息,并将查询结果存放在表table2中。本题的主要考核点是利用查询设计器建立查询、数据库的建立、向数据库中添加表、视图的建立等知识点。第1题的解题步骤:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将xuesheng和chengji表添加入查询中,从字段中选择学号、姓名、数学、英语和信息技术5个字段;切换到"筛选"选项卡,在其中进行如下设置:n字段名条件实例逻辑chengji.数学>=85ANDchengji.英语>=85ANDchengji.信息技术>=85ORchengji.数学>=90ANDchengji.英语>=90ANDchengji.信息技术>=75切换到"排序依据"中选择字段"xuesheng.学号",在"排序选项"处选择"降序";单击查询菜单下的查询去向,选择表,输入表名table1,最后将查询保存在query1.qpr文件中,并运行该查询。第2题的解题步骤:1.创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,数据库文件名为cj_m,在数据库设计器中依次添加xuesheng表和chengji表。再通过新建命令打开视图设计器,在"添加表或视图"对话框中添加xuesheng表和chengji表,并设置两表间的联系;在"字段"选项卡中选择学号、姓名、数学、英语和信息技术5个字段;切换到"筛选"选项卡,在其中进行如下设置:字段名条件实例LEFT(Chengji.学号,8)="20001001"换到"排序依据"中选择字段"xuesheng.学号",在"排序选项"处选择"降序";最后将视图保存在view1文件中。2.利用刚创建的视图view1查询视图中的全部信息,在"添加表或视图"对话框中选择view1视图,在字段中选择所有字段,设置查询去向为表table2。三、综合应用(1小题,计30分)在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前vfp系统菜单的末尾追加一个"考试"子菜单,如下图所示。菜单命令"计算"和"返回"的功能都通过执行过程完成。菜单命令"计算"的功能如下:1)先用SQL-SELECT语句完成查询:按学号降序列出所有学生在学号、姓名、数学、英语和信息技术5个字段上的数据,查询结果存放在表table3中。2)用ALTERTABLE语句在表table3中添加一个"等级"字段,该字段为字符型,宽度为4。3)最后根据数学、英语和信息技术的成绩为所有学生计算等级:三门课程都及格(大于等于60分)且平均分大于等于90分的填为"优",三门课程都及格且平均分大于等于80分、小于90分的填为"良";三门课程都及格且平均分大于等于70分、小于80分的填为"中";三门课程都及格且平均分小于70分的填为"及格";其他的填为"差"。菜单命令"返回"的功能是恢复标准的系统菜单。菜单程序生成后,运行菜单程序并依次执行"计算"和"返回"菜单命令。本题的主要考核点是菜单的创建等知识点。1.建立菜单可以使用"文件"菜单完成,选择文件--新建--菜单--新建文件打开菜单设计器。打开"显示"菜单下的"常规选项"对话框,在"位置"处选择追加,则新建立的子菜单会在当前vfp系统菜单后显示。2.在菜单名称中填入"考试",结果为子菜单,单击创建;在子菜单的菜单名称中输入"计算",结果为过程。在过程中输入下列命令:SELECTXuesheng.学号,Xuesheng.姓名,Chengji.数学,Chengji.英语,;Chengji.信息技术;FROMcj_m!chengjiINNERJOINcj_m!xuesheng;ONChengji.学号=Xuesheng.学号;ORDERBYXuesheng.学号DESC;INTOTABLEtable3.dbfALTERTABLEtable3ADDCOLUMN等级char(4)updatetable3set等级='优'wheretable3.数学>=60andtable3.英语>=60andtable3.信息技术>=60and(table3.数学+table3.英语+table3.信息技术)>=270updatetable3set等级='良'wheretable3.数学>=60andtable3.英语>=60andtable3.信息技术>=60and(table3.数学+table3.英语+table3.信息技术)>=240and(table3.数学+table3.英语+table3.n信息技术)<270updatetable3set等级='中'wheretable3.数学>=60andtable3.英语>=60andtable3.信息技术>=60and(table3.数学+table3.英语+table3.信息技术)>=210and(table3.数学+table3.英语+table3.信息技术)<240updatetable3set等级='及格'wheretable3.数学>=60andtable3.英语>=60andtable3.信息技术>=60and(table3.数学+table3.英语+table3.信息技术)>=180and(table3.数学+table3.英语+table3.信息技术)<210updatetable3set等级='差'where等级=""在菜单名称中填入"返回",结果为过程,在过程中输入此命令:SETSYSMENUTODEFAULT3.最后保存菜单mymenu.mnx,并生成菜单程序mymenu.mpr,且运行菜单程序并依次执行"计算"和"返回"菜单命令。第22套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成下列操作:1.打开表单one(如图1所示),通过设置控件的相关属性,使得表单运行时的开始焦点在"打开"命令按钮,并且接下来的焦点的移动顺序是"关闭"和"退出"。图12.打开表单two(如图2所示),使用"布局"工具栏的"顶边对齐"按钮将表单中的三个命令按钮控件的顶边对齐(如图3所示)。3.使用SQL语句创建一个名为"分组情况表"的自由表,"分组情况表"有两个字段:组号和组名,组号占两个字符,组名占10个字符。请将该SQL语句存储在three.prg中,否则不得分。4.使用SQL语句插入一个记录到"分组情况表"中,插入的内容是,组号:"01",组名:"通俗唱法"。请将该SQL语句存储在four.prg中,否则不得分。本题的主要考核点是表单控件的属性的修改、SQL语句的使用。1.打开表单one,通过属性窗口设置表单的属性,表单及相关各控件的属性值如下:对象属性名值Command1TabIndex1Command2TabIndex2Command3TabIndex32.打开表单two,三个命令按钮控件,选择"格式"菜单下"对齐"菜单下的"顶边对齐"。3.建立程序可以使用"文件"菜单完成,选择文件--新建-程序--新建文件,在打开的程序文本框中输入下列命令:createtable分组情况表(组号c(2),组名c(10)),最后运行程序,并将该SQL语句存储在three.prg中。用同样的方法建立four.prg,在打开的程序文本框中输入下列命令:insertinto分组情况表values("01","通俗唱法"),最后运行程序。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成下列操作:1.歌手比赛分为四个组,"歌手表"中的"歌手编号"字段的左边两位表示了该歌手所在的组号。考生目录下的程序文件five.prg的功能是:根据"歌手表"计算每个组的歌手人数,将结果填入表one.dbf,表one.dbfn中有两个字段:"组号"和"歌手人数"。程序中有三处错误,请修改并执行程序。注意:只能修改标有错误的语句行,不能修改其他语句,数组名A不允许修改。2.建立一个数据库文件"歌手大奖赛.dbc",并将"歌手表"、"评委表"和"评分表"三个自由表添加到该数据库中。使用视图设计器建立视图songer_view,该视图根据"歌手表"、"评委表"和"评分表"建立,视图中的字段项包括:评委姓名、歌手姓名、分数,视图中的记录按"歌手姓名"升序、"分数"降序排列。本题的主要考核点是VFP命令,数据库的建立和视图的建立等知识点。本题解题思路:第一步:本题是一个程序修改题。第一处错误应改为DOWHILENOTEOF();第二处错误应改为SELECTCOUNT(*)FROM歌手表WHERELEFT(歌手表.歌手编号,2)=zuhaoINTOARRAYA;第三处错误应改为REPLACE歌手人数WITHA。第二步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"数据库",点击"新建文件"按钮,在弹出的对话框的"数据库名"处输入"歌手大奖赛",单击保存按钮。选择"数据库"菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的歌手表,再点击"确定"即可,这样歌手表就添加到了"歌手大奖赛"数据库中,用同样的方法,将"评委表"和"评分表"也添加到"歌手大奖赛"数据库中。第三步:在新建对话框中选择"视图"或用CREATVIEW命令打开视图设计器。建立一个视图,将"歌手表"、"评委表"和"评分表"添加到视图中,并将题中指定字段添加入视图;切换到"排序依据"中选择字段"歌手表.歌手姓名",在"排序选项"处选择"升序";再选择字段"评分表.分数",在"排序选项"处选择"降序";最后将视图命名为songer_view。三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:1.建立一个文件名和表单名均为myform的表单,表单中包括一个列表框(List1)和两个命令按钮(Command1和Command2),Command1和Command2的标题分别为"计算"和"退出"。2.列表框(List1)中应显示组号,通过RowSource和RowSourceType属性手工指定列表框的显示条目为01、02、03、04(注意不要使用命令指定这两个属性,否则将不能得分)。3.为"计算"命令按钮编写程序。程序的功能是:表单运行时,根据列表框中选定的"组号",将"评分表"中该组歌手("歌手编号"字段的左边两位表示了该歌手所在的组号)的所有记录存入自由表two.dbf中,two.dbf的表结构与"评分表"相同,表中的记录先按"歌手编号"降序、再按"分数"升序排列。4.运行表单,在列表框中指定组号"01",并且单击"计算"命令按钮。注意:结果two表文件中只能且必须包含01组歌手的评分信息。本题的主要考核点是表单的创建、表单控件的添加、表单控件属性的设置以及控件代码等知识点。1.利用"文件"菜单下的"新建"命令可创建新的表单文件,在"显示"菜单中打开表单控件工具栏,通过表单控件工具栏向表单中添加各控件。2.通过属性窗口设置表单及相关各控件的属性,表单及相关各控件的属性值如下:对象属性名值myformNamemyformCommand1Caption计算Command2Caption退出List1RowSource01,02,03,04List1RowSourceType1-值3.为"计算"命令按钮的Click事件编写程序代码:SELECT*FROM评分表WHEREleft(评分表.歌手编号,2)=thisform.list1.list(thisform.list1.listindex)INTOTABLEtwo.dbfORDERBY评分表.歌手编号DESC,评分表.分数4.最后以myform为文件名将表单保存在考生文件夹下,并运行该表单。第23套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成下列操作:1.利用快捷菜单设计器创建一个弹出式菜单one(如图1所示),菜单有两个选项。"增加"和"删除",两个选项之间用分组线分隔。图12.创建一个快速报表app_report,报表中包含了"评委表"中的所有字段。3.建立一个数据库文件"大奖赛.dbc",并将"歌手表"、"评委表"和"评分表"三个自由表添加到该数据库中。4.使用SQL语句为"评委表"的"评委编号"字段增加有效性规则:评委编号的最左边两位字符是11(使用LEFTn函数),并将该SQL语句存储在three.prg中,否则不得分。本题主要考核点是快捷菜单的建立,快速报表的建立、数据库的建立、SQL语句的使用等知识点。本题解题思路:第一步:在"文件"菜单中选择"新建",在"新建"对话框中选择"菜单",单击"新建文件"按钮,选择"快捷菜单",在菜单设计器中输入两个菜单项"增加"和"删除",若在"增加"和"删除"之间加一条水平的分组线,即在"关闭"和"退出"之间插入一行,"菜单名称"为:-;单击"菜单"菜单中的"生成",按提示保存为one,并生成菜单程序文件(MPR)。第二步:通过"文件"菜单下的"新建"命令打开报表设计器,利用"报表"菜单下的"快速报表"命令创建快速报表app_report。第三步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"数据库",点击"新建文件"按钮,在弹出的对话框的"数据库名"处输入"大奖赛",单击保存按钮。选择"数据库"菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的歌手表,再点击"确定"即可,这样表歌手表就添加到了"大奖赛"数据库中,用同样的方法,将"评委表"和"评分表"也添加到"大奖赛"数据库中。第四步:使用SQL语句设置表字段有效性规则的命令是:altertable评委表alter评委编号setcheckLEFT(评委编号,2)="11",然后将此命令保存在three.prg文件中。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成下列操作:1.建立一个文件名和表单名均为two的表单,然后为表单two建立一个名为quit的新方法(单击选择表单后,从"表单"菜单中选择"新建方法程序"命令),并在该方法中写一条语句Thisform.release;最后向表单中添加一个命令按钮(Command1),并在该命令按钮的Click事件中写一条语句调用为表单建立的新方法quit。2.使用SQL语句计算每个歌手的最高分、最低分和平均分,并将结果存储到result.dbf表中(包含歌手姓名、最高分、最低分和平均分4个字段),要求结果按平均分降序。本题的主要考核点是建立表单方法及方法调用、SQL语句的应用表单控件的添加与事件代码等知识点。第1题:利用"文件"菜单下的"新建"命令可创建新的表单文件,将将表单保存为two.scx。在"表单"菜单中选择"新建方法程序"命令,新建一个名为quit的方法,在属性窗口中双击此方法打开用户自定义过程代码:Thisform.release。向表单中添加一个命令按钮(Command1),在此命令按钮的Click事件中输入代码:thisform.quit。第2题:SQL查询语句为:SELECT歌手表.歌手姓名,MAX(评分表.分数)AS最高分,;MIN(评分表.分数)AS最低分,AVG(评分表.分数)AS平均分;FROM大奖赛!歌手表INNERJOIN大奖赛!评分表;ON歌手表.歌手编号=评分表.歌手编号;GROUPBY歌手表.歌手编号;ORDERBY4DESC;INTOTABLEresult.dbf三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:图21.建立一个表单名和文件名均为myform的表单(如图2所示)。表单的标题是"评委打分情况",表单中有两个命令按钮(Command1和Command2)和两个单选钮(Option1和Option2)。Command1和Command2的标题分别是"生成表"和"退出",Option1和Option2的标题分别是"按评分升序"和"按评分降序"。2.为"生成表"命令按钮编写程序,程序的功能是根据简单应用题生成的result.dbf表按指定的排序方式生成新的表,单选钮选择"按评分升序"时,依次按最高分、最低分和平均分3个字段升序排序生成表six_a,单选钮选择"按评分降序"时,依次按最高分、最低分和平均分3个字段降序排序生成表six_d。n3.运行表单,选择"按评分升序"单选钮,单击"生成表"命令按钮;再选择"按评分降序"单选钮,单击"生成表"命令按钮(注意必须执行)。本题主要考核点:表单的创建、控件的属性的修改、SQL查询等知识点。本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入creaformmystu。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"选项按钮组"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"选项按钮组"控件optiongroup1,用类似的方法为表单加入一个"命令按钮"控件command2。相关控件的属性值如下表所示:对象属性属性值myformCaption评委打分情况myformNamemyformMyOption.option1Caption按评分升序MyOption.option2Caption按评分降序Command1Caption生成表Command2Caption退出***命令按钮command1(生成表)的Click事件代码如下****DOCASECASETHISFORM.Optiongroup1.VALUE=1SELECT*;FROMresult;ORDERBYResult.最高分,Result.最低分,Result.平均分;INTOTABLEsix_a.dbfCASETHISFORM.Optiongroup1.VALUE=2SELECT*;FROMresult;ORDERBYResult.最高分DESC,Result.最低分DESC,Result.平均分DESC;INTOTABLEsix_d.dbf最后运行表单,选择"按评分升序"单选钮,单击"生成表"命令按钮;再选择"按评分降序"单选钮,单击"生成表"命令按钮。第24套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成下列操作:1.打开表单one,向其中添加一个组合框(Combo1),并将其设置为下拉列表框。2.在表单one中,通过RowSource和RowSourceType属性手工指定组合框Combo1的显示条目为"上海"、"北京"(不要使用命令指定这两个属性),显示情况如图1所示。图13.向表单one中添加两个命令按钮Command1和Command2,其标题分别为"统计"和"退出"。为"退出"命令按钮的Click事件写一条命令,执行该命令时关闭和释放表单。4.为表单one中的"统计"命令按钮的Click事件写一条SQL命令,执行该命令时,将"歌手表"中所有"歌手出生地"为上海歌手的全部信息存入自由表birthplace中。本题主要考核点:表单控件的使用(组合框,按钮),SQL查询命令,表单的退出等知识点。本题解题思路:n1、打开表单one,在表单上添加各组合框、命令按钮,并进行适当的布置和大小调整。2、根据题面要求设置各组合框、命令按钮的属性值。3、将表单的RecordSourceType属性值设置为"1-值",将表单的RecordSource设置为"上海,北京",将Style设置为设置为"2-下拉列表框"。4、设置"退出"按钮的Click事件代码:THISFORM.RELEASE5、设置"统计"按钮的Click事件代码:select*from歌手表.dbfwhere歌手出生地=thisform.combo1.list(thisform.combo1.listindex)INTOTABLEbirthplace.dbf二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成下列操作:1.建立一个查询score_query。查询评委为"歌手编号"是"01002"的歌手所打的分数,结果存入自由表result中,该自由表的字段项包括:"评委姓名"和"分数",各记录按分数升序排列。最后运行该查询。2.根据上一步操作得到的自由表result建立一个报表。要求:(1)使用报表向导建立报表,报表中包括"评委姓名"和"分数"两个字段,按"分数"字段降序排列,报表标题设置为空,报表文件命名为score_result。(2)打开报表score_result,利用报表控件标签,将"王岩盐得分情况"添加到报表中作为报表的标题。本题主要考核点:SQL中的查询SELECT查询、联接查询、查询的排序、查询的结果的去向等;报表的建立方法等知识点。解题思路:1、使用查询设计器建立查询:单击"新建"按钮,在弹出的对话框中选择"新建查询"->这时查询设计器打开,将"评分表","评委表"添加到查询设计器中(将"评分表","评委表"之间通过"评委编号"字段建立关联)->在查询设计器下方的"字段"选项卡中选中并添加题中要求的字段->在"筛选"选项卡中的"字段"列中选择"歌手编号",条件列中选择"=",结果列中输入"01002",在"排序依据"选项卡中选择"分数"字段,升序排列->单击菜单栏上的"查询"-"查询去向"铵钮->在弹出的"查询去向"对话框中选择表,并在表名处输入表名result->单击工具栏上的运行铵钮->单击工具栏上的保存铵钮,输入查询文件名score_query,保存查询后关闭查询设计器。2、单击"文件"菜单中的"新建",在类型选择对话框中选择"报表",单击"向导"按钮,在弹出的向导选取中选择"报表向导"后点确定。在"报表向导"的"数据库和表"中选择打开自由表result,将可用字段中的"评委姓名"和"分数"添加到选定字段后单击下一步,在步骤5-排序记录中选择按"分数"字段降序排列,报表标题设置为空,报表文件命名为score_result。打开报表score_result,选择主菜单"报表"下的"标题/总结(T)",弹出"标题/总结"对话框,在"报表标题"类型中选择"标题带区",单击"确定"按钮,这样就在报表中加入了一个"标题带区",打开"报表控件工具栏",在打开的"报表控件"中选择"标签"控件,在标题带区点击鼠标,输入"王岩盐得分情况"。最后将报表文件保存在考生文件夹下。三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:1.编写程序并执行,计算"01"组(歌手编号的前2位)歌手的得分并将结果存入自由表FINAL.DBF中。FINAL.DBF包含"歌手姓名"和"得分"两个字段,"得分"取各评委所打分数的平均值。FINAL.DBF中的结果按得分降序、歌手姓名降序排列。请将程序存储在two.prg中,否则不得分。2.新建一个文件名和表单名均为score_form的表单,向表单添加一个命令按钮Command1,标题为"计算",为该命令按钮的Click事件增加命令,调用two.prg程序执行。最后运行该表单,并单击"计算"按钮执行two程序。3.新建一个项目文件score_project,将自由表"歌手表"、"评委表"和"评分表"以及表单文件score_form加入该项目,然后将项目文件连编成应用程序文件score_app。本题主要考核点:SQL中的查询操作,表单的创建等知识点。解题思路:1、SELECT歌手表.歌手姓名,avg(评分表.分数)as得分;FROM歌手表INNERJOIN评分表ON歌手表.歌手编号=评分表.歌手编号WHEREleft(歌手表.歌手编号,2)="01";GROUPBY歌手表.歌手姓名;ORDERBY2DESC,歌手表.歌手姓名DESCINTOTABLEfinal.dbf2、点击"新建"->"表单",在属性窗口将"NAME"设置为score_form,点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"中,选中"命令按钮",在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"对象ncommand1,设置它的caption属性为"计算",双击command1在打开的代码编辑器窗口中输入以下代码:DOtwo.prg作为command1的CLICK的事件代码。最后运行该表单,并单击"计算"按钮执行two程序。3、点击"新建"->"项目",以"score_project"保存,在项目管理器的"数据"选项卡选择自由表,单击"添加",在"打开"对话框中选择要添加的自由表"歌手表"、"评委表"和"评分表",在"文档"选项卡选择表单,单击"添加",在"打开"对话框中选择要添加的表单文件score_form。点击连编按钮,在"连编选项"中选择"连编应用程序",以文件名score_app保存。第25套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作(自由表employee中存放着职员的有关数据):1.利用表设计器为employee表创建一个普通索引,索引表达式为"姓名",索引名为xm。2.打开考生目录下的表单文件formone.scx,然后设置表单的Load事件代码:打开employee表,并将索引xm设置为当前索引。3.在formone表单中添加一个列表框,并设置列表框的属性:名称为mylist;高度为60;可以多重选择。4.设置formone表单中mylist列表框的有关属性,其中RowSourceType属性为字段,使得当表单运行时,列表框内显示employee表中姓名字段的值。本题主要考核点:表中索引的创建,表单的设计及列表框相关属性的设置等知识点。解题思路:1.打开"employee"表的表设计器,打开"索引"选项卡,在索引名处输入:xm,类型选择"普通索引",表达式为:姓名。2、打开表单文件formone.scx,然后设置表单的Load事件代码:useemployee.dbfsetordertoxm3、选中工具栏里的"列表框"按钮,在表单设计器中拖动鼠标,这样在表单上得到一个"列表框"对象list1,设置它的name属性为"mylist",height属性为"60",multiselect属性为"T"。4、设置mylist列表框的有关属性,RowSourceType属性为"6-字段",RowSource属性为"employee.姓名"。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成以下简单应用(自由表order中存放着订单的有关数据):1.利用查询设计器创建查询,从employee和order表中查询金额最高的10笔订单。查询结果依次包含订单号、姓名、签订日期、金额4个字段;各记录按金额降序排序;查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。2.首先创建数据库order_m,并向其中添加employee表和order表。然后在数据库中创建视图viewone:利用该视图只能查询组别为1的职员的有关数据;查询结果依次包含职员号、姓名、订单号、签订日期、金额5个字段;各记录按职员号升序排序,若职员号相同则按金额降序排序。最后利用刚创建的视图查询视图中的全部信息,并将查询结果存放在表tabletwo中。本题主要考核点:查询及数据库的创建等知识点。解题思路:1、使用查询设计器建立查询:单击"新建"按钮,在弹出的对话框中选择"新建查询"->这时查询设计器打开,将"employee"和"order"添加到查询设计器中(将"employee","order表"之间通过"职员号"字段建立关联)->在查询设计器下方的"字段"选项卡中选中并添加题中要求的字段->在"排序依据"选项卡中选择"金额"字段,降序排列->在"杂项"选项卡中选择记录个数为10->单击菜单栏上的"查询"->"查询去向"铵钮->在弹出的"查询去向"对话框中选择表,并在表名处输入表名tableone->单击工具栏上的运行铵钮->单击工具栏上的保存铵钮,输入查询文件名queryone.qpr,保存查询后关闭查询设计器。2、选择文件->新建->数据库->新建文件,以order_m保存。在数据库设计器中依次添加employee表和order表。再通过新建命令打开视图设计器,在"添加表或视图"对话框中添加employee表和order表,并设置两表间的联系;在"字段"选项卡中选择职员号、姓名、订单号、签订日期、金额5个字段;切换到"筛选"选项卡,在其中字段名"组别"="1",切换到"排序依据"中选择字段"职员号",在"排序选项"处选择"升序",选择"金额"降序排序,最后利用刚创建的视图viewone查询视图中的全部息,在"添加表或视图"对话框中选择viewone视图,在字段中选择所有字段,设置查询去向为表tabletwo。三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:(1)创建自由表tablethree,其结构如下:n姓名C(6)最高金额N(6,2)最低金额N(6,2)平均金额N(6,2)(2)设计一个进行查询统计的表单formtwo.scx,其界面如下图所示。其中表格的名称为Grid1,"查询统计"按钮的名称为Command1,"退出"按钮的名称为Command2,文本框的名称为Text1。当在文本框输入某职员姓名并单击"查询统计"按钮时,会在左边的表格内显示该职员所签各订单的金额,并将其中的最高金额、最低金额和平均金额存入表tablethree中。单击"退出"按钮将关闭表单。(3)运行上面创建的表单formtwo,然后依次查询统计"赵小青"和"吴伟军"两位职员所签订单的有关金额。执行完后,表tablethree中应该包含两条相应的记录。本题主要考核点:表和表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出和运行等知识点。本题解题思路:1、在VisualFoxPro主窗口中按下组合键Ctrl+N。系统弹出"新建"对话框,在"文件类型"中选择表,在弹出的对话框中选择"新建表",并在弹出"创建"对话框中选定考生文件夹,在输入表名中填入"tablethree",再点击保存。在弹出的表设计器中按题面的要求依次输入各个字段的定义,点击"确定"按钮,保存表结构。2、在VisualFoxPro主窗口中按下组合键Ctrl+N。系统弹出"新建"对话框,在"文件类型"中选择"表单",在弹出的对话框中选择"新建文件"。在表单上添加各标签、文本框、命令按钮、表格,并进行适当的布置和大小调整。根据题面要求设置各标签、文本框、命令按钮以及表格的属性值。将表格的RecordSourceType属性值设置为"4-SQL说明",columncount属性设置为2。设置"查询统计"按钮的Click事件代码:ThisForm.Grid1.RecordSource="selectorder.订单号,order.金额fromorderinnerjoinemployeeonorder.职员号=employee.职员号whereemployee.姓名=alltrim(thisform.Text1.Value)"SELECTEmployee.姓名,max(Order.金额)as最高金额,min(Order.金额)as最低金额,avg(Order.金额)as平均金额;FROMemployeeINNERJOINorder;ONEmployee.职员号=Order.职员号;whereemployee.姓名=alltrim(thisform.Text1.Value);GROUPBYEmployee.职员号;INTOTABLEtempinsertintotablethree(姓名,最高金额,最低金额,平均金额)values(temp.姓名,temp.最高金额,temp.最低金额,temp.平均金额)设置"退出"按钮的Click事件代码:THISFORM.RELEASE以formtwo.scx保存表单,关闭表单设计器窗口。3、在创建的表单formtwo中依次查询统计"赵小青"和"吴伟军"两位职员所签订单的有关金额。将记录保存在表tablethree中。第26套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,打开"TEST_DB"数据库,完成如下操作:n1.为表SELL建立一个主索引,索引名为PK,索引表达式为:部门号+年度+月份。2.将自由表DataTest、MODEL、TABC和PASS添加到当前打开的数据库中;3.在当前数据库中创建表TEST(部门号,年份,销售额合计),其中:部门号为字符型,宽度为2;年份为字符型,宽度为4;销售额合计为数值型,宽度为8(其中小数2位)。4.使用报表向导建立一个简单报表,要求选择表SELL中所有字段(其他不做要求),报表文件名为TWO。本题主要考核点:表索引的建立、将一个自由表添加到数据库中、表及报表的建立等知识点本题解题思路:1、打开"TEST_DB"数据库中表SELL,在表设计器中的索引页,输入索引名为PK,索引表达式为部门号+年度+月份,索引类型为主索引。2、打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的DataTest表,再点击"确定"即可,这样表DataTest就添加到了"TEST_DB"数据库中,用同样的方法,将MODEL、TABC和PASS表也添加到"TEST_DB"数据库中。3、在VisualFoxPro主窗口中按下组合键Ctrl+N。系统弹出"新建"对话框,在"文件类型"中选择表,在弹出的对话框中选择"新建表",并在弹出"创建"对话框中选定考生文件夹,在输入表名中填入"TEST",再点击保存。在弹出的表设计器中按题面的要求依次输入各个字段的定义,点击"确定"按钮,保存表结构。4、单击"文件"菜单中的"新建",在类型选择对话框中选择"报表",单击"向导"按钮,在弹出的向导选取中选择"报表向导"后点确定。在"报表向导"的"数据库和表"中选择"SELL",将所有字段添加到选定字段后单击完成,将报表以TWO保存在考生文件夹下。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,完成如下简单应用:1.打开"TEST_DB"数据库,根据表DEPT和表SELL并使用查询设计器设计一个名称为THREE的查询,按年度统计各部门的月平均销售(通过销售额计算)、月平均工资(通过工资额计算)和月平均利润(通过"月平均销售-月平均工资"计算)。查询统计结果按部门号、年度升序排序,并将查询结果输出到表TABB中。表TABB的字段名依次为:部门号、部门名、年度、月平均销售、月平均工资、月平均利润。设计完成后,运行该查询。2.打开文件名为"testA"的表单。该表单完成如下功能:每当用户输入用户名和口令并按"确认"按钮后,利用表PASS中记录检查其输入是否正确,若正确,就显示"欢迎使用本系统!"字样,并关闭表单;若不正确,则显示"用户名或口令不对,请重输入!"字样;如果三次输入不正确,就显示"用户名或口令不对,登录失败!"字样,并关闭表单。(1)修改口令输入文本框,使输入的口令显示为"*"。(2)修改该表单"确认"按钮的Click事件中的程序。请将第2、3、4、7和12行语句修改正确。修改时不允许增加或删除行,只能在错误行上进行修改。本题主要考核点:建立查询及表单等知识点。本题解题思路:1、打开"TEST_DB"数据库,使用查询设计器建立查询:单击"新建"按钮,在弹出的对话框中选择"新建查询"->查询设计器打开,将"DEPT"和"SELL"表添加到查询设计器中(将两表之间通过"部门号"字段建立关联)->在查询设计器下方的"字段"选项卡中选中并添加字段"部门号"、"部门名"、"年度",在"函数和表达式"的"表达式"中输入"AVG(Sell.销售额)AS月平均销售"、"AVG(Sell.工资额)AS月平均工资"和"AVG(Sell.销售额-Sell.工资额)AS月平均利润"并添加此字段->在"排序依据"选项卡中选择"部门号"和"年度"字段升序排列->在"分组依据"选项卡中选择"部门号"和"年度"字段分组->单击菜单栏上的"查询"->"查询去向"铵钮->在弹出的"查询去向"对话框中选择表,并在表名处输入表名TABB->单击工具栏上的运行铵钮->单击工具栏上的保存铵钮,输入查询文件名THREE.qpr,保存查询后关闭查询设计器,最后运行该查询。2、(1)PasswordChar属性赋值为:"*",来使用户在输入口令时显示"*"。(2)修改该表单"确认"按钮的Click事件中的程序如下:USEpassKey1=ALLTRIM(ThisForm.Text1.Value)Key2=ALLTRIM(ThisForm.Text2.Value)LOCATEALLFORUSER=Key1IFFOUND()ANDPASS=Key2WAIT"欢迎使用本系统!"WINDOWTIMEOUT1THISFORM.RELEASEELSEnum=num+1IFnum=3WAIT"用户名或口令不对,登录失败!"WINDOWTIMEOUT1nThisForm.ReleaseELSEWAIT"用户名或口令不对,请重输入!"WINDOWTIMEOUT1ENDIFENDIF三、综合应用(1小题,计30分)建立一个文件名和表单名均为myform的表单文件,表单上有:.表格控件grid1(RecordSourceType属性手工设置为"别名").文本框控件Text1.命令按钮控件Command1(文本为"确定")程序运行时在文本框中输入部门名,然后单击"确定"命令按钮计算该部门各年度的销售额(合计)和利润(合计)(利润为"销售额-工资额"),按年度升序将结果(含年度、销售额和利润3个字段)保存在以部门名命名的dbf文件的同时,在Grid1控件中显示计算的结果。要求:程序完成后必须运行,并分别计算"笔记本产品部"和"计算机产品部"按年度的销售额和利润情况。本题主要考核点:建立表单及SQL的使用等知识点。本题解题思路:1、以myform为表单名创建表单,文件名为myform。2、按要求添加表格控件grid1、文本框控件、命令按钮控件Command1。设置grid1的RecordSourceType属性为"别名",Command1名称为"确定"。3、在"确定"按钮的CLICK事件代码中输入x="SELECTSell.年度,sum(Sell.销售额)as销售额,sum(Sell.销售额-Sell.工资额)as利润"x=x+"FROMtest_db!sellwhere部门号in(select部门号FROMDEPT.DBFWHERE部门名='"+myform.text1.value+"')"x=x+"GROUPBYSell.年度"x=x+"ORDERBYSell.年度"x=x+"INTOTABLE"+myform.text1.value&xmyform.Grid1.recordsource=myform.text1.value保存后,按题面要求输入相应部门名运行此表单。第27套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,完成如下操作:1.将student表中学号为99035001的学生的院系字段值修改为"经济"。2.将score表的"成绩"字段的名称修改为"考试成绩"。3.使用SQL命令(ALTERTABLE)为student表建立一个候选索引,索引名和索引表达式都是"学号",并将相应的SQL命令保存在three.prg文件中。4.使用非SQL命令为course表建立一个候选索引,索引名和索引表达式都是"课程编号",并将相应的命令保存在four.prg文件中(只保存建立索引的命令)。本题主要考核点:表中字段值的修改及建立索引的语句等知识点。解题思路:1、打开student表,直接选中学号为99035001的学生的院系,将其字段值修改为"经济"。2、打开score表,显示其"表设计器",将"成绩"字段的名称修改为"考试成绩"。3、在命令窗口输入SQL命令:ALTERTABLEstudentADDUNIQUE学号TAG学号。并将该语句保存到three.prg文件中。4、打开course表,在命令窗口输入命令行:INDEXON课程编号TAG课程编号CANDIDATE。并将该语句保存到four.prg文件中。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.建立一个满足如下要求的表单文件tab(1)表单中包含一个页框控件Pageframe1,该页框含有3个页面,页面的标题依次为"学生"(Page1)、"课程"(Page2)和"成绩"(Page3);(2)依次将表student(学生)、course(课程)和score(成绩)添加到表单的数据环境中;(3)直接用拖拽的方法使得在页框控件的相应页面上依次分别显示表student(学生)、course(课程)和nscore(成绩)的内容;(4)表单中包含一个命令按钮"退出"(Command1),单击该按钮关闭并释放表单。2.给定程序(表单)modi2.scx,其功能是请用户输入一个正整数,然后计算从1到该数字之间有几个偶数、几个奇数、几个被3整除的数,并分别显示出来,最后给出总数目。请修改并调试该程序,使之正确运行。改错要求:在"计算"按钮的单击事件的程序中共有3处错误,请修改*****found****下面的错误,必须在原来位置修改,不得增加或删减程序行(其中第一行的赋值语句不许减少或改变变量名)。在"退出"按钮下有一处错误,该按钮的功能是关闭并释放表单。本题主要考核点:表单的相关操作等知识点。解题思路:操作1:1、新建一个表单文件tab,在表单中添加一个页框控件Pageframe1,表单及相关各控件的属性值如下:对象属性属性值Pageframe1PageCount3Page1Caption学生Page2Caption课程Page3Caption成绩2、为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境"。将题目要求的三张表添加到数据环境中。3、在属性窗口选中Page1,拖拽相应的表student到页框中,依次选中Page2,Page3,将对应的表拖拽进去。4、添加一个命令按钮"退出"(Command1),为"退出"命令按钮的Click事件编写程序代码:THISFORM.RELEASE。操作2:修改该表单"计算"按钮的Click事件中的程序如下:第一处错误修改为:store0tox,s1,s2,s3第二处错误修改为:x=val(thisform.text1.value)第三处错误修改为:ifmod(x,3)=0修改该表单"退出"按钮的Click事件中的程序如下:thisform.release三、综合应用(1小题,计30分)打开考生文件夹下的表单文件zonghe,并完成如下操作:1.修改"添加>"命令按钮Click事件下的语句,使得当单击该命令按钮时,将左边列表框所选项添加到右边的列表框;2.修改"<移去"命令按钮Click事件下的语句,使得当单击该命令按钮时,将右边列表框所选项移去(删除);3."确定"命令按钮Click事件下的程序的功能是查询右边列表框所列课程的学生的考试成绩(依次包含姓名、课程名称和考试成绩3个字段),并先按课程名称升序、再按考试成绩降序存储到表zonghe.dbf中。注意:1.SCORE表中"考试成绩"字段是在基本操作中修改后的结果。2.程序完成后必须运行,要求将"计算机基础"和"高等数学"从左边的列表框添加到右边的列表框,并单击"确定"命令按钮完成查询和存储。本题主要考核点:表单的操作及Click事件语句等知识点。解题思路:1、打开表单文件zonghe,修改"添加>"命令按钮Click事件如下:thisform.list2.additem(thisform.list1.value)2、修改"<移去"命令按钮Click事件如下:thisform.list2.removeitem(thisform.list2.listindex)3、"确定"命令按钮Click事件如下:SELECTStudent.姓名,Course.课程名称,Score.考试成绩;FROMstudentINNERJOINscore;INNERJOINcourse;ONScore.课程编号=Course.课程编号;ONStudent.学号=Score.学号;where&cn;ORDERBYCourse.课程名称,Score.考试成绩DESC;nINTOTABLEzonghe.dbf以文件名zonghe保存表单后运行。第28套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,完成如下操作:1.打开考生文件夹下的表单one(如图所示),在"打开"命令按钮的Click事件中增加一条语句,使表单运行时单击该命令按钮的结果是使"关闭"按钮变为可用。2.打开考生文件夹下的表单two(如图1所示),在选项组中增加一个单选钮(如图2所示)。注意:不能改变原先的名称以及属性值。图1图23.使用SQL语句为考生文件夹下的"学院表"增加一个字段"教师人数"(整数型),同时为该字段设置有效性规则:教师人数>=0。请将该SQL语句存储在three.prg文件中,否则不得分。4.使用SQL语句将考生文件夹下的自由表teacher中教师姓名为Jack的工资修改为8000元。请将该SQL语句存储在four.prg文件中,否则不得分。本题主要考核点:表单的操作和SQL语句的使用。解题思路:1、打开表单one,在"打开"命令按钮的Click事件中增加如下语句:thisform.command2.enabled=.T.2、打开表单two,设置表单及相关各控件的属性值如下:对象属性属性值Optiongroup1ButtonCount3Option3Caption程序设计3、使用SQL语句为"学院表"增加字段的命令如下:ALTERTABLE学院表ADD教师人数ICHECK教师人数>=0将该SQL语句存储在three.prg文件中。4、使用SQL语句为自由表"teacher"增加字段的命令如下:UPDATETEACHER.DBFSET工资=8000WHERE姓名="Jack"将该SQL语句存储在four.prg文件中。二、简单应用(2小题,每题20分,计40分)在考生目录下完成如下简单应用:1.考生文件夹下的程序文件five.prg的功能是:根据"教师表"计算每个系的教师人数并将相应数据填入"学院表",程序中有三处错误,请修改并执行程序。只能修改标有错误的语句行,不能修改其他语句。2.在"课程管理"数据库中使用视图设计器建立视图teacher_view,该视图根据"教师表"和"课程表"n建立,视图包括姓名、工资、课程名和学时4个字段,视图中的记录按"工资"升序排列。本题主要考核点:程序的修改及视图的建立。解题思路:1、本题是一个程序修改题。第一处错误应改为DOWHILENOTEOF();第二处错误应改为SELECTCOUNT(*)FROM教师表WHERE教师表.系号=xihaoINTOARRAYA;第三处错误应改为SKIP。2、在新建对话框中、项目管理器中、或用CREATVIEW命令打开视图设计器。建立一个视图,将"教师表"和"课程表"添加到视图中,并将题中指定字段添加入视图;切换到"排序依据"中选择字段"教师表.工资",在"排序选项"处选择"升序";最后将视图命名为teacher_view。三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:1.建立一个名为myform的表单,表单中包括一个列表框(List1)和两个命令按钮(Command1和Command2),Command1和Command2的标题分别为"生成表"和"退出"。2.设置列表框的数据源(RowSource)和数据源类型(RowSourceType)两个属性,使用SQL语句根据"学院表"的"系名"字段的内容在列表框中显示"系名"(注意不要使用命令指定这两个属性)。3.为"生成表"命令按钮的单击事件编写程序。程序的功能是根据表单运行时列表框中选定的"系名",将"教师表"表中相应系的所有记录存入以该系名命名的自由表中,自由表中包含"职工号","姓名"和"工资"三个字段,并按照"职工号"升序排列。4.运行表单,分别生成存有"计算机"、"通信"、"信息管理"系信息的3个表。本题主要考核点:表单的建立,控件属性的设置、SQL语句运用、表单的退出等知识点。本题解题思路:1、建立一个名为myform的表单,按题面要求添加一个列表框和两个命令按钮。设置表单命令按钮的属性值如下:对象属性属性值Command1Caption生成表Command2Caption退出2、设置表单列表框的属性值如下:对象属性属性值List1ROWSOURCEselect系名from学院表intocursormylistList1ROWSOURCETYPE3-SQL语句3、为"生成表"命令按钮的单击事件编写程序如下:select职工号,姓名,工资from教师表innerjoin学院表on学院表.系号=教师表.系号where系名=thisform.list1.list(thisform.list1.listindex)intotablthisform.list1.list(thisform.list1.listindex)orderby职工号4、保存表单并运行,生成有"计算机"、"通信"、"信息管理"系信息的3个表。第29套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.打开表单文件one,在表单设计器中将命令按钮Command1的标题修改为"开始"。2.在考生文件夹下建立项目文件one。3.在项目one中建立数据库student。4.在项目one中建立程序代码文件one.prg,其中包含如下一条命令:?"良好的开端"。本题主要考核点:表单控件属性的修改,项目文件的建立并添加数据库等知识点。本题解题思路:1、打开表单文件one,将Command1的Caption属性修改为"开始"。2、选择"文件"菜单中的"新建",在类型选择框中选择"项目",单击新建文件按钮,输入项目名:"one"。3、在项目管理器中选择"数据"节点下的"数据库",单击"新建"按钮,建立名为"student"数据库。4、在项目管理器中选择"代码"节点下的"程序",单击"新建"按钮输入命令:?"良好的开端"并以one.prg保存。二、简单应用(2小题,每题20分,计40分)n在考生文件夹下,完成如下简单应用:1.建立表单two(表单名和表单文件名均为two),然后完成如下操作:1)在表单中添加表格控件Grid1;2)在表单中添加命令按钮Command1(标题为"退出");3)将表student添加到表单的数据环境中;4)将Grid1的RecordSourceType属性设置为0(即数据源的类型为表),将Grid1的RecordSource属性设置为student,使得在表单运行时表格控件中显示表student的内容。2.使用SQLSELECT语句查询每个学生的平均成绩,结果包括"姓名"(出自student表)和"平均成绩"(根据score表的成绩字段计算)两个字段,并按"平均成绩"字段降序,"平均成绩"相等时按姓名升序将查询结果存储在表avgscore.dbf中。本题主要考核点:表单的操作及SQL语句的使用等知识点。本题解题思路:操作1:1、利用"文件"菜单下的"新建"命令可创建新的表单文件,在"显示"菜单中打开表单控件工具栏,通过表单控件工具栏向表单中添加各控件。2、通过属性窗口设置表单及相关各控件的属性,表单及相关各控件的属性值如下:对象属性名值myformNametwoCommand2Caption退出3、单击鼠标左键添加数据环境,选择表student。4、在属性窗口设置Grid1的RecordSourceType属性为0,RecordSource属性设置为student。操作2:使用SQLSELECT语句查询如下:SELECTStudent.姓名,AVG(Score.成绩)AS平均成绩;FROMscoreINNERJOINstudent;ONScore.学号=Student.学号;GROUPBYStudent.姓名;ORDERBY2DESC;INTOTABLEavgscore.dbf三、综合应用(1小题,计30分)在考生文件夹下完成如下操作:1.打开student数据库(基本操作题建立的),将自由表student、score和course添加到数据库中;2.在student数据库中建立反映学生选课和考试成绩的视图viewsc,该视图包括"学号"、"姓名"、"课程名称"和"成绩"4个字段;3.使用报表向导建立一个报表,该报表按顺序包含视图viewsc的"学号"、"姓名"、"课程名称"和"成绩"4个字段,样式为"简报式",报表文件名为three.frx;4.打开表单文件three,然后完成如下操作:1)为"生成数据"命令按钮(Command1)写代码:用SQL命令查询视图viewsc的全部内容,要求先按"学号"升序、再按"成绩"降序排序,并将结果保存在result.dbf表文件中;2)为"运行报表"命令按钮(Command2)写代码:预览报表three.frx;3)为"退出"命令按钮(Command3)写代码:关闭并释放表单。最后运行表单three,并一定通过"生成数据"命令按钮产生result.dbf表文件。本题主要考核点:数据库的建立、将自由表添加到数据库中、报表的建立和表单的操作。本题解题思路:1、将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADDTABLE命令添加一个自由表到当前数据库中。2、在"数据库设计器"中单击鼠标右键,选择"本地视图",然后选择"新建"按钮,打开"视图设计器"。选择题面要求的字段,关闭并保存。3、启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。4、打开表单文件three,为"生成数据"命令按钮(Command1)写代码如下:nselect*fromviewscorderby学号,成绩descintotableresult为"运行报表"命令按钮(Command2)写代码如下:reportformthreepreview为"退出"命令按钮(Command3)写代码如下:ReleaseThisForm最后运行表单three,生成result.dbf表文件。第30套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,打开SELLDB数据库,完成如下基本操作:1.创建"客户表"(客户号,客户名,销售金额),其中:客户号为字符型,宽度为4;客户名为字符型,宽度为20;销售金额为数值型,宽度为9(其中小数2位)。2.为第1小题创建的"客户表"建立一个主索引,索引名和索引表达式均为"客户号"。3.为"部门成本表"增加一个字段,字段名为"备注",数据类型为字符型,宽度为20。4.先选择"客户表"为当前表,然后使用报表设计器中的快速报表功能为"客户表"创建一个文件名为P_S的报表。快速报表建立操作过程均为默认。最后,给快速报表增加一个标题,标题为"客户表一览表"。本题主要考核点:表的创建及设置,报表的建立等知识点。本题解题思路:1、打开SELLDB数据库,在数据库设计器中点击"新建表",并在弹出的"创建"对话框中,选定考生文件夹,在"输入表名"中填入"客户表",再点击保存;在弹出的"表设计器中",按题目要求建立表结构。2、打开"客户表"选择"索引"标签,在索引名列中填入"客户号",在索引类型列中选择"主索引",在索引表达式列中填入"客户号",点击"确定"按钮,保存表结构。3、打开"客户表",显示"表设计器",按题所要求增加一个字段并定义数据类型。4、选择"客户表"为当前表,新建一个报表,单击主窗口"报表"菜单下的"快速报表(Q)",系统弹出"打开"对话框,选择考生文件夹下的客户表,单击"确定",系统弹出"快速报表"对话框,单击"确定"按钮后便生成了一个报表。选择主菜单"报表"下的"标题/总结(T)",弹出"标题/总结"对话框,在"报表标题"类型中选择"标题带区",单击"确定"按钮,这样就在报表中加入了一个"标题带区",打开"报表控件工具栏",在打开的"报表控件"中选择"标签"控件,在标题带区点击鼠标,输入"客户表一览表"。最后将报表以文件名P_S保存在考生文件夹下。二、简单应用(2小题,每题20分,计40分)在考生文件夹下的SELLDB数据库中包含"部门表"、"销售表"、"部门成本表"和"商品代码表"等。1.在考生文件夹下已有程序文件three.prg,其功能如下:查询2006年各部门商品的年销售利润情况。查询内容为:部门号、部门名、商品号、商品名和年销售利润,其中年销售利润等于销售表中一季度利润、二季度利润、三季度利润和四季度利润的合计。查询结果按部门号升序,然后按年销售利润降序排序,并将查询结果输出到表TABA中。表TABA的字段名分别为:"部门号"、"部门名"、"商品号"、"商品名"和"年销售利润"。请打开程序文件three.prg,修改其中的错误,然后运行该程序。2.在考生文件夹下已有程序文件four.prg,其功能如下:计算2005年按部门不分商品的"年销售利润",以及"年销售利润"减去部门成本表中对应部门的"工资支出"和"办公支出"后的纯利润,并将结果存储到表account中。表account的字段名分别为:"部门号"、"部门名"、"年销售利润"、"工资支出"、"办公支出"和"纯利润"。请打开程序文件four.prg,修改其中的错误,然后运行该程序。本题主要考核点:程序的修改等知识点。本题解题思路:1、SQLSELECT语句的联接格式只能实现两个表的联接,如果要实现多个表的联接,还需要使用标准的格式,所以本题基于3个关系的联接查询应该用以下格式书写:SELECT部门表.部门号,部门名,销售表.商品号,商品名,一季度利润+二季度利润+三季度利润+四季度利润as年销售利润;FROM部门表,销售表,商品代码表;WHERE销售表.商品号=商品代码表.商品号;AND部门表.部门号=销售表.部门号;AND销售表.年度="2006";nORDERBY1,5DESC;INTOTABLETABA2、分组语句应该用GROUPBY,且将查询结果存放到临时文件中应该用INTOCURSORtemp短语则第一处错误修改为:GROUPBY销售表.部门号INTOCURSORtemp将查询结果存放到表文件中应该用INTODBF/TABLETableName短语则第二处错误修改为:INTOTABLEaccount。三、综合应用(1小题,计30分)在考生文件夹下,打开SELLDB数据库,完成如下综合应用:创建一个标题名为"部门销售查询"、表单名为Form1,文件名为XS的表单,如下图所示。表单要求如下:在该表单中设计两个标签、两个文本框、一个表格和两个命令按钮。1.两个标签对象标题文本分别为"部门号:"(Label1)和"年度:"(Label2);两个文本框分别用于输入部门号(Text1)和年度(Text2);表格控件用于显示查询结果(Grid1)。2.两个命令按钮的功能如下:⑴"查询"按钮(Command1):在该按钮的Click事件中编写程序,根据输入的部门号和年度,在表格控件中显示:该部门销售的"商品号"、"商品名"、"一季度利润"、"二季度利润"、"三季度利润"和"四季度利润",将查询结果存储到以"xs+部门号"为名称的表中(例如,部门号为02,则相应的表名为xs02.dbf)。注意:表的字段名分别为:"商品号"、"商品名"、"一季度利润"、"二季度利润"、"三季度利润"和"四季度利润"。⑵"退出"按钮(Command2):关闭并释放表单。注意:表格控件的RecordSourceType属性设置为"4-SQL说明";表单设计完成后,运行该表单,输入部门号:02,年度:2005,单击"查询"按钮进行查询。本题主要考核点:表和表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出和运行等知识点。本题解题思路:1、在VisualFoxPro主窗口中打开SELLDB数据库,按下组合键Ctrl+N。系统弹出"新建"对话框,在"文件类型"中选择"表单",在弹出的对话框中选择"新建文件"。在表单上添加各标签、文本框、命令按钮、表格,并进行适当的布置和大小调整。根据题面要求设置各标签、文本框、命令按钮以及表格的属性值。2、将表格的RecordSourceType属性值设置为"4-SQL说明",columncount属性设置为6。3、设置"查询"按钮的Click事件代码:x='xs'+thisform.TEXT1.valuesele商品代码表.*,销售表.一季度利润,销售表.二季度利润,;销售表.三季度利润,销售表.四季度利润from销售表INNERJOIN商品代码表ON商品代码表.商品号=销售表.商品号;where销售表.部门号=alltrim(thisform.Text1.Value)and销售表.年度=alltrim(thisform.Text2.Value)INTOTABLE&XThisForm.Grid1.RecordSource="select*from"+x设置"退出"按钮的Click事件代码:THISFORM.RELEASE以XS.scx保存表单,关闭表单设计器窗口。在创建的表单XS中查询部门号:02,年度:2005信息。将记录保存在表xs02.dbf中。第三十一套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)n在考生文件夹下完成如下操作:1.创建一个名为"订单管理"的数据库,并将已有的employee、orders和customer三个表添加到该数据库中。2.为orders表建立一个普通索引,索引名为nf,索引表达式为"year(签订日期)"。3.为employee表建立主索引,为orders建立普通索引,索引名和索引表达式均为"职员号"。通过"职员号"在employee表和orders表之间建立一个一对多的永久联系。4.为上述建立的联系设置参照完整性约束:更新规则为"限制",删除规则为"级联",插入规则为"限制"。本题的主要考核点:数据库的建立、将自由表添加到数据库中、主索引和普通索引的建立,为已建立索引的表建立联系。解题思路:1.建立数据库的常用方法有三种:在项目管理器中建立数据库;通过"新建"对话框建立数据库;使用命令交互建立数据库,命令为:CREATEDATABASE[DatabaseName|?]2.将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADDTABLE命令添加一个自由表到当前数据库中。3.在orders表设计器中的索引选项卡中建立索引名为nf,索引表达式为"year(签订日期)"的普通索引,及索引名和索引表达式均为"职员号"的普通索引。为employee建立索引名和索引表达式均为"职员号"的主索引。4.在数据库设计器中建立employee表和orders表之间的联系。在数据库设计器中,选中employee表中的主索引"职员号",按住鼠标拖动到orders表的普通索引"职员号"上。5.为联系指定参照完整性:在联系上单击右键,打开"编辑参照完整性"对话框或者在"数据库"菜单中选择"编辑参照完整性",打开"参照完整性"生成器。选择更新规则为"限制",删除规则为"级联",插入规则为"限制"。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,完成如下简单应用:1.在考生文件夹下已有表单文件formone.scx,如下图所示,其中包含一个列表框、一个表格和一个命令按钮。请按下面要求完成相应的操作:1)在表单的数据环境中添加orders表。2)将列表框List1设置成多选,另外将其的RowSourceType属性值设置为"8-结构"、RowSource设置为orders。3)将表格Grid1的RecordSourceType的属性值设置为"4-SQL说明"。4)修改"显示"按钮的Click事件代码。当单击该按钮时,表格Grid1内将显示在列表框中所选orders表中指定字段的内容。2.利用查询设计器创建查询,从orders、employee和customer表中查询2001年5月1日以后(含)所签所有订单的信息。查询结果依次包含"订单号"、"签订日期"、"金额"、"签订者"和"客户号"五项内容,其中"签订者"为签订订单的职员姓名。各记录按金额降序排序,金额相同按签订日期降序排序;查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。本题的主要考核点:n表单的设置、建立查询。解题思路:1、打开表单文件formone.scx,单击右键添加数据环境。2、设置列表属性MultiSelect为.T.-真,定义允许多重选择。按题面要求将列表的RowSourceType属性值设置为"8-结构"、RowSource设置为orders。3、将表格Grid1的RecordSourceType的属性值设置为"4-SQL说明"。4、修改"显示"按钮的Click事件代码如下:第一处错误修改为:FORi=1TOthisform.List1.ListCount第二处错误修改为:s=thisform.List1.list(i)第三处错误修改为:s=s+","+thisform.List1.list(i)5、使用查询设计器建立查询:单击"新建"按钮,在弹出的对话框中选择"新建查询"->查询设计器打开,将orders、employee和customer表添加到查询设计器中(将表之间建立关联)->在查询设计器下方的"字段"选项卡中选中并添加字段"订单号"、"签订日期"、"金额"、"签订者"和"客户号"五项内容,其中"签订者"通过在"函数和表达式"的"表达式"中输入"Employee.姓名AS签订者"设置,并添加此字段,在"筛选"中设置"签订日期">={^2001-05-01};在"排序依据"选项卡中选择"金额"和"签订日期"字段降序排列;单击菜单栏上的"查询"->"查询去向"铵钮->在弹出的"查询去向"对话框中选择表,并在表名处输入表名tableone->单击工具栏上的运行铵钮->单击工具栏上的保存铵钮,输入查询文件名queryone.qpr,保存查询后关闭查询设计器,最后运行该查询。在考生文件夹下创建一个顶层表单myform.scx(表单的标题为"考试"),然后创建并在表单中添加菜单(菜单的名称为mymenu.mnx,菜单程序的名称为mymenu.mpr)。效果如下图所示。菜单命令"统计"和"退出"的访问键分别为"T"和"R",功能都通过执行过程完成。菜单命令"统计"的功能是以客户为单位、从customer和orders表中求出订单金额的和。统计结果包含"客户号"、"客户名"和"合计"三项内容,其中"合计"是指与某客户所签所有订单金额的和。统计结果应按"合计"降序排序,并存放在tabletwo表中。菜单命令"退出"的功能是释放并关闭表单。最后,请运行表单并依次执行其中的"统计"和"退出"菜单命令。本题主要考核点:表单控件的属性的修改、SQL语句运用、菜单的建立、顶层表单的设计等知识点。解题思路:1.建立表单:可通过"文件"菜单下的"新建"命令或用命令CREATEFORM打开表单设计器。2.修改表单各属性值,CAPTION="考试"。将表单以myform.scx为文件名保存在考生文件夹下。3.建立菜单:可通过"文件"菜单下的"新建"命令或用命令CREATEMEMU打开菜单设计器。点击"显示"菜单下的"常规选项"命令打开"常规选项"对话框,选中"顶层表单"复选框。在菜单设计器中建立各菜单项,菜单名称分别为:统计(={^2001/01/01}AND签订日期<={^2001/12/31}。按"总金额"降序排序,"组别"进行分组,在"分组依据"的"满足条件"中设置总金额>=500。查询去向为表tableone。最后将查询保存在queryone.qpr文件中并运行。三、综合应用(1小题,计30分)在考生文件夹下完成如下操作:1.创建一个下拉式菜单mymenu.mnx,运行该菜单程序时会在当前vfp系统菜单的末尾追加一个"考试"子菜单,如下图所示。菜单命令"统计"和"返回"的功能都通过执行过程完成。菜单命令"统计"的功能是以某年某月为单位求订单金额的和。统计结果包含"年份"、"月份"和"合计"三项内容(若某年某月没有订单,则不应包含记录)。统计结果应按年份降序、月份升序排序,并存放在tabletwo表中。菜单命令"返回"的功能是返回标准的系统菜单。2.创建一个项目myproject.pjx,并将已经创建的菜单mymenu.mnx设置成主文件。然后连编产生应用程序myproject.app。最后运行myproject.app,并依次执行"统计"和"返回"菜单命令。本题的主要考核点:菜单的创建等知识。解题思路:1.建立菜单可以使用"文件"菜单完成,选择文件--新建--菜单--新建文件打开菜单设计器。打开"显示"菜单下的"常规选项"对话框,在"位置"处选择追加,则新建立的子菜单会在当前vfp系统菜单后显示。2.在菜单名称中填入"考试",结果为子菜单,单击创建;在子菜单的菜单名称中输入"统计",结果为过程。在过程中输入下列命令:SELECTYEAR(Orders.签订日期)AS年份,MONTH(Orders.签订日期)AS月份,;SUM(Orders.金额)AS合计;FROM订单管理!orders;GROUPBY1,2;ORDERBY1DESC,2;INTOTABLEtabletwo.dbf在菜单名称中填入"返回",结果为过程,在过程中输入此命令:SETSYSMENUTODEFAULT。保存菜单mymenu.mnx。3.创建一个项目myproject.pjx,选中项目中的"其他"选项卡下的"菜单",点击添加命令可将菜单mymenu.mnx添加到项目中,并将其设置成主文件。然后点击项目管理器右侧的"连编"命令打开"连编选项"窗口,在操作中选择"连编应用程序",点击"确定"按钮即可将连编项目文件。最后运行myproject.app,并依次执行"统计"和"返回"菜单命令。第三十三套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.打开考生文件夹下的数据库SPORT,首先永久删除该数据库中的temp表,然后将"金牌榜"、"获奖牌情况"和"国家"三个自由表加入该数据库中。2.在表设计器中,为表"金牌榜"建立一个普通索引,索引名和索引表达式均为"金牌数"。3.使用SQL语句为表"金牌榜"增加一个字段"奖牌总数"(整数型),同时为该字段设置有效性规则:奖牌总数>=0。请将该SQL语句存储在文件one.prg中,否则不得分。4.使用SQL语句更改表"金牌榜"所有记录的"奖牌总数"字段值,该值应为"金牌数"、"银牌数"、"铜牌数"三项之和。请将该SQL语句存储在文件two.prg中,否则不得分。本题的主要考核点:从数据库中删除表、将自由表添加到数据库中、表中索引的创建、添加表字段和更改表记录的命令等。解题思路:1.打开"SPORT"数据库,右击删除temp表。并将题面要求的三个表分别添加到数据库里。2.在"金牌榜"表设计器中的索引选项卡建立索引名为金牌数,索引表达式为"金牌数"的普通索引。n3.使用SQL语句设置表字段有效性规则的命令是:altertable金牌榜add奖牌总数Icheck奖牌总数>=0,然后将此命令保存在one.prg文件中。4.用SQL命令向表中添加记录的命令是:UPDATE金牌榜SET奖牌总数=金牌数+银牌数+铜牌数,然后将此命令保存在two.prg文件中。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.使用一对多表单向导新建一个表单SPM。要求:使用"国家"为父表并选择"国家名称"字段作为显示字段,"获奖牌情况"为子表并选择"项目名称"和"名次"字段作为显示字段,使用"国家代码"建立表之间的关系,表单样式选择"阴影式",按钮类型选择"图片按钮",按"国家名称"升序排列,表单标题为"奥运会获奖情况"。2.在SPORT数据库中使用视图设计器建立视图sport_view,该视图根据"国家"和"获奖牌情况"两个表统计每个国家获得的金牌数("名次"为1表示获得一块金牌),视图中包括"国家名称"和"金牌数"两个数据项,视图中的记录先按"金牌数"降序排列、再按国家名称降序排列。本题的主要考核点:使用表单向导制作表单及创建视图等。解题思路:1、启动表单向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择表单,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"表单",或直接单击工具栏上的"表单向导"图标按钮。在"向导选取"对话框中选择"一对多表单向导"。然后按照表单向导操作即可。2、打开数据库SPORT,在"数据库"菜单中选择"新建本地视图"按钮,打开"视图设计器"。将"国家"和"获奖牌情况"表添加到视图中并建立相应连接,选择字段国家名称,在"函数和表达式"中设置表达式"COUNT(获奖牌情况.名次)AS金牌数",并选择此字段,在"筛选"栏内输入条件"获奖牌情况.名次=1",在"排序依据"中按题面要求设置降序排列,在"分组依据"中设置按"国家名称"分组,以视图名sport_view保存。三、综合应用(1小题,计30分)在考生文件夹下有一个名为myform的表单,表单中包括一个列表框和两个命令按钮。请在该表单中完成如下操作:1.在表单设计器环境下设置列表框的数据源(RowSource)和数据源类型(RowSourceType)两个属性,使用SQL语句根据"国家"表中"国家名称"字段的内容在列表框中显示"国家名称"(注意不要使用命令指定这两个属性)。2.为"生成表"命令按钮编写程序。程序的功能是根据表单运行时列表框中选定的国家名称,将"获奖牌情况"表中相应国家的所有记录存入以该国家名称命名的自由表中,自由表中包含"运动员名称","项目名称"和"名次"三个字段,并按照"名次"升序排列。提示:假设从列表框中选择的国家名称存放在变量gm中,那么在SQLSELECT语句中使用短语intotable&gm就可以将选择的记录存入以该国家名命名的自由表中。3.运行表单,分别生成存有"中国"、"日本"、"美国"、"俄罗斯"4个国家获奖情况的4个自由表。本题主要考核点:表单控件属性的设置、SQL语句运用、表单的运行等知识点。解题思路:1、设置表单列表框的属性值如下:对象属性属性值List1ROWSOURCEselect国家名称from国家intocursormylistList1ROWSOURCETYPE3-SQL语句2、为"生成表"命令按钮的单击事件编写程序如下:select运动员名称,项目名称,名次from获奖牌情况innerjoin国家;on获奖牌情况.国家代码=国家.国家代码where;国家名称=thisform.list1.list(thisform.list1.listindex);intotablthisform.list1.list(thisform.list1.listindex)orderby名次3、保存表单并运行,生成"中国"、"日本"、"美国"、"俄罗斯"4个表。第三十四套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,完成如下操作:1.建立一个"客户"表,表结构如下客户编号C(8)客户名称C(8)n联系地址C(30)联系电话C(11)电子邮件C(20)2.建立一个"客户"数据库,并将"客户"表添加到该数据库中。3.将如下记录插入到"客户"表中。43100112沈红霞浙江省杭州市83号信箱13312347008shenhx@sohu.com44225601唐毛毛河北省唐山市100号信箱13184995881tangmm@bit.com.cn50132900刘云亭北京市1010号信箱13801238769liuyt@ait.com.cn30691008吴敏霞湖北省武汉市99号信箱13002749810wumx@sina.com41229870王衣夫辽宁省鞍山市88号信箱13302438008wangyf@abbk.com.cn4.利用报表向导生成一个"客户"(报表文件名)报表,报表的内容包含客户表的全部字段,报表的标题为"客户",其他各项取默认值。本题主要考核点:在一个数据库中添加一个新表、表结构的定义、报表的建立等知识点。解题思路:1.在VisualFoxPro主窗口,选择"新建表(N)",在弹出的"新建表"对话框中,点击"新建表"按钮,弹出"创建"对话框,选定考生文件夹,在"输入表名"文本框中输入:客户.dbf,再点击"保存"。2.在弹出的表设计器中按题面要求依次输入各字段的定义。3.按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"数据库",点击"新建文件"按钮,在弹出的对话框的"数据库名"处输入"客户",单击保存按钮。4.打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的客户表,再点击"确定"即可。5.打开数据库中的客户表,选择"表(A)"->"追加新记录(N)",依次按题面要求添加表记录。6.启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。二、简单应用(2小题,每题20分,计40分)在考生文件夹下有student(学生)、course(课程)和score(选课成绩)3个表,用SQL语句完成如下操作:1.查询每门课程的最高分,要求得到的信息包括课程名称和分数,将结果存储到me.dbf表文件(字段名是课程名称和分数),并将相应的SQL语句存储到命令文件one.prg。2.查询哪些课程有不及格的成绩,将查询到的课程名称存入文本文件new.txt,并将相应的SQL语句存储到命令文件two.prg。本题主要考核点:SQL语句的使用等知识点。解题思路:1.根据题意编写SQL语句如下:SELECTCourse.课程名称,MAX(Score.成绩)as分数;FROMcourseINNERJOINscore;ONCourse.课程编号=Score.课程编号;GROUPBYCourse.课程名称;INTOtablme.dbf将语句保存到one.prg中。2.根据题意编写SQL语句如下:SELECTCourse.课程名称;FROMcourseINNERJOINscore;ONCourse.课程编号=Score.课程编号;WHEREScore.成绩<60;GROUPBYCourse.课程名称;TOFILEnew.txt将语句保存到two.prg中。三、综合应用(1小题,计30分)在考生文件夹下完成如下综合应用:1.建立"学生"数据库;2.把自由表student(学生)、course(课程)和score(选课成绩)添加到新建立的数据库;n3.建立满足如下要求的表单formlist(控件名和文件名)(1)添加一个表格控件Grid1,并按学号升序显示学生选课及考试成绩信息(包括字段学号、姓名、院系、课程名称和成绩);(2)添加命令按钮"保存"(Command1)和"退出"(Command2),单击命令按钮"保存"时将表格控件Grid1中所显示的内容保存到表tbm(方法不限),单击命令按钮"退出"时关闭并释放表单。注意:程序完成后必须运行,并按要求保存表格控件Grid1中所显示的内容到表tbm。本题主要考核点:数据库的建立、将自由表添加到数据库中、表单的建立和设置等。解题思路:1.建立数据库的常用方法有三种:在项目管理器中建立数据库;通过"新建"对话框建立数据库;使用命令交互建立数据库,命令为:CREATEDATABASE[DatabaseName|?]。2.将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADDTABLE命令添加一个自由表到当前数据库中。3.选择"文件"菜单中"新建"命令,在文件类型选择框中选择"表单",单击"新建文件"按钮;从控件工具栏中分别选择两个按钮和一个表格放置到表单上,分别设置按钮Command1的Caption属性为"保存",Command2的Caption属性为"退出",表格的RecordSourceType属性为"4-SQL说明";并修改表单的Name属性为formlist。4.在Command1按钮的Init事件中输入:ThisForm.Grid1.RecordSource="SELECTStudent.学号,Student.姓名,;Student.院系,Course.课程名称,Score.成绩;FROM学生!studentINNERJOIN学生!score;INNERJOIN学生!course;ONScore.课程编号=Course.课程编号;ONStudent.学号=Score.学号;ORDERBYStudent.学号INTOTABLETEMP"在Command1按钮的Click事件中输入:SELE*FROMTEMPINTOTABLETBM。在Command2按钮的Click事件中输入:Thisform.release,保存表单为formlist.scx并运行。第三十五套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)基本操作题为4道SQL题,请将每道题的SQL命令粘贴到sql1.txt文件,每条命令占一行,第1道题的命令是第1行,第2道题的命令是第2行,以此类推;如果某道题没有做相应行为空。注意:必须使用SQL语句操作且SQL语句必须按次序保存sql1.txt文件中,其他方法不得分。在考生文件夹下完成下列操作:1.利用SQLSELECT命令将表stock_sl.dbf复制到stock_bk.dbf;2.利用SQLINSERT命令插入记录("600028",4.36,4.60,5500)到stock_bk.dbf表;3.利用SQLUPDATE命令将stock_bk.dbf表中"股票代码"为"600007"的股票"现价"改为8.88;4.利用SQLDELETE命令删除stock_bk.dbf表中"股票代码"为"600000"的股票。本题的主要考核点:SQL语句的使用。解题思路:1、SELE*FROMstock_slINTODBFstock_bk。2、INSEINTOstock_bk(股票代码,买入价,现价,持有数量)VALU("600028",4.36,4.60,5500)。3、UPDAstock_bkSET现价=8.88WHER股票代码="600007"。4、DELEFROMstock_bkWHER股票代码="600000"。本题的主要考核点:SQL语句的使用。解题思路:1、SELE*FROMstock_slINTODBFstock_bk。2、INSEINTOstock_bk(股票代码,买入价,现价,持有数量)VALU("600028",4.36,4.60,5500)。3、UPDAstock_bkSET现价=8.88WHER股票代码="600007"。4、DELEFROMstock_bkWHER股票代码="600000"。n本题的主要考核点:查询的建立和修改SQL语句等。解题思路:1、建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将表stock_name和stock_sl添加入查询中,从字段中选择题面要求的字段,按股票代码升序排序,单击查询菜单下的查询去向,选择表,输入表名TAB.DBF。最后保存并运行该查询。2、打开modi.prg,修改其中三处错误为:第一处错误修改为:SELESUM((现价-买入价)*持有数量);第二处错误修改为:IN;第三处错误修改为:WHER股票简称LIKE"%银行"。三、综合应用(1小题,计30分)在考生文件夹下,建立满足如下要求的应用并运行:1.建立一个表单stock_form,其中包含两个表格控件,第一个表格控件名称是grdStock_name,用于显示表stock_name中的记录,第二个表格控件名称是grdStock_sl,用于显示与表stock_name中当前记录对应的stock_sl表中的记录。2.在表单中添加一个"关闭"命令按钮(名称为Command1),要求单击按钮时关闭表单。注意:完成表单设计后要运行表单的所有功能。本题主要考核点:表单文件的创建、表单的退出等知识点。解题思路:1、按题面要求新建表单stock_form,从常用工具栏中单击表格控件,添加两个表格到新建的表单中,按要求设置表格的名称(Name属性)分别为grdStock_name和grdStock_sl;在表单空白处右击鼠标,选择"数据环境",在数据环境中添加表"stock_name.dbf"和"stock_sl.dbf",建立好两表间的关联;然后设置表格grdStock_name的RecordSource属性为stock_name,表格grdStock_sl的RecordSource属性为stock_sl。2、添加一个命令按钮"关闭",添加此按钮的Chick事件为"Thisform.release"。第三十六套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成下列操作(在"成绩管理"数据库中完成):1.为"学生"表在"学号"字段上建立升序主索引,索引名和索引表达式为学号;2.为"学生"表的"性别"字段定义有效性规则,规则表达式为性别$"男女",出错提示信息是:"性别必须是男或女";3.在"学生"表的"性别"和"年龄"字段之间插入一个"出生日期"字段,数据类型为"日期型"(修改表结构);4.用SQL的UPDATE命令将学生"王三风"的出生日期修改为1983年5月1日,并将该语句粘贴在SQL2.TXT文件中(第一行、只占一行)。本题的主要考核点:主索引的建立、字段有效规则的建立、表结构的更改、SQL语言的使用。解题思路:1、在表设计器中的索引页面建立索引。2、建立有效性规则在表设计器中的字段选项卡。在"规则"栏中输入:性别$"男女","提示信息"栏输入:"性别必须是男或女"。3、增加字段的方法:打开表设计器,将光标移动到"年龄"字段格中,点击"插入",在"新字段"格中输入新的字段名、字段类型。4、SQL语句的用法:UPDA学生SET出生日期={^1983/05/01}WHER姓名="王三风"。二、简单应用(2小题,每题20分,计40分)1.用SQL语句查询至少有三门的课程成绩在70分以上(包括70分)的学生姓名,并将结果存入表文件results.dbf,然后将该SQL语句保存在SQL.TXT文件中(只占一行);2.modi.prg程序的功能是:先为"学生"表增加一个"平均成绩"字段,数据类型为N(6,2);然后根据"选课"表统计每个学生的平均成绩,并写入新添加的字段。该程序有三处错误,请改正之,使程序能正确运行(在指定处修改,不允许增加或删除程序行)。本题的主要考核点:查询语句的建立、修改SQL语句和修改程序语句等。解题思路:1、编写SQL语句如下:select姓名from学生join选课on学生.学号=选课.学号where成绩>=70groupby姓名havingcount(课程号)>=3INTOTABLEresults.dbf。n2、打开modi.prg,修改其中三处错误为:第一处错误修改为:ALTETABLE学生ADD平均成绩N(6,2);第二处错误修改为:DOWHILE.NOT.EOF();第三处错误修改为:REPLACE平均成绩WITHcj[1]。三、综合应用(1小题,计30分)在考生文件夹下,完成如下综合应用:1.根据"成绩管理"数据库中的"课程"、"选课"和"学生"三个表建立一个名为view_grade的视图,该视图包含学号、姓名、课程名称和成绩四个字段,并要求先按学号升序排序、在学号相同情况下按课程名称降序排序;2.建立一个表单grade_list(控件名和文件名),添加一个表格控件,该表格控件的数据源是前面建立的视图view_grade(直接使用拖拽的方法添加该表格);然后在表格控件下面添加一个命令按钮(名称为Command1),该命令按钮的标题为"退出",要求单击按钮时关闭表单。注意:完成表单设计后要运行表单的所有功能。本题的主要考核点:视图的建立、表单的设计等。解题思路:1、打开"成绩管理"数据库,新建"本地视图",添加"课程"、"选课"和"学生"三个表到视图中,然后选择题面要求的字段,在"排序依据"中选择按"学号"升序,"课程名称"降序排序。以文件名view_grade保存该视图。2、单击"文件"菜单中的"新建",打开"新建"对话框,选择"表单"或在命令窗口输入CREATEFORM命令。表单的Name属性为grade_list;在表单空白处右击鼠标,选择"数据环境",在数据环境中添加视图"view_grade",将上题设计的视图直接拖拽到表单中;在表单控件工具栏上单击"命令按钮",添加一个按钮,修改其Name属性为"Command1",Caption属性为"退出",添加此按钮的Chick事件为"ThisForm.release"。最后将表单保存为grade_list并运行该表单。第三十七套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,打开"点菜"数据库,完成如下操作:1.打开"菜单表",增加一个"厨师姓名"字段,字段类型为字符型,宽度为8;2.使用报表向导建立一个简单报表,要求选择"菜单表"中所有字段(其他不做要求),并把报表保存为one.frx文件。3.打开第2题建立的报表文件one,将报表标题修改为"菜单一览表",最后保存所做的修改。4.使用SQL的SELECT语句,根据顾客点菜表和菜单表查询顾客点单价大于等于40元菜的顾客号和菜编号、菜名、单价和数量,结果按菜编号降序排序并存储到名为TABA的表中,将SQL的SELECT语句存储到名为TWO.PRG的文件中。表TABA由SELECT语句自动建立。注意:在SQL语句中不要对表取别名。第1题,本题的主要考核点是字段的添加。打开"菜单表"表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。第2题,本题的主要考核点是使用报表向导制作报表。启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。第3题,本题的主要考核点是报表的设计。打开题目要求的报表文件,在报表控件工具栏中选择"标签",然后修改报表的标题。第4题,本题的主要考核点是SQL语句的使用。select顾客点菜表.顾客号,菜单表.菜编号,菜单表.菜名,菜单表.单价,顾客点菜表.数量from点菜!菜单表innerjoin点菜!顾客点菜表on菜单表.菜编号=顾客点菜表.菜编号where菜单表.单价>=40intotabletabaorderby菜单表.菜编号desc二、简单应用(2小题,每题20分,计40分)在考生文件夹下,完成如下简单应用:1.打开"点菜"数据库,使用查询设计器设计一个名称为THREE的查询,根据顾客点菜表和菜单表,查询顾客的"顾客号"和"消费金额合计"。顾客某次消费金额由数量*单价得出,而消费金额合计则为其各次消费金额之和。查询结果按"消费金额合计"降序排序,并将查询结果输出到表TABB中。表TABB的两个字段名分别为:顾客号,消费金额合计。设计完成后,运行该查询。2.创建设计一个文件名为"testA"的表单,如下图所示。表单的标题名为"选择磁盘文件",表单名为"Form1"。该表单完成如下功能:设置选项按钮组的Click事件代码,使每当在选项按钮组中选择一个文件类型,列表框(List1)就列出该文件类型的文件。列表框的列数为1。"退出"按钮的功能是"关闭和释放表单"。n提示:(1)选择的三种文件类型分别为Word、Excel和TXT文本文件。(2)列表框的RowSourceType应设置为"7-文件"。(3)若要让列表框显示Word文件,可将其RowSource属性设置为"*.DOC"。第1题主要考核点是使用查询设计器建立查询。建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"菜单表"和"顾客点菜表"添加入查询中,从字段中选择"顾客号"字段;在"函数和表达式"中输入"SUM(菜单表.单价*顾客点菜表.数量)AS消费金额合计",并添加到选定字段中;切换到"排序依据"中选择字段"SUM(菜单表.单价*顾客点菜表.数量)AS消费金额合计",在"排序选项"处选择"降序";切换到"分组依据"中选择字段"顾客号";单击查询菜单下的"查询去向",选择"表",输入表名TABB,最后运行该查询。第2题主要考核点是表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出等知识点。操作过程:①在命令窗口输入命令:CREATEFORMtestA,打开表单设计器窗口。②在表单上添加选项组、命令按钮及列表框,并进行适当的布置和大小调整。③设置选项组和命令按钮以及表单的Caption属性值。④列表框的ColumnCount属性设置为"1",列表框的RowSourceType应设置为"7-文件"。⑤设置选项组的Click事件代码:ifthisform.optiongroup1.option1.value=1thisform.list1.rowsource="*.doc"endififthisform.optiongroup1.option2.value=1thisform.list1.rowsource="*.xls"endififthisform.optiongroup1.option3.value=1thisform.list1.rowsource="*.txt"endif⑥设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑦保存表单,关闭表单设计器窗口。三、综合应用(1小题,计30分)在考生文件夹下,先打开"点菜"数据库,然后创建设计一个标题名为"查询"、文件名为"testB"的表单,如下图所示。n表单要求如下:在该表单中设计一个标签(Label1)、一个文本框(Text1)、一个表格(Grid1)和三个命令按钮。标签对象标题文本为"结帐日期"(Label1);文本框用于输入结帐日期(Text1);表格控件用于显示结果。三个命令按钮的功能如下:(1)"查询"(Command1)按钮:在该按钮的"Click"事件中使用SQL的SELECT命令查询结帐日期等于从文本框输入日期的顾客序号、顾客姓名、单位和消费金额,查询结果按消费金额降序排序,并将查询结果存储到表TABC中。(2)"显示"(Command2)按钮:在该按钮的"Click"事件中使用命令将表TABC中记录在表格控件中显示。提示:设置表格控件的RecordSourceType和RecordSource属性,其中RecordSourceType属性应设置成"4-SQL说明"。(3)"退出"(Command3)按钮的功能是"关闭和释放表单"。表单设计完成后,运行该表单,查询结帐日期等于2005-10-01的顾客信息。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出等知识点。本题解题思路:操作过程:①在命令窗口输入命令:CREATEFORMtestB,打开表单设计器窗口。②在表单上添加各文本框、命令按钮、表格及相关的标签,并进行适当的布置和大小调整。③设置各标签、命令按钮以及表单的Caption属性值。④将表格的RecordSourceType属性值设置为"4-SQL说明"。⑤设置"查询"按钮的Click事件代码:Select顾客序号,顾客姓名,单位,消费金额from点菜!结帐表where结帐日期=ctod(thisform.text1.text)orderby消费金额descINTOTABLEtabc.dbf⑥设置"显示"按钮的Click事件代码:thisform.grid1.recordsource="Select顾客序号,顾客姓名,单位,消费金额from点菜!结帐表where结帐日期=ctod(thisform.text1.text)orderby消费金额descINTOTABLEtabc.dbf"。⑦设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑧保存表单并运行,查询结帐日期等于2005-10-01的顾客信息,即在文本框中输入"10/01/2005"后点"查询"和"显示"按钮。第三十八套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,打开DB数据库,完成如下基本操作:1.给表TABB增加一个字段,字段名为"日期",数据类型为日期型。2.使用SQLUpdate语句将表TABB中所有记录的字段"日期"的值修改为2005-10-01,并将SQL语句存储到名为TWO.PRG的文件中。3.表TABA中有重复的记录,用SQL语句将表TABA中的记录复制到另外一个与它具有相同结构的表TABC中,并消除重复的记录(对于重复多次的记录,只复制一条记录的数据)。并将SQL的SELECT语句存储到名为THREE.PRG的文件中。4.使用报表向导建立一个简单报表。要求选择TABA中所有字段;记录不分组;报表样式为随意式;列数为1,字段布局为"列",方向为"横向";排序字段为No,升序;报表标题为"计算结果一览表";报表文件名为P_ONE。n第1题的主要考核点是字段的添加。增加字段的方法:打开"TABB"表表设计器,将光标移动到最后的空字段格中,输入新的字段名及字段类型。第2题,本题的主要考核点是SQL语句的使用。UPDATEtabbSET日期=CTOD('10/01/05')第3题,本题的主要考核点是SQL语句的使用。usetabbselectdistinct*fromtabbintotabletabc第4题,本题的主要考核点是使用报表向导制作报表。启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开DB数据库,完成如下简单应用:1.编写文件名为FOUR.PRG的程序,根据表TABA中所有记录的a,b,c三个字段的值,计算各记录的一元二次方程的两个根x1和x2,并将两个根x1和x2写到对应的字段x1和x2中,如果无实数解,在note字段中写入"无实数解"。注意:平方根函数为SQRT();程序编写完成后,运行该程序计算一元二次方程的两个根。注意:一元二次方程公式如下:2.打开文件名为testA的表单,表单界面上有两个命令按钮,界面要求如下:(1)设置两个按钮的高度为:30;宽度为:80;"退出"按钮与"查询"按钮顶边对齐;(2)"查询"按钮:在该按钮的Click事件中使用SQL的SELECT命令从表TABA中查询"无实数解"的记录存储到表TABD中;(3)"退出"按钮:关闭并释放表单。请按要求完成表单的设计,表单设计完成后,运行该表单,单击"查询"按钮进行查询。第1题主要考核点是程序文件的建立方法、循环结构等知识点。解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"程序",点击"新建文件"按钮。第二步:在弹出的代码编辑器窗口中输入以下代码:closeallusedb!tabain0selecttabadowhile!eof()selecta,b,c,x1,x2,notefromtabaintoarrayaaa=aa(1)b=aa(2)c=aa(3)IFa<>0delta=b^2-4*a*cre=-b/(2*a)im=SQRT(ABS(delta))/(2*a)IFdelta>=0root1=re+imroot2=re-imreplacex1withroot1replacex2withroot2ELSEreplnotewith"无实数解"ENDIFENDIFskipenddonclosedatabase第三步:以文件名FOUR.PRG将文件保存在考生文件夹下,并运行。第2题主要考核点是表单控件的属性的修改、SQL语句运用、表单的退出等知识点。操作过程:①选择"文件"-"打开",打开题目要求的表单文件。②设置命令按钮的Height和Width属性,并将"退出"按钮的Top属性设置同"查询"按钮的一致。③设置命令按钮"查询"的Click事件代码:select*fromtabawherenote="无实数解"intotabletabd④设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑤保存表单并运行。三、综合应用(1小题,计30分)在考生文件夹下,打开SDB数据库,完成如下应用:创建一个标题名为"查询"、文件名为testb的表单,如下图所示。表单要求如下:1.为表单建立数据环境,向数据环境添加"学生表"。2.表单启动后自动居中。3.在该表单中设计一个标签、一个文本框、一个表格和两个命令按钮。1)标签对象标题文本为"学生注册日期"(Label1);文本框用于输入学生注册日期(Text1);表格控件用于显示结果(Grid1)。2)命令按钮的功能如下:①"查询"按钮(Command1):在该按钮的Click事件中使用SQL的SELECT命令从"学生表"中查询学生注册日期等于文本框中指定的注册日期的学生的学号、姓名、年龄、性别、班级和注册日期,查询结果按年龄降序排序,并将查询结果在表格控件中显示,同时将查询结果存储到表TABE中。注意:查询结果存储到表TABE之前,应将表TABE中记录清空。TABE表是已经建立好的表,它与学生表的结构不完全一样,多两个字段。②"退出"按钮(Command2):的功能是"关闭和释放表单"。注意:表格控件的RecordSourceType属性设置为"4-SQL说明";表单设计完成后,运行该表单,查询注册日期等于2005年9月2日的学生信息。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出等知识点。本题解题思路:操作过程:①在命令窗口输入命令:CREATEFORMtestb,打开表单设计器窗口。②选择"显示"菜单中的"数据环境",将"学生表"添加为表单testb的数据环境。③将表单testb的AutoCenter属性设置为".T."。④添加各文本框、命令按钮、表格及相关的标签,并进行适当的布置和大小调整。⑤设置各标签、命令按钮以及表单的Caption属性值。⑥将表格的RecordSourceType属性值设置为"4-SQL说明"。⑦设置"查询"按钮的Click事件代码:closealldeletefromtabepackndeclaredd(1)use学生表select学号as学号,姓名as姓名,年龄as年龄,性别as性别,班级as班级,注册日期as注册日期from学生表where注册日期=ctod(thisform.Text1.text)intoarraddorderby年龄descusetabeappefromarraddthisform.grid1.recordsource="select学号as学号,姓名as姓名,年龄as年龄,性别as性别,班级as班级,注册日期as注册日期from学生表where注册日期=ctod(thisform.Text1.text)intocursortmporderby年龄desc"。⑧设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑨保存表单并运行,查询注册日期等于2005年9月2日的学生信息,即在文本框中输入"09/02/2005"后点"查询"按钮。第三十九套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成下列操作:1.新建一个名为"学校"的数据库文件,将自由表"教师表"、"课程表"和"学院表"添加到该数据库。2.使用SQL语句ALTERTABLE...UNIQUE...将"课程表"中的"课程号"定义为候选索引,索引名是temp,并将该语句存储在文件one.prg中,否则不给分。3.用表单设计器向导为"课程表"建立一个表单myform,选定"课程表"的全部字段,按"课程号"字段降序排序,其他选项选择默认值。4.在test.prg中第2条语句是错误的,修改该条语句(注意:只能修改该条语句),使得程序执行的结果是在屏幕上显示10到1。本题的主要考核点:数据库的建立、将自由表添加到数据库中、SQL语句的运用、表单设计器向导的使用和修改程序语句。解题思路:1、建立数据库的常用方法有三种:在项目管理器中建立数据库;通过"新建"对话框建立数据库;使用命令交互建立数据库,命令为:CREATEDATABASE[DatabaseName|?]2、将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键,在弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库中的自由表。3、在命令窗口输入SQL命令:ALTERTABLE课程表ADDUNIQUE课程号tagtemp,并将该语句保存到one.prg文件中。4、选择文件--新建--表单--向导--表单向导,选择"课程表"中的所有字段,点"下一步",再点"下一步",排序次序中选择"课程号"为"降序",保存表单为myform。5、打开test.prg程序,将第2条语句修改为:DOWHILEi>=1。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成下列操作:1.请修改并执行程序temp。temp.prg的功能是:根据"教师表"和"课程表"计算讲授"数据结构"这门课程、并且"工资"大于等于4000的教师人数。注意,只能修改标有错误的语句行,不能修改其他语句。n2.使用视图设计器在"学校"数据库中(在基本操作题中建立的)建立视图teacher_v,该视图根据"教师表"和"学院表"建立,视图中的字段项包括:"姓名"、"工资"和"系名",并且视图中只包括"工资"大于等于4000的记录,视图中的记录先按"工资"降序排列、再按"系名"升序排列。本题主要考核点:程序的修改及视图的建立。解题思路:1、本题是一个程序修改题。第一处错误应改为:SELECT课程号FROM课程表WHERE课程名="数据结构"INTOARRAYa;第二处错误应改为:USE教师表;第三处错误应改为:SCANFOR课程号=aAND工资>=4000;第四处错误应改为:sum=sum+1。2、在新建对话框中、项目管理器中、或用CREATVIEW命令打开视图设计器,建立一个视图,将"教师表"和"学院表"添加到视图中,并将题中指定字段添加入视图;切换到"筛选"中选择字段"教师表.工资",条件为">=",实例为"4000";切换到"排序依据"中选择字段"教师表.工资",在"排序选项"处选择"降序",再选择字段"教师表.系名",在"排序选项"处选择"升序";最后将视图命名为teacher_v。三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:1.建立一个文件名和表单名均为oneform的表单,表单中包括两个标签(Label1和Label2)、一个选项组(Optiongroup1)、一个组合框(Combo1)和两个命令按钮(Command1和Command2),Label1和Label2的标题分别为"工资"和"实例",选项组(Optiongroup1)中有两个选项按钮,标题分别为"大于等于"和"小于",Command1和Command2的标题分别为"生成"和"退出"。如图所示。2.将组合框(Combo1)的RowSourceType和RowSource属性手工指定为5和a,然后在表单的Load事件代码中定义数组a并赋值,使得程序开始运行时,组合框中有可供选择的"工资"实例3000、4000和5000。3.为"生成"命令按钮编写程序。程序的功能是:表单运行时,根据选项组和组合框中选定的值,将"教师表"中满足工资条件的所有记录存入自由表salary.dbf中,表中的记录先按"工资"降序、再按"姓名"升序排列。4.为"退出"命令按钮设置Click事件代码,其功能是:释放表单。5.运行表单,在选项组中选择"小于",在组合框中选择"4000",单击"生成"命令按钮,最后,单击"退出"命令按钮。本题主要考核点:表单文件的创建、控件属性的修改、SQL语句的运用、表单的退出。解题思路:①在命令窗口输入命令:CREATEFORMform,打开表单设计器窗口。②为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境"。③在表单上添加各标签、选项组、组合框和命令按钮,并进行适当的布置和大小调整。④根据题面要求设置标签、选项组、组合框和命令按钮以及表单的属性值。⑤将组合框的RowSourceType属性值设置为"5-数组",RowSource属性值设置为"a"。⑥设置"表单"控件的Load事件代码:publica(3),ia(1)=3000a(2)=4000a(3)=5000⑦设置"生成"按钮的Click事件代码:ifthisform.optiongroup1.option1.value=1fori=1to3ifthisform.combo1.listindex=ithenselect*from教师表orderby工资desc,姓名intotablesalarywhere教师表.工资>=a(i)endifnextnelsefori=1to3ifthisform.combo1.listindex=ithenselect*from教师表orderby工资desc,姓名intotablesalarywhere教师表.工资=1。3、通过"文件"菜单下的"新建"命令打开报表设计器,利用"报表"菜单下的"快速报表"命令创建快速报表two。4.使用SQL语句设置表字段有效性规则的命令是:altertable教师表alter职工号setcheckLEFT(职工号,4)="1102",然后将此命令保存在three.prg文件中。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成下列操作:1.打开数据库文件"大学管理",修改并执行程序four.prg。程序four.prg的功能应该是:①建立一个"工资表"(各字段类型和宽度与"教师表"的对应字段相同),其中职工号为关键字;②插入一条"职工号"、"姓名"和"工资"分别为"11020034"、"宣喧"和4500的记录;③将"教师表"中所有记录的相应字段插入"工资表";④将工资低于3000的职工工资增加10%;⑤删除姓名为"Thomas"的记录。注意,只能修改标有错误的语句行,不能修改其他语句,修改以后请执行一次该程序,如果多次执行,请将前一次执行后生成的表文件删除。2.使用查询设计器建立查询teacher_q并执行,查询的数据来源是"教师表"和"学院表",查询的字段项包括:"姓名"、"工资"和"系名",并且查询结果中只包括"工资"小于等于3000的记录,查询去向是表文件five.dbf,查询结果先按"工资"降序排列、再按"姓名"升序排列。本题主要考核点:程序的修改及查询的建立。解题思路:1、本题是一个程序修改题。第一处错误应改为:CREATETABLE工资表(职工号C(8)PRIMARYKEY,姓名C(6),工资N(10,2));第二处错误应改为:INSERTINTO工资表VALUES("11020034","宣喧",4500);第三处错误应改为:UPDATE工资表SET工资=工资*1.1WHERE工资<3000;第四处错误应改为:DELETEFROM工资表WHERE姓名="Thomas"。2、可以在新建对话框中、项目管理器中、或用CREATQUERY命令打开查询设计器,利用查询设计器创建查询,添加"教师表"和"学院表",选中题面要求的字段,在"筛选"中添加:教师表.工资<=3000,先按"工资"降序排列、再按"姓名"升序排列,查询去向为表five,最后将查询保存在teacher_q文件中并运行。三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:n1.建立表单,文件名和表单名均为myform。2.建立一个如图所示的快捷菜单mymenu,该快捷菜单有两个选项:"取前3名"和"取前5名"。分别为他们建立过程,使得程序运行时,单击"取前3名"选项的功能是:根据"学院表"和"教师表"统计查询平均工资前3名(最高)的系的信息并存入表sa_three中,sa_three中包括两个字段"系名"和"平均工资",结果按"平均工资"降序排列;单击"取前5名"选项的功能与"取前3名"类似,统计查询"平均工资"最高的前5名的信息,结果存入sa_five中,sa_five表中的字段和排序方法与sa_three相同。3.在表单myform中设置相应的事件代码,使得右键单击表单内部区域时,能调出快捷菜单,并能执行菜单中的选项。4.运行表单,调出快捷菜单,分别执行"取前3名"和"取前5名"两个选项。本题主要考核点:表单的建立、快捷菜单的建立、在表单中调用快捷菜单、SQL查询语句。解题思路:第一步:首先建立表单,再建立快捷菜单,并生成相应的mpr文件,然后在表单中调用快捷菜单。具体方法是:在"文件"菜单中选择"新建",在"新建"对话框中选择"表单",单击"新建文件"按钮,将name属性改为"myform",再在"文件"菜单中选择"新建",在"新建"对话框中选择"菜单",单击"新建文件"按钮,选择"快捷菜单",在菜单设计器中输入两个菜单项"取前3名"和"取前5名",结果均为"过程","取前3名"过程的代码为:SELECTTOP3学院表.系名,avg(教师表.工资)as平均工资FROM大学管理!学院表INNERJOIN大学管理!教师表ON学院表.系号=教师表.系号GROUPBY学院表.系名ORDERBY2DESCintotablesa_three,"取前5名"过程的代码为:SELECTTOP5学院表.系名,avg(教师表.工资)as平均工资FROM大学管理!学院表INNERJOIN大学管理!教师表ON学院表.系号=教师表.系号GROUPBY学院表.系名ORDERBY2DESCintotablesa_five,单击"菜单"菜单中的"生成",按提示保存为mymenu,并生成菜单源程序文件(MPR)。打开表单myform。双击表单设计器,打开代码窗口,在对象中选择myform,在过程中选择RightClick,输入代码:domymenu.mpr,保存表单为myform。第二步:运行表单,调出快捷菜单,分别执行"取前3名"和"取前5名"两个选项。第41套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)1.建立一个新表emp_bak.dbf,该表的结构与employee表的结构完全相同。2.为employee表的"职员号"字段建立一个候选索引,索引名为empid,索引表达式为"职员号"。3.使用报表向导生成一个报表文件employee.frx,其中包括employee表的职员号、姓名、性别和职务4个字段,报表样式为"简报式",按"职员号"升序排序,报表标题为"职员一览表"。4.建立一个命令文件one.prg,该文件包含一条运行(预览)报表文件employee.frx的命令。本题的主要考核点:复制表结构、侯选索引的建立、快速报表的建立和预览报表文件的命令。解题思路:1、用命令复制表结构的命令是:useemployeecopystructuretoemp_bak2.在employee表设计器中的索引选项卡建立索引名为empid,索引表达式为"职员号"的候选索引。3.启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。4.预览报表文件employee.frx的命令为:reportformemployeeenvironmentpreview,并将此语句存储到名为one.prg的文件中。n二、简单应用(2小题,每题20分,计40分)1.建立一个表单文件myform,将employee表文件添加到数据环境中,在表单中添加表格控件grid1,指定其记录源类型为"别名"、记录源为employee表文件,最后添加一个"退出"命令按钮控件Command1,程序运行时单击该命令按钮将关闭表单。2.修改two.prg文件中的SQLSELECT命令,使之正确运行时可以显示如下结果:组别组长组员1朱茵赵一军1朱茵李龙1朱茵王婧1朱茵王一凡2李毅军刘严俊2李毅军杨小萍2李毅军胡小晴3吴军杨兰3吴军吴伟军3吴军赵小青3吴军韦小光4杨一明李琪4杨一明杨小阳4杨一明李楠4杨一明胡一刀本题的主要考核点:表单的设置和SQL语句的使用。解题思路:1、在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入:createformform1,单击右键添加数据环境,选中employee表文件添加到数据环境中。2、点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"表格"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"表格"控件grid1,按题面要求将grid1的RecordSourceType属性值设置为"1-别名"、RecordSource设置为employee。用类似的方法为表单再加入1个"命令按钮"控件command1,Caption属性值设置为"退出",command1(退出)的Click事件代码为:thisform.release。3、打开two.prg程序,将第2行语句修改为:fromemployeepjoinemployeec;。第3行语句修改为:onp.组别=c.组别wherec.职务="组长"andc.姓名<>p.姓名;。三、综合应用(1小题,计30分)按要求完成如下综合应用:1.建立如下图所示的表单文件form_three(表单名为form1)。标签控件命名为Ln,文本框控件命名为Textn,命令按钮控件命名为Commands。表单运行时在文本框中输入职员号,单击"开始查询"命令按钮查询该职员所经手的订购单信息(order表),查询的信息包括:订单号、客户号、签订日期和金额,按签订日期升序排序,并将结果存储到用字母't'加上职员号命名的表文件中(如职员101经手的订购单信息将存储在t101.dbf文件),每次完成查询后关闭表单。2.建立菜单mymenu,包含菜单项"查询"和"退出",选择"查询"时运行表单form_three(直接用命令),选择"退出"时返回到默认的系统菜单(直接用命令SETSYSMENUTODEFAULT)。n3.最后从菜单运行所建立的表单,并依次查询职员107、111和115经手的订购单信息。本题主要考核点:表单文件的创建、菜单文件的创建、控件属性的修改、SQL语句运用、菜单的退出和表单的运行。解题思路:①在命令窗口输入命令:CREATEFORMform,打开表单设计器窗口。②在表单上添加标签、文本框和命令按钮,并进行适当的布置和大小调整。③根据题面要求设置标签、文本框和命令按钮的属性值。④设置"查询"按钮的Click事件代码:x='t'+alltrim(thisform.Textn.value)SELECTOrder.订单号,Order.客户号,Order.签订日期,Order.金额;FROMemployeeINNERJOINorder;ONEmployee.职员号=Order.职员号;whereOrder.职员号=alltrim(thisform.Textn.value);ORDERBYOrder.签订日期;INTOTABLE&xthisform.release⑤建立菜单可以使用"文件"菜单,选择文件--新建--菜单--新建文件打开菜单设计器。在菜单设计器中建立各菜单项,菜单名称分别为:"查询"和"退出"。"查询"菜单的结果列中选择"命令",选项列中输入doformform_three,"退出"菜单项的结果列中选择"命令",选项列中输入SETSYSMENUTODEFAULT。⑥最后保存菜单mymenu.mnx,并生成菜单程序mymenu.mpr,从菜单运行所建立的表单,并依次查询职员107、111和115经手的订购单信息。第42套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,打开Ecommerce数据库,完成如下操作:1.打开Ecommerce数据库,并将考生文件夹下的自由表OrderItem添加到该数据库。2.为OrderItem表创建一个主索引,索引名为PK,索引表达式为"会员号+商品号";再为OrderItem创建两个普通索引(升序),一个的索引名和索引表达式均是"会员号";另一个的索引名和索引表达式均是"商品号"。3.通过"会员号"字段建立客户表Customer和订单表OrderItem之间的永久联系(注意不要建立多余的联系)。4.为以上建立的联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"限制"。本题主要考核点:将一个自由表添加到数据库中、表索引的建立、表之间的永久联系的建立、参照完整性约束的编辑。解题思路:第1题:打开考生文件夹下的"Ecommerce"数据库,打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的OrderItem表,再点击"确定"即可,这样表OrderItem就添加到了"Ecommerce"数据库中。第2题:在数据库设计器中选中表OrderItem,在数据库菜单中选择"修改(Y)",弹出表设计器,选择表设计器界面中的"索引"标签,在索引名列中填入"PK",在索引类型列中选择"主索引",在索引表达式列中填入"会员号+商品号",用同样的方法再为OrderItem创建两个普通索引(升序),一个的索引名和索引表达式均是"会员号";另一个的索引名和索引表达式均是"商品号",点击"确定"按钮,保存表结构。第3题:在数据库设计器中,选中customer表中的索引"会员号"并拖动到表OrderItem的"会员号"的索引上并松开,这样两个表之间就建立起了永久联系。第4题:在第3题建立好永久联系之后,在两处表的"会员号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"限制",在"插入规则"中选择"限制",单击"确定"保存所编辑的参照完整性。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:n1.建立查询qq,查询会员的会员号(来自Customer表)、姓名(来自Customer表)、会员所购买的商品名(来自article表)、单价(来自OrderItem表)、数量(来自OrderItem表)和金额(OrderItem.单价*OrderItem.数量),结果不要进行排序,查询去向是表ss。查询保存为qq.qpr,并运行该查询。2.使用SQL命令查询小于30岁(含30岁)的会员的信息(来自表Customer),列出会员号、姓名和年龄,查询结果按年龄降序排序存入文本文件cut_ab.txt中,SQL命令存入命令文件cmd_ab.prg。本题主要考核点:查询文件的建立、利用SQL_SELECT语句建立查询。解题思路:第1题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"Customer"表,"article"表,"OrderItem"表添加到查询设计器中(将"article"表和"OrderItem"表通过"商品号"字段建立关联,将"Customer"表和"OrderItem"表通过"会员号"字段建立关联),在"字段"选项卡选择题面中要求的会员号、姓名、商品名、单价、数量字段,金额需要通过计算得到,在函数和表达式处输入"OrderItem.单价*OrderItem.数量as金额",单击"添加"按钮;单击查询菜单下的查询去向,选择表,输入表名ss,最后将查询保存在qq.qpr文件中,并运行该查询。第2题:SQL命令为:SELECT会员号,姓名,年龄FROMCustomerWHERE年龄<=30orderby年龄DESCTOFILEcut_ab.txt,然后将此命令保存在cmd_ab.prg文件中。三、综合应用(1小题,计30分)在考生文件夹下,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):设计一个名称为myform的表单(文件名和表单名均为myform),其中有一个标签Lable1(日期)、一个文本框Text1和两个命令按钮command1("查询")和command2("退出"),如下图所示:然后在表单设计器环境下进行如下操作:1.将表单的标题设置为"综合应用"。2.将文本框的初始值设置为表达式date()。3.设置"查询"命令按钮的Click的事件代码,其功能是:根据文本框Text1中的输入日期,查询各会员在指定日期后(大于等于指定日期)签订的各商品总金额,查询结果的字段包括"会员号"(来自Customer表)、"姓名"和"总金额"三项,其中"总金额"为各商品的数量(来自Orderitem表)乘以单价(来自Article表)的总和;查询结果的各记录按总金额升序排序;查询结果存放到表dbfa.dbf中。4.设置"退出"命令按钮的Click的事件代码,其功能是:关闭并释放表单。最后运行表单,在文本框中输入2003/03/08,并单击"查询"命令按钮。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出。解题思路:①在命令窗口输入命令:CREATEFORMmyform,打开表单设计器窗口。②在表单上添加标签、文本框和命令按钮,并进行适当的布置和大小调整。③设置标签、"退出"命令按钮、表单的Caption属性值以及表单的Name属性值。将"查询"命令按钮的Caption属性值设置为"查询(=ctod(thisform.Text1.Text);ORDERBY3GROUPBYCustomer.会员号;nINTOTABLEdbfa.dbf⑥设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑦保存表单并运行,在文本框中输入03/08/2003,并单击"查询"命令按钮。第43套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下有一表单文件myform.scx,其中包含"高度"标签、Text1文本框,以及"确定"命令按钮。打开该表单文件,然后在表单设计器环境下完成如下操作:1.将标签、文本框和命令按钮三个控件设置为顶边对齐。2.设置"确定"按钮的属性使在表单运行时按Enter键就可以直接选择该按钮。3.将表单的标题设置为"表单操作";将表单的名称设置为myform。4.设置"确定"按钮的Click事件代码,使得表单运行时,单击该按钮可以将表单的高度设置成在文本框中指定的值。本题主要考核点:表单属性的设置、快捷访问键的设置、事件代码的编写。解题思路:1、打开表单myform,选中标签、文本框和命令按钮,选择"格式"菜单下"对齐"菜单下的"顶边对齐"。2、将"确定"按钮的Default属性值设置为.T.。3、将表单的Caption属性值设置为表单操作,Name属性值设置为myform。4、设置"确定"按钮的Click事件代码:this.parent.height=val(this.parent.text1.value)。二、简单应用(2小题,每题20分,计40分)在考生目录下完成如下简单应用:1.用SQL语句完成下列操作:检索客户名为"lilan"所定商品的商品名和单价,结果按单价降序存入book_temp表中。2.首先创建数据库order_m,并向其中添加order和orderitem表。然后在数据库中创建视图viewone:利用该视图只能查询商品号为a00002的商品的订购信息。查询结果依次包含订单号、签订日期和数量三项内容。各记录按订单号升序排序,最后利用刚创建的视图查询视图中的全部信息,并将查询结果存放在表tabletwo中。本题主要考核点:利用SQL_SELECT语句建立查询、数据库的创建、向数据库中添加表、视图的创建。解题思路:第1题:本题的考查点是利用SQL_SELECT语句建立查询。其命令如下:SELECTGoods.商品名,Goods.单价FROMgoods,orderitem,order;WHEREOrderitem.订单号=Order.订单号AND;Goods.商品号=Orderitem.商品号ANDOrder.客户名="lilan";ORDERBYGoods.单价DESCINTOTABLEbook_temp.dbf第2题:创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中依次添加order和orderitem表。再通过新建命令打开视图设计器,在"添加表或视图"对话框中添加order和orderitem表,并设置两表间的联系;在"字段"选项卡中选择订单号、签订日期和数量3个字段;切换到"筛选"选项卡,在其中进行如下设置:字段名条件实例orderitem.商品号="a00002"切换到"排序依据"中选择字段"order.订单号",在"排序选项"处选择"升序",最后将视图保存在viewone文件中。利用刚创建的视图viewone查询视图中的全部信息,在"添加表或视图"对话框中选择viewone视图,在字段中选择所有字段,设置查询去向为表tabletwo。三、综合应用(1小题,计30分)在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前vfp系统菜单的末尾追加一个"考试"子菜单,如下图所示。n菜单命令"计算"和"返回"的功能都通过执行过程完成。菜单命令"计算"的功能如下:(1)用ALTERTABLE语句在order表中添加一个"总金额"字段,该字段为数值型,宽度为7,小数位数为2。(2)根据orderitem表和goods表中的相关数据计算各订单的总金额(一个订单的总金额等于它所包含的各商品的金额之和,每种商品的金额等于数量乘以单价),并填入刚才建立的字段中。菜单命令"返回"的功能是恢复标准的系统菜单。菜单程序生成后,运行菜单程序并依次执行"计算"和"返回"菜单命令。本题主要考核点:创建菜单。解题思路:1、建立菜单可以使用"文件"菜单完成,选择文件--新建--菜单--新建文件打开菜单设计器。打开"显示"菜单下的"常规选项"对话框,在"位置"处选择追加,则新建立的子菜单会在当前vfp系统菜单后显示。2、在菜单名称中填入"考试",结果为子菜单,单击创建;在子菜单的菜单名称中输入"计算",结果为过程。在过程中输入下列命令:ALTERTABLEorderADDCOLUMN总金额N(7,2)CLOSEDATAUSEOrderGOTOPDOWHILENOTEOF()SELECTsum(Orderitem.数量*Goods.单价)FROMorderitem,goods;WHEREOrderitem.商品号=Goods.商品号ANDorderitem.订单号=Order.订单号;GROUPBYOrderitem.订单号INTOARRAYAREPLACE总金额WITHA[1]SKIPENDDO在菜单名称中填入"返回",结果为过程,在过程中输入此命令:SETSYSMENUTODEFAULT。3、最后保存菜单mymenu.mnx,并生成菜单程序mymenu.mpr,且运行菜单程序并依次执行"计算"和"返回"菜单命令。第44套一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)在考生文件夹下有一表单文件formone.scx,其中包含一个文本框和一个命令按钮。打开该表单文件,然后在表单设计器环境下完成如下操作:1.将表单的标题设置为"表单操作";命令按钮的标题设置为"显示"。2.将文本框的初始值设置为数值0、宽度设置为60。3.设置文本框的InputMask属性,使其只能输入数值,其中:小数部分为两位、整数部分(包括正负号)最多为5位。4.修改命令按钮的Click事件代码,使其中的wait命令功能为显示文本框的值。注意:需要将文本框中的数值转换成字符串,其中:小数位数保留两位,字符串的长度为8。本题主要考核点:表单、命令按钮、文本框属性的设置、事件代码的编写。解题思路:1、打开表单formone,将表单的Caption属性值设置为表单操作,命令按钮的Caption属性值设置为显示。2、将文本框的Value属性值设置为0,Width属性值设置为60。3、将文本框的InputMask属性值设置为99999.99。4、设置"显示"按钮的Click事件代码:waitstr(thisform.text1.value,8,2)window。n二、简单应用(2小题,每题20分,计40分)1.编写SELECT语句,从customers(客户)表中统计各年份出生的客户人数。统计结果依次包含"年份"和"人数"两个字段,各记录按年份升序排序,统计结果存放在tableone表中。最后要执行该SELECT语句,并将该SELECT语句存放在命令文件pone.prg中。2.首先创建数据库orders_m,并向其中添加customers(客户)和orders(订单)表。然后在数据库中创建视图viewone:利用该视图只能查询2007年签订的订单信息,查询结果依次包含订单号、签订日期、姓名(即客户姓名)和联系电话四项内容,各记录按签订日期降序排序。最后利用该视图查询视图中的全部信息,并将查询结果存放在表tabletwo中。本题主要考核点:利用SQL_SELECT语句建立查询、数据库的创建、向数据库中添加表、视图的创建。解题思路:第1题:本题的考查点是利用SQL_SELECT语句建立查询。其命令如下:SELECTyear(Customers.出生日期)as年份,;COUNT(Customers.客户号)as人数;FROMcustomers;GROUPBY1;ORDERBY1;INTOTABLEtableone.dbf然后将此命令保存在pone.prg文件中。第2题:创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中依次添加customers和orders表。再通过新建命令打开视图设计器,在"添加表或视图"对话框中添加customers和orders表,并设置两表间的联系;在"字段"选项卡中选择订单号、签订日期、姓名和联系电话4个字段;切换到"筛选"选项卡,在其中进行如下设置:字段名条件实例YEAR(Orders.签订日期)=2007切换到"排序依据"中选择字段"order.签订日期",在"排序选项"处选择"降序",最后将视图保存在viewone文件中。利用刚创建的视图viewone查询视图中的全部信息,在"添加表或视图"对话框中选择viewone视图,在字段中选择所有字段,设置查询去向为表tabletwo。三、综合应用(1小题,计30分)在考生文件夹下有一个未完成的程序文件ptwo.prg,其功能是进行订单处理,具体功能如下:(1)利用SELECT语句产生goods(商品)表的一个副本goods_t表。(2)根据orders、orderitems和goods_t表中的数据、按照签订日期的先后次序依次处理各订单:(a)若订单所订购的所有商品都有足够的库存量,则相关商品的库存量做相应处理(即减去该商品的订购数量),然后将该订单的状态设置为"处理";(b)若订单中有商品没有有足够的库存量,则整个订单不做处理(没有商品库存量被改变),只需将该订单的状态设置为"缺货"。程序中共有5条语句需要考生给定,请根据程序文件中相应的注释信息将正确的语句插入在形如"&&语句"的注释前,不要增、删或修改其他代码。完善程序后,必须执行该程序、产生相应的结果。本题主要考核点:补充程序。解题思路:利用"文件"菜单下的"打开"命令打开程序文件ptwo.prg或者用命令:MODIFYCOMMANDptwo.prg来打开文件。语句1为:setrelationto商品号intogoods_t或其等价语句。语句2为:setrelationto订单号intoorderitems或其等价语句。语句3为:if数量>goods_t.库存量或其等价语句。语句4为:skip-n或其等价语句。语句5为:replace库存量with库存量-orderitems.数量或其等价语句。第45套一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)n在考生文件夹下已有customers(客户)、orders(订单)、orderitems(订单项)和goods(商品)四个表。在考生文件夹下完成如下操作:1.创建一个名为"订单管理"的数据库,并将已有的customers表添加到该数据库中。2.利用表设计器为customers表建立一个普通索引,索引名为bd,索引表达式为"出生日期"。3.在表设计器中为customers表的"性别"字段设置有效性规则,规则表达式为:性别$"男女",出错提示信息是:"性别必须是男或女"。4.利用INDEX命令为customers表建立一个普通索引,索引名为khh,索引表达式为"客户号",索引存放在customers.cdx中。然后将该INDEX命令存入命令文件pone.prg中。本题主要考核点:将一个自由表添加到数据库中、设置有效性规则、用INDEX命令和表设计器建立表索引。解题思路:1、创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中添加customers表。2、在customers表设计器中的索引选项卡建立索引名为bd,索引表达式为"出生日期"的普通索引。3、建立有效性规则在表设计器中的字段选项卡中设置。在"规则"栏中输入:性别$"男女","提示信息"栏输入:"性别必须是男或女"。4、建立普通索引的命令为:INDEXON客户号TAGkhhofcustomers.cdx,然后将此命令保存在pone.prg文件中。二、简单应用(2小题,每题20分,计40分)1.在考生文件夹下创建表单文件formone.scx,如下图所示,其中包含一个标签Label1、一个文本框Text1和一个命令按钮Command1。然后按相关要求完成相应操作。(1)如图所示设置表单、标签和命令按钮的Caption属性。(2)设置文本框的Value属性值为表达式Date()。(3)设置"查询"按钮的Click事件代码,使得表单运行时单击该按钮能够完成如下查询功能:从customers表中查询指定日期以后出生的客户,查询结果依次包含姓名、性别、出生日期三项内容,各记录按出生日期降序排序,查询去向为表tableone。最后运行该表单,查询1980年1月1日以后出生的客户。2.向名为"订单管理"的数据库(在基本操作题中建立)添加orderitems表。然后在数据库中创建视图viewone:利用该视图可以从orderitems表查询统计各商品的订购总量,查询结果依次包含商品号和订购总量(即所有订单对该商品的订购数量之和)两项内容,各记录按商品号升序排序。最后利用该视图查询视图中的全部信息,并将查询结果存放在表tabletwo中。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出。解题思路:第1题:①在命令窗口输入命令:CREATEFORMformone,打开表单设计器窗口。②在表单上添加标签、文本框和命令按钮,并进行适当的布置和大小调整。③设置标签、"查询"命令按钮、表单的Caption属性值。④将文本框的Value属性值设置为"=date()"。⑤设置"查询"按钮的Click事件代码:SELECT姓名,性别,出生日期FROMcustomers;nWHERE出生日期>=ctod(thisform.Text1.Text);ORDERBY出生日期DESC;INTOTABLEtableone.dbf⑥保存表单并运行,在文本框中输入01/01/1980,并单击"查询"命令按钮。第2题:打开"订单管理"数据库,单击"数据库"菜单中的"添加表",将orderitems表添加到数据库中,新建"本地视图",添加"orderitems"表到视图中,先选择"商品号"字段,再在"函数与表达式"中输入"SUM(Orderitems.数量)AS订购总量",单击"添加"按钮,在"排序依据"中选择按"商品号"升序,"分组依据"中选择"商品号",以文件名viewone保存该视图。利用刚创建的视图viewone查询视图中的全部信息,在"添加表或视图"对话框中选择viewone视图,在字段中选择所有字段,设置查询去向为表tabletwo。三、综合应用(1小题,计30分)在考生文件夹下创建一个顶层表单myform.scx(表单的标题为"考试"),然后创建并在表单中添加菜单(菜单的名称为mymenu.mnx,菜单程序的名称为mymenu.mpr)。效果如下图所示。1)菜单命令"计算"和"退出"的功能都通过执行过程完成。2)菜单命令"计算"的功能是根据orderitems表和goods表中的相关数据计算各订单的总金额(一个订单的总金额等于它所包含的各商品的金额之和,每种商品的金额等于数量乘以单价),并将计算的结果填入orders表的相应字段中。3)菜单命令"退出"的功能是释放并关闭表单。最后,请运行表单并依次执行其中的"计算"和"退出"菜单命令。本题主要考核点:表单控件的属性的修改、SQL语句运用、菜单的建立、顶层表单的设计。解题思路:1、建立表单:可通过"文件"菜单下的"新建"命令或用命令CREATEFORM打开表单设计器。2、修改表单各属性值,CAPTION="考试"。将表单以myform.scx为文件名保存在考生文件夹下。3、建立菜单:可通过"文件"菜单下的"新建"命令或用命令CREATEMEMU打开菜单设计器。点击"显示"菜单下的"常规选项"命令打开"常规选项"对话框,选中"顶层表单"复选框。在菜单设计器中建立各菜单项,菜单名称分别为:计算和退出。在"计算"菜单的结果列中选择"过程",并通过单击"创建"按钮打开一个窗口来添加"计算"菜单项要执行的命令:CLOSEDATAUSEOrdersGOTOPDOWHILENOTEOF()dingdanhao=订单号SELECTsum(Orderitems.数量*Goods.单价)FROMorderitems,goods;WHEREOrderitems.商品号=Goods.商品号ANDorderitems.订单号=dingdanhao;GROUPBYOrderitems.订单号INTOARRAYAREPLACE总金额WITHA[1]SKIPENDDO在"退出"菜单的结果列中选择"过程",并通过单击"创建"按钮打开一个窗口来添加菜单项要执行的命令:myform.release,用来关闭表单并返回到系统菜单。最后点击"菜单"下的"生成"命令,生成mymenu.mpr程序。4、将表单myform.scx中的ShowWindow属性设置为"2-作为顶层表单",并在表单的LOAD事件中输入:domymenu.mprwiththis,'mymenu',执行菜单程序。5、保存并运行表单,依次执行其中的"计算"和"退出"菜单命令。n第46套一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)在考生文件夹下完成下列操作:1.打开考生文件夹下的数据库College,物理删除该数据库中的temp表,然后将"教师表"、"课程表"和"学院表"三个自由表加入该数据库中。2.为"课程表"和"教师表"分别建立主索引和普通索引,索引字段和索引名均为"课程号",并为两个表建立一对多的联系。3.使用SQL语句查询"教师表"工资大于4500的教师的全部信息,查询结果按职工号升序排列,查询结果存储到文本文件one.txt中,SQL语句存储于文件two.prg,否则不得分。4.使用报表向导为"学院表"创建一个报表three,选择"学院表"的所有字段,其他选项取默认值。本题主要考核点:在数据库中删除和添加表、表中索引的创建、表之间的永久联系的建立、SQL查询语句、快速报表的建立。解题思路:1、打开"College"数据库,右击删除temp表。并将题面要求的三个表分别添加到数据库中。2、打开"课程表"的表设计器,打开"索引"选项卡,在索引名处输入:课程号,类型选择"主索引",表达式为:课程号;再打开"教师表"的表设计器,打开"索引"选项卡,在索引名处输入:课程号,类型选择"普通索引",表达式为:课程号。在数据库设计器中,选中课程表中的索引"课程号"并拖动到教师表的"课程号"的索引上并松开,这样两个表之间就建立起了永久联系。3、查询"教师表"工资大于4500的教师的全部信息的SQL语句是:select*from教师表where工资>4500orderby职工号tofileone.txt,然后将此命令保存在two.prg文件中。4、打开"新建"对话框,在"文件类型"选项卡中选择"报表",单击"向导"按钮,再选择"报表向导",单击"确定"按钮,打开"报表向导"设计器,然后按照"报表向导"的提示逐步创建报表three即可。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成下列操作:1.请修改并执行程序four.prg,该程序的功能是:根据"学院表"和"教师表"计算"信息管理"系教师的平均工资。注意,只能修改标有错误的语句行,不能修改其他语句。2.在College数据库中使用视图设计器建立视图course_v,该视图根据"课程表"、"学院表"和"教师表"建立,视图中的字段项包括:"姓名"、"课程名"、"学时"和"系名",并且视图中只包括"学时"大于等于60的记录,视图中的记录先按"系名"升序排列、再按"姓名"降序排列,最后查询该视图中的全部信息,并将结果存放到se.dbf中。本题主要考核点:程序的修改及视图的建立。解题思路:第1题:本题是一个程序修改题。第一处错误应改为:SELECT系号FROM学院表WHERE系名="信息管理"INTOARRAYa;第二处错误应改为:USE教师表;第三处错误应改为:SCANFOR系号=a;第四处添加的程序为:num=num+1。第2题:在新建对话框中、项目管理器中、或用CREATVIEW命令打开视图设计器,建立一个视图,将"课程表"、"学院表"和"教师表"添加到视图中,并将题中指定字段添加到视图中;切换到"筛选"中选择字段"课程表.学时",条件为">=",实例为"60";切换到"排序依据"中选择字段"学院表.系名",在"排序选项"处选择"升序",再选择字段"教师表.姓名",在"排序选项"处选择"降序";最后将视图命名为course_v。利用刚创建的视图course_v查询视图中的全部信息,在"添加表或视图"对话框中选择course_v视图,在字段中选择所有字段,设置查询去向为表se.dbf。三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:1.建立一个文件名和表单名均为oneform的表单,表单中包括两个标签(Label1和Label2)、一个选项组(Optiongroup1)、一个组合框(Combo1)和两个命令按钮(Command1和Command2),Label1和Label2的标题分别为"系名"和"计算内容",选项组(Optiongroup1)中有两个选项按钮option1和option2,标题分别为"平均工资"和"总工资",Command1和Command2的标题分别为"生成"和"退出"。如图所示。n2.将"学院表"添加到表单的数据环境中,然后手工设置组合框(Combo1)的RowSourceType属性为6、RowSource属性为"学院表.系名",使得程序开始运行时,组合框中有可供选择的来源于"学院表"的所有"系名"。3.为"生成"命令按钮编写程序。程序的功能是:表单运行时,根据组合框和选项组中选定的"系名"和"计算内容",将相应"系"的"平均工资"或"总工资"存入自由表salary.dbf中,表中包括"系名"、"系号"以及"平均工资"或"总工资"三个字段。4.为"退出"命令按钮编写程序,程序的功能是释放表单。5.运行表单,在选项组中选择"平均工资",在组合框中选择"信息管理",单击"生成"命令按钮。最后,单击"退出"命令按钮结束。本题主要考核点:表单文件的创建、控件属性的修改、SQL语句的运用、表单的退出。解题思路:①在命令窗口输入命令:CREATEFORMoneform,打开表单设计器窗口。②在表单上添加各标签、选项组、组合框和命令按钮,并进行适当的布置和大小调整。根据题面要求设置标签、选项组、组合框和命令按钮以及表单的属性值。③为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境"。④将组合框的RowSourceType属性值设置为6,RowSource属性值设置为"学院表.系名"。⑤设置"生成"按钮的Click事件代码:IFthisform.optiongroup1.option1.value=1SELECT学院表.系名,教师表.系号,AVG(教师表.工资)as平均工资FROM学院表,教师表;WHERE学院表.系号=教师表.系号AND学院表.系名=thisform.combo1.value;INTOTABLEsalary.dbfELSESELECT学院表.系名,教师表.系号,SUM(教师表.工资)as总工资FROM学院表,教师表;WHERE学院表.系号=教师表.系号AND学院表.系名=thisform.combo1.value;INTOTABLEsalary.dbfENDIF⑥设置"退出"按钮的Click事件代码:thisform.release⑦保存表单并运行,在选项组中选择"平均工资",在组合框中选择"信息管理",单击"生成"命令按钮,最后,单击"退出"命令按钮。第47套一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)在考生文件夹下完成下列操作:1.新建一个数据库文件College,将自由表"教师表"、"课程表"和"学院表"加入该数据库。2.通过表设计器为"教师表"的"职工号"字段增加有效性规则:职工号的最左边四位字符是"1102"。3.打开one.prg文件,修改其中的一处错误,使得程序执行的结果是在屏幕上显示246810。注意:错误只有一处,文件修改之后要存盘。4.使用表单向导为"课程表"建立表单two,选择"课程表"的所有字段,其他选项取默认值。n本题主要考核点:将自由表添加到数据库中、设置有效性规则、修改程序、表单向导的使用。解题思路:1、创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中依次添加"教师表"、"课程表"和"学院表"。2、在教师表的表设计器中,选中"职工号"字段,并在"字段有效性"的"规则"文本框中输入:LEFT(职工号,4)="1102"。点击"确定"按钮,保存对表结构的修改。3、打开one.prg程序,将第4条语句修改为:i=i+2。4、打开"新建"对话框,在"文件类型"选项卡中选择"表单",单击"向导"按钮,再选择"表单向导",然后按照表单向导操作即可。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成下列操作:1.请修改并执行程序four.prg。程序four.prg的功能是:计算每个系的平均工资和最高工资并存入表three.dbf中,要求three.dbf中包含"系名"、"平均工资"和"最高工资"字段,先按"最高工资"降序排列,再按"平均工资"降序排列。2.使用查询设计器建立查询course_q并执行,查询的数据来源是"课程表"、"教师表",查询的字段项包括:"姓名"、"课程名"、"学时",并且查询结果中只包括"学时"大于等于60的记录,查询去向是表文件five.dbf,查询结果先按"学时"升序排列、再按"姓名"降序排列。本题主要考核点:程序的修改和查询的建立。解题思路:第1题:本题是一个程序修改题。修改后的程序为:SELECT系名,avg(工资)as平均工资,max(工资)as最高工资;FROM教师表,学院表WHERE教师表.系号=学院表.系号;GROUPBY学院表.系号;ORDERBY3DESC,2DESC;INTOtablethree第2题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"课程表"和"教师表"添加到查询设计器中,在"字段"选项卡选择"姓名"、"课程名"、"学时"字段;切换到"筛选"中选择"课程表.学时","条件"选择">=","实例"中输入60;切换到"排序依据"中选择字段"课程表.学时",在"排序选项"处选择"升序",选择"教师表.姓名"字段,在"排序选项"处选择"降序";单击查询菜单下的查询去向,选择表,输入表名five,最后将查询保存在course_q.qpr文件中,并运行该查询。三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:1.建立一个文件名和表单名均为oneform的表单,表单中一个页框Pageframe1和两个命令按钮Command1n(生成)和Command2(退出),Pageframe1中有两个页面(Page1和Page2),标题分别为"系名"和"计算方法",Page1中有一个组合框(Combo1),Page2中有一个选项组(Optiongroup1),选项组(Optiongroup1)中有两个选项按钮,标题分别为"平均工资"和"总工资"如图所示。2.将"学院表"添加到表单的数据环境中,然后手工设置组合框(Combo1)的RowSourceType属性为6、RowSource属性为"学院表.系名",使得程序开始运行时,组合框中有可供选择的来源于"学院表"的所有"系名"。3.为"生成"命令按钮编写程序。程序的功能是:表单运行时,根据选项组和组合框中选定的"系名"和"计算方法",将相应"系"的"平均工资"或"总工资"存入自由表salary.dbf中,表中包括"系名"、"系号"以及"平均工资"或"总工资"三个字段。4.为"退出"命令按钮编写程序。程序的功能是:释放表单。5.运行表单,在选项组中选择"总工资",在组合框中选择"通信",单击"生成"命令按钮进行计算。最后,单击"退出"命令按钮结束。本题主要考核点:表单文件的创建、控件属性的修改、SQL语句的运用、表单的退出。解题思路:①在命令窗口输入命令:CREATEFORMoneform,打开表单设计器窗口。②在表单上添加页框、组合框、选项组和命令按钮,并进行适当的布置和大小调整。根据题面要求设置页框、组合框、选项组和命令按钮以及表单的属性值。③为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境"。④将组合框的RowSourceType属性值设置为6,RowSource属性值设置为"学院表.系名"。⑤设置"生成"按钮的Click事件代码:IFthisform.Pageframe1.Page2.optiongroup1.option1.value=1SELECT学院表.系名,教师表.系号,AVG(教师表.工资)as平均工资FROM学院表,教师表;WHERE学院表.系号=教师表.系号AND学院表.系名=thisform.Pageframe1.Page1.combo1.value;INTOTABLEsalary.dbfELSESELECT学院表.系名,教师表.系号,SUM(教师表.工资)as总工资FROM学院表,教师表;WHERE学院表.系号=教师表.系号AND学院表.系名=thisform.Pageframe1.Page1.combo1.value;INTOTABLEsalary.dbfENDIF⑥设置"退出"按钮的Click事件代码:thisform.release⑦保存表单并运行,在选项组中选择"总工资",在组合框中选择"通信",单击"生成"命令按钮进行计算。最后,单击"退出"命令按钮结束。第48套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.打开"订单管理"数据库,然后从中删除customer表(物理删除)。2.为employee表建立一个普通索引,索引名为xb,索引表达式为"性别",升序索引。3.为employee表建立一个普通索引,索引名为xyz,索引表达式为"str(组别,1)+职务",升序索引。4.为employee表建立主索引,为orders建立普通索引,索引名和索引表达式均为"职员号"。通过"职员号"在employee表和orders之间建立一个一对多的永久联系。本题主要考核点:从数据库中删除表、表中索引的创建和表之间的永久联系的建立。解题思路:1、打开"订单管理"数据库,右击删除customer表。2、打开"employee"的表设计器,打开"索引"选项卡,在索引名处输入:xb,类型选择"普通索引",表达式为:性别,排序为升序。3、再在索引名处输入:xyz,类型选择"普通索引",表达式为:str(组别,1)+职务,排序为升序。4、接着,在索引名处输入:职员号,类型选择"主索引",表达式为:职员号。再打开"orders"的表设计器,打开"索引"选项卡,在索引名处输入:职员号,类型选择"普通索引",表达式为:职员号。在数据库设计器中,选中employee表中的索引"职员号"并拖动到orders表的"职员号"n的索引上并松开,这样两个表之间就建立起了永久联系。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,完成如下简单应用:1.在考生文件夹下已有表单文件formone.scx,如下图所示,其中包含两个标签、一个组合框和一个文本框。请按下面要求完成相应的操作,使得当表单运行时,用户能够从组合框选择职员,而该职员所签订单的平均金额能自动显示在文本框里。1)将orders表和employee表依次添加到该表单的数据环境中(不要修改两个表对应对象的各属性值)。2)将组合框设置成下拉列表框;将employee表中的"姓名"字段作为下拉列表框条目的数据源(RowSourceType属性值应设置为:6-字段)。3)将文本框Text1设置为只读。4)修改组合框的InteractiveChange事件代码,使得当用户从组合框选择职员时,能够将该职员所签订单的平均金额自动显示在文本框里。2.利用查询设计器创建查询,从employee和orders表中查询"组别"为1的组各职员所签所有订单的信息。查询结果依次包含"订单号"、"金额"、"签订者"三项内容,其中"签订者"为签订订单的职员姓名。各记录按"金额"降序排序;查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。本题的主要考核点:表单的设置、建立查询。解题思路:第1题:1、打开表单文件formone.scx,单击右键添加数据环境。2、设置组合框的Style属性为.2-下拉列表框,RowSourceType属性值设置为:6-字段、RowSource设置为:employee.姓名。3、设置文本框Text1的ReadOnly属性值为:.T.-真。4、修改组合框的InteractiveChange事件代码如下:将***FOUND***下的代码修改为:thisform.text1.value=m2第2题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将employee和orders表添加到查询设计器中,在"字段"选项卡选择"订单号"、"金额"字段,再在"函数和表达式"中输入"Employee.姓名AS签订者",单击"添加"按钮;切换到"筛选"中选择"Employee.组别","条件"选择"=","实例"中输入1;切换到"排序依据"中选择字段"orders.金额",在"排序选项"处选择"降序";单击查询菜单下的查询去向,选择表,输入表名tableone,最后将查询保存在queryone.qpr文件中,并运行该查询。三、综合应用(1小题,计30分)在考生文件夹下完成如下操作:在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前VisualFoxPro系统菜单的"帮助"子菜单之前插入一个"考试"子菜单,如下图所示。菜单命令"统计"和"返回"的功能都通过执行过程完成。n菜单命令"统计"的功能是以组为单位求订单金额的和。统计结果包含"组别"、"负责人"和"合计"三项内容,其中"负责人"为该组组长(由employee中的"职务"一项指定)的姓名,"合计"为该组所有职员所签订单的金额总和。统计结果应按"合计"降序排序,并存放在tabletwo表中。菜单命令"返回"的功能是返回标准的系统菜单。菜单程序生成后,运行菜单程序并依次执行"统计"和"返回"菜单命令。本题的主要考核点:创建菜单。解题思路:1、建立菜单可以使用"文件"菜单完成,选择文件--新建--菜单--新建文件打开菜单设计器。打开"显示"菜单下的"常规选项"对话框,在"位置"处选择"在...之前",在右边的下拉框中选择"帮助"。2、在菜单名称中填入"考试",结果为子菜单,单击创建;在子菜单的菜单名称中输入"统计",结果为过程。在过程中输入下列命令:selectSUM(金额)as合计,组别fromorders;innerjoinemployeeonorders.职员号=employee.职员号;groupbyemployee.组别intotabletmptblselecttmptbl.组别,姓名as负责人,合计fromemployee,tmptbl;wheretmptbl.组别=employee.组别and职务='组长';orderby合计descintotabletabletwo在菜单名称中填入"返回",结果为过程,在过程中输入此命令:SETSYSMENUTODEFAULT。3、最后保存菜单mymenu.mnx,并生成菜单程序mymenu.mpr,且运行菜单程序并依次执行"统计"和"返回"菜单命令。第49套一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下有一表单文件myform.scx,其中包含"请输入(s)"标签、Text1文本框,以及"确定"命令按钮。打开该表单文件,然后在表单设计器环境下完成如下操作:1.将表单的名称设置为myform;将表单的标题设置为"表单操作"。2.按标签、文本框和命令按钮的顺序设置表单内三个控件的Tab键次序。3.为表单新建一个名为mymethod的方法,方法代码为:wait"文本框的值是"+this.text1.valuewindow4.将"请输入(s)"标签中的字母s设置成"访问键"(方法是在该字符前插入"<");设置"确定"按钮的Click事件代码,其功能是调用表单的mymethod方法。本题主要考核点:表单及表单控件属性的设置、新建表单方法、访问键的设置、事件代码的编写。解题思路:1、打开表单myform,将表单的Name属性值设置为myform,Caption属性值设置为"表单操作"。2、将标签的TabIndex属性设置为1,文本框的TabIndex属性设置为2,命令按钮的TabIndex属性设置为3。3、在"表单"菜单中选择"新建方法程序"命令,新建一个名为mymethod的方法,在myform表单的属性窗口中双击此方法打开用户自定义过程代码,输入:wait"文本框的值是"+this.text1.valuewindow4、将"请输入(s)"标签的Caption属性设置为:请输入(0,违背规则时的提示信息是:"单价必须大于零"。4.关闭"订货管理"数据库,然后建立自由表customer,表结构如下:客户号字符型(6)客户名字符型(16)地址字符型(20)电话字符型(14)本题主要考核点:将一个自由表添加到数据库中、为字段建立约束规则、设置字段的默认值、建立表的结构等知识点本题解题思路:第一步:打开考生文件夹下的"订货管理"数据库第二步:打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的order_detailn表,再点击"确定"即可,这样表order_detail就添加到了"订货管理"数据库中第三步:在数据库设计器中选中"order_detail"表,选择数据库菜单下的"修改(V)",弹出表设计器,在表设计器中点击"单价"所在的行,单击Null列上的按钮,确认按钮上出现对号,在字段有效性的规则字段中输入:单价>0,在信息框中输入:"单价必须大于0",在默认值框中输入:.NULL.。确定即可第四步:关闭数据库,在VisualFoxPro主窗口中按下组合键Ctrl+N。系统弹出"新建"对话框,在"文件类型"中选择表,在弹出的对话框中选择"新建表",并在弹出"创建"对话框中选定考生文件夹,在输入表名中填入"customer",再点击保存。第四步:在弹出的表设计器中按题面的要求依次输入各个字段的定义,点击"确定"按钮,保存表结构。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.列出总金额大于所有订购单总金额平均值的订购单(order_list)清单(按客户号升序排列),并将结果存储到results表中(表结构与order_list表结构相同)。2.利用VisualFoxpro的"快速报表"功能建立一个满足如下要求的简单报表:(1)报表的内容是order_detail表的记录(全部记录,横向);(2)增加"标题带区",然后在该带区中放置一个标签控件,该标签控件显示报表的标题"器件清单";(3)将页注脚区默认显示的当前日期改为显示当前的时间;(4)最后将建立的报表保存为report1.frx。本题主要考核点:SQL中的查询SELECT查询、联接查询、查询的排序、查询的结果的去向等;报表的建立方法等知识点.解题思路:第一小题:为了能得到所有总金额大于平均总金额的订购单信息,应该首先得到总金额的平均值,利用:SELECTAVG(总金额)FROMORDER_LISTINTOARRAYAFieldsValue,并将总金额的平均值放到一个数组变量之中AFieldsValue;下一步就可以以总金额>AFieldsValue为条件得到总金额大于平均总金额的订购单信息,将这一条件放在WHERE子句的后面,查询结果的排序要用到ORDERBY子句,ORDERBY客户号;查询结果要放入一个永久表中要用到INTOTABLE子句,结果保存到RESULTS表中所以要用INTOTABLERESULTS.本题由两条SQL语句组成:SELECTAVG(总金额)FROMORDER_LISTINTOARRAYAFieldsValueSELECT*FROMORDER_LISTWHERE总金额>AFieldsValue;ORDERBY客户号;INTOTABLERESULTS第二小题:第一步:在VisualFoxPro主窗口按下组合键Ctrl+N,系统弹出"新建"对话框,在"文件类型"中选择"报表",再点击新建文件按钮,系统弹出报表设计器第二步:单击主窗口"报表"菜单下的"快速报表(O)",系统弹出"打开"对话框,选择考生文件夹下的order_detail.dbf表,单击"确定",系统弹出"快速报表"对话框,单击"确定"按钮后便生成了一个报表,将报表文件以文件名report1.frx保存在考生文件夹下。第三步:选择主菜单"报表"下的"标题/总结(T)",弹出"标题/总结"对话框,在"报表标题"类型中选择"标题带区",单击"确定"按钮,这样就在报表中加入了一个"标题带区",打开"报表控件工具栏",在打开的"报表控件"中选择"标签"控件,在标题带区点击鼠标,输入"器件清单"第四步:双击"页注脚"中的显示当前日期的域控件,打开"报表表达式",在"表达式"文本框中将原来的DATE()用TIME()来代替。点击"确定"第五步:以文件名report1.frx将报表文件保存在考生文件夹下。三、综合应用(1小题,计30分)首先将order_detail表全部内容复制到od_bak表,然后对od_bak表编写完成如下功能的程序:1.把"订单号"尾部字母相同并且订货相同("器件号"相同)的订单合并为一张订单,新的"订单号"就取原来的尾部字母,"单价"取最低价,"数量"取合计;2.结果先按新的"订单号"升序排序,再按"器件号"升序排序;3.最终记录的处理结果保存在od_new表中;4.最后将程序保存为prog1.prg,并执行该程序。本题主要考核点:程序的建立方法、程序中循环结构的使用、SQLn查询语句的使用、记录的修改方法;报表的建立方法等知识点本题解题思路:第一步:在VisualFoxPro主窗口下按组合键Ctrl+N,系统弹出"新建"对话框,在"文件类型"中选择"程序",再点击"新建文件"按钮,则系统弹出程序编辑窗口;第二步:在弹出的窗中中输入以下代码:SETTALKOFFSETSAFETYOFFsele*fromorder_detailintotableod_bak&&复制一个表用来存放结果USEOD_BAKCOPYSTRUCTURETOOD_NEW&&首先得到所有的新定单号和器件号:SELECTRIGHT(订单号,1)AS新订单号,器件名,器件号,;RIGHT(订单号,1)+器件号ASNEWNUM;FROMOD_BAK;GROUPBYNEWNUM;ORDERBY新订单号,器件号;INTOCURSORCurTableDOWHILENOTEOF()&&得到单价和数量SELECTMIN(单价)AS最低价,SUM(数量)AS数量合计;FROMOD_BAK;WHERERIGHT(订单号,1)=CurTable.新订单号AND器件号=CurTable.器件号;INTOARRAYAFieldsValueINSERTINTOOD_NEWVALUES;(CurTable.新订单号,CurTable.器件号,CurTable.器件名,AFieldsValue(1,1),AFieldsValue(1,2))SKIPENDDOCLOSEALLSETTALKONSETSAFETYON第三步:单击"保存"工具栏按钮,以文件名prog1.prg保存程序文件在考生文件夹下,并运行程序。第54套题一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.创建一个新的项目sdb_p,并在该项目中创建数据库sdb。2.将考生文件夹下的自由表student和sc添加到sdb数据库中。3.在sdb数据库中建立表course,表结构如下:字段名类型宽度课程号字符型2课程名字符型20学时数值型2随后向表中输入6条记录,记录内容如下(注意大小写):课程号课程名学时c1C++60c2VisualFoxPro80c3数据结构50c4JAVA40c5VisualBASIC40c6OS604.为course表创建一个主索引,索引名为cno、索引表达式为"课程号"。n本题主要考核点:创建项目、建立数据库、自由表添加到数据库中、在数据库中建立表、索引的建立解题思路:第一步:在VisualFoxPro主窗口下按组合键Ctrl+N,则系统弹出"新建"对话框,在文件类型中选择"项目",再点击"新建文件"按钮;第二步:在弹出的"创建"对话框中,选定考生文件夹,在项目文件中填入"sdb_p.pjx",再点击保存按钮;这样便新建了一个项目;第三步:在弹出的项目管理器中先选择"数据"标签,再选择"数据库",最后点击"新建"按钮;第四步:在弹出的"新建数据库"对话框中点击"新建文件";第五步:在弹出的"创建"对话框中,选定考生文件夹,在"数据库名"中填入"sdb.dbc",再点击保存按钮;这样便完成了数据库的添加。第六步:在已新建的项目sdb_p的项目管理器中先选择"数据"标签,再选择"表",最后点击"添加(A)",在弹出的"打开"对话框中选定考生文件夹下的表STUDENT,再点击保存,这样自由表就添加到了数据库中。用同样的方法将表SC也添加到数据库中,在索引类型列中选择"主索引",在索引表达式列中填入"课程号",点击"确定"按钮,保存表结构。第十步:向表course.dbf输入内容,并保存。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.根据sdb数据库中的表用SQLSELECT命令查询学生的学号、姓名、课程名和成绩,结果按"课程名"升序排序,"课程名"相同时按"成绩"降序排序,并将查询结果存储到sclist表中。2.使用表单向导选择student表生成一个名为form1的表单。要求选择student表中所有字段,表单样式为"阴影式";按钮类型为"图片按钮";排序字段选择"学号"(升序);表单标题为"学生基本数据输入维护"。本题主要考核点:SQL语言中的查询、联接查询、查询的排序、查询的结果去向、利用表单向导建立表单等知识点。解题思路:第一小题:本题要用一个联接查询来实现。要得到的信息存放在三个不同的表中,所以要通过联接来得到所需要的信息。联接的条件:STUDENT.学号=SC.学号ANDSC.课程号=COURSE.课程号放在WHERE子句的后面;结果集的排序需要ORDERBY子句,排序默认是升序如果要以降序排序需要DESC;结果要放入一个永久表中要用到INTOTABLE子句,完整的查询语句:SELECTSTUDENT.学号,姓名,课程名,成绩;FROMSTUDENT,SC,COURSE;WHERESTUDENT.学号=SC.学号ANDSC.课程号=COURSE.课程号;ORDERBY课程名,成绩DESC;INTOTABLESCLIST第二小题:第一步:打开在基本操作题中所建立的项目"sdb_p.pjx"第二步:在项目sdb_p的项目管理器中,先选择"文档"标签,再选择"表单",最后点击"新建(N)"按钮。第三步:在弹出的"新建表单"对话框中点击"表单向导(W)",并在弹出的"向导选取"对话框中,在"选择要使用的向导"中选择"表单向导",点击"确定"按钮.第四步:在"表单向导"步骤一的字段选取中,选定student表,并将其全部字段放入"选定字段"中,点击下一步;在步骤二的选择表单样式中的样式类型中选择"阴影式",在"按钮类型"中选择"图片按钮",点击下一步;在步骤三排序次序中选择按学号的升序排序,点击下一步;在步骤四完成中在表单标题文本框中输入:学生基本输入数据维护,点击"完成"按钮。在弹出的"另存为"对话框,从对话框中选定考生文件夹,并输入form1.scx,点击"保存"按钮即可。三、综合应用(1小题,计30分)1.打开基本操作中建立的数据库sdb,使用SQL的CREATEVIEW命令定义一个名称为SVIEW的视图,该视图的SELECT语句完成查询:选课数是3门以上(不包括3门)的每个学生的学号、姓名、平均成绩、最低分和选课数,并按"平均成绩"降序排序。最后将定义视图的命令代码存放到命令文件T1.PRG中并执行该文件。接着利用报表向导制作一个报表。要求选择SVIEW视图中所有字段;记录不分组;报表样式为"随意式";排序字段为"学号"(升序);报表标题为"学生成绩统计一览表";报表文件名为pstudent。2.设计一个名称为form2的表单,表单上有"浏览"(名称为Command1)和"打印"(Command2)两个命令按钮。鼠标单击"浏览"命令按钮时,先打开数据库sdb,然后执行SELECT语句查询前面定义的SVIEWn视图中的记录(两条命令不可以有多余命令),鼠标单击"打印"命令按钮时,调用报表文件pstudent浏览报表的内容(一条命令,不可以有多余命令)。本题主要考核点:视图的建立方法、利用报表向导建立报表的方法、表单的建立方法等知识点解题思路:第一小题:先打开数据库SDB,打开考生文件夹下新建的项目"sdb_p.pjx",在命令窗口中输入下列命令来建立sview视图:CREATEVIEWSVIEWAS;SELECTSC.学号,姓名,AVG(成绩)AS平均成绩,MIN(成绩)AS最低分,COUNT(课程号)AS选课数;FROMSC,STUDENT;WHERESC.学号=STUDENT.学号;GROUPBYSTUDENT.学号;HAVINGCOUNT(课程号)>3;ORDERBY平均成绩DESC下面来建立T1.prg程序,在项目sdb_p的项目管理器中,选择"代码"标签,再选择"程序",点击"新建(N)"按钮,在打开的代码编辑窗口中输入sview视图的查询代码,即:SELECTSC.学号,姓名,AVG(成绩)AS平均成绩,MIN(成绩)AS最低分,COUNT(课程号)AS选课数;FROMSC,STUDENT;WHERESC.学号=STUDENT.学号;GROUPBYSTUDENT.学号;HAVINGCOUNT(课程号)>3;ORDERBY平均成绩DESC选择工具栏的保存按钮,以文件名T1.prg保存在考生文件夹下。利用表单向导来建立表单:在项目sdb_p的项目管理器中,选择"文档"标签,再选择"报表",点击"新建(N)"按钮,在弹出的"新建报表"对话框中选择"报表向导",在弹出的"向导选取"对话框中选择"报表向导",点击"确定"按钮,弹出"报表向导",在"报表向导"步骤一字段选取中选择sview视图中的所有字段,然后点击"下一步";在"报表向导"的步骤二分组记录中直接点击"下一步";在步骤三选择报表样式中,选择报表样式类型为"随意式",然后点击"下一步";在步骤五排序记录中选择按学号的升序,然后点击"下一步";在步骤六完成中输入报表的标题:学生成绩统计一览表,然后点击"完成",在弹出的"另存为"对话框中的"保存报表为:"文本框中输入:pstudent.frx报表名,保存在考生文件夹下即可。第二小题:在项目sdb_p的项目管理器中,选择"文档"标签,再选择"表单",点击"新建(N)"在弹出的"新建表单"对话框中点击"新建表单",系统打开表单设计器;点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"中,选中"命令按钮",在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"对象command1,设置它的caption属性为"浏览",双击command1在打开的代码编辑器窗口中输入以下代码:opendatasdbselect*fromsview作为command1的CLICK的事件代码。用同样的方法,在表单上放置command2对象,它的Click的事件代码为:REPORTFORMPSTUDENT.FRXPREVIEW以文件名form2.scx保存表单,并且保存在考生文件夹下。第55套题一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)在考生文件夹下的数据库salarydb中完成如下操作:1.在数据库salarydb中建立表dept,表结构如下:字段名类型宽度部门号字符型2部门名字符型20随后在表中输入5条记录,记录内容如下:部门号部门名01制造部02销售部n03项目部04采购部05人事部2.为dept表创建一个主索引(升序),索引名和索引表达式均是"部门号"。3.通过"部门号"字段建立salarys表和dept表间的永久联系。4.为以上建立的联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"限制"。本题主要考核点:在一个数据库中添加一个新表、表结构的定义、索引的建立、建立表间的永久联系、为表间的永久性联系设置参照完整性约束等知识点本题解题思路:第一步:打开考生文件夹下的"salarydb"数据库第二步:打开数据库菜单选择"新建表(N)",在弹出的"新建表"对话框中,点击"新建表"按钮,弹出"创建"对话框,选定考生文件夹,在"输入表名"文本框中输入:dept.dbf,再点击"保存"。第三步:在弹出的表设计器中按题面要求依次输入各字段的定义,单击"索引"标签,在索引名列输入"部门号",在类型列选择"主索引",在表达式列输入"部门号",在排序列使箭头向上,点击"确定"按钮,保存表结构。第四步:对表dept.dbf输入题面所要求的各字段的内容第五步:在数据库设计器中,选中dept表中的索引"部门号"并拖动到表salarys的"部门号"的索引上松开,这样两个表之间就建立起了永久联系。第六步:在第五步建立好永久联系之后,在两处表的"部门号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"限制",在"插入规则"中选择"限制",单击"确定"保存所编辑的参照完整性。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.使用报表向导建立一个简单报表。要求选择salarys表中所有字段;记录不分组;报表样式为"随意式";列数为"1",字段部局为"列",方向为"纵向";排序字段为"雇员号"(升序);报表标题为"雇员工资一览表";报表文件名为print1。2.在考生文件夹下有一个名称为form1的表单文件,表单中的两个命令按钮的click事件下的语句都有错误,其中一个按钮的名称有错误。请按如下要求进行修改,修改完成后保存所做的修改:(1)将按钮"刘缆雇员工资"名称修改为"浏览雇员工资";(2)单击"浏览雇员工资"命令按钮时,使用SELECT命令查询salarys表中所有字段信息供用户浏览;(3)单击"退出表单"命令按钮时,关闭表单。注意:每处错误只能在原语句上进行修改,不能增加语句行。本题主要考核点:利用报表向导来建立报表、表单的一些基础知识等知识点解题思路:第一小题:第一步:打开考生文件夹下的"salary_db"数据库第二步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"报表",点击"向导"按钮第三步:在弹出的"向导选取"对话框中选择"报表向导",点击"确定"按钮,弹出"报表向导",在"报表向导"步骤一字段选取中选择salarys表中的所有字段,然后点击"下一步";在"报表向导"的步骤二分组记录中直接点击"下一步";在步骤三选择报表样式中,选择报表样式类型为"随意式",然后点击"下一步";在步骤五排序记录中选择按雇员号的升序,然后点击"下一步";在步骤六完成中输入报表的标题:雇员工资一览表,然后点击"完成",在弹出的"另存为"对话框中的保存报表为print1.frx报表名,保存在考生文件夹下即可。第二小题:(1)打开form1表单,选中浏缆雇员工资的CAPTION属性为浏览雇员工资,(2)双击"浏览雇员工资"命令按钮,输入SELECT*FROMsalarys,返回(3)双击"退出表单"命令按钮,输入THISFORM.RELEASE。三、综合应用(1小题,计30分)1.请编写名称为change_c的程序并执行;该程序实现下面的功能:将雇员工资表salarys进行备份,备份文件名为baksals.dbf;利用"人事部"向"财务部"提供的雇员工资调整表c_salary1的"工资",对salarys表的"工资"进行调整(请注意:按"雇员号"n相同进行调整,并且只是部分雇员的工资进行了调整,其他雇员的工资不动);最后将salarys表、中的记录存储到od_new表中(表结构与salarys表完全相同)2.设计一个文件名为form2的表单,上面有"调整"(名称Command1)和"退出"(名称Command2)两个命令按钮。单击"调整"命令按钮时,调用change_c命令程序实现工资调整;单击"退出"命令按钮时,关闭表单。注意:在两个命令按钮中均只有一条命令,不可以有多余命令。本题主要考核点:程序文件的建立方法、循环结构、表单的建立方法等知识点解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"程序",点击"新建文件"按钮第二步:在弹出的代码编辑器窗口中输入以下代码:SETTALKOFFSETSAFETYOFFSELECT*FROMSALARYSINTOTABLEBAKSALSUSEC_SALARY1DOWHILENOTEOF()UPDATESALARYSSET工资=C_SALARY1.工资;WHERE雇员号=C_SALARY1.雇员号SKIPENDDOSELECT*FROMSALARYSINTOTABLEOD_NEWCLOSEALLSETTALKONSETSAFETYON第三步:以文件名change_c.prg将文件保存在考生文件夹下,并运行。第二小题:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮第二步:系统打开表单设计器;点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"中,选中"命令按钮",在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"对象command1,设置它的caption属性为"调整",双击command1在打开的代码编辑器窗口中输入以下代码:DOCHANGE_C.PRG作为command1的CLICK的事件代码。用同样的方法,在表单上放置command2对象,它的Click的事件代码为:THISFROM.RELEASE第三步:以文件名form2.scx保存表单,并且保存在考生文件夹下。第56套题一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.打开项目文件salary_p,将考生文件夹下的数据库salarydb添加到该项目中。2.在salarydb数据库中为dept表创建一个主索引(升序),索引名和索引表达式均是"部门号";为salarys表创建一个普通索引(升序),索引名和索引表达式均是"部门号",再创建一个主索引(升序)、索引名和索引表达式均是"雇员号"。3.通过"部门号"字段建立salarys表和dept表间的永久联系。4.为以上建立的联系设置参照完整性约束:更新规则为"限制";删除规则为"级联";插入规则为"限制"。】本题主要考核点:索引的建立、建立两表之间的永久联系、编辑参照完整性、将数据库加入到项目中等知识点解题思路:第一步:打开考生文件夹下的项目salary_p第二步:在项目salary_p的项目管理器中,先选择"数据"标签,再选择"数据库",点击"添加"按钮,在弹出的"打开"对话框中选择考生文件夹下的"salarydb.dbc",点击"确定"按钮,数据库便添加到项目之中第三步:在项目管理器中选中表"dept",点击"修改",弹出"表设计器",选择"索引"标签,在"索引名"列和"索引表达式"列中分别输入"部门号",在"类型"列中选择"主索引",排序的为升序,点击"确定"n按钮,保存修改。用同样的方法为salarys表建立所要求的普通索引和主索引第四步:在项目管理器中选中数据库"salarydb",点击"修改"按钮,打开"数据库设计器"。在表dept的索引"部门号"上按下鼠标左键,并拖动鼠标,在salarys的索引"部门号"上松开鼠标,这样两个有之间便建立了永久联系。第五步:在数据库设计器中,单击dept表和salarys表之间的"连线",并选择主菜单"数据库"下的"编辑参照完整性",打开"参照完整性生成器"对话框,在三个选项卡上分别选择正确定的规则。点击"确定"退出第六步:保存数据库的修改。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.创建一个名称为sview的视图,该视图的SELECT语句查询salarydb数据库中salarys表(雇员工资表)的部门号、雇员号、姓名、工资、补贴、奖励、失业保险、医疗统筹和实发工资,其中实发工资由工资、补贴和奖励三项相加,然后再减去失业保险和医疗统筹得出,结果按"部门号"降序排序,最后将定义视图的命令代码存放到命令文件T1.PRG中并执行该程序。2.设计一个名称为form1的表单,表单以表格方式(与BROWSE窗口方式相似,表格名称为grdSalarys)显示salarydb数据库中salarys表的记录,供用户浏览。在该表单的右下方有一个命令按钮,名称为Command1,标题为"退出浏览",当单击该按钮时退出表单。本题主要考核点:视图的建立方法、程序的建立方法、查询语句的应用、表单的建立方法等知识点解题思路:第一小题:打开考生文件夹下项目"Salary_p.pjx",在命令窗口中输入下列命令来建立sview视图:CREATEVIEWSVIEWASSELECT部门号,雇员号,姓名,工资,补贴,奖励,失业保险,医疗统筹,;工资+补贴+奖励-失业保险-医疗统筹AS实发工资;FROMSALARYSORDERBY部门号DESC下面来建立T1.prg程序,在项目Salary_p的项目管理器中,选择"代码"标签,再选择"程序",点击"新建(N)"按钮,在打开的代码编辑窗口中输入sview视图的查询代码,即:CREATEVIEWSVIEWASSELECT部门号,雇员号,姓名,工资,补贴,奖励,失业保险,医疗统筹,;工资+补贴+奖励-失业保险-医疗统筹AS实发工资;FROMSALARYSORDERBY部门号DESC选择工具栏的保存按钮,以文件名T1.prg保存在考生文件夹下.第二小题:在项目salary_p的项目管理器中,选择"文档"标签,再选择"表单,然后点击"新建"按钮,在弹出的"新建表单"对话框中点击"新建表单",弹出"表单设计器"。在表单设计器中放置一个网格控件和一个命令按钮控件。将网格控件的name属性改为:GrdSalarys.点击工具栏中的"数据环境"按钮,在弹出的"添加表或视图"对话框中选择salary_db数据库下的salarys表.点击"添加"按钮,然后点击"关闭"按钮。在表单设计器中对GrdSalarys网格控件的RecordSourceType和RecordSource属性分别设为:表和salarys;设置命令按钮的Caption属性为:退出浏览,并为它的Click事件编写代码:THISFORM.RELEASE;以文件名form1.scx将所编辑的表单保存在考生文件夹下。三、综合应用(1小题,计30分)在考生文件夹下,对数据库salarydb完成如下综合应用:设计一个名称为form2的表单,在表单上设计一个"选项组"(又称选项按钮组,名称为Optiongroup1)及两个命令按钮"生成"(名称为Command1)和"退出"(名称为Command2);其中选项按钮组有"雇员工资表"(名称为Option)、"部门表"(名称为Option2)和"部门工资汇总表"(名称为Option3)三个选项按钮。然后为表单建立数据环境,并向数据环境添加dept表(名称为Cursor1)和salarys表(名称为Cursor2)。各选项按钮功能如下:(1)当用户选择"雇员工资表"选项按钮后,再按"生成"命令按钮,查询显示在简单应用中创建的sview视图中的所有信息并把结果存入表gz1.dbf中。(2)当用户选择"部门表"选项按钮后,再按"生成"命令按钮,查询显示dept表中每个部门的部门号和部门名称并把结果存入表bm1.dbf中。(3)当用户选择"部门工资汇总表"选项按钮后,再按"生成"命令按钮,则按部门汇总,将该公司的部门号、部门名、工资、补贴、奖励、失业保险和医疗统筹的支出汇总合计结果存入表hz1.dbf中。并按部门号的升序排序。请注意:字段名必须与原字段名一致。(4)按"退出"按钮,退出表单。注意:以上各项功能必须调试、运行通过。n本题主要考核点:表单的建立方法、数据环境、条件结构的用法、查询语句等知识点解题思路:第一步:打开考生文件夹下的项目salary_p第二步:在项目salary_p的项目管理器中选择"文档"标签,再选择"表单",点击"新建"按钮,在弹出的"新建表单"对话框中点击"新建表单"按钮打开表单设计器第三步:按要求在表单上建立各个控件,并设置其属性为题面所要求的属性值第四步:点击工具栏按钮中的"数据环境"按钮,将Salary_db中的表dept和salarys表依次添加到数据环境之中。第五步:为"生成"按钮控件添加如下的Click事件响应代码:DOCASECASETHISFORM.OPTIONGROUP1.VALUE=1USESVIEWBROWSELECT*FROMSVIEWINTOTABLEGZ1.DBFCASETHISFORM.OPTIONGROUP1.VALUE=2USEDEPTBROWSELECT*FROMDEPTINTOTABLEBM1.DBFCASETHISFORM.OPTIONGROUP1.VALUE=3SELECTDEPT.部门号,dept.部门名,;SUM(工资)AS工资,SUM(补贴)AS补贴,SUM(奖励)AS奖励,;SUM(失业保险)AS失业保险,SUM(医疗统筹)AS医疗统筹;FROMDEPT,SALARYS;WHEREDEPT.部门号=SALARYS.部门号;GROUPBYDEPT.部门号;ORDERBYDEPT.部门号;INTOTABLEHZ1.DBFENDCASE第六步:为标题为"退出"的命令按钮添加Click事件的响应代码:THISFORM.RELEASE第七步:以文件名form2.scx保存表单,保存在考生文件夹下。并运行表单。第57套题一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)在考生文件夹下的"商品销售"数据库中完成如下操作:1.将"销售表"中的日期在2000年12月31日前(含2000年12月31日)的记录复制到一个新表"2001.dbf"中。2.将"销售表"中的日期(日期型字段)在2000年12月31日前(含2000年12月31日)的记录物理删除。3.打开"商品表",使用BROWSE命令浏览时,使用"文件"菜单中的选项将"商品表"中的记录生成文件名为"商品表.htm"的HTML格式文件。4.为"商品表"创建一个主索引,索引名和索引表达式均是"商品号";为"销售表"创建一个普通索引(升序),索引名和索引表达式均是"商品号"。本题主要考核点:SQL查询语句的使用、SQL语言中删除语句的使用、如何将一个表存为一个HTML文件、表的索引的建立方法等知识点。解题思路:第一步:打开考生文件夹下的"商品销售"数据库第二步:在命令窗口中输入以下语句:SELECT*FROM销售表WHERE日期<={^2000-12-31}INTOTABLE2001.DBF并执行该语句。根据要求要得到2001年12月31日以前的销售表的记录,将条件:日期<={^2000-12-31}放在WHERE子句的后面,结果集存放入一个永久表2001.dbf中要用到INTOTABLE子句第三步:在物理删除记录,我们要先将其逻辑删除,然后使用PACKn命令将加上逻辑删除的记录物理删除。所以在命令窗口依次执行以下两条命令即可:DELETEFROM销售表WHERE日期<={^2000-12-31}PACK第四步:在命令窗口依次执行:USE商品表和Brow两条命令,在商品表处于浏览状态时,选择"文件"菜单的"另存为HTML(H)",弹出"另存为HTML"对话框,选择"保存文件以便以后使用"选项,并点击文件位置按钮,弹出"另存为"对话框,选择考生文件夹,并在"保存"文件框中输入"商品表.html",点击"确定"按钮,返回"另存为HTML"对话框,点击"确定"即可。第五步:在数据库设计器中选择"商品表",点击主菜单"数据库"下的"修改",弹出表设计器,在表设计器中,选择"索引"标签,在索引名和表达式列中分别输入"商品号",在类型列中选择"主索引",点击"确定",保存对"商品表"结构的修改。用同样的方法可以对"销售表"的索引进行修改。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.在"商品销售"数据库中,根据"销售表"和"商品表"查询每种商品的商品号、商品名、单价、销售数量和销售金额(商品号、商品名取自商品表,单价和销售数量取自销售表,销售金额=单价*销售数量),结果按销售金额降序排序,并将查询结果存储到see_a表中。2.在考生文件夹下有一个名称为form1的表单文件,该表单中的三个命令按钮的Click事件下的语句有错误。请按如下要求进行修改,修改完成后保存所做的修改:(1)单击"刷新标题"命令按钮时,将表单的标题改为"商品销售数据输入";(2)单击"商品销售输入"命令按钮时,调用当前文件夹下的名称为sellcomm的表单文件打开数据输入表单;(3)单击"输出销售报表"命令按钮时,调用当前文件夹下的名称为print1的报表文件对报表进行预览。注意:每处错误只能在原语句上进行修改,不可以增加语句行。本题主要考核点:SQL查询语句中的联接查询、表单的建立方法、表单中事件代码、通过命令来执行表单和报表的方法等知识点。解题思路:第一小题:本题主要考查询语句中的联接查询。如果要得到的结果集来自两个不同的表,要用到联接查询,联接查询的两个表放在FROM子句的后面,在本题中是:商品表和销售表,它们之间用逗号隔开;联接查询来指明两个表联接的条件放在WHERE子句的后面,并且如果一个字段在另一个表中也有同名的字段需要指明字段所在的表,联接的条件是:商品表.商品号=销售表.商品号;结果集的排序依据要放在ORDERBY子句的后面,这里是以销售金额的降序进行排序,所以排序是:ORDERBY销售金额DESC;结果集要保存在一个永久表中要用到INTOTABLE子句。完整的查询语句如下:SELECT商品表.商品号,商品名,销售表.单价,;销售数量,销售表.单价*销售数量AS销售金额;FROM商品表,销售表;WHERE商品表.商品号=销售表.商品号;ORDERBY销售金额DESC;INTOTABLESEE_A第二小题:首先打开考生文件夹下的form1.scx表单文件,对"刷新标题"按钮的Click事件代码,要改变表单的标题,需要对表单的Caption属性进行修改,所以此处应改为:thisform.caption="商品销售数据输入";对"商品销售输入"按钮的Click的事件代码,是要调用sellcomm表单,而要执行一个表单,需要用DOFORM命令,所以此处应改为:DOFORMSELLCOMM;对"输入销售报表"按钮的Click事件代码,要调用print1报表文件,需要用REPORTFORM命令,所以此处应改为:REPORTFORMPRINT1preview。最后保存修改后的表单。三、综合应用(1小题,计30分)在考生文件夹下,对"商品销售"数据库完成如下综合应用:1.请编写名称为change_c的命令程序并执行,该程序实现下面的功能:将"商品表"进行备份,备份文件名为"SPBAK.dbf";将"商品表"中"商品号"前两位编号为"10"的商品的"单价"修改为出厂单价提高10%;使用"单价调整表"对商品表的部分商品出厂单价进行修改(按"商品号"相同)。2.设计一个名称为form2的表单,上面有"调整"(名称Command1)和"退出"(名称Command2)两个命令按钮。单击"调整"命令按钮时,调用change_c命令程序实现商品单价调整;单击"退出"命令按钮时,关闭表单。n注意:以上两个命令按钮均只含一条语句,不可以有多余的语句。本题主要考核点:程序的建立方法、记录的更新、循环结构、表单的建立方法、控件的基本知识等知识点解题思路:第一步:在VisualForxPro主窗口中按下组合键Ctrl+N,弹出"新建"对话框,在文件类型中选择"程序",点击"新建文件",弹出代码编辑器窗口第二步:在代码编辑器窗口,输入以下代码:SETTALKOFFSETSAFETYOFF&&备份商品表SELECT*FROM商品表INTOTABLESPBAK.DBF&&修改商品的单价UPDATE商品表SET单价=出厂单价*1.1WHERELEFT(商品号,2)="10"USE单价调整表DOWHILENOTEOF()UPDATE商品表SET出厂单价=单价调整表.出厂单价;WHERE商品号=单价调整表.商品号SKIPENDDOCLOSEALLSETTALKONSETSAFETYON第三步:以文件名change_c.prg保存程序文件在考生文件夹下。并执行第四步:在VisualFoxPro的主窗口按下组合键Ctrl+N,弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮第五步:在打开的表单编辑器窗口中放上两个标题分别为"调整"和"退出"的命令按钮,并为标题为"调整"的命令按钮添加如下Click的事件代码:DOCHANGE_C.PRG;为标题为"退出"的命令按钮添加如下Click事件代码:THISFORM.RELEASE.第六步:以文件名form2.scx保存表单,并保存在考生文件夹下。第58套题一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)在考生文件夹下的"雇员管理"数据库中完成如下操作:1.为"雇员"表增加一个字段名为EMAIL、类型为"字符"、宽度为20的字段。2.设置"雇员"表中"性别"字段的有效性规则,性别取"男"或"女",默认值为"女"。3.在"雇员"表中,将所有记录的EMAIL字段值使用"部门号"的字段值加上"雇员号"的字段值再加上"@xxxx.com.cn"进行替换。4.通过"部门号"字段建立"雇员"表和"部门"表间的永久联系。本题主要考核点:表结构的建立、修改、表的有效性规则的建立方法、更新表的记录的方法、如何为表之间建立永久性的联系等知识点解题思路:第一步:打开考生文件夹下的"雇员管理"数据库第二步:在"雇员管理"数据库设计器中,选中"雇员"表,点击主菜单"数据库"下的"修改",弹出表设计器,在表设计器的"字段"标签中添加一个新的字段,字段名为"email",字段类型为"字符型",宽度为20。第三步:在雇员表的表设计器中,选中"性别"字段,并在"字段有效性"的"规则"文本框中输入:性别="男"OR性别="女",在默认值文本框中输入:"女"(双引号不可少)。点击"确定"按钮,保存对结构的修改。第四步:在命令窗口中输入以下命令:UPDATE雇员SETEMAIL=部门号+雇员号+"@xxxx.com.cn",并执行此命令。第五步:在数据库设计器中选中"部门"表的"部门号"索引,并按下鼠标左键,拖动到"雇员"表的"部门号"索引时,松开左键,这时在两个表的两个索引之间有一条线连在一起,这样两个表就建立起了永久的联系。n第六步:保存数据库。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.请修改并执行名称为form1的表单,要求如下:(1)为表单建立数据环境,并将"雇员"表添加到数据环境中;(2)将表单标题修改为"XXX公司雇员信息维护";(3)修改命令按钮"刷新日期"的Click事件下的语句,使用SQL的更新命令,将"雇员"表中"日期"字段值更换成当前计算机的日期值。注意:只能在原语句上进行修改,不可以增加语句行。2.建立一个名称为menu1的菜单,菜单栏有"文件"和"编辑浏览"两个菜单。"文件"菜单下有"打开"、"关闭退出"两个子菜单;"浏览"菜单下有"雇员编辑"、"部门编辑"和"雇员浏览"三个子菜单。本题主要考核点;数据环境的添加、控件的属性的修改、如何用SQL语句进行记录的更新、表单的退出、菜单的建立等知识点解题思路:第一小题:第一步:打开考生文件夹下的form1.scx表单第二步:点击工具栏"数据环境"按钮,弹出"数据环境设计器"和"添加表或视图"对话框,在"添加表或视图"对话框中选取数据库"雇员管理"中的"雇员"表,点击"添加",然后再点击"关闭",这样在"数据环境设计器"中便有了"雇员"表。关闭"数据环境设计器"窗口第三步:在form1表单设计器中,选中表单,并点击工具栏"属性窗口"按钮,弹出"属性窗口",修改form1表单的Caption属性为:XXX公司雇员信息维护,双击标题为"刷新日期"的命令按钮,并在弹出的窗口中对其Click事件进行修改,将原来的代码修改为以下代码:update雇员set日期=date(),同样的方法将"标题"退出"的按钮的代码修改为:thisform.release。保存对表单的修改,并执行表单第二小题:第一步:在VisualFoxPro主窗口按下组合键Ctrl+N,弹出"新建"对话框,在文件类型中选择"菜单",点击"新建文件第二步:在弹出的"新建"菜单对话框中点击"菜单"按钮,弹出"菜单设计器"窗口,在菜单名称列输入"文件",在结果列选择"子菜单",并点击后面的"创建"按钮,"菜单设计器"窗口切换到子菜单页,依次定义子菜单"打开"和"关闭退出"两个子菜单项。此时,窗口右上方的"菜单级"下拉列表框内会显示当前子菜单的内部名字。选择"菜单级"下拉列表框内的选项返回到最上层菜单。用同样的方法可以定义"编辑浏览"菜单和其子菜单。第三步:菜单全部定义完之后,以文件名menu1.mnx保存菜单,并选择主菜单中的"菜单"下的"生成"菜单生成一个menu1.mpr菜单文件。三、综合应用(1小题,计30分)在考生文件夹下,对"雇员管理"数据库完成如下综合应用:1.建立一个名称为VIEW1的视图,查询每个雇员的部门号、部门名、雇员号、姓名、性别、年龄和EMAIL。2.设计一个名称为form2的表单,表单上设计一个页框,页框有"部门"和"雇员"两个选项卡,在表单的右下角有一个"退出"命令按钮。要求如下:(1)表单的标题名称为"商品销售数据输入";(2)单击选项卡"雇员"时,在选项卡"雇员"中使用"表格"方式显示VIEW1视图中的记录(表格名称为grdView1);(3)单击选项卡"部门"时,在选项卡"部门"中使用"表格"方式显示"部门"表中的记录(表格名称为"grd部门");(4)单击"退出"命令按钮时,关闭表单。本题主要考核点:在数据库中建立视图的方法、表单的建立方法、如何将网格控件绑定到表或视图的方法等知识点解题思路:第一小题:第一步:打开考生文件夹下的"雇员管理"数据库第二步:点击主菜单"数据库"下的"新建本地视图"菜单,弹出"新建本地视图"对话框,点击"新建视图"n按钮,弹出视图设计器和"添加表或视图"对话框,将"雇员管理"数据库下的两个表"雇员"和"部门"表都添加到视图设计器中,点击"添加表或视图"对话框的"关闭"按钮,在视图设计器的"字段"选项卡中,从"可用字段"列表框依次选择部门号、部门名、雇员号、姓名、性别、年龄和EMAIL字段进入"选定字段"列表框。点击工具栏的"保存"按钮,将设计的视图以view1的名称保存在数据库中。第二小题:第一步:在VisualFoxPro主窗口下按下组合键Ctrl+N,弹出的"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,弹出表单设计器第二步:在表单设计器中加入含有两个选项卡的页框控件和一个命令按钮控件,并分别按要求来设置它们的属性.并且修改表单的Caption属性为:商品销售数据输入.第三步:点击工具栏的"数据环境"按钮,弹出"数据环境设计器"和"添加表或视图"对话框,在"添加表或视图"对话框中选中视图view1和"部门"表,并添加到"数据环境设计器"中。关闭"添加表或视图"对话框和"数据环境设计器"。第四步:在标题为"雇员"的选项卡上放置一个网格控件,并修改网格控件的名称为:GrdView1,并对RecordSourceType属性修改为:表;RecordSource属性修改为:view1.用同样的方法在标题为"部门"的选项卡上也放一个网格控件,其RecordSourceType也设定为表,RecordSource属性修改为:部门。第五步:为标题为"退出"命令按钮控件的Click事件添加以下代码:thisform.release第六步:以文件名form2.scx将表单保存在考生文件夹下。第59套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,打开Ecommerce数据库,完成如下操作:1.首先打开Ecommerce数据库,然后为表Customer增加一个字段,字段名为email、类型为字符、宽度为20。2.为Customer表的"性别"字段定义有效性规则,规则表达式为:性别$"男女",出错提示信息为"性别必须是男或女",默认值为"女"。3.通过"会员号"字段建立客户表Customer和订单表OrderItem之间的永久联系;通过"商品号"字段建立商品表Article和订单表OrderItem之间的永久联系。4.为以上建立的联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"限制"。本题主要考核点:表结构的建立、修改、表的有效性规则的建立方法、如何为表之间建立永久性的联系、参照完整性约束的编辑等知识点本题解题思路:第1题:打开考生文件夹下的"Ecommerce"数据库,在"Ecommerce"数据库设计器中,选中"Custome"表,点击主菜单"数据库"下的"修改",弹出表设计器,在表设计器的"字段"标签中添加一个新的字段,字段名为"email",字段类型为"字符型",宽度为20。第2题:在"Customer"的表设计器中,选中"性别"字段,并在"字段有效性"的"规则"文本框中输入:性别$"男女",在"信息"文本框中输入"性别必须是男或女",在"默认值"文本框中输入:"女"(双引号不可少)。点击"确定"按钮,保存对结构的修改。第3题:在数据库设计器中选中"Customer"表的"会员号"索引,并按下鼠标左键,拖动到"OrderItem"表的"会员号"索引时,松开左键,这时在两个表的两个索引之间有一条线连在一起,这样两个表就建立起了永久的联系;以相同的方法为商品表Article和订单表OrderItem之间通过"商品号"建立永久联系。第4题:在第3题建立好永久联系之后,在"Customer"表和"OrderItem"表的"会员号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"限制",在"插入规则"中选择"限制",以相同的方法为商品表Article和订单表OrderItem建立参照完整性约束,单击"确定"保存所编辑的参照完整性。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开Ecommerce数据库,完成如下简单应用:1.使用报表向导建立一个简单报表。要求选择客户表Customer中所有字段;记录不分组;报表样式为随意式;列数为"1",字段布局为"列",方向为"纵向";排序字段为"会员号",升序;报表标题为"客户信息一览表";报表文件名为myreport。2.使用命令建立一个名称为sb_view的视图,并将定义视图的命令代码存放到命令文件pview.prgn。视图中包括客户的会员号(来自Customer表)、姓名(来自Customer表)、客户所购买的商品名(来自article表)、单价(来自OrderItem表)、数量(来自OrderItem表)和金额(OrderItem.单价*OrderItem.数量),结果按会员号升序排序。本题主要考核点:报表向导的使用,用命令建立视图等知识点本题解题思路:第1题:本题的主要考核点是使用报表向导制作报表。启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。第2题:本题的主要考核点是用命令建立视图。CREAVIEWsb_viewAS;SELECTCustomer.会员号,Customer.姓名,Article.商品名,Orderitem.单价,;Orderitem.数量,OrderItem.单价*OrderItem.数量as金额;FROMecommerce!customerINNERJOINecommerce!orderitem;INNERJOINecommerce!article;ONArticle.商品号=Orderitem.商品号;ONCustomer.会员号=Orderitem.会员号;ORDERBYCustomer.会员号三、综合应用(1小题,计30分)在考生文件夹下,打开Ecommerce数据库,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):设计一个文件名和表单名均为myform的表单,表单标题为"客户基本信息"。要求该表单上有"女客户信息"(Command1)、"客户购买商品情况"(Command2)、"输出客户信息"(Command3)和"退出"(Command4)四个命令按钮。各命令按钮功能如下:1)单击"女客户信息"按钮,使用SQL的SELECT命令查询客户表Customer中"女"客户的全部信息。2)单击"客户购买商品情况"按钮,使用SQL的SELECT命令查询简单应用中创建的sb_view视图中的全部信息。3)单击"输出客户信息"按钮,调用简单应用中设计的报表文件myreport在屏幕上预览(PREVIEW)客户信息。4)单击"退出"按钮,关闭表单。本题主要考核点:表单的创建、控件的属性的修改、表单的退出等知识点本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入creaformmyform。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"命令按钮"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"控件command1,用同样的方法为表单再加入三个"命令按钮"控件command2、command3、command4。相关控件的属性值如下表所示:对象属性属性值Form1NamemyformCaption客户基本信息Command1Caption女客户信息Command2Caption客户购买商品情况Command3Caption输出客户信息Command4Caption退出***命令按钮command1(客户基本信息)的Click事件代码如下****select*fromCustomerwhere性别="女"***命令按钮command2(客户基本信息)的Click事件代码如下***opendatabaseecommerceselect*fromsb_viewn***命令按钮command3(输出客户信息)的Click事件代码如下***reportformmyreportpreview***命令按钮command4(退出)的Click事件代码如下***thisform.release第60套题一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生目录下完成下列操作:1.从数据库stock中移去表stock_fk(不是删除)。2.将自由表stock_name添加到数据库中。3.为表stock_sl建立一个主索引,索引名和索引表达式均为"股票代码"。4.为stock_name表的股票代码字段设置有效性规则,"规则"是:left(股票代码,1)="6",错误提示信息是"股票代码的第一位必须是6"。本题主要考核点:数据库表的逻辑删除、将一个自由表添加到数据库中、设计数据库表中的字段有效性、表索引的建立等知识点本题解题思路:第1题:打开考生文件夹下的"Stock"数据库,在"Stock"数据库设计器中,选中"stock_fk"表,点击主菜单"数据库"下的"移去",在弹出的对话框中点击"移去(R)"按钮,在随后弹出的对话框中点击"是(Y)"按钮,至此便完成了"从数据库stock中移去表stock_fk(不是删除)"的操作。第2题:打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的stock_name表,再点击"确定"即可,这样表stock_name就添加到了"Stock"数据库中。第3题:在数据库设计器中选中表stock_sl,在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"索引"标签,在索引名列中填入"股票代码",在索引类型列中选择"主索引",在索引表达式列中填入"股票代码",点击"确定"按钮以保存表结构。第4题:在"stock_name"的表设计器中,选中"股票代码"字段,并在"字段有效性"的"规则"文本框中输入:left(股票代码,1)="6",在"信息"文本框中输入"股票代码的第一位必须是6"(双引号不可少),点击"确定"按钮来保存对表结构的修改。二、简单应用(2小题,每题20分,计40分)在考生目录下完成如下简单应用:1.用SQL语句完成下列操作:列出所有赢利(现价大于买入价)的股票简称、现价、买入价和持有数量,并将检索结果按持有数量降序排序存储于表stock_temp中。2.使用一对多报表向导建立报表。要求:父表为stock_name,子表为stock_sl,从父表中选择字段:"股票简称";从子表中选择全部字段;两个表通过"股票代码"建立联系;按股票代码升序排序;报表标题为:"股票持有情况";生成的报表文件名为stock_report。本题主要考核点:SQL查询语句的使用,查询去向、报表向导的使用等知识点本题解题思路:第1题:本题的主要考核点是SQL查询语句的使用,查询去向。SELECTStock_name.股票简称,Stock_sl.现价,Stock_sl.买入价,;Stock_sl.持有数量;FROMstock!stock_nameINNERJOINstock!stock_sl;ONStock_name.股票代码=Stock_sl.股票代码;WHEREStock_sl.现价>Stock_sl.买入价;ORDERBYStock_sl.持有数量DESC;INTOTABLEstock_temp.dbf第2题:本题的主要考核点是使用报表向导制作报表。启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮,然后按照向导提示操作即可。n三、综合应用(1小题,计30分)设计名为mystock的表单(控件名,文件名均为mystock)。表单的标题为:"股票持有情况"。表单中有两个文本框(text1和text2)和两个命令按钮"查询"(名称为Command1)和"退出"(名称为Command2)。运行表单时,在文本框text1中输入某一股票的汉语拼音,然后单击"查询",则text2中会显示出相应股票的持有数量。单击"退出"按钮关闭表单。本题主要考核点:表单的创建、控件的属性的修改、表单的退出、SQL查询等知识点本题解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入creaformmystock。第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"命令按钮"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"控件command1,用类似的方法为表单加入一个"命令按钮"控件command2,二个"文本框"控件text1和text2。相关控件的属性值如下表所示:对象属性属性值Form1NamemystockCaption股票持有情况Command1Caption查询Command2Caption退出***命令按钮command1(查询)的Click事件代码如下****SELECTStock_sl.持有数量;FROMstock!stock_nameINNERJOINstock!stock_sl;ONStock_name.股票代码=Stock_sl.股票代码;WHEREStock_name.汉语拼音=alltrim(thisform.text1.value);INTOARRAYTEMPTHISFORM.TEXT2.VALUE=TEMP***命令按钮command2(退出)的Click事件代码如下***thisform.release61一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生目录下完成如下操作:1.新建一个名为"学生"的数据库。2.将"学生"、"选课"、"课程"三个自由表添加到新建的数据库"学生"中。3.通过"学号"字段为"学生"表和"选课"表建立永久联系。4.为上面建立的联系设置参照完整性约束:更新和删除规则为"级联",插入规则为"限制"。解题思路:第1题:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"数据库",点击"新建文件"按钮,在弹出的对话框的"数据库名"处输入"学生",单击保存按钮。第2题:打开考生文件夹下的"学生"数据库,打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的"学生"表,再点击"确定"即可,这样表"学生"就添加到了"学生"数据库中,用同样的方法,将"选课"表、"课程"表也添加到"学生"数据库中。第3题:在数据库设计器中选中表"学生",在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"索引"标签,在索引名列中填入"学号",在索引类型列中选择"主索引",在索引表达式列中填入"学号",点击"确定"按钮以保存表结构。用类似的方法,为"选课"表建立必要的索引。在数据库设计器中,选中"学生"表中的索引"学号"将其拖动到表"选课"的"学号"的索引上并松二、简单应用(2小题,每题20分,计40分)在考生目录下完成如下简单应用:1.用SQL语句完成下列操作:将选课在5门课程以上(包括5n门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表stu_temp(字段名为学号、姓名、平均分和选课门数)。2.建立一个名为menu_lin的下拉式菜单,菜单中有两个菜单项"查询"和"退出"。"查询"项下还有一个子菜单,子菜单有"按姓名"和"按学号"两个选项。在"退出"菜单项下创建过程,该过程负责使程序返回到系统菜单。解题思路:第1题:本题的主要考核点是SQL查询语句的使用,查询去向。SELECT学生.学号,学生.姓名,AVG(选课.成绩)as平均分,;COUNT(选课.课程号)AS选课门数;FROM学生!学生INNERJOIN学生!选课;INNERJOIN学生!课程;ON课程.课程号=选课.课程号;ON学生.学号=选课.学号;GROUPBY学生.姓名;HAVINGCOUNT(选课.课程号)>=5;ORDERBY3DESC;INTOTABLEstu_temp.dbf第2题:本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATEMENU命令直接调出菜单设计器。在菜单名称中填入"查询"、"退出","查询"结果为子菜单,单击编辑;在子菜单的菜单名称中输入"按姓名"、"按学号","退出"结果为过程,单击编辑,填入"SETSYSMENUTODEFAULT"(不要引号)。62一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,完成如下操作:1.创建一个名为Sproject的项目文件。2.将考生文件夹下的学生数据库SDB添加到新建的项目文件中。3.打开学生数据库SDB,将考生文件夹下的自由表TEACHER添加到学生数据库SDB中;为教师表TEACHER创建一个索引名和索引表达式均为教师号的主索引(升序);为班级表CLASS创建一个索引名和索引表达式均为班主任号的普通索引(升序)。4.通过"班级号"字段建立班级表CLASS和学生表STUDENT表间的永久联系。通过班级表CLASS的"班主任号"字段与教师表TEACHER的"教师号"字段建立班级表CLASS和教师表TEACHER间的永久联系。解题思路:① 建立项目Sproject:创建项目可用"文件"菜单中的"新建"命令。② 将数据库加入到项目中:在项目管理器的"数据"选项卡选择数据库,单击"添加",在"打开"对话框中选择要添加的数据库。③ 在表设计器中的索引页面建立索引。④ 建立两个表的联系:在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。二、简单应用(2小题,每题20分,计40分)1.在考生文件夹下使用菜单设计器设计一个名称为SMENU的下拉式菜单。要求如下:菜单包括"数据浏览"和"退出"两个菜单栏。①数据浏览菜单栏包括"学生表"和"课程表"两个选项:学生表选项在过程中使用SQL语句"SELECT*FROMSTUDENT"查询学生表STUDENT的记录。课程表选项在过程中使用SQL语句"SELECT*FROMCOURSE"查询课程表COURSE的记录。②退出菜单栏包括"返回到系统菜单"一个选项:返回系统菜单选项在过程中使用命令返回系统默认的菜单。2.在考生文件夹下打开命令文件ONE.PRG,该命令文件用来建立一个名称为S_VIEW的视图,视图查询学生的班级号、班级名、姓名、性别和班主任名(来自TEACHER表的教师名)。命令文件只包含两条语句,第1条语句有一个错误,第2条语句有两个错误,请修改之,并运行。n注意,修改时不可改变SQL语句的结构和短语的顺序,不允许增加或合并行。解题思路:第1题:本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATEMENU命令直接调出菜单设计器。在菜单名称中填入"数据浏览"、"退出","数据浏览"结果为子菜单,单击编辑;在子菜单的菜单名称中输入"学生表"、"课程表","学生表"结果为过程"SELECT*FROMSTUDENT","课程表"结果为过程"SELECT*FROMCOURSE"。"退出"结果为子菜单,单击编辑;在子菜单的菜单名称中输入"返回到系统菜单",其结果为过程"SETSYSMENUTODEFAULT"。第2题:本题的主要考核点是SQL语句命令的使用。第一行打开数据库命令错误应改为OPENDATAsdb;第二行的"CREAVIEW;"应改为"CREAVIEWS_VIEWAS;";第五行的"WHEREStudent.班级号=Class.班级号,Teacher.教师号=Class.班主任号"应改为"WHEREStudent.班级号=Class.班级号ANDTeacher.教师号=Class.班主任号"63一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)  在考生文件夹下,打开一个公司销售数据库SELLDB,完成如下操作:1.为各部门分年度季度销售金额和利润表S_T创建一个主索引和普通索引(升序),主索引的索引名为NO,索引表达式为"部门号+年度";普通索引的索引名和索引表达式均为部门号。2.在S_T表中增加一个名为"备注"的字段、字段数据类型为"字符"、宽度为30。3.使用SQL的ALTERTABLE语句将S_T表的年度字段的默认值修改为"2004",并将该SQL语句存储到命令文件ONE.PRG中。4.通过"部门号"字段建立S_T表和DEPT表间的永久联系,并为该联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"忽略"。解题思路:1.在S_T表设计器中的索引选项卡建立索引名为NO,索引表达式为"部门号+年度的主索引;再建立索引名和索引表达式均为部门号的普通索引。2.增加字段的方法:打开农户表P_T表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及宽度。3.SQL的ALTERTABLE语句的使用:ALTERTABLES_TALTERCOLUMN年度SETDEFAULT"2004"4.建立两个表的联系:在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。为联系指定参照完整性:在联系上单击右键,打开"编辑参照完整性"对话框或者在"数据库"菜单中选择"编辑参照完整性",打开"参照完整性"生成器。选择插入规则为"忽略",删除规则为"限制",更新规则为"级联"。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开公司销售数据库SELLDB,完成如下简单应用:1.使用一对多表单向导生成一个名为SD_EDIT的表单。要求从父表DEPT中选择所有字段,从子表S_T表中选择所有字段,使用"部门号"建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为部门号(升序);表单标题为"数据输入维护"。2.在考生文件夹下打开命令文件TWO.PRG,该命令文件用来查询各部门的分年度的部门号、部门名、年度、全年销售额、全年利润和利润率(全年利润/全年销售额),查询结果先按年度升序、再按利润率降序排序,并存储到S_SUM表中。注意,程序在第5行、第6行、第8行和第9行有错误,请直接在错误处修改。修改时,不可改变SQL语句的结构和短语的顺序,不允许增加或合并行。第1题:本题的主要考核点是利用表单向导制作一对多表单。启动表单向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择表单,单击向导按钮,选择一对多表单向导。或者在"工具"菜单中选择"向导"子菜单,选择"表单",或直接单击工具栏上的"表单向导"图标按钮,选择一对多表单向导。按照向导提示及题目要求操作即可。第2题:本题的主要考核点是SQL语句命令的使用。第5行的"一季度利润+二季度利润+三季度利润+四季度利润/一季度销售额+二季度销售额+三季度销售额+四季度销售额AS利润率;"应改为"(一季度利润+n二季度利润+三季度利润+四季度利润)/(一季度销售额+二季度销售额+三季度销售额+四季度销售额)AS利润率;";第6行的"FROMS_TDEPT;"应改为"FROMS_T,DEPT;";第8行的"GROUPBY年度利润率DESC;"应改为"ORDERBY年度,利润率DESC;"或者"ORDERBY年度ASC,利润率DESC;";第9行的"INTOS_SUM"应改为"INTOTABLES_SUM"或者"INTODBFS_SUM"。64一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)  在考生文件夹下完成下列操作:  1.用命令新建一个名为"外汇"的数据库,并将该命令存储于one.txt中;  2.将自由表"外汇汇率"、"外汇账户"、"外汇代码"加入到新建的"外汇"数据库中;  3.用SQL语句新建一个表rate,其中包含4个字段"币种1代码"C(2)、"币种2代码"C(2)、"买入价"N(8,4)、"卖出价"N(8,4),请将SQL语句存储于two.txt中。  4.表单文件test_form中有一个名为form1的表单(如图),请将编辑框控件Edit1的滚动条去掉。解题思路:1.SQL语句的用法(建立数据库)CREATEDATABASE外汇2.将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADDTABLE命令添加一个自由表到当前数据库中。3.SQL语句的用法(建立表结构)CREATETABLErate(币种1代码C(2),币种2代码C(2),买入价N(8,4),卖出价N(8,4))4.修改表单控件的属性值:编辑框控件的ScrollBars属性决定编辑框是否有垂直滚动条。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.编写程序three.prg完成下列操作:根据"外汇汇率"表中的数据产生rate自由表中的数据。要求:将所有"外汇汇率"表中的数据插入rate表中并且顺序不变,由于"外汇汇率"中的币种1和币种2存放的是外币名称,而rate表中的币种1代码和币种2代码应该存放外币代码,所以插入时要做相应的改动,外币名称与外币代码的对应关系存储在"外汇代码"表中。注意:程序必须执行一次,保证rate表中有正确的结果。2.使用查询设计器建立一个查询文件four.qpr。查询要求:外汇帐户中有多少日元和欧元。查询结果包括了外币名称、钞汇标志、金额,结果按外币名称升序排序,在外币名称相同的情况下按金额降序排序,并将查询结果存储于表five.dbf中。第1题:本题的考查点是利用SQL_SELECT语句建立查询程序。第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"程序",点击"新建文件"按钮;第二步:在弹出的代码编辑器窗口中输入以下代码:SELECT外汇代码.外币代码AS币种1代码,;外汇代码_a.外币代码AS币种2代码,外汇汇率.买入价,外汇汇率.卖出价;FROM外汇!外汇代码INNERJOIN外汇!外汇汇率;INNERJOIN外汇!外汇代码外汇代码_a;ON外汇汇率.币种2=外汇代码_a.外币名称;ON外汇代码.外币名称=外汇汇率.币种1;nINTOTABLErate.dbf第2题:本题的考查点是利用查询设计器建立查询。建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"外汇代码"和"外汇账户"表加入查询中,从字段中选择字段外汇代码.外币名称、外汇账户.钞汇标志和外汇账户.金额;切换到筛选中输入条件:外币代码外币名称="日元"OR外币代码外币名称="欧元";切换到"排序依据"中选择"外汇代码.外币名称"字段按升序排序和"外汇账户.金额"字段按降序排序。单击查询菜单下的查询去向,选择表,输入表名five.dbf,最后运行该查询。65一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.建立项目"超市管理";并把"商品管理"数据库加入到该项目中。2.为商品表增加字段:销售价格N(6,2),该字段允许出现"空"值,默认值为.NULL.。3.为"销售价格"字段设置有效性规则:销售价格>0;出错提示信息是:"销售价格必须大于零"。4.用报表向导为商品表创建报表:报表中包括商品表中全部字段,报表样式用"经营式",报表中数据按商品编码升序排列,报表文件名report_a.frx。其余按缺省设置。解题思路:1.建立项目并将数据库添加到项目中:创建项目可用"文件"菜单:在项目管理器的"数据"选项卡选择数据库,单击"添加",在"打开"对话框中选择要添加的数据库。2.增加字段的方法:打开表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度,字段允许出现"空"值,则点击"NULL"选项,使其打钩。在字段有效性规则中的"默认值"框中输入".NULL."。3.建立有效性规则在表设计器中的字段选项卡。在"规则"栏中输入"销售价格>0","提示信息"栏输入"销售价格必须大于零"(不要双引号)。4.本题主要考核使用报表向导制作报表。启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.使用SQL命令查询2001年(不含)以前进货的商品,列出其分类名称、商品名称、进货日期,查询结果按进货日期升序排序并存入文本文件infor_a.txt中;所用命令存入文本文件cmd_aa.txt中;2.用SQLUPDATE命令为所有商品编码首字符是"3"的商品计算销售价格:销售价格为在进货价格基础上加22.68%,并把所用命令存入文本文件cmd_ab.txt中。第1题:本题的考查点是利用SQL_SELECT语句建立查询。其命令如下:SELECT分类名称,商品名称,进货日期FROM商品,分类;WHERE商品.分类编码=分类.分类编码.AND.进货日期<{^2001-01-01};orderby进货日期;TOFILEinfor_a.txt第2题:本题的考查点是利用SQLUPDATE修改表记录,其命令如下:update商品set销售价格=进货价格*1.2268wheresubstr(商品编码,1,1)="3"66一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生目录下打开表单文件calculator.scx,并完成下列操作:1.设置表单控件名为calculator,保存表单。2.设置表单内文本控件Text2的输入掩码使其具有如下功能:仅允许输入数字,宽度为10(直接使用相关掩码字符设置),保存表单。n3.设置表单内文本控件Text3为只读控件,保存表单。4.为其增加一组如图所示选项按钮组(Optiongroup1),4个按钮依次为"+"、"-"、"*"、"/",保存表单。注意:所涉及的数字和字母均为半角字符。解题思路:1.修改表单控件名:将表单的NAME属性值设置为calculator;2.选中文本控件Text2,将控件的INPUTMASK属性值设置为"9999999999";3.选中文本控件Text3,将控件的READONLY属性值设置为.T.;4.点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"选项按钮组"控件,在表单设计器中拖动鼠标,这样在表单上得到一个选项按钮组(Optiongroup1)。利用鼠标拖放功能调整选项按钮组各项的布局,并分别依次修改各选项的CAPTION属性值+、-、*、/。操作完成后,以原表单名保存表单。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.打开程序文件cylinder.prg,请按要求修改程序并运行程序。2.以表employee.dbf和orders.dbf中数据为基础,使用SQL命令检索订单数最多的前三名职工的职工号、姓名和订单数,检索结果按订单数降序排序存入表newcoun.dbf,同时将所用SQL命令存入文件new.txt文件。解题思路:1.打开cylinder.prg程序,根据题目要求修改程序中的错误语句:LINE6改为:carea=cya(r,h)LINE14改为:RETURNC2.SQL语句的用法:SELECTTOP3Employee.职工号,Employee.姓名,COUNT(Employee.职工号)AS订单数FROMemployeeINNERJOINordersONEmployee.职工号=Orders.职工号GROUPBYEmployee.职工号ORDERBY3DESCINTOTABLEnewcoun.dbf67一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.打开数据库"外汇",通过"外币代码"字段为"外汇代码"和"外汇账户"建立永久联系。2.新建一个名为"外汇管理"的项目文件,将数据库"外汇"加入"外汇管理"项目中。3.修改mymenu菜单文件,为"文件"下的子菜单项"查找"设置访问键F(显示方式为"查找F"),并生成新的菜单程序。4.修改one.prg中的SQL语句,使之正确(该语句的功能是从rate表中删除币种1代码为14,并且币种2代码为27的记录)。解题思路:1.在数据库设计器中建立两个表的联系。在数据库设计器中,将选中"外汇代码"表中的主索引"外币代码",按住鼠标拖动到"外汇账户"表的普通索引"外币代码"上。2.建立项目的常用方法有三种:在项目管理器中建立项目;通过"新建"对话框建立项目;使用命令交互建立数据库,命令为:CREATEPROJECT[项目名|?]n3.将数据库加入到项目中:在项目管理器的"数据"选项卡选择数据库,单击"添加",在"打开"对话框中选择要添加的数据库4.打开mymenu菜单,将"文件"下的子菜单项"查找"改为"查找=30000ORDERBY总金额DESCINTOTABLEnewtable.dbf第二小题:1.建立表单:可通过"文件"菜单下的"新建"命令或用命令CREATEFORM打开表单设计器。2.修改表单各属性值,NAME="myform",CAPTION="顶层表单"。将表单以myform.scx为文件名保存在考生文件夹下。3.建立菜单:可通过"文件"菜单下的"新建"命令或用命令CREATEMEMU打开菜单设计器。点击"显示"菜单下的"常规选项"命令打开"常规选项"对话框,选中"顶层表单"复选框。在菜单设计器中建立各菜单项,菜单名称分别为:文件、编辑、退出。"退出"菜单项的结果列为"过程",并通过单击"编辑"按钮打开一个窗中来添加"退出"菜单项要执行的命令myform.release来关闭表单并返回到系统菜单。最后点击"菜单"下的"生成"命令生成.mpr程序。4.将表单myform.scx中的ShowWindow属性设计为"2-作为顶层表单",并在表单的LOAD事件中输入"domymenu.mprwiththis,.t."执行菜单程序。5.保存表单,并运行。三、综合应用(1小题,计30分)在考生文件夹下,完成如下综合应用:打开表单文件sapp,并完成如下操作(不得有多余操作):●将"课程"表添加到表单的数据环境中;●使列表框List1中的数据项为"课程"表中的课程名(课程.课程名);●单击列表框中的数据项时,统计选修了所选课程的学生人数(从"考试成绩"表),并将结果存储在以课程名命名的表中,表中只有一个字段"人数";●添加一个命令按钮Command1,单击该按钮时关闭表单。说明:完成该程序后必须运行,并且分别统计选修了"数据库"和"操作系统"课程的学生人数。本题主要考核点:控件的属性的修改、SQL语句运用、表单的退出等知识点。本题解题思路:操作过程:①打开sapp表单文件。n②为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境"。将"课程"表添加到数据环境中。③列表框List1的属性设置如下:对象属性属性值List1ROWSOURCE课程.课程名List1ROWSOURCETYPE6-字段④设置"list1"列表框的Click事件代码:selectcount(dist学号)as人数from课程innerjoin考试成绩on课程.课程编号=考试成绩.课程编号where课程名=thisform.list1.list(thisform.list1.listindex)intotablthisform.list1.list(thisform.list1.listindex)⑤设置command1按钮的Click事件代码:THISFORM.RELEASE⑥保存表单,关闭表单设计器窗口。74一、基本操作题(共四小题,第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表的记录。n本题主要考核点: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的内容。三、综合应用(1小题,计30分)当order_detail表中的单价修改后,应该根据该表的"单价"和"数量"字段修改order_list表的总金额字段,现在编写程序实现此功能,具体要求和注意事项如下:(1)根据order_detail表中的记录重新计算order_list表的总金额字段的值;(2)一条order_list记录可以对应几条order_detail记录;(3)在编程前应保证在基础操作中正确地建立了order_list表,在简单应用中为该表追加了记录(注意只能追加一次);(4)最后将order_list表中的记录按总金额降序排序存储到od_new表中(表结构与order_list表完全相同);(5)将程序保存为prog1.prg文件。本题主要考核点:程序的建立方法、程序中循环结构的使用、SQL查询语句的使用、记录的修改方法等知识点本题解题思路:第一步:打开项目客户管理,在项目管理器中先选择"代码"标签,再选择"程序",最后点击"新建"按钮。第二步:在弹出的窗中中输入以下代码:SETTALKOFF&&在程序运行模式下关闭命令结果的显示SETSAFETYON&&关闭文件重名时的提示CLOSEALLSELECT订单号,SUM(数量*单价)AS总金额;FROMORDER_DETAIL;GROUPBY订单号;INTOCURSORCurTable&&这里首先得到每一个订单的总金额,由于每一个订单对应有多项记录,&&所以我们要得到每一个订单的总金额需要用到SUM函数,SUM(数量*单价)AS总金额&&放在SELECT的后面,并和订单号用逗号隔开;要以订单号做为分组的依据,将订单号放在&&ORDERBY的后面;将结果集放入一个临时表CurTable中用INTOCURSORCurTableOPENDATABASE订货管理&&打开数据库文件SELECT2&&选择工作区USEORDER_LIST&&在新的工作区中打开表ORDER_LISTDOWHILENOTEOF()&&遍历ORDER_LIST中的每一条记录SELECTCurTable.总金额FROMCurTable;nWHERECurTable.订单号=order_list.订单号;INTOARRAYAFieldsValue&&以ORDER_LIST的当前记录的订单号做为查询的条件在临时表中得到此订单的总金额&&由于在临时表中和当前工作区表中都存在订单号字段,所以要在订单号字段前加上表名&&所以查询的条件CurTable.订单号=order_list.订单号放在WHERE子句的后面;查询的结&&果放入数据变量AFieldsValue中,INTOARRAYAFieldsValueREPLACE总金额WITHAFieldsValue&&利用得到的新的总金额来代替当前记录的总金额字段SKIPENDDOCLOSEALLSELECT*FROMORDER_LIST;ORDERBY总金额DESC;INTOTABLEOD_NEW&&以总金额的降序,所以要将总金额DESC放在ORDERBY子句的后面;将结果集&&放入一个永久表OD_NEW,OD_NEW放在子句INTOTABLE的后面。SETSAFETYONSETTALKON第三步:单击"保存"工具栏按钮,以文件名prog1.prg保存程序文件第四步:在项目管理器中"代码"选项卡的程序中选择"prog1",点击"运行"按钮,执行程序。75一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.打开"订货管理"数据库,并将表order_list添加到该数据库中。2.在"订货管理"数据库中建立表order_detail,表结构描述如下:订单号字符型(6)器件号字符型(6)器件名字符型(16)单价浮动型(10.2)数量整型3.为新建立的order_detail表建立一个普通索引,索引名和索引表达式均是"订单号"。4.建立表order_list和表order_detail间的永久联系(通过"订单号"字段)。本题主要考核点:将一个自由表添加到数据库中、表结构的建立、两个表之间建立永久联系等知识点本题解题思路:第一步:打开考生文件夹下的"订货管理"数据库第二步:打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的order_list表,再点击"确定"即可第三步:再次打开数据库菜单选择"新建表(N)",在弹出的对话框中选择"新建表",并在弹出"创建"对话框中选定考生文件夹,在输入表名中填入"order_detail",再点击保存。第四步:在弹出的表设计器中按题面的要求依次输入各个字段的定义,选择"索引"标签,在索引名列中填入"订单号",在索引类型列中选择"普通索引",在索引表达式列中填入"订单号",点击"确定"按钮,保存表结构.第五步:单击选中order_list中的主索引"订单号",并拖拽到order_detail的"订单号"索引上,鼠标箭头会变成小矩形;释放鼠标后,即出现了关系符号,这样便可以建立起永久关系。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.将order_detail1表中的全部记录追加到order_detail表中,然后用SQLSELECT语句完成查询:列出所有订购单的订单号、订购日期、器件号、器件名和总金额(按订单号升序,订单号相同再按总金额降序)并将结果存储到results表中(其中订单号、订购日期、总金额取自order_list表,器件号、器件名取自order_detail表)。n2.打开modi1.prg命令文件,该命令文件包含3条SQL语句,每条SQL语句中都有一个错误,请改正之(注意:在出现错误的地方直接改正,不可以改变SQL语句的结构和SQL短语的顺序)。本题主要考核点:SQL中的查询SELECT查询,联接查询,查询的排序,查询的结果的去向和SELECT中的短语的正确使用。解题思路:第一小题:将order_detail1中的全部记录追加到order_detail中,要将一个表的所有记录追加到另一个表中使用APPENDFROM命令,首先打开order_detail:USEORDER_DETAIL,在APPENDFROM的后面是要追加到order_DETAIL的表名,这里是order_DETAIL1。查询表中的数据要用到SELECT命令,要查询的数据来源于ORDER_DETAIL和order_list表,将它们置于FROM的后面,并用逗号隔开,并分别为它们指定一个别名DetAlias和LisAlias;由于是联接查询要指明查询的条件,将联接条件DetAlias.订单号=LisAlias.订单号放在WHERE短语的后面,同时要对结果集按照订单号的升序和总金额的降序进行排序,所以要将:订单号,总金额DESC放在ORDERBY短语的后面,结果集要存储到results表中,所以要将:results放在INTOTABLE后面。由于查询的结果不是所有的属性,所以需要指明结果的属性,并且订单号在两个表中都存在,所以要特别指定此属性来自那一个源表(这里用表的别名来代替)。这样就形成了一个完整的查询语句:SELECTLisAlias.订单号,订购日期,器件号,器件名,总金额;FROMORDER_LISTLisAlias,ORDER_DETAILDetAlias;WHERELisAlias.订单号=DetAlias.订单号;ORDERBYLisAlias.订单号,总金额DESC;INTOTABLERESULTS第二题:&&所有器件的单价增加5元UPDATEorder_detail1SET单价WITH单价+5&&这里混淆了SQL语句和FoxPro命令。用SQL语句中的UPDATE可以更新记录的内容,而不是&&用WITH,而是用等号。所以应该改为:UPDATEORDER_DETAIL1SET单价=单价+5&&计算每种器件的平均单价SELECT器件号,AVG(单价)AS平均价FROMorder_detail1ORDERBY器件号INTOCURSORlsb&&这里将分组的子句GROUPBY与排序的子句ORDERBY相混淆了,这里应该用分组的子句&&GROUPBY来代替排序的子句ORDERBY子句。&&查询平均价小于500的记录SELECT*FROMlsbFOR平均价<500&&在SQL的查询语句中表示条件的是用WHERE子句,与在FoxPro中的List命令用FOR不同。三、综合应用(1小题,计30分)在做本题前首先确认在基础操作中已经正确地建立了order_detail表,在简单应用中已经成功地将记录追加到order_detail表。当order_detail表中的单价修改后,应该根据该表的"单价"和"数量"字段修改order_list表的总金额字段,现在有部分order_list记录的总金额字段值不正确,请编写程序挑出这些记录,并将这些记录存放到一个名为od_mod的表中(与order_list表结构相同,自己建立),然后根据order_detail表的"单价"和"数量"字段修改od_mod表的总金额字段(注意一个od_mod记录可能对应几条order_detail记录),最后od_mod表的结果要求按总金额升序排序,编写的程序最后保存为prog1.prg。本题主要考核点:程序的建立方法、程序中循环结构的使用、SQL查询语句的使用、记录的修改方法等知识点本题解题思路:第一步:在VisualFoxPro主窗口下按组合键Ctrl+N,系统弹出"新建"对话框,在"文件类型"中选择"程序",再点击"新建文件"按钮,则系统弹出程序编辑窗口;第二步:在弹出的窗中中输入以下代码:SETTALKONSETSAFETYON&&计算出每个订单的总金额SELECT订单号,SUM(单价*数量)AS总金额;FROMORDER_DETAIL;GROUPBY订单号;INTOCURSORCurTable&&首先应该得到每一订单的总金额。由于同一个订单由多种商品组成,所以要求出&&同一订单的总金额应该将同一订单所包含的商品合计在一起,这就作到了SUM函数&&其分组的依据是订单号放在ORDERBY子句的后面,将结果集放入一个临时表CurTable,n&&将临时表名CurTable放在INTOCURSOR子句的后面SELECTORDER_LIST.*;FROMORDER_LIST,CurTable;WHEREORDER_LIST.订单号=CurTable.订单号ANDORDER_LIST.总金额<>CurTable.总金额;INTOTABLEOD_MOD&&根据上面所得到的临时表中每一订单的总金额来得到order_list中不正确的记录&&由于要在一个查询中用到另一个表所以要用到查询,将它们分别放在FROM子句&&的后面,两个表名之间用逗号隔开;在WHERE子句中放入联接的条件和查询的条件&&ORDER_LIST.订单号=CurTable.订单号ANDORDER_LIST.总金额<>CurTable.总金额&&查询的结果集要放入永久表OD_MOD中,将OD_MOD放在INTOTABLE子句的后面USEOD_MODDOWHILENOTEOF()&&遍历OD_MOD中的每一条记录SELECTCurTable.总金额FROMCurTable;WHERECurTable.订单号=OD_MOD.订单号;INTOARRAYAFieldsValue&&从临时表CurTable中得到与当前记录的订单号相同的订单的正确的总金额&&将条件CurTable.订单号=OD_MOD.订单号,放在WHERE子句的后面;&&将结果放入一个数组变量AFieldsValue中REPLACE总金额WITHAFieldsValue&&用正确的总金额来代替原来的总金额SKIPENDDOCLOSEALL&&先生成一个临时表SELECT*FROMOD_MODORDERBY总金额;INTOCURSORCurTable&&再从临时表生成表,并覆盖原表SELECT*FROMCurTableINTOTABLEOD_MODSETTALKOFFSETSAFETYOFF第三步:单击"保存"工具栏按钮,以文件名prog1.prg保存程序文件在考生文件夹下,并运行程序。76一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,有一个学生数据库SDB,打开该数据库,完成如下操作:1.为学生表STUDENT的"性别"字段增加约束:性别$"男女",出错提示信息为"性别必须是男或女",默认值为"女"。2.为学生表STUDENT创建一个主索引,主索引的索引名为sid,索引表达式为学号。为课程表COURSE创建一个主索引,主索引的索引名为cid,索引表达式为课程号。为选课表SC创建一个主索引和两个普通索引(升序),主索引的索引名为scid,索引表达式为"学号+课程号";一个普通索引的索引名为sid,索引表达式为学号;另一个普通索引的索引名为cid,索引表达式为课程号。3.通过"学号"字段建立选课表SC和学生表STUDENT表间的永久联系。通过"课程号"字段建立选课表SC与课程表COURSE间的永久联系。并为以上建立的联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"限制"。4.使用报表向导建立一个简单报表。要求选择学生表STUDENT表中所有字段;记录不分组;报表样式为随意式;列数为"1",字段布局为"列",方向为"纵向";排序字段为"学号",升序;报表标题为"学生基本情况一览表";报表文件名为ONE.FRX。本题的主要考核点:字段有效性规则的建立、默认值的设置、主索引和普通索引的建立、建立两个表之间的联系、设置参照完整性约束、使用报表向导制作报表。解题思路:1、利用"文件"菜单下的"打开"命令打开数据库"SDB"。再打开"STUDENT"表的表设计器,选择"性别"n字段,在其字段有效性规则栏中输入:性别$"男女",在信息栏中输入:"性别必须是男或女",在默认值栏中输入:"女"。2、打开STUDENT表的表设计器,打开"索引"选项卡,在索引名处输入:sid,类型选择"主索引",表达式为:学号。打开COURSE表的表设计器,打开"索引"选项卡,在索引名处输入:cid,类型选择"主索引",表达式为:课程号。再打开SC表的表设计器,打开"索引"选项卡,在索引名处输入:scid,类型选择"主索引",表达式为:学号+课程号;接着,在索引名处输入:sid,类型选择"普通索引",升序,表达式为:学号;再在索引名处输入:cid,类型选择"普通索引",升序,表达式为:课程号。3、在数据库设计器中,选中STUDENT表中的索引"sid"并拖动到SC表的"sid"的索引上并松开,这样两个表之间就建立起了永久联系。再选中COURSE表中的索引"cid"并拖动到SC表的"cid"的索引上并松开。建立好永久联系之后,在两处表的"sid"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"限制",在"插入规则"中选择"限制",单击"确定"保存所编辑的参照完整性。再用同样的方法设置SC与COURSE间的永久联系的参照完整性。4、启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮,然后按照向导提示操作即可。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开学生数据库SDB,完成如下简单应用:1.使用查询设计器设计一个名称为TWO的查询,查询每个同学的学号(来自STUDENT表)、姓名、课程名和成绩。查询结果先按课程名升序、再按成绩降序排序,查询去向是表,表名是TWO。设计完成后,运行该查询。2.修改一个名称为THREE.PRG的命令文件。该命令文件用来查询平均成绩大于等于75分以上的每个"女"同学的学号、姓名、平均成绩和选课门数,结果按选课门数降序排序输出到表THREE中。该命令文件在第2行、第3行、第4行、第5行有错误(每行只有一处必须修改的错误,不出错的地方不要做任何修改),打开该命令文件,直接在错误处修改并保存。注意:修改时,不可改变SQL语句的结构和短语的顺序,不允许增加或合并行。本题主要考核点:利用查询设计器建立查询、修改程序文件。解题思路:第1题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"STUDENT"、"SC"和"COURSE"表添加到查询中,从字段选项卡中依次选择"学号"、"姓名"、"课程名"和"成绩";切换到"排序依据"选项卡并在其中选择字段"课程名",排序选项为"升序",再选择"成绩",排序选项为"降序";单击查询菜单下的"查询去向",选择表,在"表名"右边的对话框中输入表名TWO,最后运行该查询。第2题:利用"文件"菜单下的"打开"命令打开程序文件THREE.PRG。将命令文件修改为:OPENDATABASEsdbSELECTstudent.学号,姓名,AVG(成绩)平均成绩,COUNT(成绩)选课门数;FROMstudentJOINscONstudent.学号=sc.学号;WHERE性别="女";GROUPBYstudent.学号HAVINGAVG(成绩)>=75;ORDERBY4desc;INTOTABLEthree三、综合应用(1小题,计30分)在考生文件夹下,先打开学生数据库SDB,然后创建一个文件名为form的表单,完成如下综合应用:在该表单中设计两个命令按钮,各命令按钮的功能如下:1."查询"按钮(Command1):在该按钮的Click事件中使用SQL的SELECT命令查询每个学生所选的所有课程的成绩都是60分以上(包括60分)的学生的学号、姓名、平均成绩和最低分,并将查询结果按学号升序排序存储到表FOUR中。表FOUR的字段为学号、姓名、平均成绩、最低分。2."退出"按钮(Command2):单击"退出"按钮时,关闭表单。表单设计完成后,运行该表单进行查询。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用。解题思路:①建立表单:可通过"文件"菜单下的"新建"命令或用命令CREATEFORM打开表单设计器。②在表单上添加两个命令按钮,并进行适当的布置和大小调整。③设置命令按钮的Caption属性值。④设置"查询"按钮的Click事件代码:SELECTStudent.学号,Student.姓名,AVG(成绩)AS平均成绩,;MIN(成绩)AS最低分;FROMsdb!studentINNERJOINsdb!sc;nONStudent.学号=Sc.学号;GROUPBYStudent.学号HAVINGMIN(成绩)>=60;ORDERBYStudent.学号;INTOTABLEfour.dbf⑤设置"退出"按钮的Click事件代码:thisform.release⑥保存表单并运行,单击"查询"按钮,再单击"退出"按钮。77一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,有一个学生数据库SDB,打开该数据库,完成如下操作:1.在学生表STUDENT中增加一个名为"照片"的字段、字段数据类型为"通用"。2.在教师表TEACHER中建立一个索引名为"教师号"的主索引(升序),索引表达式为教师号。在课程表COURSE中建立一个普通索引(升序),索引名为"教师号",索引表达式为教师号。3.建立选课表SC和学生表STUDENT之间的永久联系;建立选课表SC与课程表COURSE之间的永久联系;建立教师表TEACHER和课程表COURSE之间的永久联系。并为以上建立的联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"限制"。4.使用表单向导建立一个名称为sform的表单。要求选择学生表STUDENT中所有字段;表单样式为阴影式;按钮类型为图片按钮;选定排序字段为学号(升序);表单标题为"学生表数据输入"。本题的主要考核点:字段的添加、主索引和普通索引的建立、建立两个表之间的联系、设置参照完整性约束、使用表单向导制作表单。解题思路:1、打开STUDENT表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型。2、打开TEACHER表的表设计器,打开"索引"选项卡,在索引名处输入:教师号,类型选择"主索引",升序,表达式为:教师号。打开COURSE表的表设计器,打开"索引"选项卡,在索引名处输入:教师号,类型选择"普通索引",升序,表达式为:教师号。3、在数据库设计器中,选中STUDENT表中的索引"学号"并拖动到SC表的"学号"的索引上并松开,这样两个表之间就建立起了永久联系。建立好永久联系之后,在两处表的"学号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"限制",在"插入规则"中选择"限制",单击"确定"保存所编辑的参照完整性。再用同样的方法设置SC与COURSE、TEACHER与COURSE间的永久联系和参照完整性。4、启动表单向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择表单,单击向导按钮,然后按照向导提示操作即可。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开学生数据库SDB,完成如下简单应用:1.使用查询设计器设计一个名称为SVG的查询,查询每个"女"同学的学号(来自STUDENT表)、姓名、课程名、成绩和任课教师(来自Teacher表的教师名),查询结果按学号升序排序并输出到表ONE(查询去向)中。设计完成后,运行该查询。表ONE中的字段分别为:学号、姓名、课程名、成绩、任课教师。2.在考生文件夹下,使用快捷菜单设计器设计一个名称为SMENU的快捷菜单。要求如下:菜单包括"数据浏览"和"退出"两个菜单项:(1)"数据浏览"菜单包括"学生表"、"选课表"和"课程表"三个子菜单:①学生表子菜单在过程中使用SQL语句"SELECT*FROMSTUDENT"查询学生表的记录。②选课表子菜单在过程中使用SQL语句"SELECT*FROMSC"查询学生选课表的记录。③课程表选项在过程中使用SQL语句"SELECT*FROMCOURSE"查询课程表的记录。(2)"退出"菜单使用命令返回系统默认的菜单。本题主要考核点:使用查询设计器建立查询、使用快捷菜单设计器设计快捷菜单。解题思路:第1题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"STUDENT"、"SC"、"COURSE"和"Teacher"表添加到查询中,从字段选项卡中依次选择"学号"、"姓名"、"课程名"、"成绩",在"函数和表达式"中输入"教师名AS任课教师",并添加到选定字段中;切换到"排序依据"选项卡并在其中选择字段"学号",排序选项为"升序";切换到"筛选"选项卡并在其中选择字段:Student.性别,条件为:=,实例为:"女"n;单击查询菜单下的"查询去向",选择表,在"表名"右边的对话框中输入ONE,最后运行该查询。第2题:在"文件"菜单中选择"新建",在"新建"对话框中选择"菜单",单击"新建文件"按钮,选择"快捷菜单",在菜单设计器中输入两个菜单项"数据浏览"和"退出",结果为"子菜单"和"命令"。在"退出"菜单项的选项列中输入SETSYSMENUTODEFAULT。单击"数据浏览"右边的"创建",输入三个菜单项"学生表"、"选课表"和"课程表",结果为"过程",输入题面中要求的SQL语句。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用。解题思路:①建立表单:可通过"文件"菜单下的"新建"命令或用命令CREATEFORM打开表单设计器。②在表单上添加两个命令按钮,并进行适当的布置和大小调整。③设置命令按钮的Caption属性值。④设置"查询"按钮的Click事件代码:SELECTStudent.学号,姓名,AVG(成绩)AS平均成绩,;COUNT(*)AS选课门数FROMStudent,ScGROUPBYSc.学号;HAVINGCOUNT(*)>=4AND平均成绩>=75WHEREStudent.学号=Sc.学号;ORDERBY平均成绩DESCINTODBFTWO⑤设置"退出"按钮的Click事件代码:thisform.release⑥保存表单并运行,单击"查询"按钮,再单击"退出"按钮。三、综合应用(1小题,计30分)在考生文件夹下,先打开学生数据库SDB,然后创建文件名为tform的表单,完成如下综合应用:在该表单中设计两个命令按钮,各命令按钮的功能如下:(1)"查询"按钮(Command1):在该按钮的"Click"事件中使用SQL的SELECT命令查询选课数量大于等于4门且平均成绩大于等于75分的每个同学的学号、姓名、平均成绩和选课门数,查询结果按平均成绩降序排序并存储到表TWO中。表TWO中的字段名分别为:学号、姓名、平均成绩、选课门数。(2)"退出"按钮(Command2):单击"退出"按钮时,关闭表单。表单设计完成后,运行该表单,点击"查询"按钮进行查询。78一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,打开顾客数据库CDB,完成如下操作:1.在会员表CUS中增加一个字段,字段名为手机号,数据类型为"字符",宽度为11;在会员购货明细表CBC中分别给"数量"和"单价"字段设置有效性规则,要求:数量大于等于1,默认值为1;单价大于等于1,默认值为1。2.在会员购货明细表CBC中创建一个主索引,索引名为cbc,对应的索引表达式为会员号、商品号和日期字段的组合(会员号+商品号+DTOC(日期));注意,日期字段是日期型数据类型,在索引表达式使用DTOC函数将日期字段转换为字符型。3.在会员购货明细表CBC中创建两个普通索引(升序),索引名分别为会员号和商品号,对应索引表达式分别为会员号和商品号。建立会员表CUS与会员购货明细表CBC之间的永久联系;建立商品表COMM与会员购货明细表CBC之间的永久联系。4.使用SQL的SELECT语句查询会员表CUS中会员号、会员名和单位字段,将查询结果存储为NCUS表,并将SQL的SELECT语句存储到名为ONE.PRG的文件中。注意,查询结果不要排序。本题的主要考核点:字段的添加、字段有效性规则的建立、默认值的设置、主索引和普通索引的建立、建立两个表之间的联系、SQL语句的使用。解题思路:1、打开CUS表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型和宽度。再打开CBC表设计器,选择"数量"字段,在其字段有效性规则栏中输入:数量>=1,在默认值栏中输入:1;选择"单价"字段,在其字段有效性规则栏中输入:单价>=1,在默认值栏中输入:1。2、打开CBC表的表设计器,打开"索引"选项卡,在索引名处输入:cbc,类型选择"主索引",表达式为:会员号+商品号+DTOC(日期)。3、接着在索引名处输入:会员号,类型选择"普通索引",升序,表达式为:会员号;再在索引名处输入:商品号,类型选择"普通索引",升序,表达式为:商品号。在数据库设计器中,选中CUS表中的索引"会员号"n并拖动到CBC表的"会员号"的索引上并松开,这样两个表之间就建立起了永久联系。再用同样的方法设置COMM与CBC间的永久联系。4、使用SQL语句查询相应的记录值,SQL命令为:SELECT会员号,会员名,单位FROMcusINTOTABLEncus.dbf并将此语句存储到名为ONE.PRG的文件中。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开会员数据库CDB,完成如下简单应用:1.使用查询设计器设计一个名称为TWO的查询,查询2003年会员购买商品的情况,将结果按会员号排序(升序)并输出(查询去向)到TWO表中。TWO表中的字段名分别为:会员号、会员名、商品名、金额,其中:会员号来自会员表CUS,金额通过"数量*单价"计算。设计完成后,运行该查询。2.修改一个名称为THREE.PRG的命令文件。该命令文件查询累计消费金额在5000元以上、每次购买数量大于或等于10的"女"会员的会员号、会员名、单位和电话,结果输出到表THREE中。该命令文件在第3行、第6行、第7行有错误,打开该命令文件,直接在错误处修改,不允许增加和删除行。修改完成后,运行该命令文件。第1题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"COMM"、"CBC"和"CUS"表添加到查询中,从字段选项卡中依次选择"会员号"、"会员名、"商品名",在"函数和表达式"中输入"数量*单价AS金额",并添加到选定字段中;切换到"筛选"选项卡,在表达式中输入:"year(Cbc.日期)","条件"选择"=","实例"中输入2003;切换到"排序依据"选项卡并在其中选择字段"会员号",排序选项为"升序";单击查询菜单下的"查询去向",选择表,在"表名"右边的对话框中输入表名TWO,最后运行该查询。第2题:利用"文件"菜单下的"打开"命令打开程序文件THREE.PRG。将命令文件修改为:SELECT会员号,会员名,单位,电话;FROMcus;WHERE性别="女"and会员号=ANY;(SELECT会员号;FROMcbc;WHERE数量>=10;GROUPBY会员号HAVINGSUM(数量*单价)>=5000);INTOTABLETHREE三、综合应用(1小题,计30分)在考生文件夹下,打开会员数据库CDB,完成如下综合应用:1.建立文件名为form的表单,在表单中设计"统计"和"退出"两个按钮。要求如下:(1)在"统计"按钮(Command1)中,编写程序,根据会员统计时所购买商品的总金额(数量*单价),确定该会员为"金卡会员"、"银卡会员"、"铜卡会员"或"普通会员",并将其写入会员表CUS的"会员类型"字段中。金卡会员,总金额>=15000元;银卡会员,总金额<15000元AND>=10000元;铜卡会员,总金额<10000元AND>=5000元;普通会员,总金额<5000元(2)单击"退出"按钮(Command2)时,关闭表单。(3)表单设计完成后,运行表单,单击"统计"按钮进行统计,然后单击"退出"按钮关闭表单。解题思路:①建立表单:可通过"文件"菜单下的"新建"命令或用命令CREATEFORM打开表单设计器。②在表单上添加两个命令按钮,并进行适当的布置和大小调整。③设置命令按钮的Caption属性值。④设置"统计"按钮的Click事件代码:UPDATECUSSET会员类型="金卡会员"WHERE会员号=ANY(SELECT会员号FROMcbcGROUPBY会员号HAVINGSUM(数量*单价)>=15000)UPDATECUSSET会员类型="银卡会员"WHERE会员号=ANY(SELECT会员号FROMcbcGROUPBY会员号HAVINGSUM(数量*单价)<15000ANDSUM(数量*单价)>=10000)UPDATECUSSET会员类型="铜卡会员"WHERE会员号=ANY(SELECT会员号FROMcbcGROUPBY会员号HAVINGSUM(数量*单价)<10000ANDSUM(数量*单价)>=5000)UPDATECUSSET会员类型="普通会员"WHERE会员号=ANY(SELECT会员号FROMcbcGROUPBY会员号HAVINGSUM(数量*单价)<5000)⑤设置"退出"按钮的Click事件代码:ReleaseThisform⑥保存表单并运行,单击"统计"按钮,再单击"退出"按钮。n79一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,打开招生数据库SDB,完成如下操作:1.在KSB表中增加一个名为"备注"的字段、字段数据类型为"字符"、宽度为30。2.在考生成绩表KSCJB中给成绩字段设置有效性规则和默认值,成绩>=0AND成绩<=150;默认值为0。3.通过"考生号"字段建立KSB表和KSCJB表间的永久联系,并为该联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"忽略"。4.使用报表向导建立一个简单报表。要求选择考生表KSB中所有字段;记录不分组;报表样式为随意式;列数为1,字段布局为"列",方向为"纵向";排序字段为"考生号"(升序);报表标题为"考生成绩一览表";报表文件名为ONE.FRX。本题的主要考核点:字段的添加、字段有效性规则的建立、默认值的设置、建立两个表之间的联系、设置参照完整性、使用报表向导制作报表。解题思路:1、打开KSB表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型和宽度。2、打开KSCJB表设计器,选择"成绩"字段,在其字段有效性规则栏中输入:成绩>=0.AND.成绩<=150,在默认值栏中输入:0。3、在数据库设计器中,选中KSB表中的索引"考生号"并拖动到KSCJB表的"考生号"的索引上并松开,这样两个表之间就建立起了永久联系。建立好永久联系之后,在两处表的"考生号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"限制",在"插入规则"中选择"忽略",单击"确定"保存所编辑的参照完整性。4、启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮,然后按照向导提示操作即可二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开招生数据库SDB,完成如下简单应用:1.使用一对多表单向导选择KSB表和KSCJB表生成一个名为TWO的表单。要求从父表KSB中选择所有字段,从子表KSCJB中选择所有字段,使用"考生号"建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为考生号(来自KSB),升序;表单标题为"考生数据输入维护"。2.在考生文件夹下打开命令文件THREE.PRG,该命令文件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。并将查询结果存储到表THREE中。注意,该命令文件在第3行、第6行、第9行有错误,打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行本题主要考核点:使用表单向导制作表单、修改程序文件。解题思路:第1题:启动表单向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择表单,单击向导按钮,在"向导选取"对话框中选择"一对多表单向导",然后按照表单向导操作即可。第2题:利用"文件"菜单下的"打开"命令打开程序文件THREE.PRG。将命令文件修改为:SELECTAVG(成绩);FROMkscjb;INTOARRAYtemSELECT考生号,姓名;FROMksb;WHEREnotexists;(SELECT*;FROMkscjb;WHERE成绩考生号ifnotfound()thenappendblankreplace考生号withkscjb->考生号endifdocasecasekscjb->考试科目="101"replace政治成绩withkscjb->成绩casekscjb->考试科目="102"replace外语成绩withkscjb->成绩casekscjb->考试科目="103"replace高数成绩withkscjb->成绩casekscjb->考试科目="104"replace专业课成绩withkscjb->成绩endcaseselectkscjbskipenddocloseallupdatetestset总成绩=政治成绩+外语成绩+高数成绩+专业课成绩SELECTKsb.考生号,Ksb.姓名,Ksb.性别,Ksb.单位,Test.政治成绩,;Test.外语成绩,Test.高数成绩,Test.专业课成绩,Test.总成绩;FROMsdb!ksbINNERJOINtest;ONKsb.考生号=Test.考生号;WHERETest.总成绩>=330;ORDERBYTest.总成绩DESCINTOTABLEfour⑤设置"退出"按钮的Click事件代码:ReleaseThisform⑥保存表单并运行,单击"录取"按钮,再单击"退出"按钮。n80一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下,有一个资源数据库FRDB,该数据库有资源表FR_T、农户表P_T和树种表TREE_T三个表。其中,资源表FR_T存储了全乡农民承包的土地编号、户主编号、小地名、面积、树种编号、蓄积(生长在山上的树的木材体积)和承包年度。打开资源数据库FRDB,完成如下操作:1.在农户表P_T中增加一个字段名"继承人"、数据类型为"字符"、宽度为8的字段。2.设置资源表FR_T中"面积"字段的有效性规则:面积大于等于1,小于等于100,默认值为10;"蓄积"字段的有效性规则:蓄积大于等于0,小于等于200,默认值为100;(注意:表达式应写成面积>=1.AND.面积<=100,蓄积>=0.AND.蓄积<=200)。3.为资源表FR_T创建两个普通索引(升序),索引名分别为"户主编号"和"树种编号",对应的索引表达式分别为"户主编号"和"树种编号"。4.通过"户主编号"字段建立资源表FR_T和农户表P_T间的永久联系;通过"树种编号"字段建立资源表FR_T和树种表TREE_T间的永久联系。本题的主要考核点:字段的添加、字段有效性规则的建立、默认值的设置、普通索引的建立、建立两个表之间的联系。解题思路:1、打开P_T表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型和宽度。2、打开FR_T表设计器,选择"面积"字段,在其字段有效性规则栏中输入:面积>=1.AND.面积<=100,在默认值栏中输入:10,再选择"蓄积"字段,在其字段有效性规则栏中输入:蓄积>=0.AND.蓄积<=200,在默认值栏中输入:100。3、打开"索引"选项卡,在索引名处输入:户主编号,类型选择"普通索引",升序,表达式为:户主编号,再在索引名处输入:树种编号,类型选择"普通索引",升序,表达式为:树种编号。4、在数据库设计器中,选中P_T表中的索引"户主编号"并拖动到FR_T表的"户主编号"的索引上并松开,这样两个表之间就建立起了永久联系。再用同样的方法设置FR_T和TREE_T表间的永久联系。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开资源数据库FRDB,完成如下简单应用:1.使用表单向导选择资源表FR_T生成一个名为FR_EDIT的表单。要求选择FR_T表中所有字段,样式为阴影式;按钮类型为图片按钮;排序字段选择户主编号(升序);表单标题为"资源数据输入维护"。2.使用查询设计器设计一个查询one,按户主编号(取自fr_t表),树种名称(取自Tree_t表)分组汇总每个农户的面积(取自fr_t表)和蓄积(取自fr_t表),查询结果按户主编号升序排序,并输出到ONE表中。ONE表中的字段为户主编号、树种名称、面积合计、蓄积合计。注意:查询设计完成后必须运行。本题的主要考核点:使用表单向导制作表单、使用查询设计器建立查询。解题思路:第1题:启动表单向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择表单,单击向导按钮,然后按照向导提示操作即可。第2题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"fr_t"和"Tree_t"表添加到查询中,从字段选项卡中依次选择"户主编号"、"树种名称",在"函数和表达式"中输入"SUM(Fr_t.面积)AS面积合计",在"函数和表达式"中输入"SUM(Fr_t.蓄积)AS蓄积合计",并添加到选定字段中;切换到"排序依据"选项卡并在其中选择字段"户主编号",排序选项为"升序";切换到"分组依据"选项卡并在其中选择字段"Fr_t.户主编号",再选择"Tree_t.树种名称";单击查询菜单下的"查询去向",选择表,在"表名"右边的对话框中输入表名ONE,最后运行该查询。三、综合应用(1小题,计30分)在考生文件夹下,打开资源数据库FRDB,完成如下综合应用:设计一个表单名为form、表单文件名为FR_SHOW、表单标题名为"农户资源数据浏览"的表单,其表单界面如图所示。其他要求如下:1.为表单建立数据环境,向数据环境依次添加FR_T表(Cursor1)、P_T表(Cursor2)和TREE_T表(Cursor3)。2.当在"户主编号"(Label1)标签右边的文本框(Text1)中输入户主编号并单击"查询"(Command1)按钮时,将在右边的表格控件(Grid1)内显示该农户承包的土地编号、小地名、面积、树种编号、蓄积和承包年度信息(均取自FR_T表),并在左边相应的文本框中显示该农户的姓名(Text2)、年龄(Text3)、性别(Text4)和家庭地址(Text5)(均取自P_T表)。3.单击"退出"(Command2)按钮时,关闭表单。n要求:①表格(Grid1)控件的RecordSourceType属性设置为"4-SQL说明";②使用SQL的SELECT语句将根据输入的户主编号查询到的姓名、年龄、性别和家庭地址数据存放到一维数组tmp中,并将tmp数组诸元素的值赋值到各文本框。本题主要考核点:表单文件的创建、控件的属性的修改、SQL语句运用。解题思路:①建立表单:可通过"文件"菜单下的"新建"命令或用命令CREATEFORM打开表单设计器。为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境"。②在表单上添加5个标签、5个文本框、2个命令按钮和1个表格控件,并进行适当的布置和大小调整。③设置标签、文本框、窗体和命令按钮的Caption属性值。设置表格控件的RecordSourceType属性值。④设置"查询"按钮的Click事件代码:select姓名,年龄,性别,家庭地址fromp_twhere户主编号=alltrim(ThisForm.Text1.Value)intoarraytmpThisForm.Text2.Value=tmp(1)ThisForm.Text3.Value=tmp(2)ThisForm.Text4.Value=tmp(3)ThisForm.Text5.Value=tmp(4)ThisForm.Grid1.RecordSource="SELECT土地编号,小地名,面积,树种编号,蓄积,承包年度FROMfr_tWHERE户主编号='"+alltrim(ThisForm.Text1.Value)+"'INTOCURSORLSB"⑤设置"退出"按钮的Click事件代码:ReleaseThisform⑥保存表单并运行。81在考生文件夹下完成如下操作:1.建立数据库orders_manage。2.将自由表employee和orders添加到新建的orders_manage数据库中。3.表employee与表orders具有一对多联系,为建立两表之间的联系建立必要的索引。4.建立两表之间的联系并设置参照完整性规则如下:更新规则为"级联"、删除规则为"级联"、插入规则为"限解题思路:1、建立数据库的常用方法有三种:在项目管理器中建立数据库;通过"新建"对话框建立数据库;n使用命令交互建立数据库,命令为:CREATEDATABASE[DatabaseName|?]2、将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键,在弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库中的自由表。3、打开employee表的表设计器,打开"索引"选项卡,在索引名处输入:职工号,类型选择"主索引",升序,表达式为:职工号。打开orders表的表设计器,打开"索引"选项卡,在索引名处输入:职工号,类型选择"普通索引",表达式为:职工号。4、在数据库设计器中,选中employee表中的索引"职工号"并拖动到orders表的"职工号"的索引上并松开,这样两个表之间就建立起了永久联系。建立好永久联系之后,在两处表的"职工号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"级联",在"插入规则"中选择"限制",单击"确定"保存所编辑的参照完整性。1.使用SQL语句查询每个职工所经手的具有最高金额的订购单信息(orders表),并将结果按金额升序、金额相同按订购单号升序存储到表results中。2.使用SQL命令建立视图view_b,视图中是目前在orders表中没有所签订单的职工(employee)信息,记录按仓库号降序排列;同时把所用命令保存在文本文件view_b.txt中。解题思路:第1题:SQL语句为:SELECT*FROMordersORDERBY金额,订购单号WHERE职工号+str(金额,10,0)IN;(SELECT职工号+str(MAX(orders.金额),10,0)FROMordersGROUPBY职工号);INTOTABLEresults第2题:SQL命令为:createviewview_bas;select*fromemployee;where职工号notin;(select职工号fromorders);orderby仓库号desc然后将此命令保存在view_b.txt文件中。闭并释放表单;2.页框控件(PageFrame1)中含有三个页面,每个页面都通过一个表格控件显示有关信息:(1)第一个页面Page1的标题为"职工",其上的表格用于显示表employee中的内容。其中表格的控件名为grdEmployee、RecordSourceType属性值应为1(别名);(2)第二个页面Page2的标题为"订单",其上的表格用于显示表orders中的内容。其中表格的控件名为grdOrders、RecordSourceType属性值应为1(别名);(3)第三个页面Page3的标题为"职工订单金额",其上的表格显示每个职工的职工号、姓名及其所经手的订单总金额(注:表格只有3列,第1列为"职工号",第2列为"姓名",第3列为"总金额")。其中表格的控件名为Grid1、RecordSourceType属性值应为4-SQL说明。解题思路:第一步:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入:creaformform1。在"表单设计器"中,单击鼠标右键,在弹出菜单中选择"数据环境",在"添加表或视图"对话框中,选择employee表,单击"添加",接着在"添加表或视图"的对话框中,选择orders表,单击"添加",再单击"关闭"按钮。选择employee和orders之间的连线,单击Delete键。 第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"页框"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"页框"控件PageFrame1,用类似的方法为表单再加入三个"表格"控件(右击页框,点击编辑按钮),1个"命令按钮"控件command1。相关控件的属性值如下表所示:对象属性属性值Form1Namemyform_bForm1Caption订单管理Command1Caption退出PageFrame1pagecount3PageFrame1.page1Caption职工nPageFrame1.page2Caption订单PageFrame1.page3Caption职工订单金额PageFrame1.page1.grid1NamegrdEmployeePageFrame1.page1.grid1RecordSourceType1-别名PageFrame1.page1.grid1RecordSourceEmployeePageFrame1.page2.grid1NamegrdOrdersPageFrame1.page2.grid1RecordSourceType1-别名PageFrame1.page2.grid1RecordSourceOrdersPageFrame1.page3.grid1RecordSourceType4-SQL说明PageFrame1.page3.grid1RecordSourceseleemployee.职工号,姓名,sum(金额)as总金额fromemployee,orderswhereemployee.职工号=orders.职工号groupbyorders.职工号intocursortemp第三步:命令按钮command1(退出)的Click事件代码如下:thisform.release第四步:保存表单并运行。82一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成如下操作:1.建立数据库orders_manage,并将自由表employee和orders添加到新建的数据库中。2.建立必要的索引,并建立表employee和表orders之间的永久联系。3.建立项目"职工订单管理"并把新建的数据库orders_manage添加到新建的项目中。4.在项目管理器中建立本地视图view_ca,视图内容为职工号、姓名和年龄,按年龄降序排序(年龄表达式是YEAR(DATE())-YEAR(出生日期))。解题思路:1、建立数据库的常用方法有三种:在项目管理器中建立数据库;通过"新建"对话框建立数据库;使用命令交互建立数据库,命令为:CREATEDATABASE[DatabaseName|?]将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键,在弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库中的自由表。2、打开employee表的表设计器,打开"索引"选项卡,在索引名处输入:职工号,类型选择"主索引",表达式为:职工号。打开orders表的表设计器,打开"索引"选项卡,在索引名处输入:职工号,类型选择"普通索引",表达式为:职工号。在数据库设计器中,选中employee表中的索引"职工号"并拖动到orders表的"职工号"的索引上并松开,这样两个表之间就建立起了永久联系。3、在VisualFoxPro主窗口下按组合键Ctrl+N,则系统弹出"新建"对话框,在文件类型中选择"项目",再点击"新建文件"按钮,选定考生文件夹,在项目文件中填入"职工订单管理",再点击保存按钮;这样便新建了一个项目,在弹出的项目管理器中先选择"数据"标签,再选择"数据库",最后点击"添加"按钮;在弹出的"打开"对话框中的"选择数据库"处,选择"orders_manage"数据库。4、在选择"orders_manage"数据库下选择"本地视图",单击"新建",选择"新建视图",添加"employee"表到视图中,先选择"职工号"、"姓名"字段,再在"函数与表达式"中输入"YEAR(DATE())-YEAR(出生日期)AS年龄",单击"添加"按钮,在"排序依据"中选择按"YEAR(DATE())-YEAR(出生日期)AS年龄"降序,以文件名view_ca保存该视图。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成如下简单应用:1.使用向导建立一对多报表report_c,选择父表employee中仓库号、职工号、姓名字段以及子表orders中除职工号以外的全部字段,报表按仓库号升序排序,报表样式选择简报式,报表标题是"职工订单汇总"。2.使用SQL命令建立视图view_cb,视图中显示每个职工签订的所有订单总金额(签订订单金额合计)大于15000元的职工号、姓名及其所签订订单的总金额,结果按总金额升序排序;同时把所用命令保存在文本文件cmd_cb.txt中。解题思路:n第1题:启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮,然后按照向导提示操作即可。第2题:SQL命令为:createviewview_cbas;selectemployee.职工号,姓名,;sum(金额)as总金额;fromemployee,orders;whereemployee.职工号=orders.职工号;groupbyemployee.职工号;havingsum(金额)>15000;orderby总金额asc然后将此命令保存在cmd_cb.txt文件中三、综合应用(1小题,计30分)建立一个表单,表单文件名和表单控件名均为myform_c,表单标题为"职工订单信息",表单界面如图所示,共有三个文本为职工号(Label1)、姓名(Label2)和性别(Label3)的标签,还有三个对应的文本框Text1、Text2和Text3,和一个表格控件Grdorders。其它功能如下:1.程序运行时,在文本框Text1中输入一个职工号的值,并单击DO(Command1)按钮,然后在Text2文本框中显示职工的姓名,在Text3文本框中显示职工的性别,在表格控件(Grdorders)中显示该职工的订单(orders表)的信息。2.单击Close命令按钮(Command2)关闭表单。注意:在表单设计器中将表格控件Grdorders的数据源类型设置为SQL语句。解题思路:①在命令窗口输入命令:CREATEFORMmyform_c,打开表单设计器窗口。②在表单上添加各标签、文本框、表格、命令按钮,并进行适当的布置和大小调整。③根据题面要求设置各标签、表格、命令按钮以及表单的属性值。④将表格的RecordSourceType属性值设置为"4-SQL说明"。⑤设置"Do"按钮的Click事件代码:zgh=ALLTRIM(ThisForm.Text1.Value)IfUsed("employee")SELECTemployeeELSEUSEemployeeENDIFLOCATEFOR职工号=zghThisForm.Text2.Value=姓名ThisForm.Text3.Value=性别ThisForm.Grdorders.RecordSource="SELECT*FROMordersWHERE职工号=='"+zgh+"'INTOCURSORLSB"⑥设置"Close"按钮的Click事件代码:THISFORM.RELEASE⑦保存表单,关闭表单设计器窗口。83一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)在考生文件夹下完成下列操作:1.建立名称为"CDB"的商品销售数据库。然后将考生文件夹下的顾客表CUST、订单表ORDER和商品表COMM三个自由表添加到数据库CDB中。2.分别为顾客表CUST、订单表ORDER和商品表COMM创建主索引,CUST表主索引的索引名和索引表达式均为"顾客号";COMM表主索引的索引名和索引表达式均为"商品号";ORDER表主索引的索引名为"PK_CC"、索引表达式为"顾客号+商品号";分别为ORDER表的"顾客号"和"商品号"建立普通索引(升序),索引名与字段名相同。n3.通过字段"顾客号"建立ORDER与CUST之间的永久联系、通过字段"商品号"建立ORDER与COMM之间的永久联系。然后为以上建立的永久联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"限制"。4.在商品销售数据库CDB中使用SQL的CREATETABLE语句创建数据库表:销售明细表(顺序号,日期,商品号,商品名,金额),其中:顺序号为字符型,宽度为6;日期为日期型;商品号为字符型,宽度为6;商品名为字符型,宽度为10;金额为数值型,宽度为10(其中小数2位);表的主关键字为"顺序号"。将创建表的SQL语句存放在文件ONE.PRG中。解题思路:1、建立数据库的常用方法有三种:在项目管理器中建立数据库;通过"新建"对话框建立数据库;使用命令交互建立数据库,命令为:CREATEDATABASE[DatabaseName|?]将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键,在弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库中的自由表。2、打开CUST表的表设计器,打开"索引"选项卡,在索引名处输入:顾客号,类型选择"主索引",表达式为:顾客号,用同样的方法设置COMM表和ORDER表的主索引。打开ORDER表的表设计器,打开"索引"选项卡,在索引名处输入:顾客号,类型选择"普通索引",升序,表达式为:顾客号;接着,在索引名处输入:商品号,类型选择"普通索引",升序,表达式为:商品号。3、在数据库设计器中,选中CUST表中的索引"顾客号"并拖动到ORDER表的"顾客号"的索引上并松开,这样两个表之间就建立起了永久联系。建立好永久联系之后,在两处表的"顾客号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"限制",在"插入规则"中选择"限制",单击"确定"保存所编辑的参照完整性。再用同样的方法设置COMM表与ORDER表间的永久联系和参照完整性。4、SQL语句为:createtable销售明细表(顺序号C(6)primarykey,日期D,商品号C(6),商品名C(10),金额N(10,2))然后将此命令保存在ONE.PRG文件中。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开该"CDB"数据库,完成如下简单应用:1.使用一对多表单向导选择CUST表和ORDER表生成一个名为"ONE"的表单。要求从父表CUST中选择所有字段,从子表ORDER中选择所有字段,使用"顾客号"建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为"顾客号",升序;表单标题为"顾客订购商品维护"。2.使用查询设计器设计一个名称为VIEW_C的查询,统计查询所有顾客购买商品应付款的情况。查询结果包括顾客号、顾客名、地址和付款金额四个字段(注意:每件商品的"金额"是由COMM表中该商品的单价*ORDER表中该商品的订购数量计算得到,每个顾客的付款金额则是顾客购买商品金额的合计),各记录按顾客号升序排序,并将查询结果存储到表TABA中。设计完成后,运行该查询。解题思路:第1题:启动表单向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择表单,单击向导按钮,在"向导选取"对话框中选择"一对多表单向导",然后按照表单向导操作即可。第2题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将"CUST"、"ORDER"和"COMM"表添加入查询中,从字段选项卡中依次选择"顾客号"、"顾客名"、"地址",在"函数和表达式"中输入"SUM(Comm.单价*Order.数量)AS付款金额",并添加到选定字段中;切换到"排序依据"选项卡并在其中选择字段"CUST.顾客号",排序选项为"升序";切换到"分组依据"选项卡并在其中选择字段"CUST.顾客号";单击查询菜单下的"查询去向",选择表,在"表名"右边的对话框中输入表名TABA,最后运行该查询。三、综合应用(1小题,计30分)在考生文件夹下,打开"CDB"数据库,完成如下综合应用:创建设计一个标题名为"查询"、文件名为"TWO"的表单,如下图所示。表单要求如下:1.为表单建立数据环境,依次向数据环境添加ORDER、CUST和COMM表。2.表单启动后自动居中。3.在该表单中设计一个标签、一个文本框、两个表格和两个命令按钮。(1)标签对象标题文本为"输入顾客号";文本框用于输入顾客号;两个表格控件用于显示结果。n(2)命令按钮的功能如下:①"查询"按钮:在该按钮的"Click"事件中使用SQL的SELECT命令查询顾客号等于输入的"顾客号"的顾客的顾客号、顾客名和地址,以及购买商品的商品号、商品名、单价、数量和金额(各商品记录按商品号升序排序)。将查询的顾客信息在表格控件Grid1中显示,同时将结果存储到表TABB中;将查询的顾客购买商品的结果在表格控件Grid2中显示,同时将结果存储到表TABC中。注意:每件商品的"金额"是由COMM表中该商品的单价*ORDER表中该商品的订购数量计算得到。表TABB和表TABC结构分别如下:TABB(顾客号,顾客名,地址)TABC(商品号,商品名,单价,数量,金额)②"退出"按钮:的功能是"关闭和释放表单"。注意:表格控件的RecordSourceType属性设置为"4-SQL说明";表单设计完成后,运行该表单,查询顾客号等于"010003"的顾客信息和购买的商品信息。解题思路:①在命令窗口输入命令:CREATEFORMTWO,打开表单设计器窗口。为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境"。②在表单上添加各标签、文本框、表格、命令按钮,并进行适当的布置和大小调整。③根据题面要求设置各标签、表格、命令按钮以及表单的属性值。④将表格Grid1和Grid2的RecordSourceType属性值设置为"4-SQL说明"。⑤设置"查询"按钮的Click事件代码:GKh=ALLTRIM(ThisForm.Text1.Value)ThisForm.Grid1.RecordSource="SELECT顾客号,顾客名,地址FROMCUSTWHERE顾客号=='"+GKh+"'INTOTABLETABB"ThisForm.Grid2.RecordSource="SELECTComm.商品号,商品名,单价,数量,Comm.单价*Order.数量as金额FROMcdb!commINNERJOINcdb!orderONComm.商品号=Order.商品号WHERE顾客号=='"+GKh+"'INTOTABLETABC"⑥设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑦保存表单并运行,在文本框中输入"010003",单击"查询"命令按钮进行计算。最后,单击"退出"命令按钮结束。84一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)在考生文件夹下完成下列操作:1.打开名称为SDB的学生数据库,分别为学生表Student、选课成绩表SC和课程表Course创建主索引。Student表主索引的索引名和索引表达式均为"学号";Course表主索引的索引名和索引表达式均为"课程号";SC表的主索引名为PK_SC,索引表达式为"学号"+"课程号"的字段组合。2.通过字段"学号"建立Student表与SC表之间的永久联系、通过字段"课程号"建立Course表与表SC之间的永久联系。并为以上建立的永久联系设置参照完整性约束:更新规则为"级联";删除规则为"级联";插入规则为"限制"。3.使用SQL语句将学号为"s3"的学生记录从表Student中逻辑删除,并将该SQL语句存放在文件ONE.PRG中。4.创建一个名为Project_S的项目文件。将学生数据库SDB添加到该项目中。解题思路:1、打开Student表的表设计器,打开"索引"选项卡,在索引名处输入:学号,类型选择"主索引",表达式为:学号,用同样的方法设置SC表和Course表的主索引。2、在数据库设计器中,选中Student表中的索引"学号"并拖动到SC表的"学号"的索引上并松开,这样两个表之间就建立起了永久联系。建立好永久联系之后,在两个表的"学号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除规则"中选择"级联",在"插入规则"中选择"限制",单击"确定"保存所编辑的参照完整性。再用同样的方法设置Course表和SC表间的永久联系和参照完整性。3、SQL语句为:deletefromstudentwhere学号="s3",然后将此命令保存在ONE.PRG文件中。n4、在VisualFoxPro主窗口下按组合键Ctrl+N,则系统弹出"新建"对话框,在文件类型中选择"项目",再点击"新建文件"按钮;在弹出的"创建"对话框中,选定考生文件夹,在项目文件中填入"Project_S",再点击保存按钮;这样便新建了一个项目;在弹出的项目管理器中先选择"数据"标签,再选择"数据库",最后点击"添加"按钮;在弹出的"打开"对话框中的"选择数据库"处,选择SDB数据库。二、简单应用(2小题,每题20分,计40分)在考生文件夹下,打开商品销售数据库CDB,完成如下简单应用:1.使用一对多报表向导建立名称为P_ORDER的报表。要求从父表顾客表CUST中选择所有字段,从子表订单表ORDER中选择所有字段;两表之间采用"顾客号"字段连接;按"顾客号"字段升序排序;报表样式为"经营式",方向为"纵向";报表标题为"顾客订单表"。然后修改该报表,在页注脚中增加一个标签"制表人:王爱学";该标签水平居中,标签中的":"为中文的冒号。2.修改一个名称为TWO.PRG的命令文件。该命令文件统计每个顾客购买商品的金额合计(应付款),结果存储在临时表ls中。然后用ls中的每个顾客的数据去修改表scust对应的记录。该命令文件有3行语句有错误,打开该命令文件进行修改。注意:直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。修改完成后,运行该命令文件。解题思路:第1题:启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮,在"向导选取"对话框中选择"一对多报表向导",然后按照报表向导操作即可。然后打开该报表,在页注脚中增加一个标签控件,输入:"制表人:王爱学",选中该标签,再选择"格式"菜单下的"对齐"子菜单下的"水平对齐"。第2题:利用"文件"菜单下的"打开"命令打开程序文件TWO.PRG。将命令文件修改为:CLOSEDBFPRIVATEno,moneyUSEscust*下面的一行语句有错误SELECT顾客号,sum(数量*单价)应付款;FROMorderJOINcommONorder.商品号=comm.商品号;GROUPBY顾客号;INTOCURSORlsSELECTscust*下面的一行语句有错误DOWHILE.NOT.EOF()no=顾客号SELECTlsLOCATFOR顾客号=nomoney=应付款SELECTscust*下面的一行语句有错误REPLACE应付款WITHmoneySKIP+1ENDDOCLOSETABLERETURN三、综合应用(1小题,计30分)在考生文件夹下,打开名称为CDB的商品销售数据库,完成如下综合应用:创建一个标题名为"顾客购买商品查询"、文件名为GK的表单,如下图所示。表单要求如下:1.在该表单中设计两个标签、两个文本框、一个表格控件和两个命令按钮。2.表单中两个标签的名称分别为Label1和Label2,其标题分别为"顾客号"和"应付款";两个文本框的名称分别为Text1和Text2,前者用于输入查询的顾客号,后者用于显示该顾客的应付款;表格Grid1用于显示顾客购买商品的详细记录。3.两个命令按钮的功能如下:n(1)"查询"按钮(Command1)在该按钮的Click事件中编写程序,采用SQL语句根据第1个文本框输入的顾客号进行查询。在表格控件中显示该顾客的顾客号和购买的每件商品的商品号、商品名、单价、数量和金额,各记录按商品号升序排序。该查询结果应同时存储到表tjb.dbf中。另外需要统计该顾客的应付款,并将结果显示于Text2文本框中。说明:金额=单价*数量,应付款=顾客购买的商品金额合计(2)"退出"按钮(Command2):关闭并释放表单。注意:表格控件的RecordSourceType属性设置为"4-SQL说明";表单设计完成后,运行该表单,输入顾客号:010003,单击"查询"按钮进行查询。解题思路:①在命令窗口输入命令:CREATEFORMGK,打开表单设计器窗口。②在表单上添加各标签、文本框、表格、命令按钮,并进行适当的布置和大小调整。③根据题面要求设置各标签、表格、命令按钮以及表单的属性值。④将表格Grid1的RecordSourceType属性值设置为"4-SQL说明"。⑤设置"查询"按钮的Click事件代码:ThisForm.Grid1.RecordSource="SELECTOrder.顾客号,Comm.商品号,商品名,单价,数量,Comm.单价*Order.数量as金额FROMcdb!commINNERJOINcdb!orderONComm.商品号=Order.商品号WHERE顾客号=ALLTRIM(ThisForm.Text1.Value)orderbyComm.商品号INTOTABLEtjb"SELECTsum(Comm.单价*Order.数量)FROMcdb!commINNERJOINcdb!orderONComm.商品号=Order.商品号WHERE顾客号=ALLTRIM(ThisForm.Text1.Value)INTOARRAYtempThisForm.Text2.Value=temp⑥设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑦保存表单并运行,在文本框中输入"010003",单击"查询"命令按钮进行计算。最后,单击"退出"命令按钮结束。85一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)在考生文件夹下有一表单文件formone.scx,其中包含一个文本框和一个命令按钮。打开该表单文件,然后在表单设计器环境下完成如下操作:1.将文本框和命令按钮两个控件设置为顶边对齐。2.将文本框的默认值设置为0。3.将表单的标题设置"基本操作",将命令按钮的标题设置为"确定"。4.设置文本框的InteractiveChange事件代码,使得当文本框输入负数时,命令按钮为无效,即不能响应用户的操作。解题思路:1、打开表单formone,选中标签和命令按钮,选择"格式"菜单下"对齐"菜单下的"顶边对齐"。2、将文本框的Value属性值设置为0。3、将表单的Caption属性值设置为"基本操作",命令按钮的Caption属性值设置为"确定"。4、设置文本框的InteractiveChange事件代码:ifthisform.Text1.value<0thisform.command1.enabled=0endif二、简单应用(2小题,每题20分,计40分)1.扩展VisualFoxPro基类Form,创建一个名为MyForm的自定义表单类。自定义表单类保存在名为myclasslib的类库中。自定义表单类MyForm需满足以下要求:(1)其AutoCenter属性的默认值为.T.。(2)其Closable属性的默认值为.F.。(3)当基于该自定义表单类创建表单时,自动包含一个命令按钮。该命令按钮的标题为"关闭",当单击该命令按钮时,将关闭其所在的表单。n2.利用查询设计器创建查询,从orders、orderitems和goods表中查询2007年签订的所有订单的信息。查询结果依次包含订单号、客户号、签订日期、总金额等四项内容,其中总金额为该订单所签所有商品的金额(单价*数量)之和。各记录按总金额降序排序,总金额相同按订单号升序排序。查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。解题思路:第1题:建立类可以使用"文件"菜单完成,选择文件--新建--类--新建文件,在弹出的"新建类"对话框中:在"类名"右边的文本框中输入:MyForm,在"派生于"右边的列表框中选择Form,在"存储于"右边的浏览中选择考生文件夹,再输入文件名myclasslib,单击"确定"按钮,打开"类设计器"窗口,进入类设计器环境。在属性窗口中,将表单的AutoCenter属性设置为.T.,Closable属性设置为.F.。在窗体上添加一个命令按钮,Caption属性为"关闭",设置"关闭"按钮的Click事件代码:thisform.release。第2题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将orders、orderitems和goods表添加到查询中,从字段选项卡中依次选择"Orders.订单号"、"Orders.客户号"、"Orders.签订日期",在"函数和表达式"中输入"SUM(Goods.单价*Orderitems.数量)AS总金额",并添加到选定字段中;切换到"筛选"选项卡,在表达式中输入:"year(Orders.签订日期)","条件"选择"=","实例"中输入:2007;切换到"排序依据"选项卡并在其中选择字段"SUM(Goods.单价*Orderitems.数量)AS总金额",排序选项为"降序",再选择"Orders.订单号",排序选项为"升序";切换到"分组依据"选项卡并在其中选择字段"Orders.订单号";单击查询菜单下的"查询去向",选择表,在"表名"右边的对话框中输入表名tableone,最后保存并运行该查询。三、综合应用(1小题,计30分)在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前vfp系统菜单的末尾追加一个"考试"子菜单,如下图所示。菜单命令"统计"和"返回"的功能都通过执行过程完成。菜单命令"统计"的功能是统计2007年有关客户签订的订单数。统计结果依次包含"客户名"和"订单数"两个字段,其中客户名即为客户的姓名(在customers表中)。各记录按订单数降序排序、订单数相同按客户名升序排序,统计结果存放在tabletwo表中。菜单命令"返回"的功能是恢复标准的系统菜单。菜单程序生成后,运行菜单程序并依次执行"统计"和"返回"菜单命令。解题思路:1、建立菜单可以使用"文件"菜单完成,选择文件--新建--菜单--新建文件打开新建菜单窗口,选择"菜单"按钮,打开菜单设计器。打开"显示"菜单下的"常规选项"对话框,在"位置"处选择追加,则新建立的子菜单会在当前vfp系统菜单后显示。2、在菜单名称中填入"考试",结果为子菜单,单击创建;在子菜单的菜单名称中输入"统计",结果为过程。在过程中输入下列命令:SELECTCustomers.姓名AS客户名,count(Orders.订单号)as订单数;FROMcustomersINNERJOINordersONCustomers.客户号=Orders.客户号;WHEREyear(Orders.签订日期)=2007GROUPBYCustomers.姓名;ORDERBY2DESC,Customers.姓名INTOTABLEtabletwo在菜单名称中填入"返回",结果为过程,在过程中输入此命令:SETSYSMENUTODEFAULT。3、最后保存菜单mymenu.mnx,并生成菜单程序mymenu.mpr,且运行菜单程序并依次执行"统计"和"返回"菜单命令。86一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)1.新建一个项目myproject。2.在新建的项目myproject中建立数据库mybase。3.将考生文件夹下的3个自由表全部添加到新建的mybase数据库。4.在新建的项目myproject中建立一个表单,并将其保存为myform.scx(不要做其他任何操作)。解题思路:1、单击"文件"菜单中的"新建",在类型选择对话框中选择"项目",单击"新建文件"按钮,输入文件名"myproject"。2、选择项目管理器中"数据"节点下的"数据库",单击"新建"按钮,在弹出的对话框中选择"新建数据库",输入数据库文件名"mybase",这时,数据库设计器自动打开。3、在数据库设计器中单击右键,选择"添加表",将考生文件夹下的3个自由表依次添加到数据库中。n4、选择项目管理器中"文档"节点下的"表单",单击"新建"按钮,在弹出的对话框中选择"新建表单",这时表单设计器打开,单击工具栏上的保存铵钮,输入表单名myform,保存表单后关闭表单设计器。二、简单应用(2小题,每题20分,计40分)1.在mybase数据库中建立视图myview,视图中包括客户名、订单号、图书名、单价、数量和签订日期字段。然后使用SQLSELECT语句查询:"吴"姓读者(客户名第一个字为"吴")订购图书情况,查询结果按顺序包括myview视图中的全部字段,并要求先按客户名排序、再按订单号排序、再按图书名排序(均升序),将查询结果存储在表文件mytable中。2.打开在基本操作题中建立的表单文件myform,并完成如下简单应用:1)将表单的标题设置为"简单应用";2)表单运行时自动居中;3)增加命令按钮"退出"(Command1),程序运行时单击该按钮释放表单;4)将第1题建立的视图myview添加到数据环境中;5)将视图myview拖拽到表单中使得表单运行时能够显示视图的内容(不要修改任何属性)。解题思路:第1题:在mybase数据库设计器中,通过createVIEW命令打开视图设计器,在"添加表或视图"对话框中添加order、orderitem和goods表,并设置三表间的联系;在"字段"选项卡中选择客户名、订单号、图书名、单价、数量和签订日期字段,最后将视图保存在myview文件中。接着在命令窗口中输入:"select*frommyviewwhere客户名="吴"intotablemytableorderby客户名,订单号,图书名",按回车运行此命令。第2题:打开表单文件myform,将表单的Caption属性设置为"简单应用",AutoCenter属性设置为".T.-真"。在表单上添加一个命令按钮Command1,Caption属性设置为"退出",设置"退出"按钮的Click事件代码:thisform.release。单击"显示"菜单下的"数据环境"子菜单,单击"数据环境"菜单下的"添加"子菜单,单击"添加表或视图"窗口中的"视图",选中视图"myview",单击"添加",将视图myview添加到数据环境中,选中数据环境设计器中的视图myview拖拉到表单设计器中,保存表单。三、综合应用(1小题,计30分)在考生文件夹下完成如下综合应用:1.打开在基本操作题中建立的项目myproject;2.在项目中建立程序SQL,该程序只有一条SQL查询语句,功能是:查询7月份以后(含)签订订单的客户名、图书名、数量、单价和金额(单价*数量),结果先按客户名、再按图书名升序排序存储到表MYSQLTABLE;3.在项目中建立菜单mymenu,该菜单包含运行表单、执行程序和退出3个菜单项,它们的功能分别是执行表单myform、执行程序SQL、恢复到系统默认菜单(前两项使用直接命令方式;最后一项使用过程,其中包含一条clearevents命令);4.在项目中建立程序main,该程序的第一条语句是执行菜单mymenu,第二条语句是readevents,并将该程序设置为主文件;5.连编生成应用程序myproject.app;6.最后运行连编生成的应用程序,并执行所有菜单项。解题思路:1、打开项目myproject。2、选择项目管理器中"代码"节点下的"程序",单击"新建"按钮,在弹出的对话框中输入:SELECT客户名,图书名,数量,单价,单价*数量AS金额;FROMmybase!goodsINNERJOINmybase!orderitem;INNERJOINmybase!order;ONOrderitem.订单号=Order.订单号;ONGoods.图书号=Orderitem.图书号;WHEREmonth(order.签订日期)>=7;ORDERBY客户名,图书名INTOTABLEMYSQLTABLE单击工具栏上的保存铵钮,输入:SQL。然后单击"保存"。3、选择项目管理器中"其他"节点下的"菜单",单击"新建"按钮,在新建菜单窗口中单击"菜单",在"菜单名称"中输入"运行表单",结果为"命令",输入:doformmyform。再在"菜单名称"中输入"执行程序",结果为"命令",输入:dosql。接着在"菜单名称"中输入"退出",结果为"过程",单击"创建",输入:setsysmenutodefaultclearevents单击工具栏上的保存铵钮,输入:mymenu。然后单击"保存"。n4、选择项目管理器中"代码"节点下的"程序",单击"新建"按钮,在弹出的对话框中输入:domymenu.mprreadevents单击工具栏上的保存铵钮,输入:main。然后单击"保存"。5、选中程序main,单击鼠标右键,选择"设置主文件",将其设置成主文件。然后单击项目管理器右侧的"连编"命令打开"连编选项"窗口,在操作中选择"连编应用程序",点击"确定"按钮,输入应用程序名myproject,单击"保存"按钮,即可生成连编项目文件。最后运行myproject.app,并依次执行"运行表单"、"执行程序"和"退出"菜单命令。87一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)在考生文件夹下有一表单文件formone.scx,其中包含一个命令按钮。打开该表单文件,然后在表单设计器环境下完成如下操作:1.将表单的标题设置为"基本操作";将表单的最大化按钮设置为无效。2.在表单的数据环境中添加数据表customers.dbf。3.将命令按钮设置为"默认"按钮,即在表单激活的情况下,不管焦点在哪个控件上,都可以通过按Enter键来选择该命令按钮。4.在命令按钮的上方添加一个基于用户自定义类mytextbox的控件(不需要做任何设置)。类mytextbox存储在考生目录下的类库文件myclasslib.vcx中。(提示:在表单控件工具栏中单击"查看类"按钮添加类库。)解题思路:1、打开表单formone,将表单的Caption属性设置为"基本操作",MaxButton属性设置为".F.-假"。2、单击"显示"菜单下的"数据环境"子菜单,单击"数据环境"菜单下的"添加"子菜单,在打开文件窗口中选择customers.dbf,单击"确定"按钮,关闭"添加表或视图"窗口,则可将数据表customers.dbf添加到数据环境中。3、将命令按钮的Default属性值设置为".T.-真"。4、选中"工具"菜单下的"选项"命令,选择"控件"选项卡,再选择"可视类库"单选按钮,然后单击"添加"按钮。在打开的对话框中,选择考生目录下的类库文件myclasslib.vcx。单击"表单控件"工具栏上的"查看类"按钮,然后选择myclasslib,在命令按钮的上方添加一个mytextbox的控件。二、简单应用(2小题,每题20分,计40分)1.编写SELECT语句,从orders(订单)表中统计2007年各月份签订的订单数。统计结果依次包含"月份"和"订单数"两个字段,并按月份升序排序,统计结果存放在tableone表中。最后要执行该SELECT语句,并将该SELECT语句存放在命令文件pone.prg中。2.首先创建数据库goods_m,并向其中添加goods(商品)表。然后在数据库中创建视图viewone:利用该视图只能查询单价大于等于2000且库存量小于等于2、或者单价小于2000且库存量小于等于4的商品信息,查询结果依次包含商品号、商品名、单价和库存量四项内容,各记录按商品号升序排序。最后利用该视图查询视图中的全部信息,并将查询结果存放在表tabletwo中。解题思路:第1题:本题的考查点是SQL语句的使用。其命令如下:selectmonth(签订日期)as月份,count(订单号)as订单数fromorders;whereyear(签订日期)=2007groupby月份orderby月份intotabletableone运行该SQL语句,然后将此语句保存在pone.prg文件中。第2题:创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中添加goods表。再通过createVIEW命令打开视图设计器,在"添加表或视图"对话框中添加goods表;在"字段"选项卡中选择商品号、商品名、单价和库存量4个字段;切换到"筛选"选项卡,在其中进行如下设置:字段名条件实例逻辑Goods.单价>=2000ANDGoods.库存量<=2ORGoods.单价<2000ANDGoods.库存量<=4n切换到"排序依据"中选择字段"Goods.商品号",在"排序选项"处选择"升序",最后将视图保存在viewone文件中。利用刚创建的视图viewone创建查询,建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,在"添加表或视图"对话框中选择viewone视图,在字段中选择所有字段,设置查询去向为表tabletwo。三、综合应用(1小题,计30分)在考生文件夹下创建表单文件formtwo.scx,如下图所示,其中包含一个标签、一个文本框和一个命令按钮。然后按相关要求完成相应操作。(1)如图所示设置表单、标签和命令按钮的Caption属性。(2)设置文本框的Value属性值为表达式Date()。(3)设置"查询"按钮的Click事件代码,使得表单运行时单击该按钮能够完成如下查询功能:从orders、orderitems、customers、goods表中查询指定日期之后(含)签订的订单的详细信息,查询结果依次包含签订日期、订单号、客户名(即客户姓名)、商品名、单价和数量六项内容,各记录按签订日期升序排序、签订日期相同按订单号升序排序、订单号相同按商品名升序排序,并将查询结果存放在表tablethree中。最后运行该表单,查询2007年1月10日以后(含)签订的订单的详细信息。解题思路:①在命令窗口输入命令:CREATEFORMformtwo,打开表单设计器窗口。②在表单上添加标签、文本框和命令按钮,并进行适当的布置和大小调整。③设置标签、命令按钮、表单的Caption属性值。④将文本框的Value属性值设置为"=date()"。⑤设置"查询"按钮的Click事件代码:SELECT签订日期,orders.订单号,姓名as客户名,商品名,单价,数量;FROMgoodsINNERJOINorderitems;INNERJOINordersINNERJOINcustomers;ONcustomers.客户号=Orders.客户号;ONOrderitems.订单号=Orders.订单号;ONGoods.商品号=Orderitems.商品号;WHERE签订日期>=ctod(thisform.Text1.Text);ORDERBY签订日期,orders.订单号,商品名;INTOTABLEtablethree.dbf⑥保存表单并运行,在文本框中输入01/10/2007,并单击"查询"命令按钮。88一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)1.新建一个不包含任何控件的空表单myform.scx(表单名和表单文件名均为myform)。2.打开表单文件formtwo.scx,将表单的标题设为"计算机等级考试"。3.打开表单文件formthree.scx,使用布局工具栏操作使表单上的4个命令按钮按顶边水平对齐。4.打开表单文件formfour.scx,设置有关属性使表单初始化时自动在VisualFoxPro主窗口内居中显示。解题思路:1、单击工具栏上的"新建"按钮,再单击"表单",单击"新建文件",将表单的Name属性修改为myform,单击"保存"按钮,将表单保存为myform.scx。2、打开表单formtwo.scx,将表单的Caption属性修改为"计算机等级考试"。3、打开表单formthree.scx,选择"显示"菜单下的"布局工具栏"子菜单,将布局工具栏显示出来。选中表单上的4个命令按钮,单击布局工具栏上的"顶边对齐"按钮。4、打开表单formfour.scx,将表单的AutoCenter属性值设置为".T.-真"。二、简单应用(2小题,每题20分,计40分)1.使用查询设计器设计完成:查询"吴"姓读者(客户名第一个字为"吴")订购图书情况,查询结果包括客户名、订单号、图书名、单价、数量和签订日期字段的值,要求按客户名升序排序,并运行该查询将查询结果存储在表文件appone,查询文件也保存为appone。n2.使用SQL语句查询每个读者订购图书的数量和金额(数量*单价),查询结果包括客户名、订购总册数和金额,查询按金额降序排序,查询结果存储在apptwo.dbf表文件,最后将SQL语句保存在apptwo.prg命令文件。解题思路:第1题:建立查询可以使用"文件"菜单完成,选择文件--新建--查询--新建文件,将order、orderitem和goods表添加到查询中,并设置三表间的联系,从字段选项卡中依次选择"Order.客户名"、"Order.订单号"、"Goods.图书名"、"Goods.单价"、"Orderitem.数量"、"Order.签订日期";切换到"筛选"选项卡,在"字段名"中选择"Order.客户名","条件"选择"=","实例"中输入:吴;切换到"排序依据"选项卡并在其中选择字段"Order.客户名",排序选项为"升序";单击"查询"菜单下的"查询去向",选择"表",在"表名"右边的对话框中输入表名appone,最后保存并运行该查询。第2题:本题的考查点是SQL语句的使用。其命令如下:SELECTOrder.客户名,sum(orderitem.数量)as订购总册数,;sum(orderitem.数量*Goods.单价)as金额;FROMgoodsINNERJOINorderitemINNERJOINorder;ONOrderitem.订单号=Order.订单号;ONGoods.图书号=Orderitem.图书号;GROUPBYOrder.客户名;ORDERBY金额DESC;INTOTABLEapptwo.dbf运行该SQL语句,然后将此语句保存在apptwo.prg文件中。三、综合应用(1小题,计30分)在考生文件夹下完成如下综合应用:1.建立数据库"订单管理";2.将表order、goods和orderitem添加到"订单管理"数据库;3.在"订单管理"数据库中创建视图orderview,该视图包含信息:客户名、订单号、图书名、数量、单价和金额(单价*数量);4.建立文件名和表单名均为orderform的表单,在表单中添加表格控件grid1(将RecordSourceType属性设置为"表")和命令按钮"退出"(command1);5.在表单的load事件中使用SQL语句从视图orderview中按客户名升序、金额降序查询数量为1的客户名、图书名和金额信息,并将结果存储到表文件result.dbf;6.在表单运行时使得在控件grid1中能够显示表result.dbf中的内容(在相应的事件中将grid1的recordsource属性指定为result.dbf);7.单击"退出"命令按钮时释放并关闭表单。完成以上所有功能后运行表单orderform。解题思路:①创建数据库可以使用"文件"菜单完成,选择文件--新建--数据库--新建文件,在数据库设计器中依次添加order、goods和orderitem表。②通过createVIEW命令打开视图设计器,在"添加表或视图"对话框中依次添加order、orderitem和goods表,并设置三表间的联系;在"字段"选项卡中选择order.客户名、order.订单号、goods.图书名、orderitem.数量、goods.单价5个字段,再在"函数和表达式"下输入:goods.单价*orderitem.数量AS金额。单击"添加"按钮。③在命令窗口输入命令:CREATEFORMorderform,打开表单设计器窗口,将表单的Name属性修改为orderform。④在表单上添加表格、命令按钮,并进行适当的布置和大小调整。将表格的RecordSourceType属性设置为"0-表",命令按钮的Caption属性设置为"退出"。⑤在表单的load事件代码中输入:select客户名,图书名,金额fromorderviewwhere数量=1;orderby客户名,金额descintotableresult.dbf⑥在表格的activatecell事件代码中输入:thisform.Grid1.recordsource="result.dbf"⑦设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑧保存表单并运行。n89一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)在考生文件夹下完成下列操作:1.新建一个名为"学校"的数据库文件,将自由表"教师表"、"职称表"和"学院表"添加到该数据库中。2.在"学校"数据库文件中,为"职称表"建立主索引,索引表达式为"职称级别",索引名为indexone。3.使用报表向导为"职称表"建立一个报表myreport,选定"职称表"的全部字段,按"职称级别"字段降序排序,其他选项选择默认值。4.修改test.prg中的语句,该语句的功能是将"职称表"中所有职称名为"教授"的记录的"基本工资"存储于一个新表prof.dbf中,新表中包含"职称级别"和"基本工资"两个字段,并按"基本工资"升序排列。最后运行程序文件test.prg。解题思路:1、建立数据库的常用方法有三种:在项目管理器中建立数据库;通过"新建"对话框建立数据库;使用命令交互建立数据库,命令为:CREATEDATABASE[DatabaseName|?]2、将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键,在弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库中的自由表。3、打开职称表的表设计器,打开"索引"选项卡,在索引名处输入:indexone,类型选择"主索引",表达式为:职称级别。4、启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择"报表",单击"向导"按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。5、打开test.prg程序,将其中的SQL语句修改为:select职称级别,基本工资from职称表where职称名="教授"intodbfprof.dbforderby基本工资最后保存并运行该程序。二、简单应用(2小题,每题20分,计40分)在考生文件夹下完成下列操作:1.请修改并执行程序temp.prg,该程序的功能是:根据"教师表"和"职称表"计算每位教师的"应发工资",每位教师的"应发工资"等于:与"职称级别"相符的"基本工资"+"课时"×80×职称系数,教授的职称系数为1.4,副教授的职称系数为1.3,讲师的职称系数为1.2,助教的职称系数为1.0。计算结果存储于自由表salary.dbf中,salary.dbf中的字段包括姓名、系号和应发工资,并按系号降序排列,系号相同时按应发工资升序排列。注意,只能修改标有错误的语句行,不能修改其他语句行。2.创建一个新类MyCheckBox,该类扩展VisualFoxpro的CheckBox基类,新类保存在考生文件夹下的myclasslib类库中。在新类中将Value属性设置为1。新建一个表单MyForm,然后在表单中添加一个基于新类MyCheckBox的复选框,如图所示。解题思路:第1题:本题是一个程序修改题。修改后的程序为:createtable职称系数表(职称名c(6),职称系数f(10,2))&&有错误insertinto职称系数表value("教授",1.4)insertinto职称系数表value("副教授",1.3)&&有错误insertinto职称系数表value("讲师",1.2)insertinto职称系数表value("助教",1.0)SELECT姓名,系号,课时*80*职称系数+基本工资as应发工资;FROM职称表,职称系数表,教师表;&&有错误WHERE职称表.职称级别=教师表.职称级别;AND职称表.职称名=职称系数表.职称名;&&有错误intodbfsalary.dbf;orderby系号desc,应发工资n最后保存并运行该程序。第2题:建立类可以使用"文件"菜单完成,选择文件--新建--类--新建文件,在弹出的"新建类"对话框中:在"类名"右边的文本框中输入:MyCheckBox,在"派生于"右边的列表框中选择CheckBox,在"存储于"右边的浏览中选择考生文件夹,再输入文件名myclasslib,单击"保存"按钮,然后单击"确定"按钮,打开"类设计器"窗口,进入类设计器环境,在属性窗口中,将复选框的Value属性设置为1。选择文件--新建--表单--新建文件,弹出"表单设计器"窗口。选中"工具"菜单下的"选项"命令,选择"控件"选项卡,再选择"可视类库"单选按钮,然后单击"添加"按钮。在打开的对话框中,选择考生目录下的类库文件myclasslib.vcx,单击"打开"按钮,将类库文件myclasslib.vcx添加到可视类库中,然后单击"确定"按钮。再单击"表单控件"工具栏上的"查看类"按钮,然后选择myclasslib,在表单中添加一个MyCheckBox的控件,保存表单。三、综合应用(1小题,计30分)在考生文件夹下完成下列操作:1.建立一个文件名和表单名均为formtest的表单,表单中包括一个标签(Label1)、一个列表框(List1)、一个表格(Grid1)。2.在表单的数据环境中添加"学院表"和"教师表"。3.通过属性窗口将标签的标题设为"系名"。4.列表框用于显示系名,通过属性窗口将列表框(List1)的RowSource和RowSourceType属性指定为"学院表.系名"和6。5.表格用于显示所有教师的相关信息,通过属性窗口将表格(Grid1)的RecordSource和RecordSourceType属性指定为"select职工号,姓名,课时from教师表intocursortmp"和4。6.为列表框(List1)的DblClick事件编写程序。程序的功能是:表单运行时,用户双击列表框中的选项时,将所选系教师的"职工号"、"姓名"和"课时"三个字段的信息存入自由表two.dbf中,表中的记录按"职工号"降序排列。7.运行表单,在列表框中双击"信息管理"。解题思路:①在命令窗口输入命令:CREATEFORMformtest,打开表单设计器窗口。为表单添加数据库环境,在"显示"菜单下打开"数据环境"或在表单上点击右键打开"数据环境"。②在表单上添加标签、列表框、表格,并进行适当的布置和大小调整。③根据题面要求设置标签、列表框、表格以及表单的属性值。④设置"列表框"的DblClick事件代码:st="SELECT职工号,姓名,课时FROM学院表,教师表WHERE学院表.系号=教师表.系号AND;学院表.系名=thisform.List1.ValueINTOTABLEtwo.dbfORDERBY教师表.职工号DESC"thisform.Grid1.RecordSource=st⑤保存表单并运行,在列表框中双击"信息管理"。90一、基本操作题(共四小题,第1和2题是7分、第3和4是8分)1.在考生文件夹下"人事管理"数据库中,为"职工"表中的"性别"字段设置有效性规则,只能取"男"或"女";默认值是"男"。2.建立快捷菜单cd,选项有打开、关闭和退出。生成同名的菜单程序文件。3.为"职工"表加入一个普通索引,索引名和索引表达式均为"部门编号",升序。4.为"职工"表和"部门"表建立联系,定义参照完整性规则:删除规则为"级联",更新规则和插入规则为"限制"。本题的主要考核点:字段有效性规则的建立、字段默认值的设置、快捷菜单的建立、普通索引的建立、建立两个表之间的联系、设置参照完整性约束。1、利用"文件"菜单下的"打开"命令打开数据库"人事管理"。再打开"职工"表的表设计器,选择"性别"字段,在其字段有效性规则栏中输入:性别$"男女",在默认值栏中输入:"男"。2、在"文件"菜单中选择"新建",在"新建"对话框中选择"菜单",单击"新建文件"按钮,选择"快捷菜单",在菜单设计器中输入三个菜单项"打开"、"关闭"和"退出",单击"菜单"菜单中的"生成",按提示保存为cd,并生成菜单源程序文件(MPR)。n3、打开"职工"表的表设计器,打开"索引"选项卡,在索引名处输入:部门编号,类型选择"普通索引",表达式为:部门编号,排序为"升序"。4、在数据库设计器中,选中"部门"表中的索引"部门编号"并拖动到"职工"表的"部门编号"的索引上并松开,这样两个表之间就建立起了永久联系。建立好永久联系之后,在两处表的"部门编号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"限制"规则,在"删除规则"中选择"级联",在"插入规则"中选择"限制",单击"确定"保存所编辑的参照完整性。二、简单应用(2小题,每题20分,计40分)1.编写程序文件prgone.prg,其功能是从"人事管理"数据库的相关表中查询销售部从1985年到1989年这5年出生的所有职工的信息,并存到表cyqk.dbf中。查询结果包含编号、姓名、出生日期和部门名称(部门表中的名称)4个字段;按职工的出生日期和编号升序排序。最后运行该程序。2.扩展基类ListBox,创建一个名为MyListBox的新类。新类保存在名为Myclasslib的类库中,该类库文件存放在考生文件夹下。设置新类的Height属性的默认值为120,Width属性的默认值为80。解题思路:第1题:在VisualFoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"程序",点击"新建文件"按钮,在弹出的代码编辑器窗口中输入以下代码:SELECT编号,姓名,出生日期,名称AS部门名称FROM部门,职工;WHERE部门.部门编号=职工.部门编号AND部门.名称="销售部";ANDYEAR(职工.出生日期)>=1985ANDYEAR(职工.出生日期)<=1989;ORDERBY出生日期,编号INTOTABLEcyqk.dbf最后保存并运行该程序。第2题:建立类可以使用"文件"菜单完成,选择文件--新建--类--新建文件,在弹出的"新建类"对话框中:在"类名"右边的文本框中输入:MyListBox,在"派生于"右边的列表框中选择ListBox,在"存储于"右边的浏览中选择考生文件夹,再输入文件名Myclasslib,单击"保存"按钮,然后单击"确定"按钮,打开"类设计器"窗口,进入类设计器环境,在属性窗口中,将新类的Height属性设置为120,Width属性设置为80。三、综合应用(1小题,计30分)为了对"人事管理"数据库中的数据进行查询,请设计一个用于查询部门职工的表单。该表单的名称为formone,文件名为pform.scx,标题为"人员查询",其界面如下图所示:表单左侧有一个名为Labelone的标签,显示内容为"输入部门";一个名为Textone的文本框,用于输入部门名称;两个名为Commanda和Commandb的命令按钮,分别显示"查询"和"退出"。表单右侧是一个名为Gridone的表格。单击"查询"按钮,查询指定部门所有职工的信息,包括职工的姓名、性别、出生日期和编号,按编号升序排序。查询结果不仅显示在表单右侧的表格中,也保存在表文件tableone.dbf中。单击"退出"按钮,关闭并释放表单。最后运行表单,在文本框中输入部门名称"开发部",单击"查询"按钮,显示并保存相应的查询结果。解题思路:①在命令窗口输入命令:CREATEFORMpform,打开表单设计器窗口。②在表单上添加标签、文本框、命令按钮、表格,并进行适当的布置和大小调整。③根据题面要求设置标签、文本框、命令按钮、表格以及表单的属性值。④将表格Gridone的RecordSourceType属性值设置为"4-SQL说明"。⑤设置"查询"按钮的Click事件代码:st="SELECT姓名,性别,出生日期,编号FROM职工,部门WHERE职工.部门编号=部门.部门编号AND;部门.名称=thisform.Textone.TextINTOTABLEtableone.dbfORDERBY职工.编号"thisform.Gridone.RecordSource=st⑥设置"退出"按钮的Click事件代码:THISFORM.RELEASE⑦保存表单并运行,在文本框中输入"开发部",单击"查询"命令按钮进行查询。最后,单击"退出"命令按钮。n
查看更多

相关文章

您可能关注的文档