实验3简单的程序设计Word文档格式.docx
《实验3简单的程序设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验3简单的程序设计Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
String(3,"
2"
PrintTab(13);
String(5,"
3"
PrintTab(12);
String(7,"
4"
EndSub
操作提示:
应先将Form窗体的AutoRedraw属性值设为True。
实验3.4考察随机函数
编程实现随机产生30个100-9999之间的任意年份,并显示在列表框List1中,实验结果界面如图3-2所示。
图3-2实验3.4运行界面
PrivateSubCommand1_Click()
Dimi,aAsInteger
List1.Clear '
清空列表框
Randomize '
产生随机数种子
Fori=1To30'
循环产生30个随机整数
a=Int(Rnd*9900)+100'
产生100-9999之间的随机整数
List1.AddItema'
将产生的随机数添加到列表框
Nexti
实验3.5简单输入输出
设计一个程序让用户从键盘上输入一个人的出生年份,然后显示出该人的生肖。
例如:
1984年出生的人生肖为“鼠”,则1990年出生的人生肖计算公式为(1990-1984Mod12)=6,则1990年出生的人生肖为“马”,因为十二生肖的顺序为:
("
鼠"
"
牛"
"
虎"
兔"
龙"
蛇"
马"
羊"
猴"
鸡"
狗"
猪"
),程序要求:
(1)使用inputbox函数读取用户输入的出生年份;
(2)能够计算出1984年份后的生肖;
(3)用msgbox函数输出结果。
提示:
本程序在窗体上设计一个按钮即可。
实验3.6温度转换
实现华氏温度与摄氏温度之间转换计算,实验结果界面如图3-3所示。
图3-3实验3.6运行界面
要使用转换的公式是:
'
摄氏温度转换为华氏温度,F为华氏
华氏温度转换为摄氏温度,C为摄氏
要求用两种方法进行转换:
(1)用按钮实现转换。
即单击“华氏转”按钮,则将摄氏温度转换为华氏温度:
同样,单击“摄氏转”按钮,则将华氏温度转换为摄氏温度。
(2)不用命令按钮,当文本输入时直接完成转换。
当用户在摄氏温度文本框中输入结束(以按回车表示),激发KeyPress事件并KeyAscII的值为13时,将摄氏温度转换为华氏温度:
同样,华氏转换为摄氏的实现也是如此。
假定Textl存放C摄氏温度、Text2存放F华氏温度,则C摄氏转换为F华氏的KeyPress事件过程为:
PrivateSubTextl_KeyPress(KeyAsciiAsinteger)
IfKeyAscii=13Then
Text2=9/5*Textl+32
Endif
EndSub
注意:
Text文本框存放的即使是数字也为String类型,为了使其参与数值运算,可通过Val()函数将字符串转换为数值类型。
实验3.7简单计算
编程输入半径、计算圆周长和圆面积,实验结果界面如图3-4所示。
要求:
对输入的半径进行合法性检查,若发现输入的数中有非法数字,利用MsgBox显示出错信息,利用SetFocus方法定位于出错的文本框,重新输入。
图3-4实验3.7运行界面
思考:
如何修改界面增加一个“保存”按钮,将三个文本框的内容,依次保存到一个文件中?
试一试。
实验3.8求解方程
编程实现任意输入一元二次方程的系数a,b,c,计算并输出方程的两个根xl,x2。
界面如图3-5所示。
(1)输入a,c,c三个数,为了程序设计的方便可由三个文本框来实现,然后通过求根公式求得方程的根。
计算的结果可通过文本框显示。
(2)为了保证程序运行的正确,对输入的三个数要进行检查,若发现输入的数中有非法数字,利用MsgBox显示出错信息,利用Setfocus方法定位于出错的文本框处,重新输入。
图3-5实验3.8运行界面
实验3.9Shell函数
在窗体上建立两个按钮,分别显示“计算器”和“记事本”(如图3-6所示),利用Shell函数执行对应的应用程序。
图3-6实验3.9运行界面
实验3.10数值计算
编程随机产生一个五位整数,然后逆序输出,产生的数与逆序数同时显示。
如:
产生12345,输出54321。
(注意五位整数的存储类型,不要利用StrReverse函数,利用算术方法)
实验3.11文字处理
编程建立一个文本框,并输入文本。
在该文本中,随机抽取连续6个字符作为流动密码待用。
在右边文本框中显示密码,在左边文本框中将密码部分替换为“******”。
实验结果如图3-7所示。
图3-7实验3.11运行界面
习题3
习题3.1选择题
1.在一个语句内写多条语句时,每个语句之间用()符号分隔。
(A),(B):
(C)、(D);
2.一句语句要在下一行继续写,用()符号作为续行符。
(A)+(B)—(C)_(D)……
3.下面()是合法的变量名。
(A)X_yz(B)123abc(C)integer(D)X—Y
4.下面()是不合法的整常数。
(A)100(B)&
O100(C)&
H100(D)%100
5.下面()是合法的字符常数。
(A)ABC$(B)"
ABC"
(C)’ABC’(D)ABC
6.下面()是合法的单精度型变量。
(A)num!
(B)sum%(C)xinte$(D)mm#
7.下面()是不合法的单精度常数。
(A)100!
(B)100.0(C)1E十2(D)100.0D+2
8.表达式16/4—2^5*8/4MOD5\2的值为()。
(A)14(B)4(C)20(D)2
9.数学关系3≤x<
10表示成正确的VB表达式为()。
(A)3<
=x<
10(B)3<
=xANDx<
10
(C)x>
=3ORx<
10(D)3<
=xAND<
10.\、/、Mod、*四个算术运算符中,优先级别最低的是()。
(A)\(B)/(C)Mod(D)*
11.与数学表达式
对应,VB的不正确表达式是()。
(A)a*b/(3*c*d)(B)a/3*b/c/d
(C)a*b/3/c/d(D)a*b/3*c*d
12.Rnd函数不可能为下列()值。
(A)0(B)1(C)0.1234(D)0.0005
13.Int(198.555*100+0.5)/100的值()。
(A)198(B)199.6(C)198.56(D)200
14.已知A$="
12345678"
,则表达式Val(Left$(A$,4)十Mid$(A$,4,2))的值为()。
(A)123456(B)123445(C)8(D)6
15.PrintDateAdd("
m"
,1,#1/30/2000#)语句显示的结果是()。
(A)00-2-29(B)00-2-28(C)00-2-30(D)00-1-31
16.表达式DateDiff("
y"
,#12/30/1999#,#1/13/2000#)的结果是()。
(A)1(B)11(C)14(D)99
17.表达式Len("
123程序设计ABC"
)的值是()。
(A)10(B)14(C)20(D)17
18.表达式LenB("
19.下面正确的赋值语句是()。
(A)x+y=30(B)y=π*r*r(C)y=x+30(D)3y=x
20.为了给x,y,z三个变量赋初值1,下面正确的赋值语句是()。
(A)x=l:
y=l:
z=l(B)x=l,y=l,z=l
(C)x=y=z=1(D)xyz=l
21.赋值语句:
a=123+MID("
123456"
3,2)执行后,a变量中的值是()。
(A)“12334”(B)123(C)12334(D)157
22.赋值语句:
a=123&
MID("
23.如下程序:
e=30:
f=20:
Printe>
f
该程序的执行结果是()。
(A)1(B)True(C)0(D)False
24.如果在立即窗口执行如下语句:
a$="
Myfaverate"
:
b$="
Delete"
c$=b$&
ucase(mid(a,3,8)):
printc
则输出结果是()。
(A)DeleteFAVERATE(B)DELEThFAVERATE
(C)DeleteMYFAVERATE(D)MYFAVERATE
25.下列选项中,合法的变量名是()。
(A)5X_yz(B)d%a(C)Else(D)sum_3
26.下列表达式中,不合法的是()。
(A)C="
Del"
+"
123"
(B)C=1+2/3
(C)C="
&
"
(D)C=[3*7+6-5]/6
27.下面()是合法的字符常数。
(A)True$(B)"
True"
(C)’True’(D)True
28.表达式64/2^3—4^2*8/4MOD7\2的值为()。
(A)4(B)16(C)6(D)8
29.数学关系5≤y<
7表示成正确的VB表达式为()。
(A)5<
=y<
7(B)5<
=yORy<
7
(C)y>
=5ANDy<
7(D)5<
=yAND<
30.^、/、Mod、*四个算术运算符中,优先级别最低的是()。
(A)^(B)/(C)Mod(D)*
31.为了给a,b两个变量赋初值2,下面正确的赋值语句是()。
(A)a=2:
b=2(B)a=2,b=2
(C)a=b=2(D)ab=2
参考答案
1.B2.C3.A4.D5.B6.A7.D8.B9.B
10.C11.D12.B13.C14.B15.A该函数表示在当前日期按“m”月格式加一个月,本应该C,但这是不合法的日期。
16.C17.A18.C19.C20.A21.D22.A23.B24.A25.D26.D27.B28.C29.C30.C31.A
习题3.2填空题
1.在VB中,1234、123456&、1.2346E+5、1.2346D+5四个常数分别表示()、()、()、()类型。
2.整型变量x中存放了一个两位数,要将两位数交换位置,例如,13变成31,实现的表达式是()。
3.数学表达式sin15°
的VB算术表达式为
()。
4.数学表达式的VB算术表达式为()。
5.表示x是5的倍数或是9的倍数的逻辑表达式为()。
6.已知a=3.5,b=5.0,c=2.5,d=True,则表达式:
a>
=0ANDa+c>
b+3ORNOT d的值是()。
7.Int(-3.5)、Int(3.5)、Fix(-3.5)、Fix(3.5)、Round(-3.5)、Round(3.5)的值分别是()、()、()、()、()、()。
8.表达式Ucase(Mid("
abcdefgh"
3,4))的值是()。
9.在直角坐标系中,(x,y)是坐标系中任意点的位置,用x与y表示在第一或第三象限的表达式是()。
10.要以xxxx年xx月xx日形式显示当前机器内日期的Format函数表达式为()。
11.计算离你毕业(假定毕业年月为2010年7月3日)还有多少个星期的函数表达式是()。
12.表示s字符变量是字母字符(大小写字母不区分)的逻辑表达式为()。
1.整型、长整型、单精度型、双精度型
2.(xmod10)*10+x\10
3.sin(15*3.14/180)+sqr(x+exp(3))/abs(x-y)-log(3*x)
4.(a+b)/(1/(c+5)—c*d/2)5.xmod5=0orxmod9=0
6.False
7.-4,3,-3,3,-4,4
8.CDEF
9.x>
0AndY>
0orx<
0AndY<
10.Format(Date,”YYYY年mm月dd日”)
11.DateDiff(“d”,#1/1/2001#,Now)+1
12.UCase(s)>
=”A”AndUCase(s)<
=”Z”
习题3.3简答题
1.下列哪些字符串可作为VisualBasic的变量名,哪些不行?
4*DeltaAlpha4ABcABrrReadData
FilenameA(A+B)c254DRead
2.VisualBasic中是否允许出现下列形式的数?
±
25.743.457E-10.3681.87E+50
10^(1.256)D322.5E12E3
8.75D+60.258
3.把下面的数写成普通的十进制数:
(1)2.6535897933D-006
(2)1.215766754590569D+019
(3)8.6787E+8(4)2.567E-12
4.符号常量和变量有什么区别?
什么情况下宜用符号常量?
什么情况下宜用变量?
5.指出下列VisualBasic表达式中的错误,并写出正确的形式:
(1)COS(28°
)
(2)-3/8+8.INT24.8
(3)(8+6)^(4÷
-2)+SIN(2*π)(4)[(x+y)+z]×
80-5(C+D)
6.将下列数学式子写成Visua1Basic表达式:
(1)cos2(c+d)
(2)5+(a+b)2(3)cosx(sinx+1)
(4)e2+2(5)2a(7+b)(6)8e3·
1n2
7.设a=2,b=3,c=4,d=5,求下列表达式的值:
(1)a>
bANDc<
=dOR2*a>
c
(2)3>
2*bORa=cANDb<
>
cORc>
d
(3)NOTa<
=cOR4*c=b^2ANDb<
a+c
8.改正下列语句中的错误:
(1)A$=abc
(2)Printa=34+23
(3)x=5,y=6(4)Print"
c="
:
5+6
(5)Text1.Print"
******"
(6)A*5=B+2
习题3.4操作题
1.在“立即”窗口中试验下列函数的操作:
(1)printchr(65)
(2)printsgn(3)
printsqr
(2)
(3)a$=”Happy”
b$=”NewYear”
printa$+b$
printa$&
b$
(4)m$=”ABCDEFGHIJK”
printleft$(m$)
printright$(m$)
printmid$(m$2,3)
printlen(m$)
printinstr(m$,”bcd”)
printlcase(m$)
(5)printnow
printday(now)
printmonth(now)
printyear(now)
printweekday(now)
(6)printrnd
Fori=1to5:
printrnd:
nexti
2.写出下列语句的输出结果,并上机验证:
(1)Print"
25+32="
;
25+32
(2)x=12.5
Print"
x="
x
(3)s$="
China"
s$="
Beijing"
Prints$
(4)a%=3.14156
printa%
(5)Print"
"
,"
Tianjin"
Shanghai"
Wuhan"
Print"
Nanjing"
Shenyang"
Chongqing"
Wulumuqi"
Print,,"
Guangzhou"
,,"
chengdo"
(6)PrintTab(5);
100;
Space$(5);
200,Tab(35);
300
PrintTab(10);
400;
Tab(23);
500;
600
(7)a=Sqr(3)
printFormat$(a,”000.00”)
printFormat$(a,”###.#00”)
printFormat$(a,”00.00E+00”)
printFormat$(a,”-#.####”)
3.写出下列程序的输出结果:
SubForm_Click()
a=10:
b=15:
c=20:
d=25
Printa;
spc(5);
b;
spc(7);
space$(8);
space(5);
Printc;
spc(3);
”+”;
Printspc(3);
”=”;
c+d
4.在窗体上画一个命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
a=InputBox(”EntertheFirstinteger”)
b=InputBox(”EntertheSecondinteger”)
Printb+a
EndSub
程序运行后,单击命令按钮,先后在两个输入对话框中分别输入456和123,输出结果是什么?
习题3.5设计题
1.利用InputBox输入三角形三条边的长度a,b,c,计算并显示三角形的面积。
公式为:
面积=
,其中s=(a+b+c)/2
2.用InputBox输入一个正实数,用Print方法在一行上显示出它的平方和平方根、立方和立方根,每个数保留三位小数,之间有间隔
3.从键盘上输入4个数,编写程序,计算并输出这4个数的和及平均值。
通过InputBox函数输人数据,并在窗体上显示和及平均值。
4.编写程序,要求用户输人下列信息:
姓名、年龄、通信地址、邮政编码、电活,然后将输人的数据用适当的格式在窗体上显示出来。
5.编写程序,求解鸡兔同笼问题。
一个笼子中有鸡x只,兔y只。
每只鸡有2只脚,每个兔有4只脚。
今知鸡和兔的总头数为h,总脚数为f。
问笼中鸡和兔各若干?
根据数学知识,可以写出如下联立方程式:
x+y=h
2x+4y=f
由以上二式可推导出:
x=(4h-f)/2
y=(f-2h)/2
可按上式编写程序。
用InputBox函数输入h和f的值,设h=71,f=158,请编写程序并上机运行。
6.自由落体位移公式为:
S=1/2gt2+ν0t
其中,ν0为初始速度,g为重力加速度,t为经历的时间。
编写程序,求位移量S。
ν0=4.8m/s,t=0.5s,g=9.81m/s2。
在程序中把g定义为符号常量,用InputBox函数输人ν0和t两个变量的值。
1.参考程序:
Dima&
b&
c&
s#
a=InputBox("
请输入三角形a边的长度"
b=InputBox("
请输入三角形b边的长度"
c=InputBox("
请输入三角形c边的长度"
s=(a+b+c)/2
Text1=Sqr(s*(s-a)*(s-b)*(s-c))
2.参考程序:
Dima#
a=InputBox("
请输入一个正实数"
Printformat(a^2,“0.000“),format(Sqr(a),“0.000“),
Printformat(a^3,“0.000“),format(a^(1/3),“0.000“)
3.参考程序:
PrivateSubForm_Click()
Dima!
b!
c!
d!
sum!
aver!
a=?
b=?
c=?
d=InputBox("
d=?
sum=a+b+c+d
aver=sum/4
sum="
;
sum,"
aver="
aver
4.参考程序:
Dimxm$,nl%,txdz$,y