vf重点复习的程序.docx

上传人:b****2 文档编号:2051711 上传时间:2023-05-02 格式:DOCX 页数:18 大小:149.61KB
下载 相关 举报
vf重点复习的程序.docx_第1页
第1页 / 共18页
vf重点复习的程序.docx_第2页
第2页 / 共18页
vf重点复习的程序.docx_第3页
第3页 / 共18页
vf重点复习的程序.docx_第4页
第4页 / 共18页
vf重点复习的程序.docx_第5页
第5页 / 共18页
vf重点复习的程序.docx_第6页
第6页 / 共18页
vf重点复习的程序.docx_第7页
第7页 / 共18页
vf重点复习的程序.docx_第8页
第8页 / 共18页
vf重点复习的程序.docx_第9页
第9页 / 共18页
vf重点复习的程序.docx_第10页
第10页 / 共18页
vf重点复习的程序.docx_第11页
第11页 / 共18页
vf重点复习的程序.docx_第12页
第12页 / 共18页
vf重点复习的程序.docx_第13页
第13页 / 共18页
vf重点复习的程序.docx_第14页
第14页 / 共18页
vf重点复习的程序.docx_第15页
第15页 / 共18页
vf重点复习的程序.docx_第16页
第16页 / 共18页
vf重点复习的程序.docx_第17页
第17页 / 共18页
vf重点复习的程序.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

vf重点复习的程序.docx

《vf重点复习的程序.docx》由会员分享,可在线阅读,更多相关《vf重点复习的程序.docx(18页珍藏版)》请在冰点文库上搜索。

vf重点复习的程序.docx

vf重点复习的程序

一.面向过程的程序设计举例

理解掌握类似下列程序的算法,代码仅供参考,按其他算法编写的,只要运行正确,都是正确的程序。

1.输入三个数,按从大到小的顺序排列输出。

clear

input"请输入第一个数:

"tox

input"请输入第二个数:

"toy

input"请输入第三个数:

"toz

a=max(x,y,z)

c=min(x,y,z)

b=x+y+z-a-c

?

'由大到小的顺序为:

',a,b,c

2.输入一个字符串,分别统计其中字母字符、数字字符和其他字符的个数。

Clear

ACCEPT"请输入字符串:

"tocr

k=len(cr)&&求出字符串cr的长度(即字符个数)赋给变量k

STORE0toa,b,c&&a,b,c分别放三种字符的个数,赋初值0

FORi=1tok

z=substr(cr,i,1)&&取出第i个字符

DOcase

CASEupper(z)>="A"andupper(z)<="Z"

a=a+1

CASEz>='0'andz<='9'

b=b+1

OTHERWISE

c=c+1

ENDCASE

ENDFOR

?

'字母字符的个数是:

',a

?

'数字字符的个数是:

',b

?

'其他字符的个数是:

',c

3.输入一个百分制成绩,将其转换成“优秀”、“良好”、“中等”、“及格”和“不及格”五级计分制评定,如果输入的百分制成绩不在0-100之间,则提示输入错误并结束程序。

clear

input"输入百分制成绩:

"tocj

ifcj<0orcj>100

messagebox("输入错误!

只能输入0-100之间的数。

")

cancel

endif

docase

casecj>=90

?

"优秀"

casecj>=80

?

"良好"

casecj>=70

?

"中等"

casecj>=60

?

"及格"

casecj<60

?

"不及格"

endcase

4.设有一张足够大的厚度为0.1毫米的纸,问至少对折多少次可达到(或超过)珠穆朗玛峰的高度(8848.13米)。

Clear

N=0

h=0.1&&纸的初始高度

DOwhileh<8848130

h=h*2&&对折一次后,高度为原来的两倍。

n=n+1&&对折次数累加1

ENDDO

?

n

5.找出100-999之间的所有水仙花数(如果一个三位数是其各位数字的立方和则称此数为水仙花数)。

clear

?

"100~999之间的水仙花数为:

"

FORi=100To999&&i代表100到999的整数。

a=i%10&&取三位数中的个位数字放变量a中。

b=int(i/10)%10&&取三位数中的十位数字放变量b中。

c=int(i/100)&&取三位数中的百位数字放变量c中。

IFi=a^3+b^3+c^3&&如果满足水仙花数条件则输出

?

i

ENDIF

ENDFOR

6.找出0-999之间的所有同构数(如果一个数出现在其平方数的右端,则称此数为同构数)。

例如:

5是同构数,因为5在25的右端。

提示:

一个一位数x是同构数的条件为:

x=x^2%10,一个两位数x是同构数的条件为:

x=x^2%100,依次类推。

clear

?

"1-999之间的同构数为:

"

forn=1to999

k1=iif(n=n^2%10,.t.,.f.)&&如果一位数是同构数iif函数返回.t.,否则返回.f.

k2=iif(n=n^2%100,.t.,.f.)&&如果两位数是同构数iif函数返回.t.,否则返回.f.

ifk1ork2

?

n

endif

endfor

7.随机生成100个1-1000之间的整数,求其中的最大值、最小值。

Clear

dimensiona(100)&&定义一个有100个元素的数组a

FORi=1to100&&该循环随机生成100个1-1000之间的整数存入数组

a(i)=int(1000*rand()+1)

ENDFOR

zd=a

(1)&&设变量zd放最大数,初始值赋为第一个元素

zx=a

(1)&&设变量zx放最小数,初始值赋为第一个元素

FORi=2to100&&该循环找数组中的最大数和最小数

IFa(i)>zd

zd=a(i)

ENDIF

IFa(i)

zx=a(i)

ENDIF

ENDFOR

?

"最大值是:

",zd

?

"最小值是:

",zx

8.输入一个大于2的整数,判断其是否为素数。

clear

INPUT'输入一个大于2的整数:

'tom

k=0&&设变量k为能整除m的数的个数

FORi=2Tom-1&&该循环判断2到m-1之间的自然数能否整除m

IFm%i=0&&如果当前i能整除m

k=k+1&&k累加1

ENDIF

ENDFOR

IFk=0

?

"是素数"

ELSE

?

"不是素数"

ENDIF

二.面向对象的程序设计(表单设计)举例

认真研究下列几个表单的设计,设计过程仅供参考,只要运行符合要求,结果正确,都是正确的设计。

注意按表单设计的步骤写:

1)数据环境2)添加的对象3)属性的设置4)事件代码

1.设计如下表单,要求:

①在前两个文本框中输入两个小于10000的整数,②单击相应的命令按钮进行两个数的加减乘除运算,运算结果显示在第三个文本框中,计算结果不能修改;③单击“退出”命令按钮结束表单运行。

设计过程:

新建表单t1.scx

1)添加的对象:

三个标签:

label1、label2、label3;

三个文本框:

text1、text2、text3;

五个命令按钮:

command1、command2、command3、command4、command5。

2)属性设置:

三个标签的caption属性分别设为:

“操作数1”、“操作数2”、“计算结果”;

三个文本框的value属性设为0(或设为数值型),Text1和text2的inputmask属性设为9999,text3的readonly属性设为.t.

五个命令按钮的caption属性分别设为“+”、“-”、“×”、“÷”、“退出”。

3)事件代码:

①“+”命令按钮的click事件代码:

thisform.text3.value=thisform.text1.value+thisform.text2.value

②“-”命令按钮的click事件代码:

thisform.text3.value=thisform.text1.value-thisform.text2.value

③“×”命令按钮的click事件代码:

thisform.text3.value=thisform.text1.value*thisform.text2.value

④“÷”命令按钮的click事件代码:

thisform.text3.value=thisform.text1.value/thisform.text2.value

⑤“退出”命令按钮的click事件代码:

Thisform.release

2.输入圆的半径,求周长和面积。

要求:

①半径文本框输入的数为0-999之间的整数;②单击“计算”命令按钮计算周长和面积显示在相应文本框中,周长和面积的值不能修改;③单击“清空”命令按钮清空所有文本框中的值并将光标停在半径文本框中;

④单击“退出”命令按钮结束表单的运行。

设计过程:

新建表单t2.scx

1)添加的对象:

三个标签:

label1、label2、label3;

三个文本框:

text1、text2、text3;

三个命令按钮:

command1、command2、command3。

2)属性设置:

三个标签的caption属性分别设为:

“半径:

”、“周长:

”、“面积:

”;

文本框text1的inputmask属性设为999,Text2和text3的readonly属性设为.t.;.

三个命令按钮的caption属性分别设为“计算”、“清空”、“退出”。

3)事件代码:

①“计算”命令按钮的click事件代码:

thisform.text2.value=val(thisform.text1.value)*2*pi()

thisform.text3.value=val(thisform.text1.value)^2*pi()

②“清空”命令按钮的click事件代码:

thisform.text1.value=''

thisform.text2.value=''

thisform.text3.value=''

thisform.text1.setfocus

③“退出”命令按钮的click事件代码:

Thisform.release

3.设计如下倒计时表单。

要求:

①在微调器中设置倒计时秒数,单击“开始”按钮开始按秒倒计时,剩下的秒数显示在微调器中,计时结束(微调器的值为0)时使用消息框提示用户“时间到!

”;②单击“退出”命令按钮结束表单运行。

设计过程:

新建表单t3.scx

1)添加的对象:

一个标签:

label1;

一个微调器:

spinner1;

一个时钟:

timer1;

两个命令按钮:

command1、command2

2)属性设置:

标签的label1的caption属性分别设为:

“设置倒计时秒数”;

微调器spinner1的spinnerlowvalue属性和keyboardlowvalue属性分别设为0;

两个命令按钮的caption属性分别设为“开始计时”、“退出”。

3)事件代码:

①“开始计时”命令按钮的click事件代码:

thisform.timer1.interval=1000

②时钟的timmer事件代码:

ifthisform.spinner1.value=0

thisform.timer1.interval=0

messagebox("时间到!

")

else

thisform.spinner1.value=thisform.spinner1.value-1

thisform.refresh

endif

③“退出”命令按钮的click事件代码:

Thisform.release

4.设计如下表单模拟交通灯,微调器中的值为每种颜色的灯亮的秒数,运行时通过修改微调器的值控制各色灯亮的时间,要求三种颜色的灯循环亮。

红色值函数:

RGB(255,0,0),绿色值函数:

RGB(0,255,0),黄色值函数:

RGB(0,0,255),灰色表示不亮用函数:

RGB(240,240,240)。

设计过程:

新建表单t4.scx

1)添加的对象:

一个容器:

container1;

在容器中添加三个形状:

shape1、shape2、shape3;

一个时钟:

timer1;

三个标签:

label1、labe2、labe3

三个微调器:

spinner1、spinner2、spinner3

2)属性设置:

三个形状的曲率属性curvature设为90;

三个标签的caption属性分别设为:

“红”、“绿”、“黄”;

三个微调器的value属性设为1,spinnerlowvalue属性和keyboardlowvalue属性分别设为1;

时钟的interval属性设为1000。

3)事件代码:

①表单的init事件代码:

PUBLICi

i=1&&i的初始值赋为1表示开始红灯亮

②时钟的timmer事件代码:

DOcase

CASEi=1&&红灯亮

thisform.Timer1.Interval=thisform.spinner1.value*1000

thisform.container1.shape1.backcolor=rgb(255,0,0)

thisform.container1.shape2.backcolor=rgb(240,240,240)

thisform.container1.shape3.backcolor=rgb(240,240,240)

i=2

CASEi=2&&绿灯亮

thisform.Timer1.Interval=thisform.spinner2.value*1000

thisform.container1.shape2.backcolor=rgb(0,255,0)

thisform.container1.shape1.backcolor=rgb(240,240,240)

thisform.container1.shape3.backcolor=rgb(240,240,240)

i=3

CASEi=3&&黄灯亮

thisform.Timer1.Interval=thisform.spinner3.value*1000

thisform.container1.shape3.backcolor=rgb(255,255,0)

thisform.container1.shape1.backcolor=rgb(240,240,240)

thisform.container1.shape2.backcolor=rgb(240,240,240)

i=1

ENDCASE

5.设计下列表单,要求:

①使用组合框列出所有课程名(不重复),②在组合框中选中某门课(只能选择不能输入),单击“查询”命令按钮,则在表格中列出选该课的学生的学号、姓名和成绩;③单击“退出”按钮结束表单的运行。

设计过程:

新建表单t5.scx

1)设置数据环境:

将课程表添加到数据环境中。

2)添加的对象:

一个标签:

label1;

一个组合框:

combo1;

一个表格:

grid1;

两个命令按钮:

command1、command2。

3)属性设置:

标签的label1的caption属性分别设为:

“选择课程名:

”;

组合框combo1的style属性设为2,rowsourcetype属性设为字段,rowsource属性设为课程.课程名;

两个命令按钮的caption属性分别设为“查询”、“退出”。

4)事件代码:

①“查询”命令按钮的click事件代码:

select学生.学号,姓名,成绩from学生,课程,选课;

where学生.学号=选课.学号and课程.课程号=选课.课程号;

and课程.课程名=bo1.value;

intodbfaa

thisform.grid1.recordsourcetype=0

thisform.grid1.recordsource='aa.dbf'

②“退出”命令按钮的click事件代码:

Thisform.release

6.设计如下表单,要求:

①在组合框列出不重复的系名,②在组合框中选中某一系后(只能选择不能输入),单击选项按钮完成相应的查询,查询结果显示在浏览窗口;③单击“退出”命令按钮结束表单运行。

设计过程:

新建表单t6.scx

1)添加的对象:

一个标签:

label1;

一个组合框:

combo1;

一个选项按钮组:

optiongroup1;

一个命令按钮:

command11。

2)属性设置:

标签的label1的caption属性分别设为:

“选择课程名:

”;

组合框combo1的style属性设为2,rowsourcetype属性设为“SQL语句”,rowsource属性设为“selectdistinct所在系from学生intocursortb”;

选项按钮组的buttoncount属性设为3,即包含三个选项按钮option1、option2、option3,这三个选项按钮的caption属性分别设为:

“查询该系学生信息”、“查询该系各门课的平均分”、“查询该系各门课的最高分”;

命令按钮的caption属性分别设为“退出”。

3)事件代码:

①选项按钮option1的click事件代码:

select*from学生where所在系=bo1.value

②选项按钮option2的click事件代码:

SELECT课程.课程名,AVG(选课.成绩)as平均成绩;

FROM学生,选课,课程;

WHERE学生.学号=选课.学号AND选课.课程号=课程.课程号;

AND所在系=bo1.value;

GROUPBY课程.课程名

③选项按钮option3的click事件代码:

SELECT课程.课程名,MAX(选课.成绩)as最高成绩;

FROM学生,选课,课程;

WHERE学生.学号=选课.学号AND选课.课程号=课程.课程号;

AND所在系=bo1.value;

GROUPBY课程.课程名

④“退出”命令按钮的click事件代码:

Thisform.release

7.设计下列表单,求S=1+(1+2)+(1+2+3)+…+(1+2+3+…+n)

要求:

①n由微调器输入或设置,最小值为1,初始值为1,列表框中初始显示第一项;②单击“开始”按钮将前n项显示在列表框中,数列和显示在只读文本框中,③单击“退出”命令按钮结束表单运行。

设计过程:

新建表单t7.scx

1)添加的对象:

三个标签:

label1、label2、label3

一个微调器:

spinner1

一个列表框:

list1

一个文本框:

text1

两个命令按钮:

command1、command2

2)属性设置:

三个标签的caption属性分别设为:

“设置该数列要求的项数”、“该数列为:

”、“数列和”;

微调器的value属性设为1,spinnerlowvalue属性和keyboardlowvalue属性分别设为1;

文本框的readonly属性设为.t.

3)事件代码:

①表单的init事件代码:

THISFORM.list1.additem(str

(1))&&初始状态显示第一项

THISFORM.text1.value=(str

(1))

②“开始”命令按钮的click事件代码:

THISFORM.list1.clear&&列表框调用clear方法可清空列表框

s=0&&变量s放数列和

n=thisform.spinner1.value

declarea(n)&&定义有n个元素的数组放数列的项

docase

casen=1&&只显示一项的情况

THISFORM.list1.additem(str

(1))

s=1

otherwise&&显示多项的情况

THISFORM.list1.additem(str

(1))

s=1

a

(1)=1

FORi=2Ton

a(i)=a(i-1)+i&&第i项由第(i-1)项加i求得

THISFORM.list1.additem(str(a(i)))&&将第i项添加到列表框中

s=s+a(i)

ENDFOR

endcase

thisform.text1.value=str(s)&&将数列和显示在文本框中

③“退出”命令按钮的click事件代码:

Thisform.release

8.设计下列表单,求裴波那契数列前N项。

要求:

①N的值用微调器设置,最小值为1,初始值为2,列表框初始显示前两项;②单击“显示”按钮,在列表框中显示前N项;③单击“退出”按钮结束表单的运行。

该数列的第一项和第二项分别是1、1,从第三项开始每一项是其前两项的和。

即:

1,1,2,3,5,8,13,21,34,….

设计过程:

新建表单t8.scx

1)添加的对象:

一个标签:

label1

一个微调器:

spinner1

一个列表框:

list1

两个命令按钮:

command1、command2

2)属性设置:

标签的caption属性分别设为:

“设置数列要求的项数”;

微调器的spinnerlowvalue属性和keyboardlowvalue属性分别设为1;

3)事件代码:

①表单的init事件代码:

THISFORM.spinner1.value=2

THISFORM.list1.additem(str

(1))

THISFORM.list1.additem(str

(1))

②“显示”命令按钮的click事件代码:

THISFORM.list1.clear

n=thisform.spinner1.value

declarea(n)&&定义有n个元素的数组

docase

casen=1&&只显示第一项的情况

THISFORM.list1.additem(str

(1))

casen=2&&只显示前两项的情况

THISFORM.list1.additem(str

(1))

THISFORM.list1.additem(str

(1))

Otherwise&&显示多于两项的情况

THISFORM.list1.additem(str

(1))

THISFORM.list1.additem(str

(1))

a

(1)=1

a

(2)=1

FORi=3Ton

a(i)=a(i-1)+a(i-2)

THISFORM.list1.additem(str(a(i)))

ENDFOR

endcase

③“退出”命令按钮的click事件代码:

Thisform.release

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

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

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

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