(1)打开数据库文件“课程管理”,使用SQL语句建立一个视图salary,该视图包括了“系号”和(该系的)“平均工资”两个字段,并且按“平均工资”降序排列。请将该SQL语句存储在four.prg文件中,否则不得分。 (2)打开考生文件夹下的表单si

admin2015-08-20  46

问题 (1)打开数据库文件“课程管理”,使用SQL语句建立一个视图salary,该视图包括了“系号”和(该系的)“平均工资”两个字段,并且按“平均工资”降序排列。请将该SQL语句存储在four.prg文件中,否则不得分。
    (2)打开考生文件夹下的表单six(如图2.33所示),“登录”命令按钮Click事件中的程序功能是:当用户输入用户名和口令以后,单击“登录”按钮时,程序根据自由表“用户表”的内容进行操作,若在“用户表”中找不到相应的用户名,则提示“用户名错误”,若用户名输入正确,而口令输入错误,则提示“口令错误”。修改“登录”命令按钮Click事件中标有错误的语句,使其能够正确运行。注意:不得做其他修改。

选项

答案(1) 步骤1:在命令窗口执行命令:MODIFY COMMAND four,打开程序文件编辑器编写视图定义代码。 步骤2:在编辑器中输入如下程序代码: OPEN DATABASE课程管理 CREATE VIEW salary.AS ; SELECT系号,AVG(工资)AS平均工资; FROM教师表; GROUP BY系号; ORDER BY平均工资DESC 步骤3:在命令窗口执行命令:DO four,执行文件。 (2) 步骤1:在命令窗口执行命令:MODIFY FORM six,打开表单设计器修改表单。 步骤2:双击表单中的“登录”按钮,看到该按钮的Click事件中代码如下: USE用户表 GO TOP flag=0 &&下面语句有错误 WHILE.NOT.EOF。() IF Alltrim(用户名)==Alltrim (Thisform.Text1.Value) IF Alltrim(口令)==Alltrim (This form.Text2.Value) WAIT "欢迎使用" WINDOW TIMEOUT 2 ELSE WAIT "口令错误" WINDOW TIMEOUT 2 ENDIF flag=1 EXIT ENDIF &&下面语句有错误 NEXT ENDL)U &&下面语句有错误 CASE FLAG=0 WAIT"用户名错误"WINDOW TIMEOUT 2 ENDIF 参改后的代码如下: USE用户表 GO TOP flag=0 &&下面语句有错误 DO WHILE NOT EOF() IF Alltrim(用户名)==Alltrim (Thisform.Text1.Value) IF Alltrim(口令)==Alltrim (Thisform.Text2.Value) WAIT "欢迎使用" WINDOW TIMEOUT 2 ELSE WAIT "口令错误" WINDOW TIMEOUT 2 ENDIF flag=1 EXIT ENDIF &&下面语句有错误 SKIP ENDDO &&下面语句有错误 IF flag=0 WAIT "用户名错误" WINDOW TIMEOUT 2 ENDTF 步骤3:单击“常用”工具栏中的“运行”按钮查看结果,将表单文件保存到考生文件夹下。

解析 (1)
    步骤1:在命令窗口执行命令:MODIFY COMMAND four,打开程序文件编辑器编写视图定义代码。
    步骤2:在编辑器中输入如下程序代码:
OPEN DATABASE课程管理
CREATE VIEW salary.AS ;
SELECT系号,AVG(工资)AS平均工资;
FROM教师表;
GROUP BY系号;
ORDER BY平均工资DESC
    步骤3:在命令窗口执行命令:DO four,执行文件。
    (2)本题主要考查的是DO WH工LE循环语句和工F条件语句的使用。本题程序的功能大致如下:
    首先打开“用户表”,同时定义一个变量并赋值0。
    然后通过DO WHILE语句开始判断记录指针是否到达文件末尾,如果没有,则开始执行后面的条件语句,第一次判断表中当前记录的“用户名”是否等于表单中第一个文本框中的值;如果等于,则再继续判断该记录的口令值是否等于表单中第二个文本框的值;如果不等于,则退出条件语句结构,执行SKIP命令,将指针指向“用户表”的下一条记录,当指针记录指向表末尾后还没找到相等的内容,则退出循环体,执行ENDDO后面的IF语句,提示“用户名错误”的信息,执行此条件语句的要求为flaq=0。
    当判断表中当前记录的“用户名”等于表单中第一个文本框中的值后,再判断用户名的密码值也等于表单中第二个文本框的值时,则显示欢迎框,退出条件语句结构,将变量flaq的值赋为1,退出循环体,当退出循环体后,由于flaq的值已设置为1,则不再执行ENDDO后面的IF语句,程序结束;如果密码不相等时,则提示“口令错误”的信息。
转载请注明原文地址:https://jikaoti.com/ti/xIv0FFFM
0

最新回复(0)