一 基本操作题1. 在考生文件夹下完成如下操作:
1.打开数据库SCORE_MANAGER,该数据库中含3个有联系的表STUDENT、SCORE1和COURSE,根据已经建立好的索引,建立表之间联系。
2.为COURSE表增加字段:开课学期(N,2,0)。
3.为SCORE1表“成绩”字段设置字段有效性规则:成绩>=0,出错提示信息是:“成绩必须大于或等于零。”
4.将SCORE1表“成绩”字段的默认值设置为空值(NULL)。
1.打开数据库设计器,在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。
2.打开COURSE表表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。
3.打开表设计器,选中“成绩”字段,在“字段有效性”中的“规则”文本框中填入:成绩>=0,在“信息”文本框中填入:“成绩必须大于或等于零”,单击“确定”按钮。
4.在表设计器对话框中,选择“成绩”字段,单击NULL列下的按钮(表示此列允许空值),然后再在“字段有效性”中的默认值中填入.NULL.,单击“确定”。
二 简单应用题1. 在考生文件夹下完成如下简单应用:
1.在SCORE_MANAGER数据库中查询学生的姓名和年龄(计算年龄的公式:2003一Year(出生日期),年龄作为字段名),结果保存在一个新表NEW_TABLE1中。使用报表向导建立报表NEW_REPORT1,用报表显示NEW_TABLEl的内容。报表中数据按年龄升序排列,报表标题是“姓名-年龄”,其余参数使用缺省参数。
2.在SCORE_MANAGER数据库中查询没有选修任何课程的学生信息,查询结果包括“学号”、“姓名”和“系部”字段,查询结果按学号升序保存在一个新表NEW_TABLE2中。
1.在Visual FoxPro的命令窗口中输入下列命令:
SELECT 姓名,2003-Year(出生日期) as 年龄;
FROM student:
INTO TABLE new_table1.dbf
启动报表向导可在“文件”菜单中选择“新建”或者单击工具栏上的“新建”按钮,打开“新建”对话框,文件类型选择报表,单击“向导”按钮。或者在“工具”菜单中选择“向导”子菜单,选择“报表”,或直接单击工具栏上的“报表向导”图标按钮。然后按照向导提示操作即可。
2.在Visual FoxPro的命令窗口中输入下列命令:
SEIJECT student.学号,student.姓名,student.系部;
FROM course right OUTER JOIN score1;
RIGHT OUTER JOIN student:
ON Student.学号=Score1.学号;
ON Course.课程号=Score1.课程号;
WHERE Student.学号!=Score1.学号;
ORDER BY Student.学号;
INTO TABLE new_table2.dbf
三 综合应用题1. SCORE_MANAGER数据库中含有3个数据库表STUDENT、SCORE1和COURSE。
为了对SCORE_MANAGER数据库数据进行查询,设计一个如图所示的表单Myform1(控件名为form1,表单文件名Myform1.scx)。表单的标题为“成绩查询”。表单左侧有文本“输入学号(名称为Label1的标签)”和用于输入学号的文本框(名称为Text1),“查询”(名称为Command1)和“退出”(名称为Command2)两个命令按钮,以及1个表格控件。
表单运行时,用户首先在文本框中输入学号,然后单击“查询”按钮,如果输入学号正确,在表单右侧以表格(名称为Grid1)形式显示该生所选课程名和成绩,否则提示“学号不存在,请重新输入学号。”
单击“退出”按钮,关闭表单。
操作过程如下。
①在命令窗口输入命令:CREATE FORM Myform1,打开表单设计器窗口。
②在表格上添加各文本框、命令按钮、表格及相关的标签,并进行适当的布置和大小调整。
③设置各标签、命令按钮以及表单的Caption属性值。
④将表单的ColumnCount属性值设置为2(共两列)、RecordSourceType属性值设置为“4-SQL说明”。
⑤将表格内两列标头的Caption属性分别设置为“课程名”和“成绩”,并适当调整两列的宽度。
⑥设置表单的Load事件代码:
CLOSE ALL
USE STUDENT
⑦设置“查询”按钮的Click事件代码:
GO TOP
LOCATE FOR Student.学号=ALLTRIM(THISFORM.TEXT1.VALUE)
IF Student.学号=ALLTRIM(THISFORM.TEXT1.VALUE)
THISFORM.GRID1.RECORDSOURCE="SELECT Course.课程名,Score1.成绩;
FROM course INNER JOIN score1;
INNER JOIN student;
ON Student.学号=Score1.学号;
ON Course.课程号=Score1.课程号;
WHERE Student.学号=ALLTRIM(THISFORM.TEXT1.VALUE);
INTO CURSOR TEMP"
ELSE
MESSAGEBOX("学号不存在,请重新输入学号")
THISFORM.GRID1.RECORDSOURCE="
ENDIF
⑧设置“退出”按钮的Click事件代码:
THISFORM.RELEASE
⑨保存表单,关闭表单设计器窗口。