秋上机.docx
- 文档编号:24715270
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:26
- 大小:329.41KB
秋上机.docx
《秋上机.docx》由会员分享,可在线阅读,更多相关《秋上机.docx(26页珍藏版)》请在冰豆网上搜索。
秋上机
2004年秋
一、项目、数据库和表操作(12分)
●打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
1.按如下要求修改SJK中工资(KC)表的结构:
(1)设置学分(xf)字段的默认值:
3;
(2)对kcdh字段设置掩码:
接受4个字符,且只接受数字;
(3)设置课时数(kss)字段的有效性(验证)规则:
大于等于2并且小于等于6;
(4)为表增加一个备注字段kcsm,标题为:
课程说明;
(5)创建普通索引xfdh,要求先按xf字段排序,xf相同的再按课程代号(kcdh)字段排序;
2.为KC表添加编辑说明:
“课程表”。
3.设置SJK中zy表的包含状态为:
“包含”。
4.已知项目中存在xs表,为学生表添加一个字段年龄(nl),数值型,宽度:
2,并计算表中所有籍贯(jg)为“江苏南京”的学生的年龄。
(计算方法为当前日期的年份减去学生出生日期的年份。
)
5.SJK中JS表中已存在主索引jsgh,索引表达式为gh;GZ表已存在普通索引gzgh,索引表达式为gh。
以JS表为主表,GZ表为子表,按gh建立永久关系,并设置JS表和GZ表之间的参照完整性:
删除限制。
●打开软盘根目录下的项目文件TEST,在该项目文件中已存在一个数据库SJK,根据下列要求完成有关数据库及表的操作。
1.修改数据库中图书(TS)表的结构,要求:
(1)修改jg字段的宽度,使之能容纳4位整数和2位小数;
(2)将kcs字段的标题设置为“库存数”,默认值设置为10;
(3)设置kcs字段的有效性规则(验证)及有效性(验证)信息:
库存数必须大于0;
(4)创建普通索引smrq,要求先按书名(sm)排序,如果书名相同,再按入库日期(rkrq)排序。
2.将自由表JSB添加到SJK中,并在项目中为该表添加说明:
“教师表”。
3.先修改软盘上TS1表的结构,添加一个类型、宽度和小数位均与jg字段相同的newjg字段,然后计算该字段的值:
jg的基础上增加15%。
以KC表为主表、RK表为子表,根据kcdhjg建立永久性关系,并设置两个表之间的参照完整性规则:
如果在RK表中存在匹配的关键字值,则禁止在KC表中删除记录。
●打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
1.按如下要求修改SJK中图书(TS)表的结构:
(1)将分类号(flh)字段的标题设置为“分类号”;
(2)设置rkrq字段的有效性(验证)规则:
必须是当前日期(包括当前日期)之前;
(3)设置rkrq字段的有效性(验证)信息:
人库日期必须是当前日期之前;
(4)对分类号(flh)字段设置输入格式:
删除输入字段前导空格;
(5)创建一个普通索引zj,要求先按作者(zz)字段排序,作者相同的再按价格(jg)字段从小到大排序。
2.把TEST项目中的自由表GZC移出项目;
3.把软盘根目录中的表文件TS1.DBF添加为TEST项目中的自由表;
4.为TS1表添加一条记录,记录内容为:
flh
sm
zz
isbn
jg
kcs
rkrq
T01.123
计算机应用基础
王平
7-305-0405-6
20
100
08/01/03
5.SJK中XIM表已存在主索引xdh,索引表达式为xdh,JS表已存在普通索引xdh,索引表达式为xdh,以XIM表为主表,JS表为子表按xdh建立永久关系,并设置XIM表和JS表之间的参照完整性:
更新级联。
●打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
1.按如下要求修改SJK中的教师(JS)表结构:
(1)为工作日期(gzrq)字段设置标题:
工作日期;
(2)JS表中含有日期型字段出生日期(csrq),设置js的记录有效性(验证)规则:
18岁以后(含18岁)才能参加工作;
(3)为职称代号(zcdh)字段设置输入掩码:
接受2个字节的字符,且只接受数字字符;
(4)增加一个备注字段,字段名为zwjs.
(5)创建一个普通索引xdhcsrq,要求先按xdh字段排序,相同的再按csrq字段排序。
2.为JS表添加编辑说明:
教师基本信息表。
3.把盘根目录中的表文件GZB.DBF添加到sjk库中。
4.假定增加教师(jbgz)的具体方法是:
教授jbgz加500元,副教授加300元,讲师和助教加200元。
请按上述方法来修改GZC表中所有的记录的基本工资(jbgz)字段的值。
5.KC表中已存在主索引kcdh,索引表达式为kcdh;RK表已存在普通索引kcdh,索引表达式为kcdh。
以KC表为主表,RK表为子表,按KCDH建立永久关系,并设置KC表和RK表之间的参照完整性:
更新级联。
●打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
1.按如下要求修改SJK中教师(JS)表的结构:
(1)将简历(jl)字段标题设置为:
简历
(2)对工号(gh)字段设置输入掩码:
接受5个字节的字符,且第1个字符必须为大写字母,后4个字符只接受数字;
(3)设置工作日期(gzrq)字段的有效性(验证)规则:
工作日期的年份必须小于等于2004年且大于等于1960年;;
(4)设置gzrq字段的有效性(验证)信息:
输入的工作日期必须在1960~2004之间;
(5)创建一个普通索引xdhzc,要求先按系代号(xdh)字段排序,系代号相同的再按职称代号(zcdh)字段排序。
2.把软盘根目录中的表文件GZB.DBF添加为TEST项目中的自由表,并为其添加说明信息为:
工资信息表。
3.将GZB表中所有讲师的其它(qt)工资项增加150元。
4.为JS表设置更新触发器:
仅允许更新1960年(含1960年)以前参加工作的教师记录。
5.SJK中JS表已存在主索引jsgh,索引表达式为gh,GZ表已存在普通索引gzgh,索引表达式为gh,以JS表为主表,GZ表为子表按gh建立永久关系,并设置JS表和GZ表之间的参照完整性:
删除级联。
●打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
1.按如下要求修改SJK中成绩(CJ)表的结构:
1)将成绩(CJ)字段的标题设置为“成绩”;
2)设置成绩(cj)字段的有效性(验证)规则:
大于等于0小于等于100;
3)设置cj字段的有效性(验证)信息:
学生的成绩必须在0—100之间。
4)创建一个普通索引xhcj,要求先按学号(xh)字段排序,学号相同的再按cj字段排序;
5)对cj字段设置字段注释:
成绩小于60分为不合格
2.为CJ表添加编辑说明为“学生成绩表”。
3.把软盘根目录中的表文件GZB.DBF添加为TEST项目中的自由表。
4.计算GZB表中所有记录的应发工资(yfgz),应发工资的计算公式为:
yfgz=jbgz+gwjt+zhjt+zfbt+qt
5.为CJ表设置更新触发器:
kcdh的值为“06”或“09”的允许更新,否则不允许更新。
6.SJK中KC表已存在主索引kcdh,索引表达式为kcdh,CJ表已存在普通索引cjkcdh,索引表达式为kcdh,以KC表为主表,CJ表为子表按kcdh建立永久关系,并设置KC表和CJ表之间的参照完整性:
删除限制。
●打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
1.按如下要求修改SJK中课程(KC)表的结构:
1)将课时数(kss)字段的标题设置为“课时数”;
2)设置学分(kss)字段的有效性(验证)规则:
大于等于2小于等于8;
3)设置kss字段的有效性(验证)信息:
某一门课的课时数不能小于2和大于8。
4)对课程代号(kcdh)字段设置输入掩码:
接受4个字节的字符,且只接受数字字符;
5)创建一个普通索引kskcdh,要求先按kss字段排序,xf相同的再按kcdh字段排序;
2.为KC表添加编辑说明为“课程信息表”。
3.把软盘根目录中的表文件GZB.DBF添加为TEST项目中的自由表。
4.修改GZB表中所有记录的综合津贴(zhjt)字段的值,规则为:
综合津贴为基本工资(jbgz)的5%。
5.为KC表设置删除触发器:
不允许更新。
6.SJK中KC表已存在主索引kcdh,索引表达式为kcdh,CJ表已存在普通索引cjkcdh,索引表达式为kcdh,以KC表为主表,CJ表为子表按kcdh建立永久关系,并设置KC表和CJ表之间的参照完整性:
删除限制。
●打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
1.按如下要求修改SJK中学生(JS)表的结构:
(1)将性别(xb)字段的标题设置为“性别”,默认值设置为“男”;
(2)设置xb字段的有效性(验证)规则,要求性别必须为“男”或“女”;
(3)设置xb字段的有效性(验证)信息为:
“性别必须为男或女”;
(4)对工号(gh)字段设置输入掩码:
接受5个字节的字符,且首位只接受字母字符,后4个字节只接受数字。
2.把软盘根目录中的表文件TS1.DBF添加为TEST项目中的自由表,并为其添加编辑说明为“图书表”。
3.为TS1表按flh字段排序创建一个普通索引FLH。
4.为JS表设置删除触发器:
1970年(包括1970年)以后出生的不允许删除。
5.XS表已存在主索引xsxh,索引表达式为xh,CJ表已存在普通索引cjxh,索引表达式为xh,以XS表为主表,CJ表为子表按xh建立永久关系,并设置XS表和CJ表之间的参照完整性:
删除级联。
二、设计查询(8分)
●在TEST项目中已经存在查询chaxun,已知在sjk的班级(bj)表中含有班级的编号(bjbh),班级所在的系代号(xdh)以及该班所属的专业代号(zydh),系名(xim)表中含有系代号(xdh)和系名称(ximing)字段。
按如下要求修改查询:
基于xim表和bj表查询每个系各班级的学生人数以及女生所占比例。
输出字段包括:
xdh、ximing、bjbh、总人数、女生人数、女生所占比例。
查询结果按系代号升序排序,在系代号相等的情况下,按班级编号升序排序。
●在TEST项目中已经存在查询chaxun,且在sjk中包含一个名为xscjst的视图,该视图记录了每一个学生的选课情况以及选修课程的性质,具体字段包括:
学号(xh)、课程代号(kcdh)、成绩(cj)、是否必修课(bxk)、学分(xf),在sjk的学生(xs)表中含有学生的学号(xh)和姓名(xm)。
按如下要求修改查询:
根据xs表和xscjst视图查询每个学生的选课门数,其中必修课几门、选修课几门。
输出字段包括:
xh、xm、选课总门数、必修课门数、选修课门数。
查询结果按选课总门数从小到大排序。
●在TEST项目中已经存在查询chaxun,且在sjk中包含一个名为xscjst的视图,该视图记录了每一个学生的选课情况以及选修课程学分值,具体字段包括:
学号(xh)、课程代号(kcdh)、成绩(cj)、学分(xf),在sjk的学生(xs)表中含有学生的学号(xh)和姓名(xm)。
按如下要求修改查询:
基于xs表和xscjst视图查询每个学生的选课门数、总学分。
输出字段包括xh、xm、xb、选课门数和总学分,查询结果按总学分从高到低排列。
注:
如果该学生的成绩(cj)字段的值小于60分,则该课的学分为0。
●在TEST项目中已经存在查询chaxun,且在sjk中包含一个名为bjcjst的视图,该视图记录了各个班级的学生考试成绩,具体字段包括班级编号(bjbh)、学号(xh)、课程代号(kcdh)、成绩(cj),在sjk的课程(kc)表中含有课程代号(kcdh)课程名称(kcm)字段。
按如下要求修改查询:
基于视图bjcjst和kc表查询各班学生参加课程号为‘03’的课程的考试情况。
输出字段包括:
bjbh、kcdh、kcm、参加考试总人数、优秀率、不及格率。
查询结果按班级编号升序排序。
(注:
优秀率=成绩90分以上(包括90)的人数/总人数,不及格率=不及格(成绩<60)人数/总人数)
●在成绩(CJ)表中输入成绩时,如果课程代号(kcdh)输入了课程(KC)表中所没有的课程代号,那么该学生的成绩就无效,CJ表中这样的记录称为“孤立记录”。
通过查询可以查询出这些孤立记录。
在TEST项目中已存在查询CHAXUN,按如下要求修改查询:
基于课程(KC)表和成绩(CJ)表查询成绩表中的“孤立记录”。
要求输出两个表的所有字段。
相同的行在查询结果中只出现一次,且按学号(xh)升序排序。
(提示:
使用“右联接”联接KC和CJ表,然后在结果中选出KC表中kcdh字段为Null值的记录。
)
●在TEST项目中已经存在查询chaxun,且在sjk中包含一个名为xsst的视图,视图中包含学号(xh)、姓名(xm)、班级编号(bjbh)、系代号(xdh)、党员(dy),在sjk的系名(xim)表中含有系名称(ximing)字段。
按如下要求修改查询:
基于xsst和系名(xim)表查询每个系学生党员的人数以及男、女生党员各占的比例。
输出字段包括:
xdh、ximing、党员人数、男党员比例、女党员比例。
查询结果按系代号升序排列。
●在TEST项目中已经存在查询chaxun,在sjk的教师(js)表中含有教师的出生日期(csrq)字段和教师所在的系代号(xdh)字段,系名(xim)表中含有系代号(xdh)和系名称(ximing)字段。
按如下要求修改查询:
基于xim表和js表查询每个系教师的年龄结构。
输出字段包括:
xdh、ximing、教师总人数、_40岁以下(包括40岁)人数、_40岁以上人数。
查询结果按系代号升序排列。
注:
年龄=YEAR(DATE()-YEAR(js.csrq)))
在TEST项目中已经存在查询chaxun,已知SJK的学生(XS)表含有学号(xh)字段和姓名(xm)字段,学生成绩(CJ)表中含有学生的成绩(cj)字段。
按如下要求修改查询:
基于XS表和CJ表查询每个学生选修课程的成绩情况。
输出字段包括:
xh、xm、选课门数、平均成绩、不及格门数。
查询结果按学号升序排列。
三、设计菜单(5分)
●
已知项目TEST中已存在菜单menuh,利用菜单设计器,按如下要求修改菜单。
1.图1所示要求在“系统设置”菜单栏后面增加“教师档案管理”菜单栏,并为它设置子菜单;
2.为“教师工资管理”菜单栏下的“工资调整”菜单项编写命令,当执行该菜单项时,工资(GZ)表中所有教师的岗位津贴(gwjt)统一增加200元;
3.将下列代码加到菜单的适当位置,使菜单运行时首先执行它。
Clear
●
已知项目TEST中已存在菜单menuC,利用菜单设计器,按如下要求修改菜单。
1.按图1所示为“统计分析”创建子菜单;
2.已知在A盘根目录下存在表文件CJ.DBF,为“不及格统计”菜单项编制命令,统计各门科不及格的人次,要求当执行该菜单时在浏览窗口显示课程代号(kcdh)、不及格人次(注:
成绩(cj)小于60分为不及格);
3.将“学生档案管理”菜单项废止。
●
已知项目TEST中已存在菜单menuB,利用菜单设计器,按如下要求修改菜单。
1.按图1所示为“学生成绩管理”创建子菜单;
2.已知在A盘根目录下存在表文件CJ.DBF,为“成绩查询”菜单项编制命令,查询总成绩大于300分的学生清单,要求当执行该菜单时在浏览窗口显示学号(xh)和总成绩;
3.在“文件”菜单下插入系统菜单项“打开”。
●
已知项目TEST中已存在菜单menuI,利用菜单设计器,按如下要求修改菜单。
1.按图1所示要求为“人事管理”菜单栏编制子菜单;
2.为“教师工资管理”菜单栏下的“工资调整”菜单项编写命令,当执行该菜单项时,将工资(GZ)表中所有基本工资(jbgz)低于800元的记录都调整到800元;
3.在“系统设置”菜单栏下插入系统菜单栏“打印”。
●项目TEST中已存在菜单menuo,其中已定义了“文件”、“课程管理”、“成绩管理”和“教师任课管理”四个菜单栏。
按如下要求修改菜单,完成后的运行效果如图1所示。
1.在“文件”菜单栏下插入系统菜单“导出”;
2.
为“成绩管理”菜单栏设置子菜单,该子菜单包括二个菜单项“学生成绩录入”、“学生成绩查询”,并用分隔线隔开;
3.为“课程管理”菜单栏下的菜单项“课程代码录入”设置快捷键“CTRL+L”
4.为“课程管理”菜单栏下的“课程代码查询”菜单项设置SQL命令,当执行该菜单项时,在浏览窗口中显示课程(KC)表中所有记录的所有字段;
5.废止“教师任课管理”菜单栏。
●已知项目TEST中已存在菜单menud,利用菜单设计器,按如下要求修改菜单。
1.
按图1所示为“成绩查询”菜单项创建子菜单;
2.已知在A盘根目录下存在表文件CJ.DBF,为“按课程号”菜单项编制命令,统计各门科的选修人数,要求当执行该菜单时在浏览窗口显示课程代号(kcdh)、选修人数;
3.为“文件”下的恢复系统菜单栏设置命令,当执行该菜单项时,将VFP的主菜单恢复为系统默认菜单。
●
已知项目TEST中已存在菜单menug,利用菜单设计器,按如下要求修改菜单。
1.按图1所示为“教师任课管理”编制子菜单;
2.已知课程(KC)表存在主索引,索引名为KCBH,索引表达式为KCBH,为“课程管理”菜单栏下的“课程代码查询”编制过程,该过程完成下列功能:
(1)打开KC表,并将KCBH设置为主控索引;
(2)用SEEK命令查找KCBH为“08”的记录
3.为“文件”菜单栏下的菜单项“返回”设置提示信息:
返回系统菜单,当按下该菜单项,在屏幕的左下角显示该提示信息。
●
已知项目TEST中已存在菜单menua,利用菜单设计器,按如下要求修改菜单。
1.按图1所示增加“学生管理”菜单栏及其子菜单和快捷键;
2.已知在A盘根目录下存在表文件XS.DBF,为“信息查询”菜单项编制过程,打开XS表,并在浏览窗口显示XS表中的记录;
3.在“文件”菜单下插入系统菜单项“打印预览”(即作为子菜单)。
四、设计表单(10分)
●
软盘上TEST项目中已经存在表单FormH,该表单的功能是。
按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。
1.修改表单的有关属性,使表单无最大/小化按钮、不可调整大小、自动居中;
2.修改表格第5列的列标头的有关属性,将显示的“zcdh”修改为“职称代号”;
3.修改列表框控件的有关属性,要求显示两列数据,且通过对数据环境的修改使数据按职称代号排序;
4.完善下拉列表框的InterActiveChange事件代码,要求在原代码的基础上,在合适的位置增加2条语句以完成如下功能:
让标签控件Label2运行时可见,用以显示系名;
5.
完善“确定”命令按钮的Click事件代码,要求在原代码的基础上,在合适的位置增加2条语句以完成如下功能:
用列表框中选择的职称代号更新表格中当前记录的职称代号。
●软盘上TEST项目中已经存在表单FormC,该表单的功能是利用JS表中的教师工号数据进行“摇号”:
单击“开始”按钮,则文本框中随机地显示教师工号,按回车键停止。
按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。
1.将表单的标题改为“摇号”;
2.将文本框改为数据只读;
3.修改形状控件Shap1的有关属性,使形状控件为三维效果;
4.删除表单上的编辑框控件,然后在标签控件Lable2的下方添加一个列表框控件(List1),并将其大小设置为与形状控件Shap1相同(如图2所示);
5.修改“开始”命令按钮的Click事件代码:
要求在原代码之后添加两条命令,使得每次摇出的教师信息添加到列表框中,且“开始”按钮可再次使用;
●软盘上TEST项目中已经存在表单FormB,该表单的功能是根据输入的学号查询显示相应学生的成绩。
按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。
1.将表单左上角的控制图标改为软盘中NET.ICO文件所示图标;
2.
修改表格控件的有关属性,使表格中的数据只读且可获得焦点;
3.修改表格控件的Init事件代码,使得表格显示的学生成绩,如果成绩不及格时该行以红色显示,否则以黑色显示;
4.向表单上添加一个“退出”命令按钮(如图2所示),设置其有关属性、编写Click事件代码,要求单击该命令按钮时关闭所有打开的表和临时表,并关闭表单。
●软盘上TEST项目中已经存在表单FormI,该表单的功能是打印某学生或某课程的成绩。
按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。
1.将表单左上角的控制图标改为软盘中NET.ICO文件所示图标;
2.向表单上添加一个下拉列表框控件Combo1,要求与选项按钮控件组左对齐、能显示2列数据;其数据源(RowSource属性)为查询语句:
SELECTxh,xmFROMxsORDERBY1INTOCURSORtemp1
并且据此设置Combo1控件的RowSourceType属性;
3.修改选项按钮组控件,使之无边框(如图2所示),并为该控件的InterActiveChange事件代码增加两条语句,用于清除下拉列表框的值,并使下拉列表框获得焦点;
4.完善“打印”命令按钮的Click事件代码,要求在原代码之后增加一条语句,用于预览报表文件BB;
5.为“取消”命令按钮设置Click事件代码,其功能是:
关闭表单。
●项目TEST中已经存在表单FormE,该表单的功能是:
更改用户的密码(用户及相关信息存储在表user中)。
按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。
1.将表单的标题改为“更改密码”;
2.将Combo1控件设置为下拉列表框,且修改该控件的有关属性,使得该控件在运行过程中下拉后显示两列数据:
USER表中编号(no)和用户名(name)字段;
3.修改Text1文本框控件的有关属性,使得该文本框中输入的字符均为字符“*”显示
4.完善“确定”命令按钮的Click事件代码,其功能为:
如输入的原密码正确且两次输入的新密码相同,则更改user表中的相应密码(password字段)、关闭表单,否则利用MESSAGEBOX函数显示信息提示框(提示信息为“原密码不对”或“两次输入的新密码不一致”);
5.为“取消”命令按钮的Click事件代码,其功能为关闭表单。
●软盘上TEST项目中已经存在表单FormD,该表单的功能是利用JS表中的教师工号数据进行“摇号”:
单击开始“按钮”则文本框中随机地显示教师工号,按回车键停止。
按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。
1.
将表单的标题改为“摇号”,将文本框改为不可获得得焦点(即不可用);
2.向表单上添加一个正文形的形状控件,位置如图所示,要求为三维效果且叠放层次为置后(即从外观上看不覆盖命令按钮等控件);
3.在列表框的下方添加一个“总清”命令按钮,并设计其Click事件代码,其功能是总清列表框中所有的列表项;
4.设计表单的Destroy事件代码,其功能是关闭所有打开的表或临时表。
●软盘上TEST项目中已经存在表单FormG,该表单的功能是修改教师的职称信息。
按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。
1.
置标签控件L
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上机