内容发布更新时间 : 2024/12/24 0:07:51星期一 下面是文章的全部内容请认真阅读。
下面的操作帮助大家练习和复习第4章的内容,希望大家参照操作方法好好练习,特别是建立数据库和表、复制表、排序、索引等操作是网站上综合作业1设计到操作(用红色字体显示的题目),要特别熟练掌握。
(一) 进入Visual FoxPro 6.0环境,选择自己的文件夹为默认目录,完成下面的操作 设置默认目录的方法:选择“工具”菜单下的“选项”,打开选项对话框,选择“文件位置”,如下图所示,按图中标识,设置默认路径。
双击“默认目录”,打开“更改
文件位置对话框”,如下图所示。
点击这里即可选择自己的文件夹(先建好自己的文件夹,建议建立在电脑E盘homework中,文件夹名字为学号),设置好默认目录后,点击“确定”返回上图“选项对话框”,点击“设置为默认值”,点击“确
1.在默认目录下建立“考生管理”数据库,并在该数据库中建立两个数据库表,表名分别为“考生信息.dbf”、“考生成绩.dbf”和“专业.dbf”。表结构如下: 考生信息(考号C(4), 姓名C(8),性别C(2),团员L,出生日期D,备注M) 考生成绩(考号C(4),专业代码C(1),文化课成绩N(3),专业课成绩N(3)) 输入表记录内容:
考生信息
考号
1001 1002 1003
姓名
刘爱芳
李明 张华
性别 女 男 男 团员 t t t 出生日期 1994.5.1 1993.12.10 1995.1.18 备注
学校推荐生
1004 1005
王芳 陆宏远 女 男 t f 考生成绩
1994.6.26 1994.8.12
考号 专业代码 文化课成绩 专业课成绩 1001 1 87 90 1002 1 76 69 1003 3 72 80 1004 1 88 75 1005 2 92 90 1006 3 68 87
操作方法:
① 选择“文件|新建|数据库|新建文件”,在打开的“创建对话框”中输入数据库的名
称“考生管理”,单击“保存”按钮,则在刚才建立的默认目录下建立好了数据库,并自动打开“数据库设计器”窗口。
提示:数据库文件建立后,会同时在默认目录下生成与之相关的另外两个文件,它
们是扩展名为.dbt的数据库备注文件和扩展名为.dcx的数据库索引文件。
②在数据库设计器中单击鼠标右键,在打开的快捷菜单中选择“新建表”, 单击“新建文件”,打开“创建”对话框,输入表名“考生信息”,单击“保存”按钮,打开“表设计器”窗口,在“表设计器”中输入考生信息.dbf的表结构内容。
结构设置完成后,单击“确定”按钮,出现询问“现在输入数据记录吗?”的提示框,单击“是”按钮,可在编辑窗口中输入考生信息的内容,输入的内容会自动存盘。
输入日期型字段的内容时,要符合系统当前设置的日期格式,系统默认的日期格式为:mm/dd/yy。
备注型字段的输入方法是:在窗口中双击该字段,打开一个文本编辑窗口,即可在其中输入备注型字段的内容。如果备注型字段有内容,则memo的首字母会变成大写,即显示为Memo。
默认情况下,记录在输入时的窗口状态为“编辑”,即每行显示一个字段。可以选择“显示”菜单的“浏览”切换到“浏览”方式下,此时每行显示一个记录。在“浏览”或“编辑”方式下,都可以显示或直接修改记录内容。
如果没有设置好表结构就关闭了表设计器,需要再打开表设计器对表结构进行修改,表设计器的打开方式如下:
菜单方式:“显示|表设计器” 命令方式:modify structure
如果没有输完记录信息就关闭了表输入过程,以后还要输入记录内容时,用追加方式,具体方法见第2题。
③ 以同样的方法建立“考生成绩.dbf”。
操作结果:在默认路径下有三个文件:考生信息.dbf、考生成绩.dbf以及考生信息.fpt(表备注文件,存放备注型字段的内容)
建议:表建好以后,为了方便后面的表操作,可以先把数据库设计器关闭。后面要使用哪个表,再打开哪个表即可。如果没有关闭数据库,那么后面用到哪个表,直接在数据库设计器中双击哪个表即可打开并浏览。
2.在考生信息.dbf的表尾追加一条记录,内容为:
1006 王晓军 男 t 1994.4.9 操作方法:
选择“文件”菜单中的“打开”命令,或在命令窗口中输入命令“use 考生信息”,打开考生信息.dbf,再选择“显示”菜单的“浏览”命令,进入记录浏览窗口,此时只能浏览和修改已有数据,无法向表输入新记录。若需要输入新记录,需要选择“显示”菜单的“追加方式”,或选择“表”菜单的“追加新纪录”或在命令窗口中输入“append”命令,便可在表尾增加记录。
3.显示考生信息.dbf中所有年龄大于19岁的男生的考号,姓名,性别,出生日期。 操作方法:可在命令窗口中输入以下两条命令中的任何一条,其中browse是在浏览窗口中显示记录,而list是在系统主窗口中显示记录。
browse fields考号,姓名,性别,出生日期 for 性别=\男\出生日期)>19 list 考号,姓名,性别,出生日期 for 性别=\男\出生日期)>19
4.在考生成绩.dbf的最后一列增加“综合分”字段,并计算出每个学生的综合分,综合分的计算办法:文化课成绩占30%,专业课成绩占70%。 操作方法:
①打开考生成绩.dbf,单击“显示”菜单下的“表设计器”,增加综合分n(3)字段。 ②在命令窗口中输入replace all 综合分 with 文化课成绩*0.3+专业课成绩*0.7 ③在命令窗口中输入list或browse显示浏览效果。 5.将考生信息.dbf中所有男团员的考号、姓名和性别复制到ty.dbf中,再用append from 命令将考生信息.dbf中的所有女团员的考号、姓名和性别追加到ty.dbf的末尾并显示记录。 操作方法:在命令窗口中输入以下命令 use 考生信息
copy to ty for 性别=\男\团员 fields 学号,姓名,性别 use ty
browse &&团员表中只有男团员的记录
append from 考生信息 for 性别=\女\团员 fields 学号,姓名,性别 list &&团员表中包括男、女团员的记录 6.将ty.dbf中的前四条记录加上删除标记(逻辑删除),再将记录号为偶数的记录恢复,最后将其他逻辑删除的记录彻底删除。 操作方法:在命令窗口中输入以下命令 use ty
go top &&此命令可以不要,刚打开的表,记录指针指向第一个记录 delete next 4 &&删除前四条记录 list
recall for recno()%2=0 &&恢复记录号为偶数的记录 list
pack &&彻底删除其他两条未恢复的记录 list
7.对考生成绩.dbf按专业课成绩升序排序,并将排序结果保存到专业排名.dbf中,该表包含考号、专业代码和专业课成绩字段。 操作方法:在命令窗口中输入以下命令 use 考生成绩
sort on 专业课成绩 to 专业排名 fields 考号,专业代码,专业课成绩 use 专业排名
list
8.对考生成绩.dbf建立结构复合索引文件,包括以下五个索引: 考号(候选索引,升序,索引名kh)
专业代号(唯一索引,升序,索引名zydh) 综合分(普通索引,降序,索引名zhf),
按专业代号升序,专业代号相同按考号升序排列,索引名zykh 按专业代号升序,专业代号相同按综合分降序排列,索引名zycj
操作方法:建立结构复合索引文件可以通过表设计器来建立,也可以通过命令建立。 (1)通过表设计器建立的方法:
① 打开学生成绩.dbf,选择菜单“显示|表设计器|索引”,如图3-26所示。 ② 单击“索引名”,输入kh,在“索引类型”列表中选择“候选索引”,在“表达式”中输入“考号”,即设置好名为kh的候选索引。 ① 按此方法依次设置好其他索引,需要注意zhf索引是降序,需要选择索引顺序为。 zykh索引的“表达式”为“专业代号+kh”,zycj索引的“表达式”为“zydh+str(1000-综合分)”。
(2)通过命令创建索引,可在命令窗口中输入以下命令 use 考生成绩
index on 考号 tag kh candidate &&建立kh候选索引,刚用命令创建过的索引即为主控索引, browse &&记录按考号升序排列,并不允许有相同考号输入 index on 专业代号 tag zydh unique &&建立zydh唯一索引
browse &&记录按专业代号升序排列,相同专业代号的记录只显示一个 index on 综合分 tag zhf descenting &&建立zhf普通索引 browse &&记录按综合分降序排列
index on 专业代号+kh tag zykh &&建立zykh普通索引
browse &&按专业代号升序,专业代号相同按考号升序排列 index on zydh+str(1000-综合分) tag zycj &&建立zycj普通索引
browse &&按专业代号升序,专业代号相同按综合分降序排列
说明: ① 通过表设计器中的“字段”选项卡也可以创建索引,但是只能创建基于一个字段的普通索引,并且索引名和字段名相同。 ② 通过表设计器创建的索引必须专门再指定哪个为主控索引,才能起到对表记录排序的作用。
操作结果,生成学生成绩.dbf的结构复合索引文件:学生成绩.cdx,此文件包含以上五个索引。
9.分别指定学生成绩.dbf中的五个索引为主控索引,观察记录的浏览效果。
(1)选择“表|属性”菜单命令,或选择“窗口|数据工作期|属性”打开“工作区属性”对话框,在“索引顺序”列表框中选择一个索引,则该索引即为主控索引。然后选择“显示|浏览”菜单命令,即可观察到记录按索引控制的逻辑顺序排列。
(2)也可以通过在命令窗口中输入set order to命令来选择当前主控索引,例如 set order to kh &&设置kh索引为主控索引 list
按此方法依次设置其他四个索引为当前主控索引,并浏览记录。
说明:如果只输入set order to 表明取消当前索引,此时浏览表记录,按记录号顺序(记录的输入顺序)排列。
10.在考生信息.dbf中,分别用locate(条件定位)、seek和find(索引查询)命令,实现逐条查询出姓王的学生。
(1)用locate/continue命令实现,参考命令序列如下 use 考生信息
loca te for left(姓名,2)= \王\ &&找到第1个满足条件的记录 disp &&显示找到的记录
cont &&继续查找满足条件的第2个记录 disp &&显示找到的记录
cont &&继续查找满足条件的第3个记录
?? &&重复执行disp、cont命令,直到状态栏显示“已到定位范围末尾”
(2)用seek命令实现,参考命令序列如下 use 考生信息
index on 姓名 tag xm &&建立xm升序普通索引,该索引自动为主控索引 set exact off &&设置非精确比较
seek \王\ &&或find 王 disp &&显示找到的第1个记录
skip &&继续查找连续第2个满足条件的记录 disp &&显示找到的第2个记录
skip &&继续查找连续第3个满足条件的记录
?? &&重复执行disp、skip命令,直到显示的记录的姓不为“王” 11.用统计命令统计出文化课总分、专业课总分、综合分总分,文化课平均分、专业课平均分、综合分平均分,然后在考生成绩.dbf末尾添加两个空记录,用replace命令将统计结果填入到追加的两个空记录里。效果如下图所示:
参考命令序列如下
sum 文化课成绩,专业课成绩,综合分 to zf1,zf2,zf3 average 文化课成绩,专业课成绩,综合分 to pj1,pj2,pj3 append blank &&添加一条空记录 append blank &&添加一条空记录
go bottom &&记录指针定位到最后一条记录
replace 考号 with \平均分\文化课成绩 with pj1,专业课成绩 with pj2,综合分 with pj3 skip -1 &&记录指针定位到倒数第二条记录
replace 考号 with \总分\文化课成绩 with zf1,专业课成绩 with zf2,综合分 with zf3 browse
或者也可以插入一条空记录后就用replace添加总分内容,然后再添加一条来放平均分。 参考命令序列如下
sum 文化课成绩,专业课成绩,综合分 to zf1,zf2,zf3