2022年二级Visual+Foxpro数据库程序设计模拟 17.pdf
1 模拟 二级 Visual Foxpro数据库程序设计模拟321 选择题第 1 题:Visual FoxPro是指一种关系型数据库管理系统,所谓关系是指A.各条记录中的数据彼此有一定的关系B.一个数据库文件与另一个数据库文件之间有一定的关系C.数据模型符合满足一定条件的二维表格式D.数据库中各个字段之间彼此有一定的关系参考答案:C 关系指的是表之间的一种链接,它不仅能从当前选定表中访问数据,而且可以访问其他表中的数据。在关系型数据库中,一张二维表就是一个关系,每一个关系都是一个二维表。第 2 题:正确的 SQL插入命令的语法格式是A.INSERT IN VALUES B.INSERT TO VALUES C.INSERT INTO VALUES D.INSERT VALUES 参考答案:C 插入数据的操作有两种格式,第一种是标准格式,第二种格式是特殊格式。第一种格式:INSERT INTO (字段名 1,字段名 2,)VALUES(字段值1,字段值 2,)。第二种格式:INSERT INTO 表名 FROM ARRAY 数组名|FROM MEMVAR。第 3 题:在数据库表设计器的 字段 选项卡中,字段有效性的设置项中不包括()。A.规则B.信息C.默认值D.标题参考答案:D 在数据库设计器的 字段 选项卡中,有一组定义字段有效性规则的项目,它们是规则、信息、默认值三项。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 17 页 -2 第 4 题:若有表:职工(职工号,姓名,性别)和工资(职工号,基本工资,津贴,奖金,扣除),查询职工实发工资的正确命令是A.SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资 FROM 工资B.SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资FROM 工资;WHERE 职工.职工号=工资.职工号C.SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资 FROM 工资,职工;WHERE 职工.职工号=工资.职工号D.SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资FROM 工资JOIN 职工;WHERE 职工.职工号=工资.职工号参考答案:C 本题有 职工和工资两个表,需要用到连接查询。连接是关系的基本操作之一,是一种基于多个关系的查询。在连接查询中,当需要对多个表连接时,可以用SELECT 指定查询显示的字段;在WHERE 子句中指定连接条件(连接的字段名前要加上表名做为前缀,表名和字段名之间用.隔开);在 FROM 子句中指定要连接的表。本题选 C。第 5 题:在 Visual FoxPro中,如果希望内存变量只能在本模块(过程)中使用,不能在上层或下层模块中使用。说明该种内存变量的命令是()。A.PRIVATE B.LOCAL C.PUBLIC D.不用说明,在程序中直接使用参考答案:B 内存变量的作用域中,全局变量(PUBLIC 声明)在任何模块中使用,局部变量(LOCAL)只能在建立它的模块中使用,不能在上层或下层模块中使用,私有变量不需要通过 PUBLIC和 LOCAL 命令事先声明,而在程序中直接使用。第 6 题:在数据库设计中,将ER图转换成关系数据模型的过程属于()。A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.物理设计阶段参考答案:C ER 图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 17 页 -3 第 7 题:在 SQL SELECT 语句的 ORDER BY 短语中如果指定了多个字段,则A.无法进行排序B.只按第一个字段排序C.按从左至右优先依次排序D.按字段排序优先级依次排序参考答案:C order by 短语用来对查询的结果进行排序,可以指定多个字段排序,还可以定义每个字段的排序方法。order by 的排序是从左到右的。所以若SQL语句中的order by短语中指定了多个字段,则依次按自左至右的字段顺序排序。第 8 题:在下面的 Visual FoxPro表达式中,运算结果为逻辑真的是()。A.EMPTY(.NULL.)B.LIKE(xy?,xyz)C.AT(xy,abcxyz)D.ISNULL(SPACE(0)参考答案:B EMPTY()根据指定表达式的运算结果是否为空值,返回逻辑真(.T.)或逻 辑 假(.F.),这 里 所指 的 空 值 与 NULL 值 是 两个 不 同 的 概 念,函 数EMPTY(.NULL.)的返回值为逻辑假,所以A选项为逻辑假;LIKE(,)比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真,否则返回逻辑假,其中字符串表达式1 中可包含通配符*和?,*表示若干个任意字符,?表示任意一个字符,所以 LIKE(xy?,xyz)为逻辑真;AT(,)的函数值为数值型,C选项不正确;ISNULL()判断一个表达式的运算结果是否为NULL值,若是 NULL值则返回逻辑真,否则返回逻辑假,SPACE()返回由指定数目的空格组成的字符串,所以SPACE(0)为空字符串,ISNULL(SPACE(0)为逻辑假。第 9 题:在 Visual FoxPro中以下叙述正确的是()。A.关系也被称作表单B.数据库表文件存储用户数据C.表文件的扩展名是.DBC D.多个表存储在一个物理文件中参考答案:B 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 17 页 -4 表是关系数据库的一个关系,而表单是 Visual FoxPro 提供的用于建立应用程序界面的最主要的工具之一,表单内可以包含命令按钮、文本框、列表框等各种界面元素,产生标准的窗口或对话框,所以表和表单是不同的概念,A选项中关系也被称作表单的说法不正确,应该是被称作表;表文件是数据库中存储数据的载体,所以 B选项的说法正确;表文件的扩展名是DBF,而 DBC 是数据库库文件的扩展名,C选项的说法不正确;在Visual FoxPro 每个表都对应一个DBF文件,即都对应一个物理文件,所以一个数据库中的所有表文件存储在一个物理文件中的说法不正确。第 10 题:关于视图和查询,以下叙述正确的是()。A.视图和查询都只能在数据库中建立B.视图和查询都不能在数据库中建立C.视图只能在数据库中建立D.查询只能在数据库中建立参考答案:C 视图是数据库中的一个特有功能,视图只能创建在数据库里。而查询从指定的表或视图中提取满足条件的记录,可以不在数据库中创建。因此视图只能在数据库中建立,而查询可以不在数据库中建立。第 11 题:公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是A.1:1 联系B.m:1 联系C.1:m联系D.m:n 联系参考答案:C 两个实体集间的联系实际上是实体集间的函数关系,主要有一对一联系(1:1)、一对多联系(1:m)、多对一联系(m:1)、多对多联系(m:n)。对于每一个实体部门,都有多名职员,则其对应的联系为一对多联系(1:m),答案选 C。第 12 题:查询单位名称中含 北京 字样的所有读者的借书证号和姓名,正确的SQL语句是()。A.SELECT 借书证号,姓名 FROM 读者 WHERE 单位 北京%B.SELECT 借书证号,姓名 FROM 读者 WHERE 单位 北京*C.SELECT 借书证号,姓名 FROM 读者 WHERE 单位 LIKE 北京*D.SELECT 借书证号,姓名 FROM 读者 WHERE 单位 LIKE%北京%名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 17 页 -5 参考答案:D 简单查询是基于一个表进行的查询,是由SELECT 和 FROM 短语构成的无条件查询,或由 SELECT、FROM 和 WHERE 短语构成的条件查询。LIKE 为字符串匹配运算符,可与通配符%和_ 一起使用。%表示与任意多个字符匹配;_ 表示与任意一个字符匹配。本题D选项格式正确。第 13 题:在下面的 Visual FoxPro表达式中,运算结果为逻辑真的是A.EMPTY(.NULL.)B.LIKE(xy?,xyz)C.AT(xy,abcxyz)D.ISNULL(SPACE(0)参考答案:B EMPTY()是空值测试函数,根据指定表达式的运算结果是否为 空值,返回逻辑真(.T.)或逻辑假(.F.)。LIKE 为字符串匹配运算符,可与通配符%和_ 一起使用。%表示与任意多个字符匹配;_ 表示与任意一个字符匹配。AT()为求子串位置函数,AT()的函数值为数值型。如果 是的子串,则返回 的首字符在 中的位置;若不是子串,则返回0。ISNULL()为空值测试函数,用于判断一个表达式的运算结果是否为NULL值,若是 NULL值则返回逻辑真(.T.),否则返回逻辑假(.F.)。本题 A、C、D选项的返回值均为F,只有 B 选项的返回值为T。第 14 题:设 d=time(),命令?VARTYPE(d)的输出值是A.L B.C C.N D.D 参考答案:B VARTYPE(d)的输出值为 C。第 15 题:在 Visual FoxPro中以下叙述正确的是()。A.利用视图可以修改数据B.利用查询可以修改数据名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 17 页 -6 C.查询和视图具有相同的作用D.视图可以定义输出去向参考答案:A 视图是操作表的一种手段,通过视图可以查询表,也可以更新表,所以利用视图可以修改数据,A选项叙述正确;而查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询结果,所以查询不能修改数据,而查询可以定义输出去向,B、D选项叙述不正确;很明显,查询和视图具有不同的作用,C选项叙述不正确。第 16 题:表达式 LEN(TRIM(SPACE(2)+abc-SPACE(3)的计算结果是:A.3 B.5 C.6 D.8 参考答案:B len 是测量字符长度的函数,trim 是去掉尾部空格函数,space是输入空格函数,lspace(2)+abc-space(3)的值是 ABC(表示空格),然后 trim再把尾部空格去掉,值是ABC就相当于 len(ABC),即计算结果为 5。第 17 题:设置表单标题的属性是()。A.Title B.Text C.Biaoti D.Caption 参考答案:D 表单的 Caption 属性指明显示于表单标题栏上的文本。第 18 题:设有学生表 student(学号,姓名,性别,出生日期,院系)、课程表 course(课程号,课程名,学时)和选课表 score(学号,课程号,成绩),删除学号为20091001 且课程号为 C1的选课记录,正确命令是A.DELETE FROM score WHERE 课程号=C1 AND 学号=20091001B.DELETE FROM score WHERE 课程号=C1 OR 学号=20091001C.DELETE FORM score WHERE 课程号=C1 AND 学号=20091001D.DELETE score WHERE 课程号=C1 AND 学号=20091001名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 17 页 -7 参考答案:A OR表示 或,首先排除B 选项。删除数据的命令格式为:DELETE FROM 表名WHERE 条件,C、D选项命令格式错误,因此选A。第 19 题:以下关于视图描述错误的是()。A.只有在数据库中可以建立视图B.视图定义保存在视图文件中C.从用户查询的角度视图和表一样D.视图物理上不包括数据参考答案:B 视图是一个虚拟表。所谓虚拟,是因为视图的数据是从已有的数据库表或其他视图中抽象得来的,这些数据在数据库中并不实际存储,仅在其数据字典中存储视图的定义。但视图一经定义,就成为数据库的组成部分,可以象数据库表一样接受用户的查询。第 20 题:下列与修改表结构相关的命令是()。A.INSERT B.ALTER C.UPDATE D.CREATE 参考答案:B 修改表结构的命令是ALTER TABLE,而 UPDATE 命令用于更新数据、INSERT命令用于插入数据、CREATE TABLE命令用于新建表。因此本题选B。第 21 题:下面属于黑盒测试方法的是A.语句覆盖B.逻辑覆盖C.边界值分析D.路径覆盖参考答案:C 黑盒测试不关心程序内部的逻辑,只是根据程序的功能说明来设计测试用例。在使用黑盒测试法时,手头只需要有程序功能说明就可以了。黑盒测试法分等价类划分法、边界值分析法和错误推测法,答案为 C。而 A、B、D均为白盒测试方法。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 17 页 -8 第 22 题:某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是()。A.10 B.8 C.6 D.4 参考答案:C 根据二叉树的基本性质3:在任意一棵二叉树中,度为0 的叶子节点总是比度为2 的节点多一个,所以本题中是516 个。第 23 题:在 Visual FoxPro中以下叙述正确的是()。A.利用视图可以修改数据B.利用查询可以修改数据C.查询和视图具有相同的作用D.视图可以定义输出去向参考答案:A 视图是操作表的一种手段,通过视图可以查询表,也可以更新表,所以利用视图可以修改数据,A选项叙述正确;而查询是从指定的表或视图中提取满足条件的记录,然后按照想得到的输出类型定向输出查询结果,所以查询不能修改数据,而查询可以定义输出去向,B、D选项叙述不正确;很明显,查询和视图具有不同的作用,C选项叙述不正确。第 24 题:在 SQL中,数据操纵语句不包括:A.APPEND B.DELETE C.UPDATE D.INSERT 参考答案:A SQL的操作功能是指对数据库中数据的操作功能,主要包括插入(INSERT)、更新(UPDATE)和删除(DELETE)。APPEND 命令用于增加表中的记录,不属于数据操纵语句。第 25 题:下列选项中,哪个不是一般算法应该有的特征()。A.无穷性B.可行性名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 17 页 -9 C.确定性D.有穷性参考答案:A 作为一个算法,一般应具有以下几个基本特征:可行性、确定性、有穷性、拥有足够的情报。本题答案为A。第 26 题:假设有一表单,其中包含一个选项按钮组,则当表单运行时,最后引发的事件是A.Load B.表单的 Init C.选项按钮的 Init D.选项按钮组的 Init 参考答案:B 一般来说,用户触发事件是没有顺序性的,但一个对象上所产生的系统触发事件还是有先后次序的。表单对象从创建到被释放的整个过程可以分为5 个阶段:装载阶段(Load 事件);对象生成阶段(Init事件);交互操作阶段(如单击事件);对象释放阶段(Destroy 事件);卸载阶段(Unload 事件)。有关表单和控件的Load、Init、Destroy、Unload 事件的先后顺序可总结为:表单的 Load 事件;表单中控件的 Init事件;表单的 Init事件;表单的 Destroy 事件;表单中控件的 Destroy 事件;表单的 Unload 事件。因此本题最后引发的事件为表单的Init。选择题第 27 题:下列关于栈的叙述中正确的是()。A.在栈中只能插入数据,不能删除数据B.在栈中只能删除数据,不能插入数据C.栈是先进后出(FILO)的线性表D.栈是先进先出(FIFO)的线性表参考答案:C 栈是限定在一端进行插入与删除的线性表。栈是按照 先进后出 的或后进先出的原则组织数据的,因此,栈也被称为 先进后出 表或 后进先出 表。本题答案是C。第 28 题:数据字典(DD)所定义的对象都包含于A.数据流图(DFD图)名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 17 页 -10 B.程序流程图C.软件结构图D.方框图参考答案:A 在数据流图中,对所有元素都进行了命名,所有名字的定义集中起来就构成了数据字典。因此选 A,而 B,C,D都不符合。第 29 题:有以下两个表:读者(借书证号 C,姓名 C,单位 C,性别 L,职称 C,联系电话 C)借阅(借书证号 C,总编号 C,借书日期 D)说明:性别值为逻辑真表示男。查询 2004 年 11 月 12 日借阅过图书的读者信息,正确的SQL语句是:A.SELECT*FROM 读者 WHERE 借书日期=2004-11-12 B.SELECT*FROM 读者,借阅;WHERE 借书日期=2004-11-12 AND 读者.借书证号=借阅.借书证号C.SELECT*FROM 读者 JOIN 借阅;WHERE 读者.借书证号=借阅.借书证号AND 借书日期=2004-11-12 D.SELECT*FROM 读者 INNER JOIN 借阅;WHERE 读者.借书证号=借阅.借书证号 AND 借书日期=2004-11-12 参考答案:B 连接是关系的基本操作之一,连接查询是一种基于多个关系的查询。在连接查询中,当需要对多个表连接时,可以用SELECT 指定查询显示的字段;在WHERE子句中指定连接条件(连接的字段名前要加上表名做为前缀,表名和字段名之间用.隔开);在 FROM 子句中指定要连接的表。查询2004 年 11 月 12 日借阅过图书的读者信息,查询条件应为 WHERE 借书日期=2004-11-12,因此本题选 B。第 30 题:设有关系评分(歌手号,分数,评委号),插入一条记录到 评分 关系,歌手号、分数和评委号的值分别是1001、9.9 和105,正确的 SQL语句是()。A.INSERT VALUES(1001,9.9,105)INTO 评分(歌手号,分数,评委号)B.INSERT TO 评分(歌手号,分数,评委号)VALUES(1001,9.9,105)C.INSERT INTO 评分(歌手号,分数,评委号)VALUES(1001,9.9,105)D.INSERT VALUES(1001,9.9,105)TO 评分(歌手号,分数,评委号)参考答案:C 插入数据的格式为INSERT INTO (字段名1,字段名2,)VALUES(字段值 1,字段值 2,)。当插入的不是完整的记录时,可以通过名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 17 页 -11 字段名 1,字段名 2来指定字段;VALUES(字段值 1,字段值 2,)给出具体的记录值。C选项格式正确。第 31 题:在 Visual FoxPro中,以下关于查询的描述正确的是()。A.不能用自由表建立查询B.只能用自由表建立查询C.不能用数据库表建立查询D.可以用数据库表和自由表建立查询参考答案:D 创建查询必须基于确定的数据源。从类型上讲,数据源可以是自由表、数据库表或视图。从数量上讲,源表可以是单张表或多张表。多张表一般是指多张相关的表。第 32 题:下列表单的哪个属性设置为真时,表单运行时将自动居中()。A.AutoCenter B.AlwaysOnTop C.ShowCenter D.FormCenter 参考答案:A AutoCenter 属性用于控制表单初始化时是否让表单自动地在Visual FoxPro 主窗口中居中,值为真表示表单运行时自动居中。AlwaysOnTop属性指定表单是否总是位于其他打开窗口之上。所以A为正确选项。第 33 题:运算结果不是 2010 的表达式是()。A.int(2010.9)B.round(2010.1,0)C.ceiling(2010.1)D.floor(2010.9)参考答案:C INT()返回指定数值表达式的整数部分。CEILING()返回大于或等于指定数值表达式的最小整数。FLOOR()返回小于或等于指定数值表达式的最大整数。ROUND(,)返回指定表达式在指定位置四舍五入之后的结果,若()大于等于 0,那么它表示的是要保留的小数位数;若()小于 0,那么它表示的是整数部分的舍入位数。名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 17 页 -12 选择题第 34 题:下列叙述中正确的是()。A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定参考答案:D 循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以 B 与 C错误。第 35 题:在 SQL语句中,与表达式 序号 NOT IN(r1,r2)功能相同的表达式是A.序号=r1 AND 序号=r2 B.序号!=r1 OR 序号#r2 C.序号r1 OR 序号!=r2 D.序号!=r1 AND 序号!=r2 参考答案:D 逻辑运算符有 3 个:.NOT.或!(逻辑非)、.AND.(逻辑与)及.OR.(逻辑或),运算符 !=表示 不等于,因此与本题表达式 序号 NOT IN(r1,r2)等价的只有 D选项序号!=r1 AND 序号!=r2。第 36 题:创建一个视图,使用的 SQL命令是A.CREATE B.CREATE DATEBASE C.CREATE VIEW D.CREATE TABLE 参考答案:C 建立视图的方法有多种,其中使用SQL语句新建视图的命令为 CREATE VIEW。第 37 题:假设有 student 表,正确添加字段 平均分数 的命令是()。A.ALTER TABLE student ADD 平均分数 F(6,2)B.ALTER DBF student ADD 平均分数 F 6,2 C.CHANGE TABLE student ADD 平均分数 F(6,2)名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 17 页 -13 D.CHANGE TABLE student INSERT 平均分数 6,2 参考答案:A 向表中添加新的字段,其命令格式为:ALTER TABLE ADDCOLUMN,)NULL|NOT NULL CHECK ERROR DEFAULT ADD PRIMARY KEY TAG ADD UNIQUE TAG A 选项格式正确。第 38 题:结构化程序所要求的基本结构不包括()。A.顺序结构B.GOTO 跳转C.选择(分支)结构D.重复(循环)结构参考答案:B 1966年 Boehm 和 Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。第 39 题:从职工表(姓名、性别、出生日期)查询所有目前年龄在35 岁以上(不含 35 岁)的职工信息,正确的命令是A.SELECT 姓名,性别,YEAR(DATE()-YEAR(出生日期)AS 年龄 FROM 职工WHERE 年龄35 B.SELECT 姓名,性别,YEAR(DATE()-YEAR(出生日期)AS 年龄 FROM 职工;WHERE YEAR(出生日期)35 C.SELECT 姓名,性别,YEAR(DATE()-YEAR(出生日期)AS 年龄 FROM 职工;WHERE YEAR(DATE()-YEAR(出生日期)35 D.SELECT 姓名,性别,年龄=YEAR(DATE()-YEAR(出生日期)FROM 职工;WHERE YEAR(DATE()-YEAR(出生日期)35 参考答案:C 在 SQL SELECT 子句中利用 AS关键字,可以重新定义字段名,但并不存储在表内,称为虚字段。在设置查询条件时,不能根据新定义的字段名对原数据表设置查询条件。第 40 题:在下面的 Visual FoxPro表达式中,运算结果为逻辑真的是()。A.EMPTY(.NULL.)B.LIKE(xy?,xyz)名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 17 页 -14 C.AT(xy,abcxyz)D.ISNULL(SPACE(0)参考答案:B EMPTY()根据指定表达式的运算结果是否为空值,返回逻辑真(.T.)或逻 辑 假(.F.),这 里 所指 的 空 值 与 NULL 值 是 两个 不 同 的 概 念,函 数EMPTY(.NULL.)的返回值为逻辑假,所以A选项为逻辑假;LIKE(,)比较两个字符串对应位置上的字符,若所有对应字符都相匹配,函数返回逻辑真,否则返回逻辑假,其中字符串表达式1 中可包含通配符*和?,*表示若干个任意字符,?表示任意一个字符,所以 LIKE(xy?,xyz)为逻辑真;AT(,)的函数值为数值型,C选项不正确;ISNULL()判断一个表达式的运算结果是否为NULL值,若是 NULL值则返回逻辑真,否则返回逻辑假,SPACE()返回由指定数目的空格组成的字符串,所以SPACE(0)为空字符串,ISNULL(SPACE(0)为逻辑假。基本操作题第 41 题:(1)创建一个名为“学生管理”的项目文件。(2)将考生文件夹下的数据库“班级学生”添加到新建的项目文件中。(3)打开数据库“班级学生”,将考生文件夹下的自由表“教师”添加到数据库“班级学生”中;为“教师”表创建一个索引名和索引表达式均为“教师编号”的主索引(升序)。(4)通过“班级号”字段建立“班级”表和“学生”表间的永久联系。_ 参考答案:【操作步骤】(1)命令窗口执行:CREATE PRoJECT 学生管理,新建一个项目管理器。(2)项目管理器中选中“数据”选项卡内的“数据库”项,单击“添加”按钮,在“打开”中双击“班级学生”数据库文件,将数据库添加到项目管理器中。(3)在项目管理器中单击“数据库”前面的“+”号,依次展开“数据库”“班级学生”“表”。单击“添加”按钮,在“打开”中双击“教师”表文件,将自由表添加到数据库中。选中“教师”表单击“修改”按钮,弹出“教师”表设计器,在“字段”选项卡中选中“教师编号”,在“索引”列选择“升序”,在“索引”选项卡中将“类型”设置为“主索引”,单击“确定”按钮保存表结构修改。(4)参照“教师”表的操作,为“班级”表建立“班级号”字段的主索引;为“学生”表建立“班级号”字段的普通索引。在项目管理器中选中数据库“班级学生”,单击“修改”按钮,打开数据库设计器,拖动“班级”表“索引”下方的主索引“班级号”到“学生”表中“索引”下方的普通索引“班级号”上,为两个表建立联系。名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 17 页 -15 详细解答:第 42 题:(1)使用一对多表单向导新建一个表单sport form。要求:使用“国家”为父表并选择“国家名称”字段作为显示字段,“获奖牌情况”为子表并选择“项目名称”和“名次”字段作为显示字段,使用“国家代码”建立表之间的关系,表单样式选择“阴影式”,按钮类型选择“图片按钮”,按“国家名称”升序排列,表单标题为“奥运会获奖情况”。(2)在 SPORT 数据库中使用视图设计器建立视图sport view,该视图根据“国家”和“获奖牌情况”两个表统计每个国家获得的金牌数(“名次”,为“1”表示获得一块金牌),视图中包括“国家名称”和“金牌数”两个数据项,视图中的记录先按“金牌数”降序排列、再按“国家名称”降序排列。_ 参考答案:【操作步骤】步骤 1:命令窗口执行:OPEN DATABASE SPORT,打开数据库环境。步骤 2:执行【文件】【新建】菜单命令,或单击“常用 工具栏的“新建”按钮,在“新建”对话框中选“表单”,单击“向导”图标按钮,弹出“向导选取”对话框,选“一对多表单向导”项,单击“确定”按钮,启动表单向导。步骤 3:“步骤 1-从父表中选定字段”的“数据库和表”下选“国家”表,将“可用字段”中的“国家名称”字段添加到“选定字段”中,单击“下一步”按钮。步骤 4:“步骤 2-从子表中选定字段”的“数据库和表”下选“获奖牌情况”表,将“可用字段”中的“项目名称”和“名次”字段字段添加到“选定字段”中,单击“下一步”。步骤 5:“步骤 3-建立表之间的关系”界面系统自动建立两个表的联系,单击“下一步”按钮。步骤 6:“步骤 4-选择表单样式”选“样式”中的“阴影式”,“按钮类型”中选“图片按钮”,单击“下一步”。步骤7:“步骤 5-排序次序”中双击“可用的字段或索引标识”中的“国家名称”字段到“选定字段”列表中,单击“下一步”按钮。步骤 8:“步骤 6完成”界面中的“请键入表单标题”下方文本框中输入“奥运会获奖情况”,单击“完成”按钮。步骤 9:在“另存为”对话框的“保存表单为:”框中输入表单文件名sDort form,单击“保存”按钮。(2)【操作步骤】步骤 1:命令窗口执行;MODIFY DATABASE sport,打开数据库设计器。步骤 2:在数据库设计器中右击,选择【新建本地视图】,在“新建本地视图”中单击“新建视图”按钮,在“添加表或视图”对话框中依次双击“国家”和“获奖牌情况”表,将表添加到视图设计器中。步骤 3:双击“国家”表中的“国家名称”字段添加到“选定字段”中;在“函数和表达式”。框中输入:COUNT(*)AS金牌数,单击“添加”按钮添加到“选定字段”列表中。步骤 4:在“筛选”选项卡的“字段名”下拉列表中选择“获奖牌情况名次”字段,在“条件”中选择“=”,在“实例”中输入“1”。步骤 5:在“排序依据”选项卡中双击“选定字段”列表框中的“CONT(*)AS 金牌数”字段添加到“排序条件”列表框中,“排序选项”中“降序”;再双击“选定字段”中的“国家国家名称”字段添加到“排序条件”列表框中,在“排序选项”中选择“降序”单选项。步骤 6:在“分组依据”选项卡中双击“选定字段”列表框中的“国家国家名称”字段,添加到“分组字段”。步名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 17 页 -16 骤 7:单击“常用”工具栏中的“运行 按钮查看结果,以sport view 名保存视图。详细解答:第 43 题:首先利用表设计器在考生文件夹下建立表table3,表结构如下:民族字符型(4)数学平均分数值型(6,2)英语平均分数值型(6,2)然后在考生文件夹下创建一个下拉式菜单mymenu mnx,并生成菜单程序mymenu mpr。运行该菜单程序时会在当前VFP系统菜单的末尾追加一个“考试”子菜单,如图35 所示。菜单命令“计算”和“返回”的功能都通过执行过程完成。菜单命令“计算”的功能是根据:xuesheng表和 chengii表分别统计汉族学生和少数民族学生在“数学”和“英语”两门课程上的平均分,并把统计数据保存在表。table3中。表 table3 的结果有两条记录:第1 条记录是汉族学生的统计数据,“民族”字段填“汉”;第2 条记录是少数民族学生的统计数据,“民族”字段填“其他”。菜单命令“返回”的功能是恢复标准的系统菜单。菜单程序生成后,运行菜单程序并依次执行“计算”和“返回”菜单命令。_ 参考答案:【操作步骤】步骤 1:在命令窗口执行命令:CREATE table3,打开数据表设计器新建表。步骤 2:根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击“确定”按钮,此时系统会弹出一个对话框询问“现在输入数据记录吗?”,本题不需要录入数据,单击“否”按钮。步骤 3:在命令窗口执行命令:CREATE MENu mymenu,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。步骤 4:在菜单设计器“菜单名称”列的文本框中输入“考试”,“结果”下拉框中选择为“子菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第1、2 行文本框中依次输入子菜单名“计算”、“返回”,将两个子菜单的“结果”都设置为“过程”,分别单击两个子菜单行的“创建”命令按钮,打开过程编辑框编写过程代码。步骤 5:两个子菜单的过程代码如下:*计算子菜单的过程代码*CLOSE DATA15A5E ALL SELECT AVG(数学),AvG(英语)FROM XUESHENG;JOIN CHENGJI ON XUEsHENG学号 =CHENGJI 学号;WHERE 民族=“汉”INTO ARRAY TMPl SELECT AVG(数学),AVG(英语)FROM XUESHENG;JOIN CHENGJI ON XUEsHENG 学号=CHENGJI 学号;WHERE 民族“汉”INTO ARRAY TMP2 SELECT 0 USE TABLE3 APPEND 名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 17 页 -17 BLANK REPLACE 民族眦 TH“汉”,数学平均分TH TMPl(1),英语平均分 WITH TMPl(2)AP PEND BLANKREPLACE民族 WITH“其他”,数学平均分WITH TMP2(1),英语平均分 WITH TMP2(2)CLOEE DATA ALL*“返回”子菜单的过程代码*SET SYSMENU NOSAVE SET SYSMENU TO DEFAULT 步骤 6:执行【显示】【常规选项】菜单命令,在“位置”区域选中“追加”单选项,则新建立的子菜单会在当前 Visual FoxPro 系统菜单后显示。步骤 7:执行【菜单】【生成】菜单命令,在弹出的 Visual FoxPro 对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个可执行的菜单文件。步骤 8:在命令窗口执行命令:DO mymenu mpr,运行菜单,并执行“计算”菜单命令。详细解答:名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 17 页 -