Visual FoxPro数据库基础 习题第八章习题及答案.doc_第1页
Visual FoxPro数据库基础 习题第八章习题及答案.doc_第2页
Visual FoxPro数据库基础 习题第八章习题及答案.doc_第3页
Visual FoxPro数据库基础 习题第八章习题及答案.doc_第4页
Visual FoxPro数据库基础 习题第八章习题及答案.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

第5章 表单设计基础一、基本概念1怎样向容器(Container)中添加控件和对容器中的控件进行操作?2请说明多个独立的命令按钮与命令按钮组在操作与处理上的区别。3比较命令按钮组和选项按钮组与一般容器的区别。4Clear方法适用于哪些控件,其作用是什么?5在什么情况下需要向表单或表单集中添加新的属性或新的方法?如何添加?6如何在代码中设置控件的多个属性?如何一次设置容器中多个控件的属性?7什么是数据环境?对数据环境有哪些操作?如何保存数据环境?8请列出具有ControlSource属性、RowSource属性和RecordSource属性的控件。9比较列表框和表格数据源类型的不同。10请简述计时器控件的作用。二、表单程序设计1设计一个表单,界面如图8.43,当表单运行时,标签控件自动从左向右移动。图8.43 习题12设计一个显示中文日期的表单,并且可以实现日期的前翻和后翻,界面如图8.44。图8.44 习题23将文本框中输入的金额转换成中文大写的形式,即将123.56转换成壹佰贰拾叁元伍角陆分,最高值为亿。要求:数字金额转换成中文大写金额用方法来实现,表单运行输入数据值金额后,调用这个方法。表单界面如图8.45所示。图8.45 习题3图8.46 习题44计算指定班级的奖学金总额,表单界面如图8.46所示。除了3个标签控件、3个文本框和两个命令按钮外,再添加3个形状控件,将输入值与显示计算结果的区域、命令按钮的区域区分开来,并设置形状控件的SpecialEffeect属性为3维。注意:班级号不存在,通过对学号的截取来获得,奖学金总额是通过计算得到的。5显示指定表文件中的全部字段名,表单界面如图8.47所示。要求:表单运行时,在文本框中输入表名(不包括扩展名),在列表框中显示指定表的全部字段名。6设计表单,查找指定班级学生的名单,表单界面如图8.48所示。要求:表单刚运行时,文本框为空白,输入班级号后,按“确定”按钮,将指定班级学生的姓名添加到组合框中,如果该班级不存在的话,用消息对话框提示班级不存在的信息。图8.47 习题5 图8.48 习题67设计一个计时器表单,用3个文本框分别显示时、分、秒,界面如图8.49所示。要求:表单刚运行时,各个文本框中显示“00”。单击“开始”按钮后,从0开始计时,单击“停止”按钮停止计时,文本框中显示当前计时的值,单击“退出”按钮结束。(a)表单刚运行(b)停止计时图8.49 习题78设计一个表单,查找指定学生的课程选修情况,其中Combo1的数据源为学生表的姓名,Label2的标题根据组合框中的选择而变化,界面如图8.50所示。要求:表单运行时, Label2、List1是不可见的。在组合框中选择姓名后,在List1中显示该生选修的课程名和成绩。图8.50 习题8三、多表操作程序设计题1对学生“学籍”数据库中的“学生”表,编写一个输入学生信息的程序,要求保证该表的实体完整性。用户界面可以自行设计。2对学生“学籍”数据库中的“学生”表,编写一个按照“学号”修改某个学生信息的程序,要求保证该表的实体完整性。用户界面可以自行设计。3表单的界面及控件布局情况如图8.51和图8.52所示,其中顺序排列的控件Text1Text6被放置在容器Container1中。该表单可实现查询指定学生姓名的所修课程名及成绩情况。具体要求如下: 用户可以在控件Combo1中输入或选择学生姓名; 输入或选择学生姓名后,按回车或“确定”按钮,可在表单的左部控件中以只读方式显示对应的学号和学生姓名以及指定学生姓名所修各门课程的课程名和成绩以及总平均金额; 课程名及成绩显示项可根据表中满足条件的记录个数动态的调整,如果某学生尚无选修任何课程,则课程名及成绩显示项将不出现(包括显示控件和显示数据),且在总平均成绩显示项中显示未选修任何课程的信息; 表单中命令按钮的汉字标题在表单执行后会自动显现。编写完成上述功能的事件代码,要求写明数据源的设置情况及各个事件的名称及归属(假设销售金额显示项最多不超过10项)。参考答案一、基本概念 略二、表单程序设计1timer1的timer事件代码:thisform.label1.left=thisform.label1.left+4thisform.refresh2 1spinner1的upclick事件代码: thisform.text1.value=thisform.text1.value-1thisform.refresh2spinner1的downclick事件代码:thisform.text1.value=thisform.text1.value-1thisform.refresh3(1)新建方法jezh的代码:parameter xc1=零壹贰叁肆伍陆柒捌玖c2=分角元拾佰仟万拾佰仟亿m=round(x,2)m=m*100i=0c=do while .t.n=mod(m,10)p1=substr(c1,2*n+1,2)p2=substr(c2,2*i+1,2)c=p1+p2+ci=i+1m=int(m/10)if m=0exitendifenddoreturn c(2)Text1的valid事件代码:je=thisform.jezh(val(thisform.text1.value)thisform.text2.value=jethisform.refresh4(1)command1的click事件代码set talk offsele 学生bjh=alltrim(thisform.text1.value)loca for substr(学号,1,4)=bjhif found() sum 学生.奖学金 to jxj for substr(学号,1,4)=bjh thisform.text2.value=bjh thisform.text3.value=jxjelse thisform.text2.value= thisform.text3.value= messagebox(该班级不存在!)endifthisform.refresh(2)Command2的click事件代码thisform.release5text1的valid事件代码:tbn=alltrim(thisform.text1.value)if file(&tbn.dbf)use (tbn)thisform.list1.clearfor i=1 to fcount()thisform.list1.additem(field(i)endforuseelsemessage(指定的表文件不存在!请重新输入!)endifthisform.refresh6(1)command1的click事件代码bjh=alltrim(thisform.text1.value)sele 学生loca for substr(学号,1,4)=bo1.clearif found() bo1.clear bo1.displayvalue=学生.姓名 do while substr(学号,1,4)=bjh bo1.additem(学生.姓名) skip enddoelse messagebox(没有该班级) thisform.text1.value= thisform.text1.setfocusendif(2)Command2的click事件代码thisform.release7(1)Form1的init事件代码:public h,m,sstore 0 to h,m,sthisform.timer1.enabled=.f.thisform.text1.value=00thisform.text2.value=00thisform.text3.value=00(2)Timer1的timer事件代码:s=s+1if s59 s=0 m=m+1endifif m59 m=0 h=h+1endifif h24 h=0endifs1=iif(s10,0+str(s,1),str(s,2)m1=iif(m10,0+str(m,1),str(m,2)h1=iif(h1 THISFORM.TEXT3.VALUE=该生的总平均成绩为:+STR(S/(L-1),5,1)ELSE THISFORM.TEXT3.VALUE=该生没有选修课程!ENDIFSELECT 学生THISFORM.REFRESH 3. COMMAND2 CLICK 事件代码:THISFORM.RELEASE操作步骤如下:(1) 新建表单(2) 数据环境设置:将表文件“学生”、“课程”、“成绩”添加到数据环境中。(3) 按题目要求在表单中加入控件:命令按纽组Commandgroup1;从数据环境中将“学生”表的“姓名”字段、“课程”表的“课程名”字段、“成绩”表的“学号”字段、“成绩”表的“课程号”字段、“成绩”表的“成绩”字段分别拖入表单对应位置。(4) 主要属性设置:表单 Form1 的Caption 属性设置为 “学生成绩表编辑表单”命令按纽组Commandgroup1的ButtonCount 属性设置为 “7”(5) 主要事件代码:1. FORM1 INIT 事件代码:SET SAFETY OFFTHISFORM.COMMANDGROUP1.COMMAND4.ENABLED=.F.THISFORM.COMMANDGROUP1.COMMAND5.ENABLED=.F.C=添加删除退出表头前翻表尾后翻FOR N=1 TO THISFORM.COMMANDGROUP1.BUTTONCOUNT THISFORM.COMMANDGROUP1.BUTTONS(N).CAPTION=SUBSTR(C,4*(N-1)+1,4)ENDFOR SELECT 学生INDEX ON 学号 TO XHISELECT 课程INDEX ON 课程号 TO KCISELECT 成绩SET RELATION TO 学号 INTO 学生, 课程号 INTO 课程THISFORM.REFRESH2. COMMANDGROUP1 CLICK 事件代码:SELECT 成绩DO CASE CASE THIS.VALUE=1 APPEND BLANK CASE THIS.VALUE=2 DELETE CASE THIS.VALUE=3 THISFORM.RELEASE CASE THIS.VALUE=4 GO TOP THIS.COMMAND4.ENABLED=.F. THIS.COMMAND5.ENABLED=.F. THIS.COMMAND6.ENABLED=.T. THIS.COMMAND7.ENABLED=.T. CASE THIS.VALUE=5 SKIP -1 IF BOF() THIS.COMMAND4.ENABLED=.F. THIS.COMMAND5.ENABLED=.F. ENDIF THIS.COMMAND6.ENABLED=.T. THIS.COMMAND7.ENABLED=.T. CASE THIS.VALUE=6 GO BOTTOM THIS.COMMAND4.ENABLED=.T.

温馨提示

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

最新文档

评论

0/150

提交评论