vpf设计题类型解答.docx

上传人:b****6 文档编号:7248400 上传时间:2023-05-11 格式:DOCX 页数:26 大小:565.28KB
下载 相关 举报
vpf设计题类型解答.docx_第1页
第1页 / 共26页
vpf设计题类型解答.docx_第2页
第2页 / 共26页
vpf设计题类型解答.docx_第3页
第3页 / 共26页
vpf设计题类型解答.docx_第4页
第4页 / 共26页
vpf设计题类型解答.docx_第5页
第5页 / 共26页
vpf设计题类型解答.docx_第6页
第6页 / 共26页
vpf设计题类型解答.docx_第7页
第7页 / 共26页
vpf设计题类型解答.docx_第8页
第8页 / 共26页
vpf设计题类型解答.docx_第9页
第9页 / 共26页
vpf设计题类型解答.docx_第10页
第10页 / 共26页
vpf设计题类型解答.docx_第11页
第11页 / 共26页
vpf设计题类型解答.docx_第12页
第12页 / 共26页
vpf设计题类型解答.docx_第13页
第13页 / 共26页
vpf设计题类型解答.docx_第14页
第14页 / 共26页
vpf设计题类型解答.docx_第15页
第15页 / 共26页
vpf设计题类型解答.docx_第16页
第16页 / 共26页
vpf设计题类型解答.docx_第17页
第17页 / 共26页
vpf设计题类型解答.docx_第18页
第18页 / 共26页
vpf设计题类型解答.docx_第19页
第19页 / 共26页
vpf设计题类型解答.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

vpf设计题类型解答.docx

《vpf设计题类型解答.docx》由会员分享,可在线阅读,更多相关《vpf设计题类型解答.docx(26页珍藏版)》请在冰点文库上搜索。

vpf设计题类型解答.docx

vpf设计题类型解答

编写程序题汇总

第一类题:

计算题

解:

command1(“计算”命令按钮)的click事件编写如下代码:

a=val(thisform.text1.value)&&将文本框text1的值转化为数值型后赋值给a

b=val(thisform.text2.value)&&将文本框text2的值转化为数值型后赋值给b

n=0&&设置一个存储数据的空箱子

ifa<=b&&如果a大于等于b

fori=atob&&建立FOR循环设置i的值为a到b之间每次循环+1

ifi%3=0&&如果i除以3的余数为0,也就是i的值能被3整除

n=n+i&&那么n等于n加上本次循环中i的值,产生新的n值

endif&&结束if语句

endfor&&结束for循环

else&&否则,也就是a大于b的情况..else的具体用法见课本133-134页

fori=atobstep-1&&建立FOR循环设置I的值为a到b之间每次每次循环-1

ifi%3=0

n=n+i

endif

endfor

endif

thisform.text3.value=n&&将N的值赋给文本框text3输出

解:

command1(“等于”命令按钮)的click事件编写代码如下:

a=val(thisform.text1.value)&&将文本框text1的值转化为数值型后赋值给a

b=val(thisform.text2.value)&&将文本框text2的值转化为数值型后赋值给b

ifthisform.optiongroup1.value=1&&如果选项按钮组optiongroup1的值等于1,也就是选&&中第一个按钮

c=a+b&&将a+b的值赋给变量c

else&&否则,也就是选项按钮组optiongroup1的值等于2

c=a-b&&将a-b的值赋给变量c

endif&&结束if语句

thisform.text3.value=c&&将c的值赋给文本框text3输出

ifc<0&&如果c小于0

thisform.text3.forecolor=rgb(255,0,0)&&text3的字体颜色为255,0,0(纯红色)

else

thisform.text3.forecolor=rgb(0,0,255)&&text3的字体颜色为0,0,255(纯蓝色)

endif

解:

command1(“计算”命令按钮)的click事件编写代码如下:

方法一

a=val(thisform.text1.value)&&将文本框text1的值转化为数值型后赋值给a

b=(a-int(a))*1000&&a减去去整后的a得到小数位,并将其乘以1000得到三位整数,并赋值给b例:

假如a等于10.135则该值等于(10.135-10)*1000=135

bai=int(b/100)&&将b的值除以100后取整,如135/100=1.35取整后等于1,相当于取百位数

shi=int(b%100/10)&&将b除以100取余数后再除以10,并对这个数取整,例:

135%100=35,35/10=3.5取整后等于3,相当于取十位数

ge=b%10&&将b除以10以后取余数.例;135%10=5,相当于取个位数

thisform.text2.value=bai+shi+ge&&将三位数字相加后赋值给text2

方法二

a=val(thisform.text1.value)

b=(a-int(a))*1000

bai=val(subs(str(b,3,0),1,1))&&用str函数将b值转化为长度为三,小数位为0位的字符型数据,然后再将这个字符串的第一位抽出来,并转化为数值型数据

shi=val(subs(str(b,3,0),2,1))&&大致同上

ge=val(subs(str(b,3,0),3,1))&&大致同上

thisform.text2.value=bai+shi+ge

 

解:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value&&将文本框text1的值转化为数值型后赋值给a

b=thisform.text2.value&&将文本框text2的值转化为数值型后赋值给b

c=thisform.text3.value&&将文本框text3的值转化为数值型后赋值给c

d=thisform.text4.value&&将文本框text4的值转化为数值型后赋值给d

thisform.text5.value=round(a*b+c*d,1)

&&对a*b+c*d保留一位小数四舍五入以后赋给text5输出

解:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value&&将文本框text1的值转化为数值型后赋值给a

b=thisform.text2.value&&将文本框text2的值转化为数值型后赋值给b

c=thisform.text3.value&&将文本框text3的值转化为数值型后赋值给c

d=thisform.text4.value&&将文本框text4的值转化为数值型后赋值给d

f=a*b+c*d

iff<300&&如果f小于300

thisform.text5.value=round(f,0)&&将f四舍五入取整后赋给text5输出

else&&否则

thisform.text5.value=round(f*0.9,0)&&将f打九折四舍五入取整后赋给text5输出

endif

第二类:

求和题

解:

方法一:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value&&将文本框text1的值转化为数值型后赋值给a

n=0&&设置一个存储数据的空箱子n

fori=1to1000&&建立for循环设置i的值为1到1000之间,每次循环+1

ifi%10=a&&如果i除以10以后余数为a,也就是个位数为a

n=n+i&&那么n等于n加上本次循环中i的值,产生新的n值

endif

endfor

thisform.text2.value=n

方法二:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value

n=0

fori=ato1000step10&&建立for循环设置i的值为a到1000之间,每次循环+10,也就

&&是个位数不变,都是a.假设a=6,i前三次循环中的值就是6,16,26

n=n+i

endfor

thisform.text2.value=n

解:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value&&将文本框text1的值转化为数值型后赋值给a

n=0&&设置一个存储数据的空箱子n

fori=1toa&&建立for循环设置i的值为1到a之间,每次循环+1

ifi%5=0andi%2=1&&如果i能被5整除;并且i为奇数.若题目要求偶数则改为i%2=0

n=n+I&&那么n等于n加上本次循环中i的值,产生新的n值

endif

endfor

thisform.text2.value=n

解:

command1(“计算”命令按钮)的click事件编写代码如下:

本题基本同上一题相同,不做注释;自行理解.

a=thisform.text1.value

n=0

fori=1toa

ifi%3=0andi%2=0

n=n+i

endif

endfor

thisform.text2.value=n

本题基本同上一题相同,不做注释;自行理解.

解:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value

n=0

fori=1toa

ifi%6=0

n=n+i

endif

endfor

thisform.text2.value=n

 

本题基本同上一题相同,不做注释;自行理解.

解:

方法一:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value

n=0

fori=1toa

ifi%2=1

n=n+i

endif

endfor

方法二:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value

n=0

fori=1toastep2&&建立for循环设置i的值为1到a,每次循环+2,前三次循环中i的值分别为1,3,5

n=n+i

endfor

本题基本同上一题相同,不做注释;自行理解.

解:

方法一:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value

n=0

fori=1toa

ifi%2=0

n=n+i

endif

endfor

方法二:

command1(“计算”命令按钮)的click事件编写代码如下:

a=thisform.text1.value

n=0

for0=1toastep2

n=n+i

endfor

 

第三类:

求个数题

解:

command1(“非数字字符个数”命令按钮)的click事件编写代码如下:

a=allt(thisform.text1.value)&&将文本框text1的值去除空格后赋值给a

n=0&&设置一个空箱子n的值为0

fori=1tolen(a)&&建立for循环设置i的值为1到len(a),每次循环+1

if!

(val(subs(a,i,1))>=1andval(subs(a,i,1))<=9orsubs(a,i,1)='0')

&&如果a的第i位字符转化为数字型数据后不为1-9的其中一个数,或者a的第i位数值不为’0’

n=n+1&&那么n等于n+1,产生新的n值

endif

endfor

thisform.text2.value=n

本题原解题方法有误,因为val函数中假如对象是非数字字符的话输入的结果为0

a=allt(thisform.text1.value)&&将文本框text1的值去除空格后赋值给a

n=len(a)&&将字符串的长度赋值给n

fori=1ton&&建立for循环设置i的值为1到n,每次循环+1

ifval(subs(a,i,1))>=1andval(subs(a,i,1))<=9orsubs(a,i,1)='0'&&如果a的第i位字符转化为数字型数据后为1-9的其中一个数,或者a的第i位数值为’0’

n=n-1&&那么n等于n-1,产生新的n值.n的值我们初始设置为字符串的总长度,每遇到一个数字字符我们就将n-1,那么最后剩下的数字就是非数字字符的数量了。

如字符串’abcd123’总长度为7,每遇到一个数字就减1,总共有3个数字,减到最后剩下的数字就为4

endif

endfor

thisform.text2.value=n

 

解:

command1(“统计英文字母个数”命令按钮)的click事件编写代码如下:

a=allt(thisform.text1.value)&&将文本框text1的值去除空格后赋值给a

n=0&&设置一个空箱子n的值为0

fori=1tolen(a)&&建立for循环设置i的值为1到len(a),每次循环+1

ifasc(upper(subs(a,i,1)))>=65andasc(upper(subs(a,i,1)))<=90

&&先将a的第i位字符转化为大写,然后提取他的ascll码值,假如得到的值在65-90之间的话大写A=65Z=90

n=n+1

endif

endfor

thisform.text2.value=n

解:

设置text1(文本框)的value属性值为0

command1(“开始计时”命令按钮)的click事件编写代码如下:

Thisform.timer1.enabled=.t.&&激活计时器控件timer1使其开始运行

timer1(时间控件)的timer事件编写代码如下:

thisform.text1.value=thisform.text1.value+1&&计时器每跳动一次,text1的值+1

ifthisform.text1.value%2=1&&假如text1的值为奇数

thisform.backcolor=rgb(0,255,0)&&当前窗体的背景色为绿色即(0,255,0)

else&&否则,也就是text1的值为偶数的情况

thisform.backcolor=rgb(0,255,0)&&当前窗体的背景色为绿色即(0,255,0)

endif

第四类:

表记录定位题

解:

command1(“奖学金”命令按钮)的click事件编写如下代码:

a=thisform.text4.value&&将文本框text4的值赋值给a

b=thisform.text5.value&&将文本框text1的值转化为数值型后赋值给b

c=(a+b)/2&&将a+b的值除以2后(也就是平均值)赋值给c

ifc>=90&&假如c大于等于90

thisform.label1.caption=“一等”&&那么标签控件label1显示’一等’

endif

ifc>=80andc<90&&同上

thisform.label1.caption=“二等”

endif

ifc<80&&同上

thisform.label1.caption=“无”

endif

 

解:

command1(“上一页”命令按钮)的click事件编写代码如下:

ifrecn()>1&&如果当前记录号大于1,也就说当前记录不是第一条记录

skip-1&&向上跳动一条记录

endif

if是否借出=.t.&&如果复选框是否借出为真,也就是属于被选中状态

thisform.check1.forecolor=rgb(0,0,128)&&check1的字体颜色为蓝色(0,0,128)

else&&否则

thisform.check1.forecolor=rgb(0,0,0)&&check1的字体颜色为黑色(0,0,0)

endif

thisform.refresh&&刷新表单

command2(“下一页”命令按钮)的click事件编写代码如下:

ifrecn()

skip

endif

if是否借出=.t.

thisform.check1.forecolor=rgb(0,0,128)

else

thisform.check1.forecolor=rgb(0,0,0)

endif

thisform.refresh

注意是对命令按钮组当中的上一页,下一页两个按钮编写事件代码

解:

command1(“开始搜索”命令按钮)的click事件编写代码如下:

locafor学校名称=allt(thisform.text1.value)&&查找学校名称等于去掉空格以后的text1的值的记录

iffound()&&如果查找的结果为真,也就是找得到该记录,具体用法见课本46页,这里if

&&面found()没有写条件是等于.t.还是.f.,默认认为是.t.

thisform.label2.caption=“欢迎到来”&&标签labll1显示’欢迎到来’

mand2.enabled=.f.&&标签labll1显示’欢迎到来’按钮command2的enabled值为假,也&&就是处于未激活状态,不可点击.

Else&&否则

thisform.label2.caption=“库中暂缺,添加吗?

”&&标签labll1显示’库中暂缺,添加吗?

mand2.enabled=.t.&&按钮command2的enabled值为真,也就是处于激活状态,可点击.

endif

command2(“是”命令按钮)的click事件编写代码如下:

appeblan&&添加一条空记录

repl学校名称withthisform.text1.value&&将校名称字段改为text1所输入的值

 

解:

command1(“上一页”命令按钮)的click事件编写代码如下:

mand2.enabled=.t.&&按钮command2的enabled值为真,也就是处于激活状态,可点击.

ifrecn()>1&&如果当前记录号大于1,也就说当前记录不是第一条记录

skip-1&&向上跳动一条记录

endif

thisform.refresh&&刷新表单

ifrecn()=1&&如果当前记录号等于1,也就说当前记录是第一条记录

mand1.enabled=.f.&&按钮command2的enabled值为假,也就是处于未激活状态,不可点击.

endif

command2(“下一页”命令按钮)的click事件编写代码如下:

mand1.enabled=.t.

ifrecn()

skip&&向下跳动一条记录

endif

thisform.refresh

ifrecn()=recount()

mand1.enabled=.f.

endif

解:

command1(“中文意思是”命令按钮)的click事件编写代码如下:

a=upper(allt(thisform.text1.value))&&将文本框text1输入的单词转化为大写后值赋值给a

locaforupper(allt(单词))=a&&查找单词字段中转化为大写后与a相同的记录

iffound()&&如果查找的结果为真,也就是找得到该记录,

thisform.label1.caption=’中文意思’&&则标签label1显示’中文意思’

else&&否则

thisform.label1.caption=“表中尚无此单词”&&则标签label1显示’表中尚无此单词’

endif

解:

1、check1(“允许”复选框控件)的click事件编写如下代码:

ifthisform.check1.value=1&&假如复选框check1的值等于1

mand1.enabled=.t.&&按钮command1的enabled值为真,也就是处于激活状态,可点击.

Else&&否则

mand1.enabled=.f.&&按钮command1的enabled值为假,也就是处于未激活状态,不可点击

endif

2、command1(“添加”命令按钮)的click事件编写如下代码:

appeblank&&追加一条空记录

repl学号with“200211”&&修改学号字段为‘200211’

repl姓名with“张三”

repl性别with“男”

repl出生日期with{^1983/06/28}

thisform.refresh&&刷新表单

第五类:

SQL查询语句类题

解:

设置optiongroup1(选项控件)的“value”属性值为1

command1(“确定”命令按钮)的click事件编写代码如下:

ifthisform.optiongroup1.value=1&&假如选项按钮组optiongroup1的值等于1,也就是选中第一个按钮

thisform.grid1.recordsource=“sele*fromcustomerorderby用户名intocursora”

&&则表格grid1的recordsource属性为以上SQL语句,该语句可手动建立查询后点击

按钮获得,注意查询去向到任意名&&字的临时表,SQL语句两边要加引号

else

thisform.grid1.recordsource=“sele*fromcustomerorderby用户名dsscintocursora”&&与以上大致相同

endif

解:

设置optiongroup1(选项控件)的value属性值为“超级MP4”

command1(“统计”命令按钮)的click事件编写代码如下:

thisform.grid1.recordsource=“SELECTXsb.年度,(Xsb.上半年利润+Xsb.下半年利润)as全年利润;

FROMspdmbINNERJOINxsb;

ONSpdmb.商品号=Xsb.商品号;

WHERESpdmb.商品名=thisform.optiongroup1.valueintocursorb”

thisform.refresh

&&本题大致如上题,但是需要对SQL语句进行修改,蓝色字体部分为改动,表示根据命令按钮组所选定的商品名进行筛选

解:

1、选中组合框,右击生成器,在列表项选项卡中添加work表中的“工号”字段,并在值选项卡中添加work表中的“工号”字段;

2、combo1(组合框)的click事件编写代码如下:

s1=alltrim(thisform.Combo1.Value)&&将组合框combo1的值去掉空格后复制给s1

select姓名,基本工资,职称,部门号fromworkwhere工号=s1intoarraya&&一样是使用SQL语句,但是这里是赋值给数组a,这里数组a有四个元素,依次分别是姓名,&&基本工资,职称,部门号.筛选条件是工号等于s1,也就是组合框combo1中选中的工号

SELECT部门名FROMbmdmwhere部门号=a(4)intoarrayb

&&查询部门号等于数组a第四个元素的部门名,并且存入数组b中去。

这里的数组b只有

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2