VB模拟系统上机练习总结2.docx
《VB模拟系统上机练习总结2.docx》由会员分享,可在线阅读,更多相关《VB模拟系统上机练习总结2.docx(10页珍藏版)》请在冰豆网上搜索。
![VB模拟系统上机练习总结2.docx](https://file1.bdocx.com/fileroot1/2023-1/2/4ddf62cf-87dd-4c8a-bcea-152e78b1a3e2/4ddf62cf-87dd-4c8a-bcea-152e78b1a3e21.gif)
VB模拟系统上机练习总结2
1,!
表示的是"否定";
:
表示的是并行符号。
2,焦点只能移到可视的窗体或控件。
因为在窗体的Load事件完成前窗体或窗体上的控件是不可视的,所以如果不是在Form_Load事件过程完成之前首先使用Show方法显示窗体的话,是不能使用SetFocus方法将焦点移至正在自己的Load事件中加载的窗体的。
3,如果不指明函数过程参数的类型,函数类型默认为"Variant"类型。
在函数过程中,过程的返回值只有一个。
一般数组通过传址方式进行传递。
4,SelectCase语句中的测试表达式只能是数值表达式或字符串表达式。
当执行第一次循环时i的值为i=i+3,所以i的值增加3;当执行第二次循环时,在Fori=0To50语句中i的值增加1,而在i=i+3语句中i的值增加3,所以在第二次循环时i的值增加4;以后每次循环i的值都增加4,当i>10时循环退出,故循环只能被执行3次,则n值为3。
5,Image控件:
Stretch属性:
返回/设置一个值,决定是否调整图形的大小以适应图像控件。
Appearance属性:
返回/设置一个对象在运行时是否以3D效果显示。
图像框控件无Autosize(调整图像大小适应图片框)和AutoRedraw属性。
6,将数据写入顺序文件的语句为:
Write#filenumber,[outputlist]或者
Print#filenumber,[outputlist]
7,设有以下的循环:
x=1
Do
x=x+2
Printx
LoopUntil______
要求程序运行时执行3次循环体,请填空。
Do…LoopUntil是先执行循环体,再判断条件表达式,如果表达式的值为True,则执行Loop下面的语句,如果为False,则继续执行循环体。
本题中执行第一次循环后变量x的值为3,执行第二次循环后变量x的值为5,执行第三次循环后变量x的值为7,这时要结束循环,表达式的值要为True,因此表达式的值要当变量x的值为5时为False,继续执行循环体,大于5小于7时为True,结束循环,因此变量x的判断条件要介于5和7之间,即x>5或x>6或x>=6或x=7或x>=7。
9,在窗体上画一个名为Command1的命令按钮,然后编写如下程序:
PrivateSubCommand1_Click()
DimiAsInteger
Sum=0
n=InputBox("Enteranumber")
n=Val(n)
Fori=1Ton
Sum=____sum+fun(i)__
Nexti
PrintSum
EndSub
Functionfun(tAsInteger)AsLong
p=1
Fori=1Tot
p=p*i
Nexti
___fun=p___
EndFunction
以上程序的功能是,计算1!
+2!
+3!
+...+n!
,其中n从键盘输入,请填空。
题目要求计算1!
+2!
+3!
+……+n!
,其中求每一项的阶乘可以通过调用函数fun来完成。
先定义一个变量i为整型数据,作为循环控制变量,并给Sum变量赋初值,初值为0。
由用户输入一个数值赋给变量n,并将变量n的数据类型转换为数值型。
循环变量i从1到n之间发生变化,函数fun利用主程序传递过来的参数,最后要求返回该过程计算的值,变量p用来存放n!
,所以最后应该返回变量p的值给调用过程,Function过程通过"过程名=表达式"把值赋给"过程名",所以Functionfun中缺少过程返回值语句,应该填写fun=p,表示过程返回变量p的值。
要累计每一项的阶乘的和,因此主程序中缺少累计各项阶乘的的语句,每计算一项阶乘,就将它的值累加给变量Sum,所以Sum变量作为一个累计数,在表达式中既要累计和,又要调用函数的命令,即sum+fun(i)。
10,下列程序段的执行结果为______。
N=0
ForI=1To3
ForJ=5To1Step-1
N=N+1
PrintN;J;I
For--Next循环语句
跟踪程序:
外循环执行3次,内循环执行5次,循环体N=N+1一共执行了3*5=15次,故N的值应当为15。
值得注意的是:
For循环的控制变量,在每次循环体执行完之后,会自动加循环步长值,直到这个值超出循环语句指定的范围,循环结束。
由此可见,循环结束后,I的值应当为3+1=4,J的值应当为1+(-1)=0
1504
11,在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
Move500,500
EndSub
程序运行后,单击命令按钮,执行的操作为
窗体移动到距屏幕左边界、上边界各500的位置
12,List控件中ListIndex属性表示当前选中项目的索引,Text属性表示当前选中项目的内容,RemoveItem方法表示删除列表项;
13,控件数组的特点:
控件数组由一组相同类型的控件组成;这些控件具有相同的名称;数组中的每个控件都有惟一的索引号,即下标,下标值由Index属性指定,通过索引值来区别控件数组中的元素
15,在窗体上从左到右有Text1、Text2两个文本框(见图),要求运行程序时在Text1中输入1个分数后按回车键,则判断分数的合法性,若分数为0~100中的1个数,则光标移到Text2中;否则光标不动,并弹出对话框"分数错"。
下面程序中正确的是______。
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then'回车符的ASCII码是13
a=Val(Text1)
Ifa>=0Anda<=100Then
Text2.SetFocus
Else
Text1.SetFocus:
MsgBox("分数错")
EndIf
EndIf
EndSub
本题要求的条件是0~100,那么条件表达式应该是a>=0Anda<=100。
16,Dim语句形式为:
Dim变量名[As类型]
[As类型]:
方括号部分表示该部分可以缺省。
缺省"As类型"部分,则所创建的变量默认为变体类型。
为方便定义,可在变量名后加类型符来代替"As类型"。
此时变量名与类型符之间不能有空格。
一条Dim语句可以同时定义多个变量,但每个变量必须有自己的类型声明,类型声明不能共用,$是定义字符型变量的关键字,
17,以.BAS为扩展名的文件是标准模块文件窗体文件包含该窗体及其控件的属性
18,For循环的循环次数=Int(终值-初值)/步长+1。
19,在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
PrivateSubCommand1_Click()
a=12345
PrintFormat$(a,"000.00")
EndSub
程序运行后,单击命令按钮,窗体上显示的是______格式输出函数Format可以使数值、日期或字符串按指定的格式输出。
格式输出函数一般用于Print方法中,其形式如下:
Format$(表达式[,格式字符串])
其中:
表达式:
要格式化的数值、日期和字符串类型表达式。
格式字符串:
表示按其指定的格式输出表达式的值。
格式字符串有三类:
数值格式、日期格式和字符串格式。
格式字符串要加引号。
此题中的格式字符串为数值格式,符号是0(作用:
实际数字小于符号位数,数字后加0)。
故本题答案为B。
12345.00
20,Write语句和Print语句的基本功能相同,其主要区别有以下两点:
1、用Write语句向文件写数据时,数据在磁盘上以紧凑格式存放,能自动在数据项之间插入逗号,并给字符串加上双引号。
一旦最后一项被写入,就插入新的一行。
2、用Write语句写入的正数的前面没有表示符号位的空格。
22,某人设计了如下程序用于计算并输出7!
(7的阶乘)
PrivateSubCommand1_Click()
t=0
Fork=7To2Step-1
t=t*k
Next
Printt
EndSub
执行程序时,发现结果是错误的。
下面的修改方案中能够得到正确结果的是______。
把t=0改为t=1
23,在窗体上画一个命令按钮,然后编写如下程序:
Functionfun(ByValnumAsLong)AsLong
DimkAsLong
k=1
num=Abs(num)
DoWhilenum
k=k*(num\10)
num=num\10
Loop
fun=k
EndFunction
PrivateSubCommand1_Click()
DimnAsLong
DimrAsLong
n=InputBox("请输入一个数")
n=CLng(n)
r=fun(n)
Printr
EndSub
程序运行后,单击命令按钮,在输入对话框中输入234,输出结果为0
25,CommonDialog控件提供一组标准的操作对话框,进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作。
通过运行Windows帮助引擎控件还能显示帮助。
CommonDialog控件建立对话框的操作是通过调用自身的方法实现的:
ShowOpen显示"打开"对话框
ShowSave显示"另存为"对话框
ShowColor显示"颜色"对话框
ShowFont显示"字体"对话框
ShowPrinter显示"打印"或"打印选项"对话框
26.在程序运行时,单击"输入整数"按钮,可以从键盘输入一个整数,并在窗体上显示此整数的所有不同因子和因子个数。
图1是输入53后的结果,图2是输入100的结果。
本题主要考查了已知整数的因子的的判定,修改后的代码如下:
PrivateSubCommand1_Click()
DimnAsInteger
Cls
n=InputBox("请输入一个整数")
Print"因子数=";fun(n)
EndSub
Functionfun(mAsInteger)
DimsAsInteger
s=0
Fork=1ToAbs(m)/2
IfmModk=0Then
s=s+1
Printk
EndIf
Nextk
fun=s
EndFunction
27,其窗体上有2个命令按钮和1个
计时器。
2个命令按钮的初始标题分别是"演示"和"退出";计时器
Timer1的初始状态为不可用。
请画1个名称为Label1,且能根据显示内容自
动调整大小的标签,其标题为"VisualBasic程序设计",显示格式为黑
体小四号字。
如图所示。
程序功能如下:
1)单击标题为"演示"的命令按钮时,则该按钮的标题自动变换为"暂停",且标签在窗体上从左向右循环滚动,当完全滚动出窗体右侧时,从窗体左侧重新进入;
2)单击标题为"暂停"的命令按钮时,则该按钮的标题自动变换为"演示",并暂停标签的滚动。
3)单击"退出"按钮,则结束程序运行。
本题主要考查了Timer控件、Label空件和CommandButton控件。
1.定时器控件Timer的Enabled属性有两种状态,当Enabled为True时,定时器每间隔Interval便引发Timer事件。
2.并将Label的Font属性值设置字体的名称和大小;AutoSize属性设置为True,可以自动调整大小;
解题方法:
打开sjt4.vbp中的代码窗口,修改后的代码如下:
PrivateSubCommand1_Click()
IfCommand1.Caption="演示"Then
Timer1.Enabled=True
Command1.Caption="暂停"
Else
Timer1.Enabled=False
Command1.Caption="演示"
EndIf
EndSub
PrivateSubTimer1_Timer()
IfLabel1.Left>Form1.WidthThen
Label1.Left=-Label1.Width
Else
Label1.Left=Label1.Left+100
EndIf
EndSub
28,32437658281298573142536475869713243546576879805937
程序运行后,单击窗体,将把文件datain.txt中的数据输入到二维数组Mat中,在窗体上按5行、5列的矩阵形式显示出来,并输出矩阵左上-右下对角线
上的数据,
1、Open语句
Open语句用来打开或建立一个文件,其语法为:
Open文件名[for存取方式][Access操作方式][锁定]As[#]文件号[Len=记录长度]
参数说明:
“存取方式”指文件的输入输出方式,可以是以下操作之一:
Output指定顺序输出方式
Input指定顺序输入方式
Append指定顺序输出方式,与Output不同的是,用Append方式打开文件时,文件指针定位于文件尾部,如对文件执行写操作,则写入数据附加到原来文件的后面。
Random随机存取方式,也是默认存取方式。
Binary指定二进制方式文件。
在这种方式下,可以用Get和Put语句对文件中任意字节位置的信息进行读写。
“操作方式”用来指定访问文件类型,可以是下列类型之一:
Read打开只读文件
Write打开只写文件
ReadWrite打开读写文件
“锁定”用来限制其他用户或进程对打开的文件进行读写操作。
锁定类型包括:
LockShared允许机器上任何进程读写该文件
LockRead不允许其他进程读该文件
LockWrite不允许其他进程写该文件
LockReadWrite不允许其他进程读写该文件
“文件号”是1到511之间的某个整数,对打开文件的各种操作要靠文件号来与文件发生关系。
“记录长度”对于随机方式打开的文件,指记录长度;对于顺序文件,指缓冲字符数。
2、Input#语句
用来读取顺序文件的数据。
语法为:
Input#文件号,变量列表
3、Print#语句
用来把数据写入顺序文件。
语法为:
Print#文件号,[[Spc(n)|Tab(n)][表达式列表][;|,]]
Spc(n)函数用来在当前的输出位置加入n个空白;Tab(n)函数用来设置在第n个位置写入数据。
分号表示后续写入的数据将接着当前的数据尾部写入;逗号表示在当前写入的数据后换行。
4、Close语句
用来关闭一个被打开的文件。
语法为:
Close#文件号
解题方法:
打开sjt5.vbp中的Form1窗体,打开代码窗口,修改后的代码如下:
OptionBase1
PrivateSubForm_Click()
ConstN=5
ConstM=5
DimMat(M,N)
Dimi,j
OpenApp.Path&"\"&"datain.txt"ForInputAs#1
Fori=1ToN
Forj=1ToM
Input#1,Mat(i,j)
Nextj
Nexti
Close#1
Print
Print"初始矩阵为:
"
Print
Fori=1ToN
Forj=1ToM
PrintTab(5*j);Mat(i,j);
Nextj
Print
Nexti
Print
Print"左上-右下对角线上的数为:
"
Fori=1ToN
Forj=1ToM
Ifi=jThen
PrintTab(5*j);Mat(i,j);
Nextj
Nexti
EndSub