您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 2010秋VFP上机参考答案01-02
2010QVFP01一、项目、数据库和表操作(12分)打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1.在JXSJ数据库中按如下表格所示的结构创建AB表,并按表格中的要求设置相关属性。宇段名数据类型宽度宇段标题RQD0日期SCSLN6售出门票数量SJRSN6实际参观人数BZM0备注(1)设置AB表的表注释:参观人数;参观人数(不要括号)(2)设置日期字段的默认值:当前系统日期;Date()注意:是引文括号(3)设置日期字段的显示类:微调框;ListBox(4)设置记录有效性规则:实际参观人数小于或等于售出门票数量;sjrs=scsl(5)创建普通索引,索引名为abcd,要求按实际参观人数与售出门票数量之比排序.索引表达式:sjrs/scsl2.在AB表中输入如下记录:浏览ab表-“显示”菜单-“追加方式”RQSCSLSJRSBZ(默认值)240100198808全天下雨3.给KC表中所有学分大于或等于5的记录加删除标记。浏览kc表,“表”菜单-“删除记录”,范围选:ALL,For里填写:xf=54.JS表已存在主索引GH,索引表达式为GH;KCAP表已存在普通索引GH,索引表达式为GH。以JS表为主表、KCAP表为子表,根据GH建立永久关系,并设置两表之间的参照完整性:更新级联、删除级联。二、设计查询(8分)已知教师表(JS)含有工号(gh,C)、姓名(xm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,C)、分类号(flh,C)、借阅日期(jyrq,D)、还书日期(hsrq,D)等字段,教师的读者号与工号相同。按如下要求修改JXGL项目中的查询CHAXUN:基于JS表和JYB表查询教师借书情况,计算过期罚款信息。要求:查询输出字段为dzh、xm、罚款额;查询结果按罚款额降序排序;输出去向为文本文件TEMP。注:罚款计算方法为30天以上超过部分每本每天0.10元,未还书者(即还书日期为空的记录)不统计。连接:Js.gh=Jyb.dzh(题目中有文字:教师的读者号与工号相同)字段:dzh,xm,(hsrq-jyrq-30)*0.1As罚款额筛选:字段中写入Hsrq-jyrq=30(这样即可保证还书日期为空的不统计)排序:罚款额分组:没有使用合计函数,不用分组去向:右击查询设计器—“输出设置”,找到“文本文件”,在旁边输入文件名Temp三、设计菜单(5分)JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。1.在“文件”菜单栏右侧创建“数据管理”菜单栏。下方2.在“数据管理”菜单栏下创建子菜单“查询”和“数据备份”。3.为“查询”菜单项设置快捷键:F12。点“选项”按钮,点“键标签”后面的文本框,然后按键盘第一行上的F12键,注意:F12是一个键4.在菜单项“查询”和“数据备份”之间插入分组线。\-注意:很多人敲成/-,实不应该5.为“数据备份”菜单项设置过程代码:在“结果”中选择“过程”,点“创建”或“修改”按钮,在弹出的“过程”界面中,输入代码即可。d=GETFILE(dbf,*.dbf)USE&dCOPYTObf1四、设计表单(10分)表单F101A用于统计输入文本中各类字符的个数。按下列要求修改表单,修改后表单运行时如图2所示。1.修改表单的有关属性,使表单的标题Caption为“字符数统计”,并设置字数统计的三个文本框禁用Enabled.F.。2.适当加大Shape1形状的高度,在其区域内增加一个标签控什LabelSum(注意:这里要将标签的name属性改为LabelSum)和一个文本框控件Text4(注意:这里要留意文本框的name属性是不是Text4,如果不是请改为Text4),并设置Labe1Sum的标题Caption为“总字符数:”。3.编写“清空”按钮的Click事件代码,用2条语句实现如下功能:(1)清除编辑框Editl中的文本;(2)使“字数统计”矩形区域内的4个文本框的值均置零。双击“清空”按钮,在弹出的窗口中(留意是否是Click过程,如果不是选择Click,如果搞错地方,即使写对也是0分本题),输入代码:Thisform.Edit1.Value=’’&&等号后是一对引号,单引号双引号都可以,表示空字符串Thisform.SetAll(‘Value’,0,’TextBox’)4.表单已定义了一个Count()方法,用来对Edit1编辑中的文本进行字数统计。编写“统计”按钮的Click事件代码,以实现:先调用表单的Count()方法,然后将文本框Text1、Text2和Text3的值相加后显示在文本框Text4中。双击“统计”按钮,在弹出的窗口中(留意是否是Click过程),输入代码:Thisform.Count&&不要写()Thisform.Text4.Value=Thisform.Text1.Value+Thisform.Text2.Value+Thisform.Text3.Value+五、程序改错(5分)下列程序的功能是找出100-999以内同时满足以下条件的数:1)个位数字与十位数字和与10的模等于百位数;2)该数是素数(仅能被1和本身整除的数称为“素数”)。例如101、211、239等。要求:①将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARFORi=100TO999yn=.T.FORi=3Toj-1&&FORi=3Toi-1,这是资料里排版错误IFMOD(j,i)=0&&IFMOD(i,j)=0yn=.F.EXITENDIFENDFORIFyns=STR(i,3)s1=SUBS(s,3,)&&s1=SUBS(s,3,),这是资料里排版错误s2=SUBS(s,2,)&&s2=SUBS(s,2,),这是资料里排版错误s3=SUBS(s,1,)&&s3=SUBS(s,1,),这是资料里排版错误IFMOD(VAL(s1)+VAL(s2))=VAL(s3)&&IFMOD(VAL(s1)+VAL(s2),10)=VAL(s3)?iENDIFENDIFENDFOR2010QVFP02一、项目、数据库和表操作(12分)打开丁盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1.在JXSJ数据库中按如下表格所示的结构创建AB表,并按表格中的要求设置相关属性。字段名数据类型宽度宇段标题RQD0日期QCPHC8汽车牌号DDC20地点TPG0图片(1)AB表的表注释:汽车违停记录;直接写入文字,不要引号(2)设置日期字段的默认值:当前系统日期减1;date()-1(3)设置地点字段的显示类:列表框;ListBox(4)设置汽车牌号字段的有效性规则:不能为空;NotEmpty(qcph)(5)创建普通索引,索引名为abcd,要求按地点排序,相同时根据汽车牌号排序。2.在AB表中输入如下记录:RQQCPHDD(默认值)苏A88888世纪广场3.修改JC表数据:所有记录的单价字段的值取整。浏览jc表,“表”菜单-“替换字段”,设置:字段:Dj替换为:Int(Dj)范围选:ALLFor:不写,因为说“所有记录”,没有设置具体条件4.JS表已存在主索引GH,索引表达式为GH;KCAP表已存在普通索引GH,索引表达式为GH。以JS表为主表、KCAP表为子表,根据GH建立永久关系,并设置两表之间的参照完整性:更新限制、插入限制。二、设计查询(8分)已知学生表(XS)含有学号(xh,C)、姓名(xm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,C)、分类号(flh,C)、借阅日期(jyrq,D)和还书日期(hsrq,D)等字段,其中学生的读者号与学号相同。按如下要求修改JXGL项目中的查询CHAXUN:基于XS表和JYB表查询学生借书情况,计算过期罚款信息。要求:查询输出字段为dzh、xm、罚款;查询结果按罚款降序排序;输出去向为文本文件TEMP.TXT。注:罚款计算方法为30天以上超过部分每本每天0.05元,未还书者(即还书日期为空的记录)不统计。连接:xs.xh=Jyb.dzh(题目中有文字:其中学生的读者号与学号相同)字段:dzh,xm,(hsrq-jyrq-30)*0.05As罚款筛选:字段中写入Hsrq-jyrq=30(这样即可保证还书日期为空的不统计)排序:罚款,注意是降序分组:没有使用合计函数,不用分组去向:右击查询设计器—“输出设置”,找到“文本文件”,在旁边输入文件名Temp三、设计菜单(5分)JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。1.在“文件”菜单栏右侧创建“成绩管理”菜单栏。下方2.在“成绩管理”菜单栏下创建子菜单“查询”和插入系统菜单“导出(E)”菜单项。3.为“查询”菜单项设置命令:SELECT*FROMcj4.为“导出”菜单项设置跳过条件:CJ表打开时才可操作(启用)。点“选项”按钮,在跳过中输入:notUsed(‘cj’)5.在菜单项“查询”和“导出”之间插入分组线。四、设计表单(10分)表单F101C用于数据的录入。按下列要求修改表单,修改后表单运行时如图2所示。1.设置文本框控件的输入掩码,使其只能接受四位数字,不允许输入字母、汉字或其它字符,并设置文本框中的数字以粗体显示。9999、FontBold.T.2.在表单的空白区域添加一个复选框控件Checkl(如图所示),设置其标题为“自动排序”,值为逻辑假(.F.),并设置有关属性使其能自动调整大小。注意:添加的复选框的Name应该为Check1标题:Caption值:.F.自动大小:AutoCenter.T.3.若复选框Checkl被选中,表示列表框Listl中的项自动排序,否则不自动排序。编写Checkl的Click事件代码,根据Checkl的值,用一条语句设置列表框控件Listl的自动排序属性(Sorted)。双击Check1,在弹出的窗口中(确认是Click事件过程)输入:Thisform.List1.Sorted=Thisform.Check1.Value或Thisform.List1.Sorted=This.Value4.编写“清除”按钮的Click事件代码,用2条语句实现如下功能:将列表框Listl的所有数据项清空,将文本框Textl的值置零。双击“清除”按钮,在弹出的窗口中(确认是Click事件过程)输入:Thisform.List1.ClearThisform.Text1.Value=0五、程序改错(5分)我国古代数学家张丘建在《算经》一书中曾提出著名的“百钱买百鸡”问题,该问题是:1只公鸡5元、1只母鸡3元、3只仔鸡1元,若用100元恰好买100只鸡,则公鸡、母鸡和仔鸡各多少只?修改下列程序以解决上述问题,要求:①将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改;②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。cString=''FORi=0TO100/5FORj=0TO100/3FORk=0TO3*100IFaccord(i,j,k)=1cString=公鸡:+ALLT(STR(i))+只,母鸡:+ALLT(STR(j));&&红色处印刷错误+只,小鸡:+ALLT(STR(k))+只?cStringENDIFENDFORENDIF&&EndForENDFORFUNCTIONaccordPARAi,j,kIF5*i+3*j+k/3=100ORi+j+k=100&&or改为AndRETURN1ELSERETURN0ENDIFENDFUNC
本文标题:2010秋VFP上机参考答案01-02
链接地址:https://www.777doc.com/doc-3042251 .html