江苏省VFP2005秋2006春上机

更新时间:2023-07-26 08:26:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

江苏省VFP2005秋2006春上机

项目、数据库和表操作(练习1~~练习8为2006年春上机;练习9~~练习16为2005年秋上机)

练习1

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中XS(学生)表:

(1) 为表设置长表名:学生基本档案表。

(2) 创建一个普通索引abcd,要求以性别(xb)为第一索引关键字、出生日期(csrq)为第二索引关键字排序。

(3) 设置xb字段的有效性规则和有效性说明信息,要求其值为“男”或“女”。

(4) 添加一字符型字段,字段名为jg_1、宽度为14,然后设置其标题为“籍贯”、默认值为“省市”。

(5) 根据jg字段的值来填写jiguan字段的值:如果jg值为两个汉字,则加“市”,否则在前两个汉字后加“省”、最后加“市”。例如jg为“上海”,则jiguan为“上海市”;jg为“江苏南京”,则jiguan为“江苏省南京市”;jg为“江苏张家港”,则jiguan为“江苏省张家港市”,等等。

2. 在项目中,将RK表设置为“包含”状态。

3. XS表和CJ表已存在以学号(xh)字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:

在XS表中修改记录(xh字段的值)时,若CJ表中有相关的记录(xh字段的值),则同步对CJ表进行修改;

在XS表中删除记录时,若CJ表中有相关的记录(xh字段的值),则禁止对XS表进行删除。

练习2

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中XS(学生)表:

(1) 添加一个备注型字段,字段名为res,并将其标题设置为“简历”。

(2) 创建一个普通索引abcd,要求根据出生日期(csrq)中的“月日”进行排序,即排序时不考虑其中的“年份”。

(3) 设置xm字段的有效性规则,要求其值包含非空格字符。

(4) 将所有记录的bjbh字段的值替换为:xh的前两个字符 + xdh字段的值 + zydh字段的值

(5) 将籍贯(jg)不属于“江苏”的记录作逻辑删除。

2. 利用项目管理器操作,从磁盘上删除XIM表(文件)。

3. 修改项目TEST的项目信息:附加图标NET.ICO。

4. XS表和CJ表已存在以学号(xh)字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整

江苏省VFP2005秋2006春上机

性规则:

在XS表中修改记录(xh字段的值)时,若CJ表中有相关的记录(xh字段值),则禁止对XS表进行修改;

在XS表中删除记录时,若CJ表中有相关的记录(xh字段值),则同步删除CJ表中相应记录。

练习3

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中XS(学生)表:

(1) 添加一个字符型字段,字段名为zzmm,其宽度以最多能存储字符串“中共党员”为准,并设置其标题为“政治面貌”、显示类为“Combobox”。

(2) 设置学号(xh)字段的InputMask属性,使该字段中仅能输入数字字符。

(3) 创建一个普通索引abcd,要求以csrq中的“日”进行排序,相同时再根据“月份”进行排序(注:要求利用DAY()和MONTH()函数)。

(4) 为XS表添加一条记录,要求:输入的xh为“123456”,xm为考生自己的姓名,其它字段内容由考生自己编造(注:xm字段的值必须为考生自己的真实姓名,否则本题不得分)。

2. 在项目中,将XIM表和ZY表设置为“包含”状态。

3. XS表和CJ表已存在以xh字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则: 在XS表中删除记录时,若CJ表中有相关的记录(xh字段的值),则禁止删除XS表记录;

在XS表中修改记录(xh字段值)时,若CJ表中有相关的记录(xh字段的值),则自动修改CJ表记录。

练习4

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中CJ(成绩)表:

(1) 添加一个字符型字段,字段名为grade、宽度为1,并计算该字段的值:若cj大于或等于80,则grade为“A”;若cj小于80且大于或等于60,则grade为“B”;若cj小于60,则grade为“C”。

(2) 设置cj字段的有关属性,使该字段的字段名在浏览窗口中显示为“百分制成绩”。

(3) 设置cj字段的有效性规则和有效性说明:cj小于或等于100,且不小于0。

(4) 创建一个普通索引abcd,要求以课程代号(kcdh)字段进行排序,相同时以成绩(cj)字段排序。

2. 利用项目管理器操作,将当前项目中所有的自由表移去并从磁盘上删除。

3. 修改项目TEST的项目信息:附加图标NET.ICO。

4. JS表和RK表已存在以工号(gh)字段为索引表达式的主索引jsgh和普通索引rkgh。以JS表为主表,RK表为子表按gh建立永久关系,并根据以下要求设置参照完整性规则:

江苏省VFP2005秋2006春上机

在JS表中修改记录(gh字段值)时,若RK表中有相关的记录(gh字段的值),则自动修改RK表中相应记录;

在JS表中删除记录时,若RK表中有相应的记录(gh字段的值),则禁止删除JS表中记录。

练习5

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中课程(KC)表:

(1) 添加一个备注型字段,字段名为bz,并为其设置:标题为“备注”,默认值为系统日期的年份。

(2) 设置kcdh字段的InputMask属性,使该字段的值只能为数字字符。

(3) 设置bxk字段的有关属性,使得将该字段从表单的数据环境中拖放到表单上时,生成的相应控件为文本框控件。

(4) 设置表的记录级有效性规则,要求kss值比xf值大(注:对现有数据不验证此规则)。

(5) 创建一个普通索引abcd,要求以xf字段进行排序,相同时以kss字段排序。

(6) 为KC

2.

3. XIM表和JS表已存在以系代号(xdh)字段为索引表达式的主索引xdh和普通索引xdh。以XIM表为主表,JS表为子表按xdh建立永久关系,并根据以下要求设置参照完整性规则:

在XIM表中修改记录(xdh字段值)时,若JS表中有相关的记录(xdh字段值),则自动修改JS表中相应记录;

在XIM表中删除记录时,若JS表中有相关的记录(xdh字段值),则禁止删除XIM表中相应记录。

练习6

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 在SJK数据库中新建一个表名为ABC的数据库表,要求该表含有两个字段:字段名分别为aa和bb,类型分别为逻辑型和通用型。

2. 按以下要求修改SJK数据库中课程(KC)表:

(1) 设置kss字段和xf字段的标题属性,分别为“课时数”和“学分”。

(2) 设置kcdh字段的InputMask属性,使该字段的值只能为数字字符。

(3) 设置表的记录级有效性规则,要求kss值不小于xf值(注:对现有数据不验证此规则)。

(4) 创建一个普通索引abcd,要求以bxk字段进行排序,相同时以xf字段排序(提示:用IIF()函数对bxk字段进行数据类型转换)。

江苏省VFP2005秋2006春上机

(5) 对KC表中xf为2的记录,作逻辑删除。

3. 利用项目管理器操作:将BJ表改名为BJB表,并为其设置编辑说明“班级表”。

4. JS表和RK表已存在以工号(gh)字段为索引表达式的主索引jsgh和普通索引rkgh。以JS表为主表,RK表为子表按gh建立永久关系,并根据以下要求设置参照完整性规则:

在JS表中修改和删除记录时,若RK表中有相关的记录(gh字段的值),则禁止对JS表进行修改和删除;

在RK表中添加记录时,若JS表中无相关的记录(gh字段的值),则禁止对RK表进行插入操作。

练习7

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中专业(ZY)表:

(1) 添加一个备注型字段,字段名为bz。

(2) 为xz字段设置标题和默认值:“学制”和4。

(3) 设置xz字段的有效性规则和有效性说明:xz不小于2且不大于6(对已有数据不作验证)。

(4) 创建一个普通索引abcd,要求以xz字段进行排序,相同时以zydh字段排序。

2. 计算gz表中qt字段的值:jbgz小于1000时,jbgz×10%后取整,否则jbgz×15%后取整。

3. 利用项目管理器操作:将本地视图JSST改名为JSVIEW,并为其设置编辑说明“教师视图”。

4. XS表和BJ表已存在以班级编号(bjbh)字段为索引表达式的普通索引bjbh和主索引bjbh。以BJ表为主表,XS表为子表按bjbh建立永久关系,并根据以下要求设置参照完整性规则:在BJ表中修改记录时,若XS表中有相应的记录(bjbh字段的值),则同步对XS表进行修改;在BJ表中删除记录时,若XS表中有相应的记录(bjbh字段的值),则禁止对BJ表进行删除。

练习8

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中JS(教师)表:

(1) 为表设置删除触发器:若当前系统日期为“星期日”,则不允许删除(提示:使用DOW()函数)。

(2) 添加一个字段名为gzny、宽度为7的字符型字段,且根据gzrq字段的值填写该字段的值:年份+小数点+月份,例如gzrq为08/03/1999,则gzny为“1999.08”。

(3) 设置xb字段的标题“性别”、默认值“男”,并设置该字段的有效性规则:只能为“男”或“女”。

(4) 创建一个普通索引abcd,要求以gzrq进行排序,相同时再以参加工作时的年龄(gzrq与csrq的年份之差)进行排序。

2. 利用项目管理器操作:将zy表从项目中移去并删除之,将zc表设置为“包含”状

江苏省VFP2005秋2006春上机

态。

3. 将zc表复制为Excel文件zc.xls(提示:打开zc表后,利用copy命令)。

4. JS表和ZC表已存在以zcdh字段为索引表达式的普通索引zcdh和主索引zcdh。以ZC表为主表,JS表为子表按zcdh建立永久关系,并根据以下要求设置参照完整性规则:在JS表中插入记录时,若ZC表中无相应的记录(zcdh字段的值),则禁止对JS表进行插入。

练习9

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中TS表:

(1) 为TS表设置长表名:图书档案表。

(2) 添加一备注型字段,字段名为summary,并设置其标题为“内容概要”。

(3) 设置flh字段的有关属性,以使该字段中输入的字母均为大写字母。

(4) 创建一个普通索引abcd,要求以分类号(flh)为第一索引关键字、书名(sm)为第二索引关键字排序。

(5) 设置jg字段的有效性规则和有效性说明信息,要求:其值不能小于1。

(6) 修改作者(zz)的值,要求在原作者名后加汉字“等”。例如,第一条记录的作者由“路云”改为“路云等”。

2. 在项目中,将TS表设置为“包含”状态。

3. XS表和CJ表已存在以xh字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:当在CJ表中添加记录时,若XS表中没有相对应的记录(xh字段的值),则禁止添加记录。

练习10

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中TS表:

(1) 为TS表设置表注释:教学用图书。

(2) 添加一个字段,字段名为cover,其类型应适用于存储图书的封面图片。

(3) 设置flh字段的有关属性,使该字段中输入的字母均为大写字母。

(4) 设置cs字段的有关属性,使得将该字段从表单的数据环境中拖放到表单上时,生成的相应控件为微调控件。

(5) 创建一个普通索引abcd,要求以书名(sm)的长度进行排序(sm字段值的首尾空格字符不计)。

(6) 设置sm字段的有效性规则及有效性说明,要求:其值不为空字符串和仅有空格组成的字符串。

(7) 为TS

江苏省VFP2005秋2006春上机

2. 在项目中,将3. XS表和CJ表已存在以xh字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:当在XS表中删除记录时,若CJ表中有相对应的记录(xh字段的值),则禁止删除XS表记录。

练习11

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中TS表:

(1) 为TS表设置编辑说明:教学图书表。

(2) 修改jg(价格)字段的宽度,要求该段名能存储整数3位、小数1位。

(3) 设置zz字段的标题属性,使该字段的字段名在浏览窗口中显示为“作者”。

(4) 创建一个普通索引abcd,要求以入库日期(rkrq)字段进行排序,相同时以价格(jg)字段排序。

(5) 设置jg字段的有效性规则,要求其值不小于1。

(6) 将flh以G字母开头的记录彻底删除。

2. 利用项目管理器删除XIM表。

3. 将图标文件NET.ICO添加到项目中的合适位置,并修改项目TEST的项目信息:附加图标NET.ICO。

4. XS表和CJ表已存在以xh字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:当在XS表中删除记录时,若CJ表中有相应的记录(xh字段的值),则同时删除CJ表中相应记录。

练习12

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中TS表:

(1) 设置表的触发器:当册数(cs)不为0时,禁止删除。

(2) 添加一个字段,字段名为publisher,宽度以能存储“外语教学与研究出版社”为准,并为其设置默认值“出版社”。

(3) 设置isbn字段的标题属性,使该字段的字段名在浏览窗口中显示为“国际标准图书编号”。

(4) 创建一个普通索引abcd,要求以册数(cs)字段进行排序,相同时以价格(jg)字段排序。

(5) 设置rkrq字段的有效性规则,要求不超过当前系统日期。

2. 计算gz表中qt字段的值:qt=0

3. 修改项目TEST的项目信息:附加图标NET.ICO。

江苏省VFP2005秋2006春上机

4. XS表和CJ表已存在以xh字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:当在XS表中修改和删除记录时,若CJ表中有相应的记录(xh字段的值),则同时修改和删除CJ表中相应记录。

练习13

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中JS表:

(1) 添加一个字段,字段名为zp,其类型应适用于存储教师的照片,并为其设置标题“照片”。

(2) 设置xdh字段和zcdh字段的有关属性,使这两个字段的值只能为数字字符。

(3) 设置xdh字段的有关属性,使得将该字段从表单的数据环境中拖放到表单上时,生成的相应控件为下拉组合框控件。

(4) 设置表的记录级有效性规则,要求gzrq比csrq大。

(5) 创建一个普通索引abcd,要求以xdh字段进行排序,相同时以zcdh字段排序。

2. 计算gz表中zfbt字段的值:zfbt=jbgz×10%

3. 利用项目管理器操作:将数据库表XIM改为自由表,并将其添加到项目中。

4. JS表和RK表已存在以gh字段为索引表达式的主索引jsgh和普通索引rkgh。以JS表为主表,RK表为子表按gh建立永久关系,并根据以下要求设置参照完整性规则:当在JS表中修改和删除记录时,若RK表中有相应的记录(gh字段的值),则同时修改和删除RK表中相应记录。

练习14

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中JS表:

(1) 添加一个逻辑型字段,字段名为hf,并为其设置默认值.F.、显示类“Checkbox”。

(2) 设置gzrq字段和csrq字段的标题属性:分别为“工作日期”和“出生日期”。

(3) 设置gzrq字段的有效性规则,要求gzrq小于当前系统日期。

(4) 创建一个普通索引abcd,要求以gzrq字段进行排序,相同时以csrq字段排序。

2. 计算gz表中qt字段的值:jbgz小于1000时为100,否则为200

3. 利用项目管理器操作:将XIM表改名为XIMB表,并为其设置编辑说明“系名表”。

4. JS表和RK表已存在以gh字段为索引表达式的主索引jsgh和普通索引rkgh。以JS表为主表,RK表为子表按gh建立永久关系,并根据以下要求设置参照完整性规则:当在JS表中修改和删除记录时,若RK表中有相应的记录(gh字段的值),则禁止对JS表进行修改和删除。

练习15

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中JS表:

(1) 添加一个能存储两个GB2312字符集中汉字的字段,字段名为degree,并为其

江苏省VFP2005秋2006春上机

设置标题“学位”、默认值“学士”、显示类 “Listbox”。

(2) 设置表的记录级有效性规则,要求gzrq与csrq的年份相差16以上(对已有数据不作验证)。

(3) 创建一个普通索引abcd,要求以xdh字段进行排序,相同时以gzrq字段排序。

2. 计算gz表中qt字段的值:jbgz小于1000时为100,否则为jbgz×10%后“园整”(四舍五入)到百位(例如149.5园整后为100、150.1园整后为200、250.1园整后为300等等,提示:用ROUND()函数)。

3. 利用项目管理器操作:将XIM表改名为XIMB表,并为其设置为“包含”状态。

4. JS表和RK表已存在以gh字段为索引表达式的主索引jsgh和普通索引rkgh。以JS表为主表,RK表为子表按gh建立永久关系,并根据以下要求设置参照完整性规则:当在JS表中修改记录时,若RK表中有相应的记录(gh字段的值),则同步对RK表进行修改;当在JS表中删除记录时,若RK表中有相应的记录(gh字段的值),则禁止对JS表进行删除。

练习16

打开软盘根目录中的项目文件TEST, 在该项目中已有一数据库SJK及若干表。

1. 按以下要求修改SJK数据库中JS表:

(1) 添加一个字段类型与宽度均与xm字段相同的字段,其字段名为xmtemp,并计算xmtemp字段的值:等于xm字段值中所有空格去除后的值。例如xm为“高 山”,则xmtemp为“高山”。

(2) 设置zcdh字段的有关属性,使其:只能输入数字字符、默认值为“00”、标题为“职称代号”。

(3) 设置表的触发器,要求:当工作未满一年的记录禁止删除(注:一年是指当前系统日期与gzrq之差为365)。

(4) 创建一个普通索引abcd,要求以xdh字段进行排序,相同时以gzrq字段排序。

2. 利用项目管理器操作:将TS表从项目中移去并删除之。

3. 将zy表复制为Excel文件zy.xls(注:打开zy表后,利用copy命令)。

4. JS表和RK表已存在以xh字段为索引表达式的主索引jsgh和普通索引rkgh。以JS表为主表,RK表为子表按gh建立永久关系,并根据以下要求设置参照完整性规则:当在JS表中修改记录时,若RK表中有相应的记录(gh字段的值),则禁止对JS表进行修改;当在JS表中删除记录时,若RK表中有相应的记录(gh字段的值),则同步删除RK表中相应的记录。

设计查询练习

在TEST项目中已经存在查询chaxun

江苏省VFP2005秋2006春上机

练习1

已知在SJK的教师(JS)表中含有系代号(xdh)、工号(gh)、姓名(xm)字段;任课(RK)表中含有工号(gh)、课程代号(kcdh)等字段。按如下要求修改查询: 基于JS表和RK表查询“陆友情”老师所在系的每位老师的任课门数,输出xdh、gh、xm、任课门数,查询结果按姓名排序。(提示:筛选条件中用到SQL语句select xdh from js where xm='陆友情'; 查询保存并关闭设计器后,将无法再次在设计器中打开,只能在编辑窗口中修改该查询的SELECT-SQL语句。)

练习2

已知在SJK的教师(JS)表中含有系代号(xdh)、工号(gh)、姓名(xm)字段;工资(GZ)表中含有工号(gh)、工资(jbgz)等字段。按如下要求修改查询:

基于JS表和GZ表查询各系男女教师人数、工资总金额、最高工资,要求输出字段包括:Js.xdh、Js.xb、人数、工资总金额、最高工资,结果以性别、系代号为排序依据。 练习3

为了检查课程(KC)表中是否有学生没有选的课程,可以基于KC表和成绩(CJ)表查询出在课程表中存在而在成绩表中不存在的那些课程记录。要求:输出课程表的所有字段和成绩表的课程代号(kcdh)字段,查询结果中相同的记录(行)只需出现一次,并按KC表的kcdh字段升序排序。(提示:使用“左联接”联接KC和CJ表,然后在结果中选出Cj.kcdh字段为Null值的记录)

练习4

已知图书(TS)表中含有分类号(flh)、入库日期(rkrq)、价格(jg)和册数(cs)等字段。在TEST项目中已存在查询chaxun,按如下要求修改查询:

基于图书(TS)表统计各大类图书上半年和下半年入库的馆藏册数、金额。要求输出字段为:大类、入库时间、馆藏册数、金额,查询结果首先按大类降序排序,同一大类中再按入库时间排序。注:

分类号(flh)的第一个字符表示大类;

如果入库月份在1至6月,则入库时间为“上半年”,否则入库时间为“下半年”; 金额为jg×cs。

练习5

已知教师(JS)表中含有工号(gh)、姓名(xm)等字段;工资(GZ)表中包含有工号(gh)、应发工资(yfgz)等字段。按如下要求修改查询:

基于JS表和GZ表统计每位教师应交的所得税。要求输出的字段为:gh、xm、所得税,输出结果按所得税降序排序且仅输出前6位教师的信息。

注:所得税是根据应发工资(yfgz) 进行计算,其算法是:1000元以下(含1000元)则无所得税;超过1000元且小于或等于2000时,超过1000元部分按5%计算;超过2000元时,1000至2000部分按5%计算,超过2000的部分按10%。例如,应发工资为2600,则所得税为1000×5%+(2600-2000)×10%。(提示:无所得税时,用0000.00表示)

练习6

已知学生(XS)表中含学号(xh)、姓名(xm)、性别(xb)、班级编号(bjbh)等

江苏省VFP2005秋2006春上机

字段;成绩(CJ)表中含有学号(xh)、课程代号(kcdh)、成绩(cj) 等字段。按如下要求修改查询:

基于XS表和CJ表查询“03”年级优秀生的信息,要求输出的字段为:学生的xh、xm、平均分、最低分、优秀生(若为优秀生则该字段的值为“是”,否则为“否”),输出结果按是否优秀生的降序排序(“是”排在前),相同时再按平均分的降序排序。 注:xh字段的前两位表示年级;优秀生的条件是各门课的平均分不低于80且每门课的成绩不低于70。

练习7

已知教师(JS)表中包含有工号(gh)、姓名(xm)等字段;任课视图(RKST)中包含有工号(gh)、各教师任课的课程名(kcm)、课时数(kss)等信息。按如下要求修改查询:

基于JS表和RKST视图查询各教师的教学工作量(总课时数)。要求输出的字段为gh、xm、总课时数、奖金,查询的结果按奖金的降序排序。注:

奖金的计算方法为:教师的标准工作量为10课时,每超1个课时的奖金为100元,未超标准工作量的教师无奖金;

无奖金时,奖金用0000.00表示。

练习8

数据库SJK的学生(XS)表中包含学号(xh)、姓名(xm)、性别(xb)、班级编号(bjbh)等字段;成绩(CJ)表中包含有学号(xh)、课程代号(kcdh)、成绩(cj)等字段。按如下要求修改查询:

基于XS表和CJ表查询所有获奖学金的同学名单及奖学金的等级。要求输出的字段为xh、xm、选课门数、奖学金等级(A或B),输出的结果按奖学金等级排序,相同时再按学号升序排序。

注:奖学金等级分为A和B两个等级,A等奖学金的条件是各课程的平均分不低于85,B等奖学金是各课程的平均分不低于80,并且要求获A、B等奖学金获得者应各课程均无不及格记录(小于60)、选课门数不少于5。

练习9

在TEST项目中已经存在查询chaxun,已知在sjk的学生(xs)表中含有系代号(xdh)、学号(xh)、姓名(xm)字段;成绩(cj)表中含有学号(xh)、课程代号(kcdh)、成绩(cj)字段。按如下要求修改查询:

基于xs表和cj表查询“刘玉敏”同学所在系的每位同学平均成绩,输出xdh、xh、xm、平均成绩,查询结果按姓名排序。(提示:筛选条件中使用SELECT xs.xdh FROM xs WHERE xm= 刘玉敏 )

练习10

在TEST项目中已经存在查询chaxun,且在sjk中包含一个名为xsjy的视图,视图中包括学生学号(xh)、借阅日期(jyrq)、还书日期(hsrq)),在sjk的学生(xs)表中含有学号( xh)、姓名(xm)、所在班级编号(bjbh)。按如下要求修改查询:

基于xs表和xsjy视图查询每个班每个学生借书本数、过期罚款数。要求输出字段为:Xs.bjbh,Xs.xh, Xs.xm,借书本数、罚款数。查询结果按bjbh排序,bjbh相同的,按Xs.xh排序。(注:罚款数以每本书借阅超过30 天者,超过部分按每天 0.05

江苏省VFP2005秋2006春上机

元计算)

练习11

在TEST项目中已经存在查询chaxun,且在sjk中包含一个名为jsjy的视图,视图中包括工号(gh)、借阅日期(jyrq)、还书日期(hsrq)),在sjk的教师(js)表中含有工号( gh)、姓名(xm)、系代号(xdh)。按如下要求修改查询:

基于js表和jsjy视图查询每个系每个教师借书本数、过期罚款数。要求输出字段为:Js.xdh,Js.gh, Js.xm,借书本数、罚款数。查询结果按xdhh排序,xdh相同的,按Js.gh排序。(注:罚款数以每本书借阅超过60 天者,超过部分按每天 0.05 元计算)

练习12

在TEST项目中已经存在查询chaxun,已知在sjk的课程(kc)表中含有课程代号(kcdh)、课程名(kcm)字段,成绩(cj)表中含学生学号(xh)、课程代号(kcdh)和成绩(cj)字段。按如下要求修改查询:

基于kc表和cj表查询每门课程选课人数、成绩优秀人数和成绩不及格人数。输出字段包括:Kc.kcdh、 Kc.kcm、选课人数、优秀人数、不及格人数。输出结果按选课人数降序排序。(注:成绩大于等于90为优秀,小于60为不及格)

练习13

在TEST项目中已经存在查询chaxun,已知在sjk的图书(TS)表中含有分类号(flh)、书名(sm)字段,借阅(JY)表中含分类号(flh)、借阅日期(jyrq)和还书日期(hsrq)字段。按如下要求修改查询:

基于TS表和JY表查询每本书的被借阅次数、借出总天数。输出字段包括:Ts.flh、 Ts.sm、借阅次数、借出总天数。借出总天数为 . NULL.者不输出。

练习14

在TEST项目中已经存在查询chaxun,已知在sjk的图书(TS)表中含有分类号(flh)、书名(sm)字段,借阅(JY)表中含分类号(flh)、借阅日期(jyrqh)和还书日期(hsrqj)字段。按如下要求修改查询:

基于TS表和JY表查询每大类图书的被借阅次数、平均借出天数。输出字段包括:大类、借阅次数、平均借出天数。输出结果按平均借出天数降序排序。(注:分类号(flh)的第一个字符为大类值)

练习15

在TEST项目中已经存在查询chaxun,已知在sjk的学生(xs)表中含有学号(xh)、姓名(xm)字段,成绩(cj)表中含有学号(xh)、课程代号(kcdh)和成绩(cj)字段。按如下要求修改查询:

基于xs表和cj表查询每个学生考试成绩及按学分制表示的成绩。输出字段包括:xh、xm、kcdh、cj、学分制成绩。查询结果按xh升序排序。(注:学分制表示的成绩规定是: 百分制 85~100分 对应 学分制 A;百分制 60~84分 对应 学分制 B;百分制 60以下 对应 学分制 F)

练习16

在TEST项目中已经存在查询chaxun,已知在sjk的学生(XS)表中含有系代号

江苏省VFP2005秋2006春上机

(xdh)、学号(xh)、性别(xb)字段;成绩(CJ)表中含有学号(xh)、课程代号(kcdh)、成绩(cj)字段;课程(KC)表中含有课程代号(kcdh)、是否必修课(bxk,逻辑型)字段。按如下要求修改查询:

基于xs表、cj表和kc表分别统计各系男女生的必修及选修课平均成绩,输出字段包括xdh、xb、课程性质、平均成绩,结果按系代号升序排序。其中,课程性质指是必修课还是选修课,输出结果显示为“必修课”或“选修课”。

设计菜单练习

练习1

已知项目TEST中已存在菜单menu,利用菜单

设计器,按如下要求修改菜单。

1. 按图所示要求为“表操作”菜单栏下的“添加

记录”菜单项增加子菜单(含分组线及快捷键

的设置);

2. 为“数据浏览”菜单中的“教师”菜单项设置

SQL命令,功能为浏览JS表数据;

3. 在“文件”菜单栏下插入系统菜单项“退出”。

练习2

已知项目TEST中已存在菜单menu,利用菜单

设计器,按如下要求修改菜单。

1. 按图1所示在“表操作”菜单栏右边添加一个

“职工工资管理” 菜单栏及其子菜单;

(注:“打印”菜单为系统菜单项)

2. 为“职工工资管理”菜单栏下的“工资调整”菜单编写UPDATE-SQL命令,当执行该菜单时,将工资(GZ)表中所有基本工资(jbgz)低于1000元的记录都调整到1000元;

练习3

已知项目TEST中已存在菜单menu,利用菜单设计

器,按如下要求修改菜单。

1. 删除“表操作”菜单栏下的“数据查询”菜单的

子菜单项之间的分组线(注:两条);

2. 按图1所示要求为“表操作”菜单栏下的“添加

记录”菜单增加一个子菜单; 图1

3. 为“从文件”菜单项添加过程代码。该过程代码是在如下代码的基础上添加一条语句,实现将TS1.DBF 中的记录添加到TS中:

IF USED(“TS”)

SELECT ts

ELSE

江苏省VFP2005秋2006春上机

USE ts

ENDIF

练习4

已知项目TEST中已存在菜单menu,利用菜单设计器,按如

下要求修改菜单。

1. 按图1所示要求在“文件”菜单栏下插入一个“退出VFP系统”

菜单项,并编写命令,当执行该菜单时能退出(关闭)VFP系统; 图1

2. 在“文件”菜单栏下插入系统菜单项“新建”和“打开”;

3. 为“表操作”菜单栏下的“数据查询”菜单的“教师”子菜单项

设置SQL命令:当执行该“教师”菜单时,在浏览窗口显示教师(JS)表中

各个系男女教师人数,显示字段包括xdh、xb和人数。

练习5

已知项目TEST中已存在菜单menu,利用菜单设计器,

按如下要求修改菜单:

1. 按图1所示,在“表操作”菜单栏下增加一个“删

除”菜单项及其子菜单(其中,“打开”菜单为系统菜

单栏);

2. 为“删除记录”菜单设置访问键,并为该菜单编写图

1 过程代码:选择学生(XS)表为当前表(若该表未打

开,则先打开之),然后删除学号(xh)以“00”开头的记录。

练习6

已知项目TEST中已存在菜单menu,利用菜单设计器,

下要求修改菜单:

1. 按图1所示,在“表操作”菜单栏下添加一个“创

新表”菜单,并为“创建新表”菜单编写CREATE – SQL

令,当执行该菜单项时,创建 xx表,其结构为:aa(C,

8)、bb(N, 4)、cc(D)。

2. 将下列代码加到菜单的适当位置,使菜单运行结束时执行之:

CLOSE ALL

1 练习7

已知项目TEST中已存在菜单menu,利用菜单设计

器,按如下要求修改菜单。

1. 在“文件”菜单栏下插入系统菜单“退出”,并将

该菜单设置为禁用(跳过);

2. 按图1所示,将“表操作”菜单栏下的“数据浏览”

菜单的菜单名修改为“表复制”,其子菜单不变;

图1

3. 为“表复制”菜单栏下的“教师”菜单编写

按如建命

江苏省VFP2005秋2006春上机

SELECT-SQL命令:当执行该菜单时,将JS表(含记录)复制到JSC表。

提示:命令中使用INTO TABLE子句。

练习8

已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。

1. 在“文件”菜单栏下插入系统菜单项“导入”和

“导出”;

2. 如图1所示,在“表操作”菜单栏后增加一个“数据维护”菜单

项及其子菜单(含分组线),并为其中的

“课程”菜单编写过程代码:当执行该菜单

图1 时,选择KC

表为当前表(若

KC

表未打开,则需要打开该表),然后浏览该表。

练习9

已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。

1. 按图1所示要求为“表操作”菜单栏下的“添加记录”菜单项增加一个子菜单,为“表操作”菜单栏下的各子菜单项设置分隔线;

2. 在“文件”菜单栏下插入VFP系统菜单项

“退出”;

3.为“数据查询”菜单栏下的“课程”菜单项编写SQL命令,当执行该菜单时,在

浏览窗口显示课程代号、课程名及成绩信息(注:根据KC表与CJ表查询)。

图1 练习10

已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。

1. 图1所示要求为“表操作”菜单栏下各子菜单项设置分隔线;

2. 在“文件”菜单栏下插入一个“退出”菜单

项,并编写命令,当执行该菜单时能关闭

VFP系统;

3. 为“数据浏览”菜单栏下的“学生”菜单项编写过程代码,当执行该菜单项时,

图1 运行以下命令:

SELCT XS

BROW

练习11

已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。

1. 按图1所示要求为“表操作”菜单栏下的“添

加记录”菜单项增加一个子菜单(含分组

线);

2. 在“文件”菜单栏下插入VFP系统菜单项

“另存为”;

3. 为“添加记录”菜单栏下的“课程”菜单项添加过程代码,当执行该菜单项时,

江苏省VFP2005秋2006春上机

选择课程表(KC)为当前使用表(若该表未打开,则首先打开之),并在课程表中添加一条空记录。

练习12

已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。

1. 按图1所示要求为“表操作”菜单栏前增加一

个“编辑”菜单栏及其子菜单,并为 “教师”

菜单设置访问键;

为“编辑”菜单栏下的“学生”菜单项添加过程代码:当执行该菜单时,选择学生表(XS)为当前使用表(若该表未打开,则首先打开之),并逻辑删除学生表中xh 前二位为“00”的记录。

练习13

已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。

1. 按图1所示要求为“表操作”菜单栏前增加一个“编辑”菜单栏及它的子菜单;

2. 为“编辑”菜单栏下的“学生”菜单项设置访问键;

3. 为“编辑”菜单栏下的“学生”菜单项添加过程代码,当执行该菜单项时,选择学生表为当前使用表,并将学生表中jg 为“江苏南京”记录全部修改为“江苏省南京”。

练习14

已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。

1. 为“文件”菜单栏下的“恢复系统菜单”菜单项设置快捷键“CTRL+R”。

2. 在“文件”菜单栏下插入系统菜单“关闭”。

3.

将下列代码加到菜单的适当位置,使得菜单执行时先执行该段代码。

IF USED(

“gzb”

) 图1 SELECT gzb

ELSE

USE gzb

ENDIF

4. 为“数据查询”菜单栏下的“课程”菜单项设置SQL命令:当执行该菜单项时,在浏览窗口显示课程(KC)表中每门课程的平均成绩,显示字段包括课程名、平均成绩。

练习15

已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。

1. 按图1所示要求为“表操作”菜单栏下的“添加记录”菜单项增加一个子菜单;

江苏省VFP2005秋2006春上机

2. 为“表操作”菜单栏下的各子菜单项设置分组线;

3. 将下列代码加到菜单的适当位置,使得菜单执行时先执行该段代码:

IF USED("gzb")

SELECT gzb

ELSE

USE gzb

ENDIF

4.为“数据查询”菜单栏下的“教师”菜单项设置SQL命令:当执行该菜单项时,在浏览窗口显示工资(GZ)表中各个部门的平均基本工资,显示字段包括部门、平均工资(注:GH的第一个字符为部门)。 图1

练习16

已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。

1. 按图1所示为“表操作”菜单栏下添加一个

“统计分析” 菜单项及其子菜单;

2. 已知在A盘根目录下存在成绩(CJ)表,为“优秀人次”菜单项编制命令,统计各门科优秀

的人次,要求当执行该菜单时在浏览窗口显示课程代号(kcdh)

、优秀人次(注:图1 成绩(cj)大于等于

90分为优秀);

4. 将“添加记录”菜单项废止。

设计表单练习(练习1~~练习8为2006年春上机;练习9~~练习16为2005年秋上机) 练习1

项目管理器中已经存在表单FH,该表单用来完成100以内加法运算的自动出题与测试。根据下列要求修改表单,完成以后运行表单,效果如图2所示。

1. 设置表单的有关属性,使表单边框为“固定对话框”、运行时总是在其他表单前面;

2. 设置文本框的边框样式为“无边框”,字体样式为带下划线; 图2

3. 在“答对题数”标签后再添加一个标签lblRight,并设置其显示文本(标题)为“0”;

4. 完善“出题”按钮的Click事件代码,使得单击该按钮后,文本框控件获得焦点(注:在原代码后添加一条语句);

5. 完善文本框控件的LostFocus事件代码,完成的功能是:如果“被加数”和“加数”两个标签控件(lblBjs和lblJs)的标题显示数字之和与该文本框的值相等,则让新添加的标签lblRight的标题显示数字加1(注:在原代码的空白处添加一条语句)。

练习2

江苏省VFP2005秋2006春上机

项目管理器中已经存在表单FG,该表单用来在学生记录中随机抽取3名获奖者。表单利用计时器控件控制抽奖的开始和结束,利用新建的Count属性计数,利用命令按钮控制3次抽奖过程。

表单运行时,命令按钮显示“抽第1个人”。单击按钮开始抽奖,此时按钮上滚动显示计时事件所定位的学生记录的学号和姓名,当再次点击按钮时,停止计时器,并将最后定位记录的学号和姓名添加到按钮下方的列表框中,表单的Count属性值加1,命令按钮显示为“抽第2个人”,依此重复三次,便得到结果。运行效果如图2所示。按如下要求修改表单:

1. 设置计时器控件Timer1的初始状态为禁用,并指定调用计时器事件的间隔为100毫秒;

2. 为表单添加一个新属性,属性名为“Count”,并将该属性的初值设为1;

3. 在表单中添加一个列表框控件List1,并设置其字号大小与宽度与命令按钮相同;

4. 编写命令按钮的初始化事件代码(注:要求仅用一条语句),其功能是根据表单的Count属性值显示按钮的标题为抽第几个人,例如当表单的Count属性值为2时,按钮的标题为“抽第2个人”;

5. 完善按钮的Click事件代码,将按钮上的标题文本添加到列表框中(注:要求在原代码的空白行处添加一条语句)。

2

练习3

项目管理器中已经存在表单FI,该表单用来完成100以内加法的自动出题和测试。根据下列要求修改表单,完成以后运行表单,效果如图所示。

1. 设定表单的有关属性,使边框为“单线边框”、表单类型为模式表单;

2. 设置文本框Text3的文本对齐方式为“中间”,字体样式为带下划线;

3. 在“答对题数”标签后,添加一个文本框控件Text5(用来显示答对题数),并将其设为禁用、初值为0;

4. 已为表单创建了ChuTi方法且已为该方法编写了代码,设置表单的初始化事件代码,要求调用该方法;

5. 完善Text3文本框控件的LostFocus事件代码(要求在IF ENDIF之间添加2条语句),其功能是:如果“被加数”文本框Text1和“加数”文本框Text2的值之和与该文本框的值相等,则让新添加的文本框控件Text5的值加1,并将自身的值清空(即设置为空字符串)。

江苏省VFP2005秋2006春上机

按下列要求修改项目中的表单文件FJ,该表单用来按专业、班级浏览学生。完成修改以后运行表单,屏幕显示如图2所示。

1. 在表单的数据环境中添加学生(XS)表,并在班级(BJ)表与XS表之间以BJ为主表按bjbh(班级编号)字段建立临时关联(在数据环境中通过字段名的拖放操作建立临时关系);

2. 将表格控件grdBj设置为无记录选择器列,并设置为无表格线;

3. 添加表格控件grdXs,指定其记录源类型为“别名”,记录源为“XS”。

4. 完善表格控件grdBj的AfterRowColChange事件代码(要求仅修改原事件代码中的最后一条语句),其功能是:让表单中Label2标签显示当前选定专业的名称、选定班级的编号及人数(如图2所示)。例如,选定的专业为“船舶海洋工程”,选定的班为“000401011”,则Label2标签应显示“船舶海洋工程专业000401011班(15人)”。

5. 编写组合框控件cboZy的InterActiveChange事件代码,要求当选定一个专业后,让焦点设置到grdBj表格上。

练习5

项目中的表单FK用来测试打字速度。根据下列要求修改表单,完成以后运行表单,效果如图2所示。

1. 设置标签控件Label2的有关属性,使该控件运行时自动调整大小;

2. 将“开始输入”命令按钮设置为表单中按回车键时默认响应的按钮;

3. 根据图2所示修改表单的标题,并设置表单在运行时自动居中;

4. 在表单中添加“生成文本”命令按钮,并将控件名设置为cmdReset;

5. 为“生成文本”命令按钮编写Click事件代码:调用表单的Init方法;

6. 完善“开始输入”命令按钮的Click事件代码,增加下列功能:让文本框控件Text1获得焦点、将表单的BeginTime属性值设置为当前的系统日期时间(注:BeginTime属性为表单的新建属性)。

江苏省VFP2005秋2006春上机

项目管理器中已经存在表单FL,该表单用来测试打字速度。根据下列要求修改表单,完成以后运行表单,效果如图2所示。

1。设置标签控件Label2的有关属性,使该控件在运行时能自动调整大小;

2.将“开始输入”命令按钮设置为表单中按回车键时默认响应的按钮;

3.根据图所示设置表单的标题,并设置表单在运行时自动居中;

4.在表单中添加一计时器(控件名为Timer1),并设置其为废止状态、时间间隔为1秒;

5.完善“开始输入”命令按钮的Click事件代码,增加下列功能:将表单的BeginTime属性值设置为当前的系统日期时间(注:BeginTime属性为表单的新建属性),将添加的计时器控件Timer1设置为启用;

6. 为Timer1控件的Timer事件编写代码,要求使用一条语句实现:根据当前时间和表单的BeginTime属性值计算所用的时间(单位为秒),并将其填入txtTime文本框中。

图2

练习7

TEST项目中已存在表单FormA,其功能是显示当前目录中的“表”文件名及所选中的表的数据(即用鼠标单击“列表框”内的文件名,则将在右边的表格内显示所选择表的内容),并使表格上方的标签显示该表的名称。表单运行时,其效果如图2所示。

1. 修改表单的有关属性,使得标题为“显示表及数据”,边框样式为“固定对话框”;

2. 如图2所示,为表单添加“关闭”命令按钮,并编写Click事件代码使其能够关闭表单;

3. 完善列表框的Init事件代码,要求添加一条语句,用于设置列表框的、与RowSource属性值相适应的RowSourceType属性值;

4. 编写列表框的Click事件代码(仅用3条语句),使得单击列表框中的数据项(表文件名)时:

控件label2显示如图2所示的内容(即在列表框中所选择的表文件名加上“表的数据”);

表格控件显示所选择的表的内容(提示:设置表格控件的RecordSourceType及RecordSource属性)。

本文来源:https://www.bwwdw.com/article/cm4m.html

Top