第68套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下,打开"TEST_DB"数据库,完成如下操作:
1. 为表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、在Visual FoxPro主窗口中按下组合键Ctrl+N。系统弹出"新建"对话框,在"文件类型"中选 择表,在弹出的对话框中选择"新建表",并在弹出"创建"对话框中选定考生文件夹,在输入表名中填入"TEST",再点击保存。在弹出的表设计器中按题面的要求依次输入各个字段的定义,点击"确定"按钮,保存表结构。
4、单击"文件"菜单中的"新建",在类型选择对话框中选择"报表",单击"向导"按钮,在弹出的向导选取中选择"报表向导"后点确定。在"报表向导"的"数据库和表"中选择"SELL",将所有字段添加到选定字段后单击完成,将报表以TWO保存在考生文件夹下。
.
www.59wj.com
二、简单应用(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事件中的程序如下:
USE pass
Key1 = ALLTRIM(ThisForm.Text1.Value)
Key2 = ALLTRIM(ThisForm.Text2.Value)
LOCATE ALL FOR USER = Key1
IF FOUND() AND PASS = Key2
WAIT "欢迎使用本系统!" WINDOW TIMEOUT 1
THISFORM.RELEASE
ELSE
num = num + 1
IF num = 3
WAIT "用户名或口令不对,登录失败!" WINDOW TIMEOUT 1
ThisForm.Release
ELSE
WAIT "用户名或口令不对,请重输入!" WINDOW TIMEOUT 1
ENDIF
ENDIF
.
www.59wj.com
三、综合应用(1小题,计30分)
建立一个文件名和表单名均为myform的表单文件,表单上有:
. 表格控件grid1(RecordSourceType属性手工设置为"别名")
. 文本框控件Text1
. 命令按钮控件Command1(文本为"确定")
程序运行时在文本框中输入部门名,然后单击"确定"命令按钮计算该部门各年度的销售额(合计)和利润(合计)(利润为"销售额-工资额"),按年度升序将结果(含年度、销售额和利润3个字段)保存在以部门名命名的dbf文件的同时,在Grid1控件中显示计算的结果。
要求:程序完成后必须运行,并分别计算"笔记本产品部"和"计算机产品部"按年度的销售额和利润情况。
本题主要考核点:建立表单及SQL的使用等知识点。
本题解题思路:
1、以myform为表单名创建表单,文件名为myform。
2、按要求添加表格控件grid1、文本框控件、命令按钮控件Command1。设置grid1的RecordSourceType属性为"别名",Command1名称为"确定"。
3、在"确定"按钮的CLICK事件代码中输入x="SELECT Sell.年度, sum(Sell.销售额) as 销售额,sum(Sell.销售额 - Sell.工资额) as 利润"
x=x+" FROM test_db!sell where 部门号 in (select 部门号 FROM DEPT.DBF WHERE 部门名='"+myform.text1.value+"')"
x=x+" GROUP BY Sell.年度"
x=x+" ORDER BY Sell.年度"
x=x+" INTO TABLE "+myform.text1.value
&x
myform.Grid1.recordsource=myform.text1.value
保存后,按题面要求输入相应部门名运行此表单。
.