VB程序设计.docx

上传人:b****5 文档编号:14620242 上传时间:2023-06-25 格式:DOCX 页数:20 大小:35.93KB
下载 相关 举报
VB程序设计.docx_第1页
第1页 / 共20页
VB程序设计.docx_第2页
第2页 / 共20页
VB程序设计.docx_第3页
第3页 / 共20页
VB程序设计.docx_第4页
第4页 / 共20页
VB程序设计.docx_第5页
第5页 / 共20页
VB程序设计.docx_第6页
第6页 / 共20页
VB程序设计.docx_第7页
第7页 / 共20页
VB程序设计.docx_第8页
第8页 / 共20页
VB程序设计.docx_第9页
第9页 / 共20页
VB程序设计.docx_第10页
第10页 / 共20页
VB程序设计.docx_第11页
第11页 / 共20页
VB程序设计.docx_第12页
第12页 / 共20页
VB程序设计.docx_第13页
第13页 / 共20页
VB程序设计.docx_第14页
第14页 / 共20页
VB程序设计.docx_第15页
第15页 / 共20页
VB程序设计.docx_第16页
第16页 / 共20页
VB程序设计.docx_第17页
第17页 / 共20页
VB程序设计.docx_第18页
第18页 / 共20页
VB程序设计.docx_第19页
第19页 / 共20页
VB程序设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VB程序设计.docx

《VB程序设计.docx》由会员分享,可在线阅读,更多相关《VB程序设计.docx(20页珍藏版)》请在冰点文库上搜索。

VB程序设计.docx

VB程序设计

1.编写程序,计算学生考试成绩,界面如图所示。

要求:

(1)程序启动时将窗体标题设置为“成绩计算”。

(2)单击“清空”按钮(Command1)将文本框Text1、Text2和Text3清空并将焦点设置为Text1。

(3)点击“计算”按钮(Command2)计算学生总成绩并显示在Text3中。

其中总成绩=理论成绩*0.7+实验成绩*0.3。

(4)点击“退出”按钮(Command3)结束程序运行。

参考代码:

PrivateSubForm_Load()

Form1.Caption="成绩计算"

EndSub

PrivateSubCommand1_Click()

Text1.Text=""

Text2.Text=""

Text3.Text=""

Text1.SetFocus

EndSub

PrivateSubCommand2_Click()

Text3.Text=Text1.Text*0.7+Text2.Text*0.3

EndSub

PrivateSubCommand3_Click()

End

EndSub

2.设计一个用户名和密码的检验程序。

要求:

(1)窗体(Form1)的标题设置为“登录窗口”;密码以“*”显示。

(2)单击“确定”按钮(cd1)验证输入的用户名(Text1)和口令(Text2),如果输入正确在Label3中显示“欢迎使用本系统”;如果不正确在Label3中显示“用户名或密码错误”。

设正确的用户名为“admin”,口令为“123456”。

(3)单击“退出”按钮(cd2),结束程序。

属性窗口:

将“确定按钮”的名称设置为cd1,“退出按钮”的名称设置为cd2。

参考代码:

PrivateSubForm_Load()

Form1.Caption="登录窗口"

Text2.PasswordChar="*"

EndSub

PrivateSubcd1_Click()

IfText1.Text="admin"AndText2.Text="123456"Then

Label3.Caption="欢迎使用本系统"

Else

Label3.Caption="用户名或密码错误"

EndIf

EndSub

PrivateSubcd2_Click()

End

EndSub

 

1.88页编程题第一题

(1)在窗体中放置一个文本框(Text1)、一个标签(Label1)和一个命令按钮(Command1)。

在Command1_Click事件中编写程序,对文本框中输入的成绩进行等级判断,标准是:

90分及以上为“优”,80分及以上为“良”,60分及以上为“及格”,其余为“不及格”,并在标签中显示相应等级。

要求:

分别用If…then…elseIf语句和Select…Case语句编写程序。

参考代码:

PrivateSubCommand1_Click()

DimscoreAsSingle,bzAsString

score=Val(Text1.Text)

SelectCasescore

CaseIs>=90

bz="优"

CaseIs>=80

bz="良"

CaseIs>=60

bz="及格"

CaseElse

bz="不及格"

EndSelect

Label1.Caption=bz

EndSub

PrivateSubCommand1_Click()

DimscoreAsSingle,bzAsString

score=Val(Text1.Text)

Ifscore>=90Then

bz="优"

ElseIfscore>=80Then

bz="良"

ElseIfscore>=60Then

bz="及格"

Else

bz="不及格"

EndIf

Label1.Caption=bz

EndSub

2.88页编程题第二题

(2)设计一个窗体,计算一元二次方程ax2+bx+c=0的根。

参考代码:

PrivateSubCommand1_Click()

DimpbsAsSingle,aAsSingle,bAsSingle,cAsSingle

Dimx1AsSingle,x2AsSingle

DimflagAsBoolean

flag=True'标志

'判断输入的是否为数字,使用多分支结构(考试时该部分可以不写)

IfNotIsNumeric(Text1.Text)Then

MsgBox"a应为数字",0+16+0

flag=False

Text1.SetFocus

ElseIfNotIsNumeric(Text2.Text)Then

MsgBox"b应为数字",0+16+0

flag=False

Text2.SetFocus

ElseIfNotIsNumeric(Text3.Text)Then

MsgBox"c应为数字",0+16+0

flag=False

Text3.SetFocus

EndIf

Ifflag=TrueThen

a=Val(Text1.Text)

b=Val(Text2.Text)

c=Val(Text3.Text)

Ifa=0Andb=0Then

Label4.Caption="无意义"

ElseIfa=0Andb<>0Then

Label4.Caption="方程的根为:

x1=x2="+Str(-c/b)

Else

pbs=b*b-4*a*c

Ifpbs>0Then

x1=(-b+Sqr(pbs))/(2*a)

x2=(-b-Sqr(pbs))/(2*a)

Label4.Caption="方程有两不相等的实根,分别为:

x1="+Str(x1)+";x2="+Str(x2)

ElseIfpbs=0Then

Label4.Caption="方程的根为:

x1=x2="+Str(-b/2*a)

Else

Label4.Caption="方程无实根"

EndIf

EndIf

EndIf

EndSub

.88页编程题第三题

(3)设S=1×2×3×…×n,求S不大于4000时最大的n。

参考代码:

PrivateSubForm_Click()

DimnAsInteger,sAsInteger

n=0'这里n=1也对

s=1

DoWhiles<=4000'这里也可以用dountils>4000

n=n+1

s=s*n

Loop

Print

Print"s不大于4000时最大的n是:

";n-1'注意这里

EndSub

'或写成

PrivateSubForm_Click()

DimnAsInteger,sAsInteger

n=1'这里n=1对,n=2对,n=0不对

s=1

DoWhiles<=4000

s=s*n

n=n+1'注意这两句与上面写法的前后顺序

Loop

Print

Print"s不大于4000时最大的n是:

";n-2'注意这里

EndSub

2.88页编程题第四题

(4)如果一个数的因子之和等于这个数本身,则称这样的数为“完全数”。

例如,整数28的因子为1、2、4、7、14,其和1+2+4+7+14=28,因此28是一个完全数。

编写一个程序,从键盘上输入正整数M和N,求出M和N之间的所有完全数。

参考代码:

方法一

PrivateSubCommand1_Click()

m=Val(Text1.Text)

n=Val(Text2.Text)

Fori=mTon

Forj=1Toi-1

IfiModj=0Then

s=s+j

EndIf

Nextj

Ifi=sThen

Picture1.Printi;

EndIf

s=0

Nexti

EndSub

 

参考代码:

方法二

PrivateSubCommand2_Click()

DimmAsInteger,nAsInteger

DimcountAsInteger,iAsInteger

m=Val(Text1.Text)

n=Val(Text2.Text)

Fori=mTon

s=0

Forj=1Toi\2

IfiModj=0Thens=s+j

Nextj

Ifs=iThen

Picture1.Printi;

count=count+1

IfcountMod8=0Then

Picture1.Print

EndIf

EndIf

Nexti

EndSub

参考代码:

方法三详见实验教材实训[6-5]

3.编写程序,打印九九乘法表的上三角

PrivateSubForm_Click()

FontSize=12

PrintTab(35);"九九乘法表"

PrintTab(33);"--------------"

Fori=1To9

Forj=iTo9

PrintTab((j-1)*9+1);i&"*"&j&"="&i*j;

Nextj

Print

Nexti

EndSub

1.113页编程题第一题

(1)编写程序,建立一个数组,并通过Rnd函数(该函数返回一个0到1之间的数)为每个数组元素赋一个1到100之间的整数。

然后显示所有小于60的元素。

参考代码:

PrivateSubForm_Click()

Dima(1To20)AsInteger,iAsInteger

DimjAsInteger

j=0'用来表示小于60的个数

'建立两个picture,用于显示随机产生的数组和小于60的所以元素

Picture1.Print"产生的数组为:

"

Picture1.Print

Picture2.Print"其中小于60的元素有:

"

Picture2.Print

Fori=1To20

a(i)=Int(Rnd*100+1)

Picture1.Printa(i);

IfiMod10=0ThenPicture1.Print'10个数换行

Ifa(i)<60Then

j=j+1

Picture2.Printa(i);"";

IfjMod10=0ThenPicture2.Print'10个数换行

EndIf

Nexti

EndSub

2.113页编程题第二题

(2)编写程序,随机产生10个二位数,放入数组A中,从中选出一个最大的和一个最小的数,并显示出来。

参考代码:

PrivateSubForm_Click()

Dima(1To10)AsInteger

DimmaxAsInteger,minAsInteger,iAsInteger

Fori=1To10

a(i)=Int(Rnd*90+10)

Picture1.Printa(i);

IfiMod5=0ThenPicture1.Print

Nexti

max=a

(1)

min=a

(1)

Fori=2To10

Ifa(i)>maxThenmax=a(i)

Ifa(i)

Nexti

Label1.Caption="最大数为:

"&max

Label2.Caption="最小数为:

"&min

EndSub

3.113页编程题第五题

(5)利用随机数生成两个4×4的矩阵A和B,前者范围为30-70,后者范围为101-135。

要求:

①将两个矩阵相加,结果放入C矩阵。

②将矩阵A转置后放入D矩阵。

③求C矩阵中元素的最大值和下标。

④以下三角形式显示A,上三角形式显示B。

⑤将矩阵B第一行与第三行对应元素交换位置并输出。

参考代码:

Dima(1To4,1To4)AsInteger

Dimb(1To4,1To4)AsInteger

Dimc(1To4,1To4)AsInteger

Dimd(1To4,1To4)AsInteger

Dime(1To4,1To4)AsInteger

PrivateSubForm_Load()

Show

Picture1.FontSize=10

Picture2.FontSize=10

Picture1.Print"A矩阵:

"

Picture1.Print

Picture2.Print"B矩阵:

"

Picture2.Print

Randomize(5)

Fori=1To4

Forj=1To4

a(i,j)=Int(Rnd*40+30)

b(i,j)=Int(Rnd*35+101)

Picture1.Printa(i,j);"";

Picture2.Printb(i,j);"";

Nextj

Picture1.Print

Picture2.Print

Picture1.Print

Picture2.Print

Nexti

EndSub

①将两个矩阵相加,结果放入C矩阵。

PrivateSubCommand1_Click()

Picture3.Print"C矩阵:

"

Picture3.Print

Fori=1To4

Forj=1To4

c(i,j)=a(i,j)+b(i,j)

Picture3.Printc(i,j);"";

Nextj

Picture3.Print

Picture3.Print

Nexti

EndSub

②将矩阵A转置后放入D矩阵。

PrivateSubCommand2_Click()

Fori=1To4

Forj=1Toi

t=a(i,j)

a(i,j)=a(j,i)

a(j,i)=t

Nextj

Nexti

Picture4.Print"A转置后:

"

Picture4.Print

Fori=1To4

Forj=1To4

d(i,j)=a(i,j)

Picture4.Printa(i,j);"";

Nextj

Picture4.Print

Picture4.Print

Nexti

EndSub

③求C矩阵中元素的最大值和下标。

PrivateSubCommand3_Click()

Max=c(1,1)

t1=1

t2=1

Fori=1To4

Forj=1To4

Ifc(i,j)>MaxThen

Max=c(i,j)

t1=i

t2=j

EndIf

Nextj

Nexti

Picture6.FontSize=20

Picture6.Print"max=";Max

Picture6.Print"C(";t1;",";t2;")"

EndSub

④以下三角形式显示A,上三角形式显示B。

PrivateSubCommand4_Click()

Picture1.Cls

Picture2.Cls

Picture1.FontSize=10

Picture2.FontSize=10

Fori=1To4

Forj=1Toi

Picture1.Printa(i,j);"";

Nextj

Picture1.Print

Picture1.Print

Nexti

Fori=1To4

Forj=iTo4

Picture2.PrintTab(j*5);b(i,j);

Nextj

Picture2.Print

Picture2.Print

Nexti

EndSub

⑤将矩阵B第一行与第三行对应元素交换位置并输出。

PrivateSubCommand5_Click()

Picture2.Cls

Fori=1To4

Forj=1To4

Picture2.Printb(i,j);"";

Nextj

Picture2.Print

Picture2.Print

Nexti

Picture5.Print"B第一行与第三行交换位置:

"

Picture5.Print

Fori=1To4

t=b(1,i)

b(1,i)=b(3,i)

b(3,i)=t

Nexti

Fori=1To4

Forj=1To4

Picture5.Printb(i,j);"";

Nextj

Picture5.Print

Picture5.Print

Nexti

EndSub

4.113页编程题第三题

(3)编写程序,随机产生20个不同的数放在数组A中,并按由大到小的顺序排序。

从键盘上输入一数X,判断此数是否在该数组A中,若在则输出其所在的位置及X值,否则输出“未找到”。

参考代码:

Dima(1To20)AsInteger

PrivateSubForm_Load()

Randomize

EndSub

PrivateSubbijiao_Click()

DimiAsInteger

Fori=1To20

a(i)=Int(Rnd*100)'题目没要求,随便的一个范围

Nexti

Fori=1To19'比较排序

Forj=i+1To20

Ifa(j)>a(i)Then

t=a(i)

a(i)=a(j)

a(j)=t

EndIf

Nextj

Nexti

Fori=1To20'打印数组

Printa(i);

Nexti

EndSub

PrivateSubmaopao_Click()

DimiAsInteger

Fori=1To20'生成数组

a(i)=Int(Rnd*100)'题目没要求,随便的一个范围

Nexti

Fori=1To19'冒泡排序

Forj=20Toi+1Step-1

Ifa(j)>a(j-1)Then

t=a(j)

a(j)=a(j-1)

a(j-1)=t

EndIf

Nextj

Nexti

Fori=1To20'打印数组

Printa(i);

Nexti

EndSub

PrivateSubxuanze_Click()

DimiAsInteger

Fori=1To20'生成数组

a(i)=Int(Rnd*100)'题目没要求,随便的一个范围

Nexti

Fori=1To19'选择排序

k=i

Forj=i+1To20

Ifa(j)>a(k)Thenk=j

Nextj

t=a(i)

a(i)=a(k)

a(k)=t

Nexti

Fori=1To20'打印数组

Printa(i);

Nexti

EndSub

PrivateSubCommand1_Click()

DimxAsInteger,flagAsInteger,iAsInteger

flag=0'标志,表示数组中是否存在x

x=InputBox("请输入x的值,为整数","输入",1)

Fori=1To20

Ifx=a(i)Then

flag=1'flag改变,说明存在

ExitFor

EndIf

Nexti

Ifflag=1Then

Print

Print"数组中存在"&x

Print"位置:

"&i

Else

Print

Print"未找到"&x

EndIf

EndSub

5.选做题-113页编程题第四题

(4)编写程序,录入15名学生的成绩,求出其平均分,统计高于平均分、低于60分、大于等于90分的人数,并输出结果。

参考代码:

PrivateSubForm_Click()

Dima(1To15)AsSingle

DimiAsInteger,c1AsInteger,c2AsInteger,c3AsInteger,avgAsSingle

Fori=1To15

a(i)=InputBox("请输入第"&i&"个学生的成绩","输入成绩",60)

avg=avg+a(i)

Printa(i);

Nexti

avg=avg/15

Fori=1To15

Ifa(i)>avgThenc1=c1+1

Ifa(i)<60Thenc2=c2+1

Ifa(i)>=90Thenc3=c3+1

Nexti

Print

Print"15人的平均分为:

";avg

Print"高于平均分的人数为:

";c1

Print"小于60的人数为:

";c2

Print"大于等于90的人数为:

";c3

EndSub

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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