VB程序设计.docx
- 文档编号:27010573
- 上传时间:2023-06-25
- 格式:DOCX
- 页数:20
- 大小:35.93KB
VB程序设计.docx
《VB程序设计.docx》由会员分享,可在线阅读,更多相关《VB程序设计.docx(20页珍藏版)》请在冰豆网上搜索。
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"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"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
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序设计