07年自考“数据库及其应用Foxpro”实验题(3)
第3组实验题
上机步骤和操作说明
(1)Windows NT用户注册,用户名为个人账号,口令栏直接按回车。
(2)进入Visual FoxPro(VFP)系统环境,中途不要退出。
(3)在VFP命令窗口中键入以下两条命令:
SET DEFAULT TO Z:\<目录名> (目录名即你的账号,目录已建好)
SET SAFETY OFF
第一条命令的目的是设置你的缺省工作目录,这样,操作命令中就不要再带路径名。
(4)按题目要求创建数据库,录入数据,编写程序。
(5)在程序编辑器窗口录入、修改程序,编辑完毕,保存后再执行。
(6)第3题和第4题的各小题,都要分别保存为一个程序文件。文件名要用“账号+题号”命名,例如:C100_3,表示是C100账户的第3题的程序。C108_4_2表示是C108账户的第4题的第(2)小题的程序。
(7)做题次序不限,实现方法不限。题目中所谓的“表”即指“数据库文件”。为减少录入的负担,表名、字段名、变量名等尽量不要用汉字,可用英文或汉语拼音。
现有关于工资管理数据库的模式如下:
职工(职工号,姓名,出生日期,职级)
职务(职级,职务,工资,补贴)
扣除(职工号,房租,水费,电费)
职工的收入与职级直接挂钩。职级与职务一一对应,假设1级干部为处长,2级干部为副处长,等等。每个职工收入的扣除部分每月更新一次。
要求完成如下操作:
1.按题目要求建立表结构,各表各个字段的名字、数据类型、长度等根据语义和查询的需要自行决定。根据查询需要建立索引。 (15分)
2.利用你所熟悉的方法向各表录入适量的、满足题目需要的数据。各数据项的取值范围应该合理、有效,并与查询要求相呼应。 (10分)
3.编写一个工资单打印程序。假设各项数据已计算完毕,并存放于表payroll.dbf中。工资单格式如下。表格线可只画横线,不画竖线。 (20分)
部门号 | 职工号 | 姓名 | 工资 | 补贴 | 扣除 | 实发工资 |
01 | 01 | WANG | ||||
…… | ||||||
02 | 05 | CHEN | ||||
…… |
4.用FoxPro语言或SQL语言编写程序完成以下查询。(15分、20分、20分)
(1)列出职工名单,要包含所有职工的全部属性,且在更后一行显示:
处级干部的平均年龄为 xx 岁。
(处级干部是指职务为处长、副处长的职工)
(2)为打印工资单准备好数据,存入表payroll.dbf中。其中“扣除”一栏的数据,用“扣除”关系所提供的数据来更新。
(3)列出按部门工资汇总清单,格式如下:
部门号 | 工资 | 补贴 | 扣除 | 实发工资 |
01 | ||||
02 | ||||
…… | ||||
总合计 |
第3组实验题
现有关于工资管理数据库的模式如下:
职工(职工号,姓名,出生日期,职级)
职务(职级,职务,工资,补贴)
扣除(职工号,房租,水费,电费)
职工的收入与职级直接挂钩。职级与职务一一对应,假设1级干部为处长,2级干部为副处长,等等。每个职工收入的扣除部分每月更新一次。
要求完成如下操作:
1.按题目要求建立表结构,各表各个字段的名字、数据类型、长度等根据语义和查询的需要自行决定。根据查询需要建立索引。(15分)
答:见第3组实验题答案文件夹。
2.利用你所熟悉的方法向各表录入适量的、满足题目需要的数据。各数据项的取值范围应该合理、有效,并与查询要求相呼应。(10分)
答:见第3组实验题答案文件夹。
3.编写一个工资单打印程序。假设各项数据已计算完毕,并存放于表payroll.dbf中。工资单格式如下。表格线可只画横线,不画竖线。(20分)
部门号 | 职工号 | 姓名 | 工资 | 补贴 | 扣除 | 实发工资 |
01 | 01 | WANG | ||||
…… | ||||||
02 | 05 | CHEN | ||||
…… |
答:程序清单如下
clear
set talk off
use 第3组实验题答案文件夹\payroll
@ 0,1 say “─────────────────────────────”
@ 1,1 say “部门号”
@ 1,8 say “职工号”
@ 1,15 say “姓名”
@ 1,23 say “工资”
@ 1,33 say “补贴”
@ 1,43 say “扣除”
@ 1,52 say “实发工资”
@ 2,1 say “─────────────────────────────”
i=1
scan
i=i+2
@ i,1 get 部门号
@ i,8 get 职工号
@ i,15 get 姓名
@ i,23 get 工资
@ i,33 get 补贴
@ i,43 get 扣除
@ i,52 get 实发工资
@ i+1,1 say “─────────────────────────────”
endscan
use
set talk on
return
4.用FoxPro语言或SQL语言编写程序完成以下查询。(15分、20分、20分)
(1)列出职工名单,要包含所有职工的全部属性,且在更后一行显示:
处级干部的平均年龄为 xx 岁。
(处级干部是指职务为处长、副处长的职工)
答:程序清单如下
clear
set talk off
select 2
use 第3组实验题答案文件夹\zhiwu index 第3组实验题答案文件夹\zhiwu0
select 1
use 第3组实验题答案文件夹\zhigong index 第3组实验题答案文件夹\zhigong1
set relation to 职级 into b
average date()-出生日期 for 职级=“1级” or 职级=“2级” to ave
list 职工号,姓名,出生日期,职级,b.职务,b.工资,b.补贴
? “ 处级干部的平均年龄为”+str(ave/365,2)+“岁”
close databases
set talk on
return