1、上机操作题模拟试卷 84及答案与解析 一、基本操作题 1 编写程序并执行,计算 “01”组 (歌手编号的前 2位 )歌手的得分并将结果存入自由表 final dbf中。 final dbf包含 “歌手姓名 “和 “得分 ”两个字段, “得分 ”取各评委所打分数的平均值。 final dbf中的结果按 “得分 ”降序、 “歌手姓名 ”降序排列。请将程序存储在 two prg中,否则不得分。 新建一个文件名和表单名均为 score form的表单,向表单添加一个命令按钮Commandl,标题为 “计算 ”,为该命令按钮的 Click事件增 加命令,调用 two prg程序执行。最后运行该表单,并单
2、击 “计算 ”按钮执行 two程序。 新建一个项目文件 score projiect,将自由表 “歌手表 ”、 “评委表 ”和 “评分表 ”以及表单文件 score form加入该项目,然后将项目文件连编成应用程序文件 score app。 二、简单应用题 2 在考生文件夹下完成下列操作 (在 “成绩管理 ”数据库中完成 ): (1)为 “学生 ”表在 “学号 ”字段上建立升序主索引,索引名为学号。 (2)为 “学生 ”表的 “性别 ”字段定义有效性规则,规则表达式为:性 别 $”男女 ”,出错提示信息是: “性别必须是男或女 ”。 (3)在 “学生 ”表的 “性别 ”和 “年龄 ”字段之间插
3、入一个 “出生日期 ”字段,数据类型为“日期型 ”(修改表结构 )。 (4)用 SQL,的 IYPDATE命令将学生 “王三风 ”的出生日期修改为 1983年 5月 1日,并将该语句粘贴在 sqLtxt文件中 (第一行且只占一行 )。 三、综合应用题 3 (1)用 SQL,语句查询至少有三门的课程成绩在 70分以上 (包括 70分 )的学生姓名,并将结果按升序存入表文件 results dbf,然后将该 SQr,语句粘贴在SQL TXT文件的第二行 (只占一行 )。 (2)modi prg程序的功能是:先为 “学生 ”表增加一个 “平均成绩 ”字段,数据类型为N(6, 2);然后根据 “选课
4、”表统计每个学生的平均成绩,并写入新添加的字段。 该程序有三处错误,请改正,使程序能正确运行 (在指定处修改,不允许增加或删除程序行 )。 上机操作题模拟试卷 84答案与解析 一、基本操作题 1 【正确答案】 本大题主要考查了程序文件的建立与运行; SQL分组计算查询;连编应用程序等。 本题关键是 SQL分组计算查询的设计,设置过程可参照以下步 骤进行编写: 在 SELECT短语中指定要输出的字段,包括通过 AVG()函数计算生成的新字段。 通过 FROM JoINON 等短语指定查询数据源,并建立表间联系,查询源表为 “歌手 ”表和 “评分 ”表,两个表的联接字段为 “歌手编号 ”。 利用
5、GROUP BY短语对表记录分组,分组字段为 “歌手编号 ”。 利用 OR DER BY短语设置两个字段的排序方式。 ASC短语表示升序排序,为系统默认的排序方式,可省略该短语; DESC短语表示降序排序,不可缺省。 最后将查询结果通过 INTO TABLE命令输出到指定的数据表中。 另外,调用程序文件的命令是 DO:连编应用程序可通过单击项目管理器右侧的 “连编 ”命令打开 “连编选项 ”对话框完成。 步骤 1:在命令窗口执行命令: MODIFY COMMAND two,打开程序文件编辑器。 步骤 2:在编辑器中输入如下程序代码并保存 (以下 SQL查询语句是通过查询设计器生成 ): SEL
6、ECT。歌手姓名, AVG(分数 )AS得分 FROM歌手表,评分表; WHERE歌手表歌手编号 =评分表歌手编号 AND LEFT(歌手表歌 手编号, 2)=“01”; GROUP BY歌手表歌手编号; ORDER BY得分 DESc,歌手姓名 DESC INTOTART R fina 步骤 3:在命令窗口执行命令: CREATE FORMscoreform,打开表单设计器新建立表单。 步骤 4:从 “表单控件 ”工具栏中向表单添加一个命令按钮。在 “属性 ”面板中修改表单 (Forml)的 Name属值为: score form,修改命令按钮 (Commandl)的 Caption属性值为
7、:计算。 步骤 5:双击命令按钮 (Commandl)编写 Click事件代码: DO two。单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保存到考生文件夹下。 步骤 6:在命令窗口执行命令: CREATE PROJECTscoreproj ect,新建一个项目管理器。在项目管理器的 “数据 “选项卡中选中 “自由表 ”,然后单击项目管理器右边的 “添加 ”按钮,将考生文件夹下的 “歌手表 ”、 “评委表 ”和 “评分表 ”依次加入到项目中;以同样的方法,在 “文档 ”选项卡中,将 score form表单添加到项目中。 步骤 7:单击项目管理器右侧 _的 “连编 ”命令 打
8、开 “连编选项 ”对话框,在对话框中选中 “连编应用程序 ”,单击 “确定 ”按钮,在弹出的 “另存为 ”对话框的 “应用程序名 ”中输入: score app,单击 “保存 ”按钮保存连编项目文件。 【知识模块】 上机操作题 二、简单应用题 2 【正确答案】 本题考查了表索引的建立;字段有效性规则的建立;表结构修改和 SQL更新语句。 表索引也可以在表设计器中建立,在表设计器的 “字段 ”选项卡中可先建立一个普通索引,然后在 “索引 ”选项卡中修改索引类型。 字段有效性规则是在表设计器中建立的, “默认值 ”、 “规则 ”和 “信息 ”的设置均属于字段有效性规则范围,在输入各有效性规则的值时
9、要注意对应的数据类型,且在表设计器中可在字段任意间位置插入新字段。 利用 SQL uPDATE语句可以更新表中记录,本题只需熟记 SQL更新语句,直接套用即可完成表记录的更新。 【操作步骤】 (1) 在命令窗口执行命令: MOD工 FY DATABASE成缝管理,打开 “成绩管理 ”数据库设计器。 右击数据库设计器中的 “学生 ”表,选择【修改】快捷菜单命令,打 开 “学生 ”表设计器,在 “字段 ”选项卡中选中 “学号 ”,在 “索引 ”列中选择 “升序 ”,然后将 “索引 ”选项卡中 “学号 ”的 “类型 ”更改为 “主索引 ”。 (2)接上小题操作,在 “学生 ”表设计器中选中 “字段
10、”选项卡中的 “性别 ”字段,在“字段有效性 ”的 “规则 ”文本框中输入:性别 $It男女 ”,在 “信息 ”文本框中输入: ”性别必须是男或女 ”。 (3)接上小题操作,在 “学生 ”表设计器中选中 “字段 ”选项卡中的 “年龄 ”字段,然后单击表设计器右边的 “插入 ”按钮,插入一个新字段行,修改 “字段名 ”为:出生日期,修改 “类型 ”为: 日期型。单击 “确定 ”按钮保存表修改。 (4) 在命令窗口执行命令: MODIFY FILE SQL,打开文本文件编辑器。 在编辑器中输入 SQ。更新记录的代码: uPDATE学生 SET出生日期 =1 983-05-01 WHERE姓名 =”
11、王三风 ” 在命令窗口执行命令: DO SQLL TXT,执行文本文件。 【知识模块】 上机操作题 三、综合应用题 3 【正确答案】 本题主要考查的是 SQL分组计算的查询。根据题目要求, SQL语句主要设计思路如下: 首先对 “学生 ”和 “选课 ”表进行联接,联接条件为两个表中 “学号 ”相同的记录;接着筛选表中成绩大于 70的所有记录 (通过 WHERE短语指出 ),对筛选后的记录按 “学号 ”字段分组 (通过 GROUP BY短语分组 ),然后通过 HAVING语句进一步限定分组条件,要求统计每组学号中 “课程号 ”记录总数大于等于 3,这样便可得出至少有三门课程成绩在 70分以上的学
12、生记录;查询结果最终保存在 results表中,输出字段只包括学生的 “姓名 ”字段。 【操作步骤】 在命令窗口输入如下 SQL查询代码 (以下 SQL查询语句是通过查询设计器生成 ): SELECT学生姓名; FROM成绩管理 !学生工 NNER JoIN成绩管 理 !选课; ON学生学号:选课学号; WHERE选课成绩 =70; ORDER BY学生姓名; GROUP BY学生学号; HAVING COUNT(选课课程号 ): 3; INTO TABI E resuitS dbf 在命令窗口执行命令: MODIFY FILE SQL,打开文本文件编辑器。将命令窗口的查询语句复制到 SQL文
13、本文件中。 (2)本题主要考查了 SQL定义功能; SQL简单计算查询; DO WHILE循环; Visual FoxPro修改记录命令。题目所提供的源程序功能大致如下: 首先打开 “成绩管理 ”数据库,并打开库中的数据表 “选课 ”和 “学生 ”;接着利用 SQL定义功能修改表结构;然后利 用 DO WHILE循环,依次计算 “选课 ”表中每个学生的平均成绩,计算条件为 “选课 ”表中的 “学号 ”字段值等于 “学生 ”表中当前记录的 “学号 ”字段值,并将平均成绩保存到数组中;最后利用 Visual FoxPro修录命令 REPLACE将数细中的值赋给 “学生 ”表的 “平均成绩 ”字段。
14、 本题第一处错误是表结构修改语句的错 误,为表增加字段的关键字是 ADD而不是 ALTER, ALTER只能用来修改已存在的字段;第二处错误是 DO WHILE循环格式错误,缺少 WHILE短语;第三处错误是修改记录命令格式错误,指定修改值的短语为 WITH而不是 SET。 步骤 1:在命令窗口执行命令: MODIFY COMMANDmodi,打开程序文件,文件中的命令代码如下: OPEN DATABASE成绩管理 USE选课 IN 0 USE学生 EXCL IN 0 *Errot* MODIFY TABLE学生 ADD平均成绩 N(6, 2) SELECT学生 *Error* DO WHIL
15、E EOF() SELECT AVG(成绩 )FROM选课 WHERE学 号 =学生学号 INTO ARRAY cj *rror* REPLACE平均成绩 =cj1 cj1=0 SKIP ENDDO DA个 ABASE 修改程序中的错误行,修改后的程序如下: CLOSE ALL OPEN DATABASE成绩管理 USE选课 IN 0 USE学生 EXCL IN 0 ALTER TABLE学生 ADD平均成绩 N(6, 2) SELECT学生 DO WHILE NOT EOF() SELECT AVG(成绩 )FROM选课 WHERE学号:学生学号 INTO ARRAY cj REPLACE平均成绩 WITH cj1 cj1=O SKIP ENDDO DATABASE 步骤 2:保存文件修改,在命令窗口执行命令: DO MODI,执行程序文件。 【知识模块】 上机操作题