1、VFP程序设计题汇总一 程序设计题汇总1. 通过输入学生的学号(字符型)查找学生,若找到该学生,先输出学号与姓名,然后输出“英语”和“计算机实用技术”成绩。若找不到该学生输出“查无该生”。(设表文件“学生信息”满足题目需要)set talk offclear use 学生信息 accept 请输入学生学号: to xhlocate for 学号=xhif !eof() ?学号,姓名 list fiel 英语,计算机实用技术 for 学号=xhelse ?查无该生endifuse2. 输入学生成绩,并要求:成绩小于60分时,输出“不及格”;成绩在6069分之间时,输出“及格”;成绩在7079之间
2、时,输出“中”;当成绩在8089之间时,输出“良”;当成绩在90100之间时,输出“优”。set talk offclear input 请输入成绩: to cjdo case case cj=90 ?优秀 case cj =80 ?良好 case cj =70 ?中 case cj =60 ?及格 case cj=75 DISP ENDIF SKIP &按默认值1向下移动记录指针ENDDOUSESET TALK ON方法二:SET TALK OFFCLEARUSE 学生信息locate for 英语成绩=75DO WHILE !EOF() display continueENDDOUSESE
3、T TALK ON5. 分别用DO循环和FOR循环求1+2+3+36的和值。用DO循环的写法:SET TALK OFFCLEARS=0N=1DO WHILE N=75 DISPLAYENDSCAN USESET TALK ON7. 求当1!+3!+5!+n!的值不超过10的20次幂时的临界值及n的值。SET TALK OFFCLEARS=1 &初始化存放累加和的变量S为1STORE 1 TO T,N &初始化变量T,N的值为1DO WHILE S=1E+20 T=T*(N+1)*(N+2) &从第二项开始,计算每一项阶乘。 S=S+T &追加每一项阶乘 N=N+2 &下一个奇数ENDDO?S=
4、,S-T &最后一个S由于是多加了一个T后不满足条件,故减去。?N=,N-2 &最后一个N由于是多加了一个2后不满足条件,故减去。SET TALK ON8. 在程序所在的目录中已有学生表(学生.Dbf)(字段为:学号,姓名,性别,出生年月,简历,奖学金,照片)。要求:显示输出“学生”表中的1975年或以前出生的学生姓名和出生年月。SET TALK OFFCLEARUSE 学生 LOCATE FOR 出生年月=1975-12-31 &定位满足出生年月的记录DO WHILE !EOF() &如果没有到表尾,显示姓名与出生年月 ?姓名,出生年月 CONTINUE &继续指向满足条件的下一条记录END
5、DOUSESET TALK ON9. 显示输出正整数M(从键盘输入)内的偶数及偶数和。SET TALK OFFCLEARINPUT 输入一个整数: TO M &输入指定的正整数M的值S=0 &初始化存放累加和变量S为0FOR P=1 TO M IF INT(P/2)=P/2 &判断P是否是偶数 ?P S=S+P &是偶数就把它累加起来 ENDIFENDFOR?SSET TALK ON10. 求解百鸡问题,“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一,百钱百鸡,问鸡翁、母、雏各几何?”note 设公鸡、母鸡、小鸡的数量分别为x、y、z。set talk offclearfor x=0 to
6、20 for y=0 to 33 z=100-x-y if 5*x+3*y+z/3=100 ? 公鸡数, 母鸡数, 小鸡数 ?x,y,z endif endforendforset talk on 11. 从键盘任意输入两个整数,求出最小公倍数和最大公约数。SET TALK OFFCLEARINPUT 输入第一个整数: TO NINPUT 输入第二个整数: TO MX=MAX(N,M) &大的有可能是最小公倍数FOR I=X TO M*N &如果X不是最小公倍数,M*N一定是公倍数,但不一定是最小公倍数。 IF MOD(I,M)=0 AND MOD(I,N)=0 &在循环控制变量递增的过程中,
7、如果出现能被M和N同时整除(余数为0),则为公倍数。 GBS=I &把第一次出现的公倍数(最小公倍数)赋给变量“GBS”。 GYS=M*N/GBS &最大公约数 EXIT &找到第一个“I”便跳出循环 ENDIFENDFOR? 最小公倍数= +ltrim(STR(GBS), 最大公约数= +ltrim(STR(GYS)SET TALK ON12. 在给定“学生.DBF”表文件中包含有“学号”、“姓名”字段,对学号编制一个抽奖表单。要求,不能有重复中奖学生。程序运行时,字号在文本框中显示,用标签显示中奖学生的学号、姓名。应有“开始”、“抽取”、“退出”控件。建议表单(Form1)包括的控件是:一
8、个文本框(Text1)、两个标签(Label1、Label2)、三个按钮(Command1、Command2、Command3)和一个计时器(Timer1)。请编写:(1) 表单Form1的Init事件代码:this.text1.value=学生学号 &文本框显示初值“学生学号”this.label2.visible=.f. &标签label2不可见this.timer1.enabled=.f. &计时器timer1不可用this.timer1.interval=10 &计时器时间间隔为10/1000秒(即0.01秒)(2) “开始”按钮Command1的Click事件代码:set delet
9、e on &隐藏已加入删除标记的记录thisform.timer1.enabled=.t. &使计时器可用thisform.label2.visible=.f. &标签label2不可见(3) “选中”按钮Command2的Click事件代码:thisform.timer1.enabled=.f. thisform.label2.caption=中奖学生是:学号 + thisform.text1.value+ 姓名+姓名thisform.label2.visible=.t. delete (4) “退出”按钮Command3的Click事件代码:recall all &恢复已做删除标记的所有记
10、录thisform.release (5) 计时器(Timer1)的Timer事件代码:if !eof() &如果不到记录尾 skip &跳到下一记录,频率由Timer值决定。Else &如果已到记录尾 go top &跳到第一条记录endifthisform.text1.value=alltrim(学号) &显示学生的学号thisform.refresh13. 编制一个表单完成表文件“学生.dbf”内容的只读浏览显示功能;表单初始显示内容为表文件“学生.dbf”的首记录;当按前翻、后翻、首记录、末记录按钮时,表单将自动显示相应记录的内容;当翻至表头或表尾时,将自动设置相应按钮不可访问。参见下
11、面的表单设计及运行示意图。表单(Form1)的Init(初始化)事件代码mand1.enabled=.f.mand2.enabled=.f.“首记录”(Command1)的Click(单击)事件代码 go top mand1.enabled=.f. mand2.enabled=.f. mand3.enabled=.t. mand4.enabled=.t.thisform.refresh“上一记录”(Command2)的Click(单击)事件代码if !bof() skip -1 mand3.enabled=.t. mand4.enabled=.t.else mand1.enabled=.f.
12、mand2.enabled=.f.endifthisform.refresh“下一记录”(Command3)的Click(单击)事件代码if !eof() skip mand1.enabled=.t. mand2.enabled=.t.else mand3.enabled=.f. mand4.enabled=.f.endifthisform.refresh“未记录”(Command4)的Click(单击)事件代码 go bottom mand4.enabled=.f. mand3.enabled=.f. mand1.enabled=.t. mand2.enabled=.t.thisform.r
13、efresh14. 编制一个显示当前时间的时钟显示界面,要求每秒动态跳动一次,并将表单的背景设置蓝,绿两色自动变换(与时间同步切换),Timer1的Interval属性已在属性窗口中设置完成。请编写计时器(Timer1)的Timer事件代码:thisform.text1.value=time() &使文本框显示系统时间if val(right(time(),2)%2=0 &如果秒值是2秒的整数倍。 thisform.backcolor=rgb(0,255,0) &表单背景为绿色else thisform.backcolor=rgb(0,0,255) &表单背景为篮色endif15. 请设计一个
14、右图所示的表单。表单实现的功能是:单击字体按钮和颜色按钮,“欢迎使用VFP!”的字体和颜色会随之改变。表单(Form1)包括的控件有:两个命令按钮组(Commandgroup1、Commandgroup2)、一个标签(Label1)。请写出相应控件的事件代码。请写出:(1)命令按钮组Commandgroup1的Click事件代码。(2)命令按钮组Commandgroup2的Click事件代码。命令按钮组Commandgroup1的Click事件代码do case case this.value=1 thisform.label1.fontname=隶书 case this.value=2 th
15、isform.label1.fontname=楷体 case this.value=3 thisform.label1.fontname=黑体 case this.value=4 thisform.label1.fontname=仿宋endcase命令按钮组Commandgroup2的Click事件代码do case case this.value=1 thisform.label1.forecolor=rgb(255,0,0) case this.value=2 thisform.label1.forecolor=rgb(0,0,255) case this.value=3 thisform.label1.forecolor=rgb(0,255,0) case this.value=4 thisform.label1.forecolor=rgb(255,255,0)endcase
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1