练习2及参考答案.doc_第1页
练习2及参考答案.doc_第2页
练习2及参考答案.doc_第3页
练习2及参考答案.doc_第4页
练习2及参考答案.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

上机练习2一、 项目、数据库和表操作Vfp01 打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格后的要求设置相关属性。字段名数据类型宽度字段标题BMBHC6部门编号ZZXMC8作者姓名LWM C30论文名LXL类型KWMCC20刊物名称(1)设置AB表的长表名为:发表论文登记表;(2)设置BMBH字段的格式:删除输入的前导空格和结尾空格;(3)创建唯一索引,索引名为abcd,要求按作者姓名排序,相同时再按论文名排序;(4)设置类型(LX)字段的显示类为复选框控件。2在AB表中输入如下记录:BMBHZZXMLWMLXKWMCB00002李峰电脑病毒防止.T.计算机世界3为KC表设置删除触发器:LX字段值为“专业核心课程”的记录不允许删除。4已知JS表已存在主索引GH,索引表达式为GH,KCAP表已存在普通索引GH,索引表达式为GH,以JS表为主表,KCAP表为子表按GH建立永久关系,并设置两表之间的参照完整性:更新级联。Vfp02 打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格后的要求设置相关属性。字段名数据类型宽度字段标题TYKHC9国内统一刊号BZMCC20报纸名称MDJN2月订阅价DDJN3(小数1位)零售价BZM备注(1)设置AB表的表注释:国内报纸一览表;(2)设置TYKH字段的默认值:CN;(3)根据TYKH字段创建主索引,索引名为abcd;(4)表的记录有效性规则:按月订阅报纸比每天购买报纸优惠(每月按28天计算)。2在AB表中输入如下记录:TYKHBZMCMDJDDJBZCN11-0048参考消息180.7新华通讯社主管主办3将KC表中LX字段值为“选修课程”的记录逻辑删除。4已知JS表已存在主索引GH,索引表达式为GH,KCAP表已存在普通索引GH,索引表达式为GH,以JS表为主表、KCAP表为子表按GH建立永久关系,并设置两表之间的参照完整性:更新级联、删除级联。Vfp03打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格后的要求设置相关属性。字段名数据类型宽度字段标题BHC10编号MCC20名称XHC16型号DJN8 (小数2位)单价GMRQD购买日期(1)设置AB表的表注释:教学设备登记表;(2)设置GMRQ字段的默认值:当前系统日期; =date()(3)设置DJ字段的有效性规则:价格在1000.00以上;(4)创建普通索引,索引名为abcd,要求按购买日期的年月日排序,相同时再按单价字段排序。2在AB表中输入如下记录:BHMCXHDJGMRQJSJ09-0013计算机Compag nx63207800.002006-04-223为JS表设置删除触发器:年龄小于60的记录不允许删除(年龄的计算公式为“当前系统日期的年份减去出生日期的年份”)。4已知JS表已存在主索引GH,索引表达式为GH,KCAP表已存在普通索引GH,索引表达式为GH,以JS表为主表,KCAP表为子表按GH建立永久关系,并设置两表之间的参照完整性:更新级联、删除限制。Vfp04打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。(1)按下表所示创建AB表的表结构(包括字段的标题属性):字段名标题类型宽度小数位数GCBH工程编号C6KGRQ开工日期DWGRQ完工日期DXMJL项目经理C8(2)为表设置记录有效性规则:要求先开工、后完工;(3)为XMJL字段设置有效性规则:不能为空(即必须含非空格字符);(4)创建一个普通索引abcd,要求按开工日期的年月日排序,相同时按项目经理排序。1 为教材(JC)表设置插入触发器:课程代码(KCDM字段)为“4003”时,必须使用作者(ZZ字段)含“沈爱国”的教材。2 为学生(XS)表增加一个备注字段(字段名为BZ,类型为备注型),并为所有学生的备注字段赋值:如果院系专业代码(YXZYDM字段)的前四位与学号(XH字段)中第36位不一致,则BZ字段的值设置为“转专业”。3 已知课程(KC)表和成绩(CJ)表存在相同的课程代码(KCDM)字段,以KC表为主表,CJ表为子表,按KCDM建立永久关系,并设置KC表和CJ表之间的参照完整性:插入限制、删除级联。Vfp05打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格后的要求设置相关属性。字段名数据类型宽度字段标题LDC9年度XHC12学号JXJI奖学金BZM备注(1)设置AB表的长表名为:奖学金登记表;(2)设置XH字段的输入掩码:学号只能由数字组成;(3)创建主索引,索引名为abcd,要求按年度字段排序,相同时再按学号字段排序;(4)设置奖学金(JXJ)字段的显示类为列表框。2在AB表中输入如下记录:LDXHJXJBZ2006-2007050701001 6000.00全国大学生英语演讲比赛三等奖3为AB表设置删除触发器:任何记录不可删除。4已知YXZY表已存在主索引yxzydm,索引表达式为YXZYDM,JS表已存在普通索引yxzydm,索引表达式为YXZYDM,以YXZY表为主表,YXZY表为子表按YXZYDM建立永久关系,并设置两表之间的参照完整性:更新限制、删除限制。Vfp06打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格后的要求设置相关属性。字段名数据类型宽度字段标题BHC4机器编号T1T开始时间T2T结束时间XHC12学号BZM备注(1)设置AB表的表注释:机房使用情况登记表;(2)设置开始时间字段的默认值:当前系统的日期与时间;(3)设置表的记录有效性规则:结束时间大于开始时间;(4)创建主索引,索引名为abcd,要求按机器编号排序,相同时再按开始时间排序。2在AB表中输入如下记录:BHT1T2XHBZA10206/11/2009 03:20:00 PM06/11/2009 05:22:08 PM041103013 鼠标不太好用3为JC表增加一个字段名为RS的字段,类型为整型,并根据ZZ字段的内容计算其值:RS字段的值为ZZ字段中逗号的个数加1。4已知JS表已存在主索引GH,索引表达式为GH,KCAP表已存在普通索引GH,索引表达式为GH,以JS表为主表,KCAP表为子表按GH建立永久关系,并设置两表之间的参照完整性:更新级联、删除限制。Vfp07打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格后的要求设置相关属性。字段名数据类型宽度字段标题BHC9车辆编号SJT违章时间DDC40违章地点LBC20违章类别CLL是否已处理(1)设置AB表的的表注释:车辆违章情况登记表;(2)设置CL字段的默认值:逻辑值“否”;(3)创建普通索引,索引名为abcd,要求按车辆编号排序,相同时再按违章时间排序;(4)设置违章类别(LB)字段的显示类:列表框控件。2在AB表中输入如下记录:BHSJDDLB苏A-DR55106/11/2008 03:20:00 PM沪宁高速超速:大于20%小于50%3为KC表设置更新触发器:LX字段值为“专业核心课程”的记录不允许更新。4已知KC表已存在主索引kcdm,索引表达式为kcdm,JC表已存在普通索引kcdm,索引表达式为kcdm,以KC表为主表,JC表为子表按kcdm建立永久关系,并设置两表之间的参照完整性:更新级联、删除限制。二、设计查询Vfp01已知课程(KC)表中含有课程代码(kcdm,C)、课程名称(kcmc,C)和学分(xf,N)等字段,在成绩表(CJ)中含有学生学号(xh,C)、成绩(cj,N)、课程代码(kcdm,C)等字段,若成绩不低于60分时,学生可以取得对应课程的学分。按如下要求修改JXGL项目中的查询chaxun:基于KC表和CJ表统计每个学生已取得的总学分。若总学分大于或等于20时该学生可以毕业,查询所有不能毕业的学生学号列表。要求查询输出字段为:xh、总学分。查询结果按总学分降序排序。Vfp02已知课程安排(KCAP)表是用来存储各学期各班教学课程安排信息的表,其中含有学期编码(xqbm,C)、班级编号(bjbh,C)、课程代码(kcdm,C)和教师工号(gh,C)等字段,课程(KC)表中含有课程代码(kcdm,C)和课程名称(kcmc,C)等字段。按如下要求修改JXGL项目中的查询chaxun:基于KCAP表和KC表查询同一学期、同一门课程有2个或2个以上教师任教的课程。要求输出字段为:xqbm、kcdm、kcmc、教师人数。Vfp03已知学生(XS)表存储了每个学生的基本信息,其中含学号(xh,C)、姓名(xm,C)等字段,成绩(CJ)表存储了每个学生各门课程的成绩信息,其中含有学号(xh,C)、课程代码(kcdm,C)和成绩(cj,N)等字段。若成绩大于或等于60表示该门课程合格。按如下要求修改JXGL项目中的查询chaxun:基于XS表和CJ表统计所有已登记的成绩中全部课程均合格的学生名单及其合格课程门数,要求输出字段为:xh、xm、合格门数。要求查询结果按合格门数降序排序。(提示:“全部课程均合格”可以等价理解为最低分数也大于或等于60。)Vfp04为了避免在将成绩输入到数据库中时发生人为错误,成绩输入工作由两个人分别输入一遍,并进行比对。已知两个人输入的成绩存储在成绩(CJ)表和成绩B(CJB)表,它们的结构相同,均含有字段:学号(xh,C)、课程代码(kcdm,C)和成绩(cj,N)。按如下要求修改JXGL项目中的查询chaxun:基于CJ表和CJB表查询两个人输入的成绩不一致的记录。要求输出字段为:xh、kcdm,cj和cj2,其中cj字段和cj2字段是分别来源于CJ表和CJB表中的cj字段。查询结果首先按课程代码排序,课程代码相同时再按学号排序。Vfp05已知学生(XS)表存储了每个学生的基本信息,含有学号(xh,C)、姓名(xm,C)等字段;成绩(CJ)表存储了每个学生各门课程的成绩信息,含有学号(xh,C)、课程代码(kcdm,C)和成绩(cj,N)等字段。按如下要求修改JXGL项目中的查询chaxun:若评定奖学金的要求是所有课程成绩均不低于80分且所学课程门数不少于6门,求所有符合奖学金评定要求的学生名单。要求输出字段为:xh、xm、平均分。要求查询结果按平均分降序排序。Vfp06已知教材(JC)表存储了各门课程所用教材的情况,含有国际标准图书编号(isbn,C)、教材名称(jcmc,C)、单价(dj,N)和课程代码(kcdm,C)等字段;课程安排(KCAP)表是用来存储各学期各班教学课程安排信息的表,含有学期编码(xqbm,C)、班级编号(bjbh,C)和课程代码(kcdm,C)等字段。按如下要求修改JXGL项目中的查询chaxun:假设各班所有学生每人已预缴教材费1000元,且同一班中的所有学生使用的教材相同,现要统计各班每个学生教材费的补、退款情况。要求输出字段为:班级编号、补退款额。要求查询结果按班级编号排序,其中“补退款额”为正数表示要向学生退款,负数表示要学生补款,若补退款额正好为0,则不必包含在统计结果中。Vfp07一名老师在同一学期给不同的班级上同一门课程称为平行班课。已知课程安排(KCAP)表是用来存储各学期各班教学课程安排信息的表,该表含有学期编码(xqbm,C)、班级编号(bjbh,C)、课程代码(kcdm,C)和教师工号(gh,C)字段;教师(JS)表含有教师工号(gh,C)、和姓名(xm,C)等字段。按如下要求修改JXGL项目中的查询chaxun:基于KCAP表和JS表查询所有上过平行班课的老师情况。要求输出字段为:xqbm、kcdm、gh、xm和平行班数。要求查询结果按平行班数降序排序。三、设计菜单vfp01 JXGL项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单。 1 在“文件”菜单栏右侧创建“教学管理”菜单栏;2 在“教学管理”菜单栏下插入子菜单“学生”和“课程”;3 为“学生”菜单项设置跳过条件:xs表打开时才可操作;图 14 在菜单项“学生”和“课程”之间插入分组线;5 设置整个菜单的清理代码:CLOSE TABLES ALL 。Vfp02 JXGL项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单。 1. 在“文件”菜单栏右侧创建“教学管理”菜单栏;2. 在“教学管理”菜单栏下插入子菜单“排课”和“课程”;图 13. 为“排课”菜单项设置跳过条件:kcap表打开时菜单项才可操作(启用);4. 设置“课程”菜单项的快捷键“Ctrl+K”;5. 在菜单项“排课”和“课程”之间插入分组线。Vfp03 JXGL项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单。 1. 在“文件”菜单栏右侧创建“教学管理”菜单栏;图 12. 在“教学管理”菜单栏下插入子菜单“学生”、“课程”和“成绩”;3. 在菜单项“学生”、“课程”和“成绩”之间插入两条分组线;4. 为“学生”菜单项创建子菜单:“浏览”和“编辑”;5. 为“浏览”菜单项设置跳过条件:xs表打开时才可操作。Vfp04 JXGL项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单。 1. 在“文件”菜单栏右侧创建“代码管理”菜单栏;图 12. 在“代码管理”菜单栏下插入子菜单“民族”、“文化程度”和“政治面貌”;3. 为“代码管理”菜单栏设置跳过条件:DMB表打开时才可操作;4. 为“民族”菜单项设置命令:SELECT * FROM dmb WHERE lx=”民族”;5. 为“民族”菜单项设置快捷键Ctrl+M。Vfp05 JXGL项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单。 1. 在“文件”菜单栏右侧创建“教材管理”菜单栏;图 12. 在“教材管理”菜单栏下插入子菜单“浏览”和“备份”;3. 为“备份”菜单项设置跳过条件:jc表打开时才可操作;4. 为“备份”菜单项设置命令:COPY TO GETFILE(dbf,*.dbf);5. 在菜单项“浏览”和“备份”之间插入分组线。Vfp06 JXGL项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单。 图 11. 在“文件”菜单栏右侧创建“成绩管理”菜单栏;2. 在“成绩管理”菜单栏下插入子菜单“成绩输入”和“成绩查询”;3. 为“成绩查询”菜单项设置跳过条件:cj表打开时才可操作;4. 为“成绩查询”菜单项创建子菜单“按学号”和“按课程”;5. 在菜单项“按学号”和“按课程”之间插入分组线。Vfp07 JXGL项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单。 1. 在“文件”菜单栏右侧创建“课程管理”菜单栏;2. 在“课程管理”菜单栏下插入子菜单“浏览”和“备份”;3. 为“浏览”菜单项设置命令:SELECT * FROM kc ;图 14. 为“备份”菜单项设置跳过条件:kc表打开时才可操作;在菜单项“浏览”和“备份”之间插入分组线。四、设计表单vfp01 JXGL项目中已经存在表单Formk,该表单用来设置表单中表格控件Grd1的相关属性,如图2所示。按下列要求修改表单:1 设置微调控件的Name属性为Spn1,最小值为1,最大值为10;2 根据组合框控件Cbo1的RowSource属性值设置相应的RowSourceType属性;3 在表单中添加一个复选框控件Check1,标题为“删除标记列”,初始状态为选中,并将标题放在左侧 (Alignment属性) ,如图2所示;4 为复选框控件编制Click事件代码,使得选中复选框时表单中的表格控件(Grd1)带有删除标志列,否则不带;5. 为微调控件编制InterActiveChange事件代码,使表单中Grd1控件的列数与微调控件的值一致。图 2Vfp02 JXGL项目中已经存在表单Formj,该表单用来设置表单中表格控件Grd1的相关属性,如图2所示。按下列要求修改表单:1 设置表单的标题为“表格属性设置”;2 设置表格Grd1中的数据为只读,但能获得焦点,表格的RecordSourceType属性值为“0-表”;3 在 “数据源”标签控件右侧添加一个组合框控件,然后设置其Name属性为“Cbo2”、RowSourceType属性为“7-文件”、RowSource属性为当前目录下的所有.DBF文件;4 设置复选框控件Check1的初始状态为选中;5 为组合框控件Cbo1编制Init事件代码,使它的初值等于“3(缺省值)水平滚动条和垂直滚动条”(即初始选中下拉列表中的第4条列表项);6 为组合框控件Cbo2编制InterActiveChange事件代码,使表单中Grd1控件的RecordSource属性与Cbo2中选定的值一致。Vfp03 JXGL项目中已经存在表单Formm,该表单用来对列表框中的数据进行排序,如图2所示。按下列要求修改表单:1 表单运行时居中,无最大化、最小化按钮;2 在表单的LOAD事件中已经定义了一个数组X,该数组中存放了10个3050之间的随机整数,设置表单中列表框控件LIST1的相应属性,使列表框中显示数组X的内容;图23 设置选项按钮组控件OPT1的边框样式为无边框,背景透明;4 已知表单已定义了新方法USERSORTA,该新方法的功能是对数组X进行从小到大排序,请为表单定义新方法USERSORTD,采用与USERSORTA类似的算法实现该新方法的功能:对数组X进行从大到小排序;在选项按钮组OPT1的Click事件代码的空白处分别增加一条命令来调用上述表单的新方法,使列表框中的数据按选项按钮组OPT1指定的顺序排列。Vfp04 JXGL项目中已经存在表单Formn,该表单用来显示银行取款时用户操作的基本信息,如图2所示。按下列要求修改表单:1 设置文本框Txtmm的相关属性,使文本框中输入的密码显示为“*”;2 将文本框Txtje的输入掩码属性设置为“9,999.99”,使该文本框中只能输入数字,且整数部分最大为4位,小数部分2位,同时设置该文本框的初值为0;3 在标签“日期”右侧添加一个文本框Txtrq,默认值为当前日期,并设置该文本框的有关属性,使之不触发用户的任何事件;4 在文本框Txtmm的Valid事件代码中增加一条条件语句,使输入的密码必须为6位数字;5 在文本框Txtje的Valid事件代码中增加一条命令,使输入的数字必须在0-5000之间,否则显示如图3所示的提示框。 图2 图3Vfp05 JXGL项目中已经存在表单Formo,该表单用来显示图片,如图2所示。按下列要求修改表单:1 将当前目录下的CONFECTI.BMP文件显示在控件Img1上,且图片的大小随控件大小变比填充,图片边框为红色固定单线;2 为表单中已自定义的方法UseBig和UseSmall添加说明“放大图片”和“缩小图片”;3 添加命令按钮组CmdGroup1,并按图2所示设置它的边框属性(无边框)及其中命令按钮的标题属性; 4 为命令按钮组CmdGroup1编写Click事件 图2代码,当点击放大按钮时,调用表单的UseBig方法程序,点击缩小按钮时,调用表单的UseSmall方法程序。Vfp06 JXGL项目中已经存在表单Formp,该表单用来进行文字的录入和修改,如图2所示。按下列要求修改表单:1 设置表单运行时自动居中,无最大化、最小化按钮,边框为固定对话框;2 设置列表框中选定数据项的前景色为红色;3 在文本框的Keypress事件代码的空白处增加一条命令,使按回车时将文本框中录入的字符串添加到列表框中; 图24 在“修改”命令按钮的Click事件代码的空白处增加一条命令,使点击该按钮时,将列表框中选定的项显示在文本框中;5 增加一个命令按钮,标题如图2所示,并为它编制Click事件代码,当点击该按钮时,将列表框中选定的项删除。 Vfp07JXGL项目中表单FormI用于水平或倾斜显示标签。按下列要求修改表单,修改后表单运行时如图2-1、图2-2所示。1将表单的边框样式属性设置为固定对话框;2将标签控件的字号属性设置为14,字体属性为楷体;3将2个命令按钮的标题分别修改为“倾斜显示”和“水平显示”;4完善左边命令按钮的Click 事件代码。其功能是将标签控件的“自动调整大小”属性设置为 .F.、高度设置为130、标题设置为变量CC的内容,并修改其中的第3条命令,其功能是在第i个汉字前插入i个空格;5编写右边命令按钮的Click 事件代码,其功能是将标签控件的“自动调整大小”属性设置为 .T. 、高度设置为20、标题设置为变量C的内容。五、程序改错Vfp01 下列程序的功能是:输入一个由ASCII码字符和GB2312字符集中汉字字符组成的字符串后,统计并显示出现次数最多的10个字符及其出现次数。要求: 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARACCEPT 请输入: TO cccc&输入字符串&语句功能是交互式地输入数据n=LEN(cccc)IF n=0RETURNENDIFCREATE CURSOR TEMP (cc c(2),nn i) &创建临时表存储字符及出现的次数FOR i=1 TO nc=SUBS(cccc,i,1)IF ASC(c)127&汉字字符c=SUBS(cccc,i,2)i=2& i=i+1ENDIFLOCATE FOR cc=cIF EOF()INSERT INTO TEMP (cc,nn) VALUE (c,1)OTHER& ELSEREPLACE nn WITH nn+1ENDIFENDFORSELECT TOP 10 cc, nn FROM temp ORDER BY 2 DESCVfp02一个自然数的七进制表示是一个三位数、九进制表示也是一个三位数,且这两个三位数(七进制和九进制)的数字字符的排列顺序正好相反。下列程序的功能是求该自然数,要求: 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARFOR i=100 TO 999x=convert(i,7)y=convert(i,9)z=SPACE(0)FOR j=1 TO LEN(y)z= z+SUBS(y,j,1) &subs(y,j,1)+zENDFORIF x=z?i,x,yENDIFENDFORFUNCTION convert()&十进制到二九进制转换函数PARAMETER m,nc=SPACE(0)DO WHILE LEN(m)0&m0c=STR(m%n,1)+cm=INT(m/n)ENDDORETURN cENDFUNCVfp03下列程序的功能是找出两个正整数的最大公约数。可以用辗转相除法来求最大公约数。例如27和6,先用27除以6,余数为3,由于余数不为0,再将6作为被除数,3作为除数,得到余数为0,则3就是27和6的最大公约数。要求:(1)项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;(2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目CLEARm = 27n = 6IF mnt = mm = nn = tENDIFr = MOD(m,n)DO WHILE r0 m = nn = t n = rr = MOD(m,n)ENDDOWAIT WINDOWS 最大公约数为+ STR(r) STR(n)Vfp04下列程的功能是验证200以内的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对200以内的正偶数成立)。要求: 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARFOR i=4 TO 200& STEP 2 FOR j=2 TO iIF IsPrime(j) AND IsPrime(i-j)?i,=,j,+,i-jENDIF ENDFORENDFORFUNCTION IsPrime() PARAMETER m FOR n=1 TO SQRT(m)& n=2 to (终值不可改为等于m) IF m%n=0 RETURN .F. ENDIF ENDFOR RETURN .T. ENDFUNCVfp05下列程序的功能是按递增顺序依次列出所有分母为40、分子小于40的最简分数(即真分数序列),并计算序列的和。要求: 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEAR?序列为: 1 / 40s=1 & s=0FOR i=2 TO 39yn=.t.FOR j=2 TO iIF i%j=0 AND 40%j=0yn=.f.EXITENDIF ENDFORIF .NOT. yn & if yn?i,/ 40s=s+iENDIFENDFOR?其和为:, s/40Vfp06下列程序的功能是用数字19组成3个三位数(每个数字只能用一次),使得第一个数正好是第二个数的二分之一,且第一个数是第三个数的三分之一。要求: 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARm=0FOR i=123 TO 333j=i*2k=i*3c=STR(i,3)+STR(j,3)+STR(k,3)ok=.t.FOR n=1 TO 9IF !STR(n)$c& !str(n,1)$c 或 !allt(str(n)$cok=.f.EXITENDIFENDFORIF okm=m+1?第+m+种分法为:, i, j, k&str(m)ENDIFENDFORVfp07下列程序的功能是用数字19组成3个三位数(每个数字只能用一次),且每个三位数都是一个平方数。要求: 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。N=0FOR i=100 TO 999 &将所有3位平方数存放在数组中IF SQRT(i)=INT(SQRT(i) AND !0$STR(i)n=n+1DIME a(n)a(n)=STR(n,3)& str(i,3)ENDIFENDFORFOR i=1 TO n-2FOR j=i TO n-1FOR k=j TO nc=a( i )+a( j )+a( k )FOR m=1 TO 9IF !STR(m,1)$cLOOP& EXITENDIFENDFORIF m9?三个3位的平方数为:, a( i ), a ( j ), a( k )ENDIFENDFORENDFORENDFOR练习2上机答案 VFP01一、 项目、数据库和表操作BMBH字段格式:T索引表达式:zzxm+lwmKC表删除触发器:lx#专业核心课程 | lx专业核心课程二、 设计查询SELECT Cj.xh, SUM(IIF(Cj.cj60,0,Kc.xf) AS 总学分; FROM jxsj!kc INNER JOIN jxsj!cj ; ON Kc.kcdm = Cj.kcdm; GROUP BY Cj.xh; HAVING sum(iif(cj.cj60,0,kc.xf) 20; ORDER BY 2 DESC三、设计菜单跳过条件表达式:not used(xs)四、设计表单s题号对象名属性/事件/方法名属性值/代码1Form1Caption表格属性设置2Grd1ReadOnly.T.RecordSourceType03Cbo2RowSourceType7RowSource*.dbfInterActiveChangeThisform.Grd1.RecordSource=this.value4Check1Value.T.5Cob1InitThis.value=This.List(4)五、 程序改错第 12行改为:I=I+1第 17行改为:elseVFP02一、项目、数据库和表操作索引表达式:tykh记录有效性规则:mdjddj*28 或mdj/28= 2三、设计菜单跳过条件:!used(kcap)四、设计表单题号对象名属性/事件/方法名属性值/代码1Spn1NameSpn1SpinnerLowValue1SpinnerHighValue10InterActiveChange2Cbo1RowSourceType13Check1Caption删除标记列Alignment1-右Value.T.Clickthisform.grd1.deletemark=this.value五、 程序改错第 7行改为:z=subs(y,j,1)+z第16行改为:do while m0VFP03一、项目、数据库和表操作GMRQ字段默认值:date()DJ字段有效性规则:dj1000索引表达式:DTOC(gmrq,1)+STR(dj,8,2)删除触发器:year(date()-year(csrq)=60二、 设计查询SELECT Xs.xh, Xs.xm, SUM(IIF(Cj.cj=60,1,0) AS 合格门数; FROM jxsj!xs INNER JOIN jxsj!cj ON Xs.xh = Cj.xh; GROUP BY Xs.xh HAVING MIN(Cj.cj)=60 ORDER BY 3 DESC三、 设计菜单跳过条件:!used(xs)四、 设计表单题号对象名属性/事件/方法名属性值/代码1Form1Autocenter.T.MaxButton.F.MinButton.F.新方法usersortd FOR i=1 TO 9FOR j=i+1 TO 10IF X(j)X(i)t=X(i)X(i)=X(j)X(j)=tENDIFENDFORENDFOR2Opt1BorderStyle0BackStyle0RowSourcexRowSourceType5Clickthisform.usersorta()thisform.usersortd()五、 程序改错12行为:n=r15行为:str(n)VFP04一、项目、数据库和表操作表的有效性规则:kgrqwgrqXMJL字段有效性规则:!empty(xmjl)索引表达式:dtoc(kgrq,1)+xmjl触发器:kcdm=4003 and zz=沈爱国 or kcdm4003或kcdm4003 or zz=沈爱国或IIF(kcdm=4003,沈爱国$zz,.T.)更新XS的bz字段: update xs set bz=转专业 where yxzydmsubs(xh,3,4)二、 设计查询SELECT Cj.xh, Cj.kcdm, Cj.cj, Cjb.cj AS cj2; FROM jxsj!cj INNER JOIN cjb ; ON Cj.xh = Cjb.xh; AND Cj.kcdm = Cjb.kcdm; AND Cj.cj Cjb.cj; ORDER BY Cj.kcdm, Cj.xh或SELECT Cj.xh, Cj.kcdm, Cj.cj, Cjb.cj AS cj2; FROM jxsj!cj , cjb ; where Cj.xh = Cjb.xh; AND Cj.kcdm = Cjb.kcdm; AND Cj.cj Cjb.cj; ORDER BY 2,1三、 设计菜单跳过条件:!used(dmb)命令/过程:select * from dmb where lx=民族四、 设计表单题号对象名属性/事件/方法名属性值/代码1TxtmmPasswordChar*Validif len(this.value)62txtjeInputMask9,999.99Value0Valid=messagebox(一次取款必须在0-5000之间)3TxtrqValuedate()Enabled.F.五、 程序改错第2行改为:for I=4 to 200 step 2第11行改为:for n=2 to sqrt(m)VFP05一、项目、数据库和表操作XH输入掩码:999999999999索引表达式:ld+xh删除触发器:.f.二、设计查询SELECT Xs.xh, Xs.xm, avg(cj.cj) as 平均分; FROM jxsj!xs INNER JOIN jxsj!cj ; ON Xs.xh = Cj.xh; GROUP BY Xs.xh; HAVING MIN(Cj.cj) = 80; AND count(*) = 6; ORDER BY 3 DESC三、 设计菜单跳过条件:!used(jc)命令/过程:copy to getfile(dbf,*.dbf)四、 设计表单题号对象名属性/事件/方法名属性值/代码1Img1Pictureconfecti.bmpStretch2BorderColor255,0,0BorderStyle12Form1UseBig方法说明放大图片UseSmall方法说明缩小图片3CmdGroup1Command1.Caption放大Command2.Caption缩小BoderStyle0Clickif this.value=1thisform.usebig()elsethisform.usesmall()endif五、 程序改错第3行改为:s=0第12行改为:if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论