vb.docx

上传人:b****7 文档编号:10983079 上传时间:2023-02-24 格式:DOCX 页数:16 大小:796.14KB
下载 相关 举报
vb.docx_第1页
第1页 / 共16页
vb.docx_第2页
第2页 / 共16页
vb.docx_第3页
第3页 / 共16页
vb.docx_第4页
第4页 / 共16页
vb.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

vb.docx

《vb.docx》由会员分享,可在线阅读,更多相关《vb.docx(16页珍藏版)》请在冰豆网上搜索。

vb.docx

vb

1.单击按钮执行在输入样本串中查找字串,删除字串字符后输出至结果文本框。

用复选框可选择查找方式是否区分大小写。

PrivateSubCommand1_Click()

Dimss$,s0$,len0%,ms$,i%

ss=Text1.Text

s0=Text2.Text

If_____

(1)____Then

s0=_____

(2)______

EndIf

len0=Len(s0)

Fori=1ToLen(ss)-len0+1

ms=_____(3)______

IfCheck1.Value=1Then

ms=UCase(ms)

EndIf

If(ms=s0)Then

ss=Mid(ss,1,i-1)+Mid(ss,i+len0)

i=i-1

EndIf

Nexti

Text3.Text=___(4)_____

EndSub

2.单击窗体读当前文件夹中的文本文件data.txt数据,找出其中年龄最大者的年龄、姓名和全部人数,输出并保存在当前文件夹的中result.txt。

data.txt的数据格式形如:

王海涛,18

李林,20

……

PrivateSubForm_Click()

DimName$,Age%,maxName$,maxAge%

n=0

maxAge=0

OpenApp.Path+"\data.txt"ForInputAs#1

DoWhile____

(1)______

Input#1,Name,Age

n=n+1

IfAge>maxAgeThen

____

(2)______

maxName=Name

EndIf

Loop

Close#1

Label1.Caption="最大年龄:

"&maxAge&vbCrLf&"最大年龄姓名:

"&maxName&vbCrLf&"人数:

"&n

OpenApp.Path+"\result.txt"______(3)______

Print#2,maxName,maxAge,n

Close#2

EndSub

单击窗体执行将所输入的整数插入排序后的原数组元素适当位置。

FunctionInsert(s(),ByValkeyAsInteger)AsInteger

Dimk%,i%,j%

k=___

(1)_____

Fori=0ToUBound(s)

Ifkey

k=i

_____

(2)_______

EndIf

Nexti

ReDimPreserves(UBound(s)+1)

Forj=UBound(s)-1TokStep-1

______(3)____

Nextj

s(k)=key

Insert=UBound(s)

EndFunction

PrivateSubForm_Click()

Dima()AsVariant,i%,p%,m%

a=Array(1,3,6,8,9,13,17,20,25)

Fori=0ToUBound(a)

______(4)_____

Nexti

Print:

Print

p=InputBox("请输入要插入的数:

")

m=____(5)____

Fori=0Tom

Printa(i);

Nexti

Print:

Print

EndSub

三、程序调试题(共20分,每错2.5分,第1题有2处错,第2题3处错,第3题3处错)

启动工程文件C:

\ks\cxts3.vbp,程序存在8处错误,请调试改正,并按原文件名和位置保存。

正确结果见样例cxts3.exe。

改错方法:

不能修改或重新定义变量,不允许增加或删除语句,但可以修改语句,所修改的语句必须在句尾加上注释标记'***********。

调试改错题1,有2处错误:

输入18位身份证号码,通过第7~10位取出出生年,给出寄语。

对1959(含)出生的人,寄语为"步入中老年,请您注意身体!

";对1960年代和1990年代出生的人,寄语均为"60后和90后要多沟通,避免代沟!

";对于1970~1989年出生的人,寄语为"70、80后的青年,祝你工作顺利!

";对于2000后出生的人,寄语为"小朋友,祝你茁壮成长!

";其余判断为输入错误,清空文本框并置焦点。

PrivateSubCommand1_Click()

Dimbthyear%,lbltx$

bthyear=Val(Mid(Text1.Text,7,4))

SelectCasebthyear

CaseIs<=1959

lbltx="步入中老年,请您注意身体!

"

Case(bthyear>=1960andbthyear<=1969)or(bthyear>=1990andbthyear<=1999)

lbltx="60后和90后要多沟通,避免代沟!

"

Case"1980"to"1989"

lbltx="70、80后的青年,祝你工作顺利!

"

Case2000,2001,2002To2008,Is>2008

lbltx="小朋友,祝你茁壮成长!

"

CaseElse

lbltx="输入错了吧?

请重新输入"

Text1.Text=""

Text1.SetFocus

EndSelect

Label2=lbltx

EndSub

 

调试改错题2,有3处错误:

产生隔行轮换显示字母和数字的菱形图案(规律如图)

PrivateSubCommand2_Click()

Dimi%,j%,k%,p%

p=3

Fori=0To14

Ifi<=7Then

k=i

Else

k=14-i

EndIf

Picture1.PrintTab(p+7-k);

IfkMod2Then

Forj=kTo3*k

Picture1.PrintChr(66+k);

Nextj

Else

Forj=kTo2*k

Picture1.PrintTrim(Str(k));

Nextj

EndIf

Picture1.Print

Nexti

EndSub

 

调试改错题3,有3处错误:

随机产生1~20个大写字符串,并随机产生一个大写字母分别填入两个文本框中,统计这个大写字母在该串中出现的次数。

PrivateSubCommand3_Click()

Dimstr1$,str2$,i%,j%,sum%

Text2=""

i=Int(Rnd()*20+1)'产生1~20之间的随机整数

Forj=1Toi

Text2=Text2+Chr(64+Int(Rnd()*26+1))'随机产生大写字母字符串

Next

Text3=Chr(Int(Rnd()*26+1))

str1=Text2

str2=Text3

sum=1

Forj=1Toi

IfLeft(str1,j,1)=str2Then

sum=sum+1

EndIf

Next

Ifsum<>0Then

Label4=str2&"在字符串中出现了"&sum&"次。

"

Else

Label4=str2&"在字符串中没有出现过"

EndIf

EndSub

 

四、编程题(35分)

1.在C:

\KS目录下新建项目bct0.VBP,按如下要求编程并保存。

2.在Form1窗体上放置两个列表框。

建立如下菜单:

菜单项

备注

应用

一级菜单

产生

二级菜单

筛选

二级菜单

-

分隔线

结束

二级菜单

绘图

一级菜单

3.单击菜单"产生"随机产生10个大写字母,填入List1中。

单击菜单"筛选"将列表框1中"K"以后(含"K",ASCII码值为75)的字母选出,填入List2中。

4.单击"绘图"菜单项时,显示窗体2;单击"结束"菜单项时,结束程序的运行。

5.在窗体2上单击"绘图"命令按钮,设置画布区域为(-10,2)-(10,-2),按以下公式绘制,当Y>0为红色图形,Y<0为蓝色图形,t=-3π~3π:

x=t

y=Sin(t)

(提示:

函数图形通过计算Y的值,画垂直于X轴的直线显示)

单击"返回"命令按钮则关闭窗体2,返回窗体1。

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

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1