04秋上机5671Word格式文档下载.docx
《04秋上机5671Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《04秋上机5671Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
基于XIM表和XS表查询每个系各班级的学生人数以及女生所占比例,要求输出字段包括:
xdh、ximing、bjbh、总人数、女生人数和女生所占比例,查询结果按系代号升序排序,系代号相同时按班级编号升序排序。
三、设计菜单(5分)
项目TEST中已存在菜单MenuH,利用菜单设计器按如下
要求修改该菜单:
1..按图1所示,在“系统设置”菜单栏后面增加“教师档案管理”
菜单栏,并为它设置子菜单;
图1
2.为“教师工资管理”菜单栏下的“工资调整”菜单项编写命令:
当执行该菜单项时,工资(GZ)表中所有教师的岗位津贴(gwjt)统一增加200元;
3.将下列代码加到菜单的适当位置,使菜单运行时首先执行它。
CLEAR
CLOSE TABLES ALL
四、设计表单(10分)
项目TEST中已经存在表单FormH。
按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。
1.修改表单的有关属性,使之外观如Windows对话框(无最大/最小按钮、不可调整大小、自动居中);
2.修改表格第5列的列标头的有关属性,将显示的“zcdh”修改为“职称代号”;
3.修改列表框控件的有关属性,要求显示两列数据(ZC表中的两个字段),且通过对数据环境的设置使数据职称代号排序;
4.完善下拉组合框的InterActiveChange事件代码,要求在原代码的基础上,在合适的位置增加2条语句以完成如下功能:
让标签控件Label2运行时可见,且用之显示系名;
5.完善“确定”命令按钮的Click事件代码,要求在原代码的基础上,在合适的位置增加1条语句
以完成功能:
用列表框中选择的职称代号更新表格中当前记录的职称代号(zcdh)。
图2
五、程序改错(5分)
下列程序的功能是:
将十进制数字字符串转换为二进制数字字符串,其基本算法是“除2取余法”。
要求:
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改(注:
注释部分不输入);
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
LOCALcDec,cBin,nDec,n
cDec=“67” &
&
十进制字符串
cBin=SPACE(0) &
二进制字符串
nDec=VAL(cDec)
IFcDec=“0”
cBin=“0”
ELSE
DOWHILEnDec>
n=MOD(nDec,10)
nDec=INT(nDec/2)
cBin=STR(n,1)+cBin
ENDW
ENDIF
cMsg=“十进制数”+nDec+的二进制表示为:
“+cBin”
=MESSAGEBOX(cMsg)
二级 VisualFoxPro (试卷代号VFP02)
以设置默认的工作目录,然后财开始做题。
根据下列要求完成项目、数据库及表的操作。
1.修改数据库图书(TS)表的结构,要求:
(1)修改jg字段的宽度,使之能容纳4位整数和2位小数;
(2)将cs字段的标题设置为“库存数”,默认值设置为10;
(3)设置cs字段的有效性(验证)规则和有效性(验证)信息;
库存数必须大于0;
(4)创建普通索引smrq,要求先按书名(sm)排序,书名相同时再按入库日期(rkrq)排序。
2.将自由表JSB添加到SJK中,并在项目中为该表添加编辑说明:
“教师表”。
3.先修改软盘上TS1表的结构,添加一个类型、宽度和小数位均与jg字段相同的newjg字段,然后计算所有记录的该字段的值:
jg值的基础上增加15%。
4.以KC表为主表、RK表为子表,根据kcdh索引建立永久性关系,并设置两个表之间的参照完整性规则:
如果在RK表中存在匹配的关键字值,则禁止在KC表中删除记录。
在TEST项目中在查询chaxun,且在SJK中包含一个名为XSCJST的视图,该视图的记录(kcdh)、成绩(cj)、是否必修课(bxk)、学分(xf);
在SJK的学生(xs)表中含有学生的学号(xh)和性别(xb)。
根据XS表和XSCJST视图查询每个学生的选课门数。
要求输出字段包括:
xh、xm、xb、必修课门数和选修课门数,查询结果按必修课门数从小到大排序。
项目TEST中已存在菜单MenuC,利用菜单设计器按如下要求修改该菜单:
1.按图1所示为“统计分析”菜单项创建子菜单;
2.为“不及格统计”菜单项设置SQL命令:
基于成绩表
(CJ.DBF)统计各门课程不及格的人次,要求当执行该菜单时
在浏览窗口显示课程代号(kcdh)、不及格人次(注:
成绩
(cj)ihgf60分为不及格);
3.将“学生档案管理”菜单项废止。
项目TEST中已经存在表单FormC,该表单的功能是:
利用JS表中的教师工号数据进行“摇号”,单击“开始”按钮,则文本框中随机地显示教师工号,按回车键停止。
按下列要求修改该表单地,修改完成后运行表单,其效果如果2所示。
1.将表单的标题改为“摇号”;
2.将文本框改为数据只数;
3.修改形状控件Shap1的有关属性,使形状
控件为三维效果;
4.删除表单上的编辑框控件,然后在标签控
Lable2的下方添加一个列表框控件(List1),
并将其大小设置为与形状控件Shap1相同
(如图2所示);
5.修改“开始”命令按钮的Click事件代码:
要求在原代码之后添加两条命令,使得每
次摇出的教师信息(由字符型变量cStr给
定)添加到列表框中,且“开始”按钮可
再次使用。
下列程序的功能是将一个英文词组中的每个单词的首字母改为大写(单词之间以空格分隔)。
例如“Microsoftvisualfoxpro”经程序转换后为“MicrosoftVisualFoxpro”。
其基本算法是:
首先在字符串中查找到第一个空格,把空格械边的部分看作为一个单词,从字分符串中截取械边的单词,并将首字母改为大写。
剩余的部分用同样的方法进行处理,直到剩余的部分没有字符为止。
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
cText=“Microsoftvisualfoxpro”
cResult=SPACE(0)
WHILENOTEMPTY(cText)
nSpacePos=AT(SPACE
(1),cText)
IFnSpacePos>
cWord=LEFT(cText,nSpacePos)
cWord=cText
cWord=UPPER(cWord,1)+SUBSTR(cWord,2)
cResult=cWord+cResult
cTEXT=LTRIM(SUBSTR(cText,nSpacePos))
ENDDO
WAITWINDOWcResult
二级 VisualFoxPro (试卷代号VFP03)
1.按如下要求修改SJK中的教师(JS)表结构;
(1)将分类号(flh)字段的标题设置为“分类号”;
(2)设置rkrq字段的有效性(验证)规则:
必须是在当前日期(包括当前日期)之前;
(3)设置rkrq字段的有效性(验证)信息:
入库日期无效;
(4)为分类号(flh)字段设置输入格式:
删除输入字段前导空格;
(5)创建一个普通索引zj,要求先按作者(zz)字段排序,作者相同的再按价格(jg)字段从小到大排序。
2.把TEST项目中的自由表GZC移出项目。
3.把软盘中的表文件TS1.DBF添加为TEST项目中的自由表,并为TS1表添加一条记录,记录内
容如下表所示:
flh
sm
zz
jsbn
jg
cs
rkrq
T01:
123
计算机应用基础
王平
7-305-0405-6
20
100
08/01/03
4.SJK中XIM表已存在主索引xdh,索引表达式为xdh;
JS有已存在普通索引xdh,索引表达式为
xdh。
以xim表为主表、JS表为子表,按xdh建立永久关系,并设置xim表和JS表之间的参照
完整性:
更新级联。
TEST项目中已经存在查询chaxun,且在SJK中包含一个名为xscjst的视图,该视图记录了每一个学生的选课情况以及选修课程学分值,具体字段包括:
学号(XH)、姓名(XM)、课程代号(kcdh)、成绩(cj)和学分(xf);
按如下要求修改查询:
基于XS表和XSCJST视图查询每个学生的选课门数、总学分。
输出字段包括xh、xm、xb、选 课门数和总学分,查询结果按总学分从高到低排列。
注:
如果该学生的成绩(cj)字段的值小于60分,则该课的学分为0。
项目TEST中已存在菜单MenuB,利用菜单设计器按如下要求修改该
菜单:
1.按图1所示,为“学生成绩管理”菜单项创建子菜单;
2.为“成绩查询”菜单项编制SQL命令:
基于成绩表(CJ.DBF)查询
总成绩大于300分的学生清单,要求当执行该菜单时在浏览窗口显示
学号(xh)和总成绩;
3.在“文件”菜单栏下插入系统菜单项“打开”。
项目TEST中已经存在表单FormB,该表单的功能是根据输入的学号查询、显示相应学生的成绩。
1.将表单左上角的控制图标改
为软盘中NET.ICO文件所示
图标;
2.修改表格控件的有关属性,
使表格中的数据只读且获得
焦点;
3.修改表格控件的Init事件代
码,使得表格中显示的学生
成绩:
如果成绩不及格(小于
60),则该行以红显示,否则
以黑色显示;
4.向表单上添加一个“退出”
命令按钮(如图2所示),并
设置其有关属性、编写Click图2
事件代码,要求:
对象名为cmdExit,单击该命令按钮时关闭所有打开的表和临时表,并关闭表单。
VFP中LEFT(cExp.n)函数的功能是从字符串表达式cExp的值中取出左边n个字节长度的字符子串。
如果表达式cExp的值是中英文混合的字符串,因一个汉字占两个字节(没这里讨论的汉字均为GB2312-80中的汉字),则LEFT函数很容易把一个汉字取“破”,从而出现“乱码”。
下列自定义函数LEFT(cExp.n)的功能是:
取字符串cExp左边n个字符。
如果cExp字符串中包含汉字,则将每个汉字与英文字符同等看作长度为1。
例如CLEFT(“VFP上机考试”,5)的返回值是“VFP上机”,而不是“VFP上”。
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改(注:
WAITWINDOWCLEFT(“VFP上机考试”,5)
FUNCTION CLEFT
PAPA cExp,n
LOCALch,nCh,cResult
cResult=SPACE(0)
nPos=1
FORi=1TOn
ch=SUBSTR(cExp,nPos,1)
***一个汉字有两个字节,汉字每个字节的ASCII码值大于127
IFASC(CH)>
127
cResult=cResult+SUBSTR(cExp,nPos,2)
nPos=nPos+2
ELSEIF
cResult=cResult+SUBSTR(cExp,nPos,1)
nPos=nPos+1
ENDFOR
RETURNn
ENDFUNC
二级VisualFoxPro(试卷代号VFP04)
(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)的具体方法是:
教授加500元,副教授加300元,讲师和助教加200元。
请按上述方法来修改GZC表中所有记录的基本工资(jbgz)字段的值。
5.KC表中已存在主索引kcdh,索引表达式为kcdh:
PK表已存在普通索引kcdh,索引表达式为kcdh。
以KC表为主表、PK表为子表、按dcdh建立永久关系,并设置KC表和PK表之间的参照完整性:
TEST项目中已经存在查询chaxun,且在SJK中包含一个BJCJST的视图,该视图记录了各个班级的学生考试成绩,具体字段包括班级编号(bjbh)、学号(xh)、课程代号(kcdh)、成绩(cj):
在SJK的课程(KC)表中含有课程代号(kcdh)和课程名称(kcm)字段。
基于视图BJCJST和KC表查询各班学生参加课程号为“03”的课程的考试情况,输出字段包括:
bjbh、kcm、总人数、优秀率、不及格率,查询结果按班级编辑升序排序。
优秀率=成绩90分以上(包括90分)的人数/总人数,
不及格率=不及格(成绩小于60分)人数/总人数)
项目TEST中已存在菜单Menul,利用菜单设计器,按如下要求修改该菜单。
1.按图1所示,为“人事管理”菜单栏编制子菜单;
2.为“薪资管理”菜单栏下的“工资调整”菜单项编写命令,
当执行该菜单项时,将工资(GZ)表中所有基本工资(jbgz)
低于800元的记录都调整到800元;
3.在“系统设置”菜单栏下插入系统菜单栏“打印”。
项目TEST中已经存在表单FormI,该表单的功能是打印某学生或某课程的成绩。
1.将表单左上角的控制图标改为软盘中NET.ICO文件所示图标;
2.向表单上添加一个下拉列表框控制Combol,要求与选项按钮组左对齐、能显示2列数据,其数
据源(RowSource属性)为查询语句:
SELECTxh,xmFROMxsORDERBY1INTOCURSORtemp1
并且据此设置Combol控件的RowSourceType属性;
3.修改选项按钮组控件,使之无边框(如图2
所示),并为该控件的InterActiveChange事
件代码增加两条语句,用于清除下拉列表框
的值,并使下拉列表框柳得焦点;
4.完善“打印”命令按钮的Click事件代码,
要求在原代码之后增加一条语句,用于预
览报表BB;
5.为“取消”命令按钮设置Clkck事件代码,
其功能是:
关闭表单。
图2
根据指定日期显示中文的日期与星期表示形式。
例如,对于日“2004/10/16”,显示的结果是“2004年10月16日星期六”。
①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改(注:
注释部分不输入
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加加或减少语句数目。
LOCALdDte,cWeekStr,nWeek,cMsg
SETDATETOLONG
SETFDOWTO!
&
指定一个星期开始的第一天是星期日
dDate=CTOD(“2004/10/16”)
IF TYPE(dDate)=“D”
nWeek=DOW(dDate)
cWeekStr=
“日一二三四五六”
cWeek=[星期]+SUBSTR(cWeekStr,*cWeek-1,2)
cMsg=DTOC(dDate)+SPACE
(2)+cWeek
cMsg=“无效的日期!
”
二级VisualFoxPro(试卷代号VFP05)
(本试卷完成时间70分钟)
2.启动VisualFoxPro系统后,首先在命令窗口中执行命令:
SETDEFAULTTOA:
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表之间的参
照完整性:
删除级联。
在成绩(GJ)表中输入成绩时,如果输入了课程(KC)表中没有的课程代号(kcdh),那么该学生的该成绩应视为无视,CJ表中这样的记录称为“孤立记录”,利用查询可以找出这些孤立记录。
在TEST项目中已存在查询CHAXUN,按如下要求修改该查询:
基于KC表和CJ表查询成绩表中的“孤立记录”,要求输出两个表的所有字段,相同的行在查询结果中只出现一次,且按学号(xh)升序排序。
(提示:
使用“右联接”联接KC和CJ表,然后在结果中选出来源于KC表的kcdh字段值为Null值的记录。
)
项目TEST中已存在菜单MenuE,按如下要求修改该菜单,
完成后的运行效果如图1所示。
1.为“文件”菜单栏创建子菜单,并在子菜单中插入系统
菜单项“导出”;
2.为“成绩管理”菜单栏创建子菜单,该子菜单包括二个菜单项“学生成绩录入”、“学生成绩查
询”,并用分隔线隔开;
3.为“课程管理”菜单栏下的菜单项“课程代码录入”设置快捷键“CTRL+L”
4.为“课程管理”菜单