上机练习题1.docx
《上机练习题1.docx》由会员分享,可在线阅读,更多相关《上机练习题1.docx(22页珍藏版)》请在冰豆网上搜索。
上机练习题1
1创建一个简单的VB程序。
要求在窗体上显示“欢迎登陆VB上机系统”、“请输入您的学号”和“请输入登录密码”,以及两个等待输入学号和密码的文本框和一个命令按钮。
学号与密码均为8位(超过8位则不能输入),密码的输入显示为“*”。
另外窗体上不要最大、最小和关闭按钮。
单击命令按钮“确定”时,程序结束。
程序运行效果如图所示。
2建立一个简单的应用程序,单击窗体,则在窗体上显示“欢迎使用VisualBasic!
”,双击窗体则清除屏幕。
3教材260页第5题
4例题建立一个允许剪切、复制和粘贴的简单便笺板程序
v代码如下:
vDimstAsString
vPrivateSubForm_Load()
vLabel1.FontSize=16
vText1.FontSize=10
vCommand1.FontSize=10
vCommand2.FontSize=10
vCommand3.FontSize=10
vCommand4.FontSize=10
vEndSub
vPrivateSubCommand1_Click()
vst=Text1.SelText
vText1.SelText=""
vEndSub
vPrivateSubCommand2_Click()
vst=Text1.SelText
vEndSub
vPrivateSubCommand3_Click()
vText1.SelText=st
vEndSub
vPrivateSubCommand4_Click()
vEnd
vEndSub
5建立一个简单的应用程序,其窗体界面如下图右,单击放大按钮,则文字“你好!
”放大;单击缩小按钮,则文字“你好!
”缩小;单击结束按钮,则结束程序的运行。
6.实验教材p24页的实验四
7.编写程序实现对于给定的两位数,交换个位和十位数的位置,并把处理后的数显示在窗体上。
8.关系运算符的使用
PrivateSubCommand1_Click()
End
EndSub
PrivateSubCommand2_Click()
Text2.PasswordChar=""
Text1=(Text1="20060000")
Text2=(Text2="TJin1234")
EndSub
PrivateSubText1_GotFocus()
Text1=""
EndSub
PrivateSubText2_GotFocus()
Text2=""
Text2.PasswordChar="*"
EndSub
9.算术运算符的使用
PrivateSubCommand1_Click()
Dimr1!
r2!
r3!
x!
r1=Val(Text1):
r2=Val(Text2):
r3=Val(Text3)
x=1/(1/r1*1/r2+1/r3)
Label5="计算结果:
"&x
EndSub
10逻辑运算符的使用
编写一个程序,具有以下功能:
输入职工的姓名、性别、年龄和职务,判断他是否到达退休年龄。
判断退休年龄的标准为:
男性大于等于60岁,女性大于等于55岁或职务为“工人”的大于等于50岁。
项目文件为“sy2-3判断退休”。
11.建立一个简单的应用程序,其窗体界面如下,单击输入按钮,则将光标定位在第一个文本框;单击大写转小写按钮,则将文本框1中的大写字母转化为小写显示在文本框2中;单击小写转大写按钮,则将文本框1中的小写字母转化为大写显示在文本框3中。
PrivateSubCommand2_Click()
Text2=LCase(Text1)
EndSub
PrivateSubCommand3_Click()
Text3=UCase(Text1)
EndSub
PrivateSubText1_GotFocus()
Text1=""
EndSub
12.界面如下,单击出题按钮,产生任意两个[1,100]之间的随机整数,单击计算按钮,求这两个数的和。
PrivateSubCommand1_Click()
Randomize
Text1.Text=Int(Rnd*100+1)
Text2.Text=Int(Rnd*100+1)
Text3.Text=""
EndSub
PrivateSubCommand2_Click()
Text3.Text=Val(Text1.Text)+Val(Text2.Text)
EndSub
13教材263页第六题
使用mid,left,right函数,在text1文本框中输入一字符串,在label1,label2,label3标签显示如图的效果
PrivateSubForm_Click()
Label1=Left(Text1,11)
Label2=Mid(Text1,12,6)
Label3=Right(Text1,5)
EndSub
14.教材263页第五题
PrivateSubCommand1_Click()
Text1=Int(Rnd*900+100)
EndSub
PrivateSubCommand2_Click()
Dimx%,x1%,x2%,x3%
x=Val(Text1)
x1=xMod10'分离出的个位数
x2=(xMod100)\10'分离出的十位数
x3=x\100'分离出的百位数
Label1=x1*100+x2*10+x3
EndSub
15.设计一个数字时钟表,运行时单击窗体,显示当前的年、月、日、星期几及时间,运行界面如下
PrivateSubForm_Click()
lblYear.Caption=Year(Date)
lblMonth.Caption=Month(Date)
lblDay.Caption=Day(Date)
lblWeek.Caption=Weekday(Date)-1
lblTime.Caption=Time
EndSub
16.课本p56例3.1字符串的替换
PrivateSubCommand1_Click()
i=InStr(Text1,Text2)'在Text1中查找出现Text2内容的位置
k=i+Len(Text2)'定位右子串的起始位置
Ls=Left(Text1,i-1)'取左子串
Text4=Ls+Text3+Mid(Text1,k)'左子串连接替换为子串连接右子串实现替换
Text4=Left(Text1,i-1)+Text3+Mid(Text1,k)
EndSub
PrivateSubCommand2_Click()
Text4=Replace(Text1,Text2,Text3)
EndSub
PrivateSubCommand3_Click()
i=Shell("C:
\ProgramFiles\MicrosoftOffice\Office10\winword.exe",1)
EndSub
17用print函数打印下列图形
18用inputbox输入一个正实数,用print方法在一行上显示出它的平方和平方根、立方和立方根,每个数保留3位小数,其间有间隔。
课本p264页8题
PrivateSubForm_Click()
x=Val(InputBox("输入一正实数","计算",0))
pf=Format(x*x,"0.000")
pfg=Format(Sqr(x),"0.000")
lf=Format(x*x*x,"0.000")
lfg=Format(x^(1/3),"0.000")
Print"平方为:
";pf;Space
(2);"平方根为:
";pfg;Space
(2);"立方为:
";lf;Space
(2);"立方根为:
";lfg
EndSub
19赋值语句的使用,设置实现两个变量交换的程序
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger,cAsInteger
a=Text1.Text
b=Text2.Text
c=Text1.Text
Text1.Text=Text2.Text
Text2.Text=c
EndSub
20inputbox函数的使用
PrivateSubCommand1_Click()
DimhAsInteger,fAsInteger
DimxAsInteger,yAsInteger
h=Val(InputBox("请输入总的头数:
","输入框"))
f=Val(InputBox("请输入总的脚数:
"+Chr(13)+Chr(10)+"注意:
脚的数目在2h与4h之间","输入框"))
x=(4*h-f)/2
y=(f-2*h)/2
Text1.Text=x&"只"
Text2.Text=y&"只"
EndSub
21(双分支结构)用条件语句实现:
从文本框中输入一个数,单据判断按钮判断它能否同时被3、5、7整除,若能整除,则用另外一个文本框显示“能同时被3、5、7整除”,否则显示“不能整除”。
PrivateSubCommand1_Click()
x=Val(Text1.Text)
IfxMod3=0AndxMod5=0AndxMod7=0ThenText2.Text="能同时被3、5、7整除"ElseText2.Text="不能整除"
EndSub
问题:
如何判断一个数是否为偶数还是奇数
22.(多分枝结构)教材p265页第一题
PrivateSubForm_Click()
Dimx!
y!
x=Val(InputBox("输入x的值"))
Ifx<1000Then
y=x
ElseIfx<2000Then
y=0.9*x
ElseIfx<3000Then
y=0.8*x
Else
y=0.7*x
EndIf
Printy
EndSub
23(多分枝结构)编制程序,判断整型变量x,y,z能构成何种三角形,并在窗体上显示出相应的信息。
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger,zAsInteger
x=Val(Text1.Text):
y=Val(Text2.Text):
z=Val(Text3.Text)
Ifx=yAndy=zThen
Label4.Caption="可构成等边三角形"
ElseIfx=yOrx=eOry=zThen
Label4.Caption="可构成等腰三角形"
ElseIfx^2+y^2=z^2Ory^2+z^2=x^2Orx^2+z^2=y^2Then
Label4.Caption="可构成直角三角形"
Else
Label4.Caption="可构成任意三角形"
EndIf
EndSub
24(for循环)用文本框输入n值,单击窗体求
的值,用标签显示。
PrivateSubCommand1_Click()
n=Val(Text1.Text)
f=1
Fori=1Ton
f=f*(2*i-1)
Nexti
Label2.Caption=f
EndSub
25.(for循环)有一袋球(100到200个之间),如果一次数四个则剩下2个,一次数5个则剩下3个,一次数6个则正好数完,求该袋求的个数。
PrivateSubForm_Click()
Fork=100To200
IfkMod4=2AndkMod5=3AndkMod6=0Then
Print"球的个数为:
";k
EndIf
Nextk
EndSub
26.(for循环)求
的值,其中a是数字。
n和a由输入框输入。
PrivateSubCommand1_Click()
a=Val(InputBox("请输入A"))
n=Val(InputBox("请输入N"))
Sum=0
Item=0
Forj=1Ton
Item=Item*10+a
Sum=Sum+Item
Nextj
Text1.Text=Sum
EndSub
27.(select)用多分枝选择结构实现:
输入年份和月份,求该月的天数。
PrivateSubCommand1_Click()
DimYnumAsInteger,MnumAsInteger
Ynum=Val(Text1.Text)
Mnum=Val(Text2.Text)
SelectCaseMnum
Case1,3,5,7,8,10,12
Text3.Text=31
Case4,6,9,11
Text3.Text=30
Case2
If(YnumMod4=0AndYnumMod100<>0)Or(YnumMod400=0)Then
Text3.Text=29
Else
Text3.Text=28
EndIf
EndSelect
EndSub
28.(do循环的使用)求
大于400000的最小值。
PrivateSubCommand1_Click()
a=1
b=1
DoWhilea<=400000
a=a*b
b=b+2
Loop
Text1.Text=a
EndSub
29输出多种形式的九九乘法表
PrivateSubCommand1_Click()
DimchAsString
DimiAsInteger,jAsInteger
Print
Print
Fori=1To9
PrintSpc
(2);
Forj=1To9
ch=j&"X"&i&"="&(i*j)
PrintTab((j-1)*9+3);ch;
Nextj
Print
Nexti
EndSub
PrivateSubCommand2_Click()
DimchAsString
DimiAsInteger,jAsInteger
Print
Print
Fori=1To9
PrintSpc
(2);
Forj=1Toi
ch=j&"X"&i&"="&(i*j)
PrintTab((j-1)*9+3);ch;
Nextj
Print
Nexti
EndSub
PrivateSubCommand3_Click()
DimchAsString
DimiAsInteger,jAsInteger
Print
Print
Fori=1To9
PrintSpc
(2);
Forj=iTo1Step-1
ch=i&"X"&j&"="&(i*j)
PrintTab((9-j)*9+3);ch;
Nextj
Print
Nexti
EndSub
30用for循环实现以下如图所示的界面。
PrivateSubForm_Click()
Fori=1To9
PrintTab(10-i);String(2*i-1,Trim(Str(i)))
Nexti
EndSub
PrivateSubForm_Click()
Fori=1To10Step1
PrintTab(i);String((20-2*i),Chr(64+i))
Nexti
EndSub
31(教材271页第一题)随机产生30—100(包括30、100)的10个正整数,求最大值、最小值、平均值,并显示整个数组的值和结果。
PrivateSubForm_Click()
Dima(1To10)AsInteger
Fori=1To10
a(i)=Int(Rnd*71+30)
Printa(i);
Nexti
Max=a
(1)
Min=a
(1)
Avg=a
(1)
Fori=2To10
Ifa(i)>MaxThenMax=a(i)
Ifa(i)Avg=Avg+a(i)
Nexti
Avg=Avg/10
Print
Print"Max=";Max;"Min=";Min;"Avg=";Avg
EndSub
32(教材271页第二题)已知六个学生的成绩,通过对数组赋初值的方法,利用string函数,以每5分为一个“◆”显示,并显示学生的成绩。
PrivateSubForm_Click()
Dima()
a=Array(56,78,98,88,76,78)
Fori=0To5
PrintString(a(i)\5,"◆");a(i)
Print
Nexti
EndSub
33(教材273页第6题)输入整数n,显示出具有n行的杨慧三角形(第一列及对角线上均为1,其余每一个元素正好等于它上面一行的同一列和前一列的两个元素之和)。
PrivateSubForm_Click()
n=Text1.Text
ReDima6%(n+1,n+1)
a6(0,0)=1:
a6(1,1)=1:
a6(1,0)=1
Fori=2Ton+1
Forj=2Toi
a6(i,j)=a6(i-1,j-1)+a6(i-1,j)
Picture1.Printa6(i,j);"";
Nextj
Picture1.Print
Next
EndSub
34(教材273页第5题)在通用声明段声明两个数组,利用随机函数形成如下两个数组:
Dima%(3,3),b%(3,3)
PrivateSubForm_Load()
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*36+35)
b(i,j)=Int(Rnd*41+100)
Nextj
Nexti
EndSub
PrivateSubCommand1_Click()
Picture1.Cls
Fori=0To3
Forj=0Toi
Picture1.Printa(i,j);"";
Nextj
Picture1.Print
Nexti
EndSub
PrivateSubCommand2_Click()
Picture2.Cls
Fori=0To3
Forj=iTo3
Picture2.PrintTab(j*6);b(i,j);
Nextj
Picture2.Print
Nexti
EndSub
PrivateSubCommand3_Click()
Picture3.Cls
sa=0
Fori=0To3
sa=sa+a(i,i)
Nexti
sb=0
Fori=0To3
sb=sb+b(i,3-i)
Nexti
Picture3.Print"A数组主对角线元素和为:
";sa
Picture3.Print"B数组副对角线元素和为:
";sb
EndSub