VB程序的设计教程课后答案_第1页
VB程序的设计教程课后答案_第2页
VB程序的设计教程课后答案_第3页
VB程序的设计教程课后答案_第4页
VB程序的设计教程课后答案_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课后习题解答第一、二章:1 、 简述VB6.0 的主要特点答: 方便、直观的可视化设计工具;面向对象程序设计方法;事件驱动的编程机制;易学易用的应用程 序集成开发环境;结构化程序设计语言;完备的联机帮助功能;强大的多媒体、数据库和网络功能。2 、 当正常安装 VB6.0后,误把 Windows子目录删除。当重新安装Windows后,是否需要再次安装VB6.0 ?答:要重新安装的。因为安装 VB6.0时,有些VB程序被系统自动安装在Windows目录下,所以一旦删除Windows 子目录,就必须重新安装VB6.0。3 、 Visual Basic 6.0 分为学习版、专业版和企业版,如何知道所安

2、装的是哪个版本?答:在VB6.0 的启动界面上,能显示对应的版本。4 、 叙述建立一个完整应用程序的过程答:首先建立用户界面的控件对象(简称控件) ;然后对控件属性进行设置;再对控件事件过程及编程;保存应用程序;程序调试和运行。5 、 Visual Basic 6.0 有多种类型窗口,若要在设计时看到代码窗口,应怎样操作?答: 选择“视图”>“代码窗口”命令或单击“工程资源管理器”窗口中的“查看代码”按钮。6 、 当建立好一个简单的应用程序后, 假定该工程仅有一个窗体模块。 试问该工程涉及多少个要保存的文件? 若要保存该工程的所有文件, 应先保存什么文件?再保存什么文件?若不这样做, 系

3、统会出现什么信息? 答: 涉及两个文件要保存。先保存窗体文件( .frm ) ,再保存工程文件( .vbp ) 。若先保存工程文件,系 统也会先弹出“文件另存为”对话框,要求先保存窗体文件。7 、 保存文件时,若不改变目录名,则系统默认的目录是什么?答:系统默认的目录是录是VB988 、 安装Visual Basic 6.0 后,帮助系统是否也已安装?答:没有。VB6.0的帮助系统在两光盘上,即MSDNLibrary ,其中还包含了 VG VFP等其他语言的帮助系统。9 、 如何使用 Visual Basic 6.0 的帮助系统? 答:最方便的方法是选定要帮助的容,然后按F1功能键,这时系统打

4、开MSDNLibrary查阅器,直接显示与选定容有关的帮助信息。10 、 什么是类?什么是对象?什么是事件过程? 答: 类是同类对象集合的抽象,它规定了这些对象的公共属性和方法; 对象是类的一个实例,对象包含三个要素:属性、方法和事件。当在对象上发生了事件后,应用程序就要处理这个事件,而处理的步骤就是事件过程。11 、 属性和方法的区别是什么? 答:属性是对象的特征,方法是对象的行为。前者有值,可以被赋值或引用;后者没有值,表示能够执行的操作。12 、当标签边框的大小由 Caption 属性的值进行扩展或缩小时,应对该控件的什么属性进行何种设置?答:将该控件的Autosize 属性值设置为 t

5、rue 。13 、在 VB6.0 中,命令按钮的显示形式可以有标准的和图形的两种选择,它们通过什么属性来设置?若选择图形的,则通过什么属性来装入图形?若已在规定的属性里装入了某个图形文件,但该命令按钮还是不能显示该图形,而显示的是Caption 属性设置的文字,应怎样修改?答: 命令按钮的显示形式通过将Style 属性值设置为 Graphical 来实现。 通过 Picture 属性来装入图形。 不能显示图形是因为Style 属性值被设置为 Standard ,只要将其改为 Graphical ,并且将 Caption的值设置为空即可。14 如果文本框要显示多行文字,应对什么属性设置为何值?答

6、: 将 MultiLine 属性的值设置为 True 。15 标签和文本框的区别是什么?答:在程序运行时,标签只能显示文字,不能输入文字,显示文字通过对 Caption 属性赋值来实现;而文本框既能显示文字,也能输入文字,这通过 text 属性来实现。16 要让文本框获得焦点的方法是什么?答:SetFocus 方法。17 、简述文本框的 Change和KeyPress事件的区别答: 相同点是当在文本框输入容时, 同时激发上述两个事件; 不同点是 Keypress 事件可通过参数KeyAscii返回所按键的编码值, 可依此判断数据输入的正确性或数据输入结束与否, 因而该事件使用较多; chang

7、e事件还可以发生在程序改变文本框的 text 属性时。18 当某文本框输入数据后(按了回车键) ,经判断后认为是数据输入错,应怎样删除原来文本框中的数据?答: 假定文本框的名称为 Text1 ,则事件过程如下:Private Sub Text1_KeyPress(KeyAscii As Integer )if KeyAscii = 13 thenif 出错条件判断成立thenText1= ”end ifend ifend sub注意:删除刚输入的字符,通过 KeyAscii=0 语句实现;焦点定位文本框对象采用 SetFocus 方法。19 在程序运行前,对某些控件设置属性值,除了在窗体中直接

8、设置外,还可以通过代码设置,这些代码一般存放在什么事件中?如果要将命令按钮定位在窗体的中央,试写出事件过程代码。答: 这些代码一般放在Forem_Load()事件过程中。 将窗体定位在屏幕的中央, 只能在属性窗口中将Form1窗口的 StartUpPosition 属性值设置为2(表示屏幕中心),该属性不能在运行时设置。要将按钮定位在窗体的中央,事件过程如下:Private sub Form_Load()Command1.left= Form1.scaleWidth2-command1.Width2Commandl.Top = Forml.ScaleHeight 2 commandl.Heig

9、ht 2End Sub其中, ScaleWidth ScaleHeight 表示窗体的相对宽度和高度。20 、VB6.0提供的大量图形文件存放在哪个目录?若你的计算机上没有安装,应怎样安装这些图形文件?答:存放在Graphics目录下。在 VB6.0的安装盘上可以找到Graphics子目录,将其复制到硬盘上的VB目录下 。第 3章:略(在书本上)1 合法的有: ( 1 )单精度(3)单精度(4)双精度(6)整形( 7)字符型(9)日期型(10)双精度(12)八进制表示(14)十六进制表示(15)逻辑型(18 )单精度数2 合法变量有: ( 1 ), (2) , (6) , (9) , (10)

10、 , ( 11)3、算术表达式写成 VB表达式11) | x+y | + z 5 a abs(x+y) +zA5(2) (a+xy) 6 a 11 + x * y ) a 6(3 )a (10*x+ sqr(3*y) ) / (x * y )( 4 )( -b+sqr(bA2-4*a*c) )/2/a(5) a 1 / (1/r1+1/r2+1/r3)(6) a sin(45*3.14/180)+ ( exp(10)+ log(10) )/ sqr( x+y+1)4、根据条件写出相应的VB表达式(1) chr( int ( Rnd * 10 +67 )(2) int ( Rnd * 101 +

11、100 )(3) x * y >0(4) x%5=0 or x % 7 =0(5) (x mod 10)10 + x /10(6)Round(123.2389*100)/100(7) Ucase (c ) >=” A”and Ucase(c )<= ” Z” or Lcase(c ) > =”a” and Lcase(c )<= ” z”(8) Mid ( s, 5, 6 )(9) x >=10 andx <20(10) ( x < z and y >z ) or ( x >z and y < z)(11) x>z and

12、 y > z5 、 下出下列表达式的值:(1) 123+23 mod 10 7 +Asc( "A")a 188,(2)100+“ 100" & 100 a 200100(3) Int ( 68.555*100+0.5)/100 a 68.56(4) 已知 A$= "87654321”,求表达式 Val(Left$(A$,4)+ Mid(A,4,2) 的值 a 876554(5) DateAdd( "m',1,#1/30/2000#) a 2000-2-29(6) Len (" VB程序设计”)a 66 、 略第

13、4章: VB 控制语句1 、 结构化程序设计的三种基本结构是什么?答: 顺序结构、选择结构和循环结构。2 、 指出下列赋值语句中的错误(包括运行时错误) :( 1) 10x=sin(x)+y 10x 是非法变量名( 2) c=3+sqr(-3) 待求平方根的数为负数( 3) c+x+y=c*y 赋值符左边是表达式了( 4) x=sin(x)/(20 mod 2) 分母为零了3、 Msgbox 函数与 InputBox 函数之间有什么区别?各自获得什么值?答: 两个函数共同之处都显示对话框。区别: Inputbox 函数等待用户在文本框中输入数据,获得的是输 入的字符串数据;Msgbox 函数等

14、待用户按一按钮,获得的是表示按钮的整数值,以决定程序的流向。4、 要使单精度变量x,y,z 分别保留 1位、 2位、3位小数,并在窗体显示,应使用什么函数?如何编写对应的 print 方法?答: 使用 format 函数,具体如下:.专业 .专注 .print Format(x, " 0.0 ")print Format ( y ,“ 0.00")print Format ( z ," 0.000")5、 语句if <表达式then 答:算术、关系、逻辑表达式6、 指出下列语句中的错误:(1) if x >y then print

15、x(2) if 10Vx<20 then x=x+207、按照下列条件,写出相应的条件语句(1)字符型变量中第三个字符是if Mid ( c , 3, 1 )=(2)禾1J用 if 语句、select case中的表达式可以是算术、字符、关系、逻辑表达式中的哪些?'表达式书写错误,应写成:x>=y'表达式书写错,应是: 10Vx and x<20C”时,利用 Msgbox显示"yes",否则显示"No" then Msgbox "yes" else Msgbox"No'rivate

16、sub command1.click()x=val( text1)Select casecase is > 20y = x * x + 3 * x +2case is>=10y = sqr ( 3 * x ) - 2case is >0y= 1 / x + Abs ( x )end selectprint yend subx,y,z中的最大值并存入变量max中。语句两种方法计算分段函数:答:private sub command1.click()x=val( text1)if x > 20 theny = x * x + 3 * x +2elseif x>=10

17、theny = sqr ( 3 * x )- 2elseif x>0 theny= 1 / x + Abs ( x )end ifprint yend sub(3)利用if语句和叶 函数两种方法求三个数if x>y then max=x else max = yif z>max then max = z max = iif ( x>y , x , y ) : max = iif ( max >z, max , z )8、 在多分支结构的实现中,可以用 if thenelseif endif 形式的语句,也可以用selectcase - end Select形式的语

18、句,由于后者的条件书写更灵活、简洁,是否完全可以取代前者?答:虽然Select Caseend Select 形式的语句中条件书写更灵活、简洁,程序可读性强,但使用它有限制。(适合于对一个变量判断的)首先,看该语句的形式:Select Case <变量或表达式>case <表达式列表1>< 语句块1>case <表达式列表2>< 语句块2 >.专业.专注.Case else < 语句块n+1 >End Select其中变量或表达式只能含有一个变量,任何含有多个变量的形式都是错误的。如,要判断x,y是否在第一、三象限,若输入

19、如下语句:select case x,y, VB 程序会显示“缺少:语句结束”。其次,在后面的case表达式列表中不能出现Select case 变量或表达式中使用的变量,也不能出现主教材上列出的四种形式以外的符号或关键字(符号是:逗号;关键字是:is, to )。9、 计算下列循环语句的次数(1) For I = -3 to 20 step 46(2) For I = -3.5 to 5.5 step 0.519(3) For I = -3.5 to 5.5 step -0.5无循环,因为步长 <0 ,循环初值小于终值(4) For I = -3 to 20 step 0无限循环,因为

20、步长 =010、 下列30-90为语句标号,分别标记该语句,第40名共执行了几次,第50名共执行了几次,执行第 90号语句后显示的结果是多少?30 For j =1 to 12 Step 3循环 4次40 For k = 6 to 2 step -2循环3次,被执行4次50 mk = k共执行4*3=12次60 print j , k70next k80next j90 print j , k , mk13 0 211、 如果事先不知道循环次数,如何用 forNext结构来实现?答:将循环终值设置得足够大,再在循环体设置条件语句,满足条件退出循环。12、 利用循环结构,实现如下功能:(1)s=

21、0: for I =1 to 10s = s + ( i+1)*(2*i+1)next i(2)分别统计1100中,满足3的倍数、7的倍数的数各是多少?s3 = 0: s7 = 0for I =1 to 100if I mod 3 = 0 then s3 = s3 +1if I mod 7 = 0 then s7 = s7 +1 next i(3)将输入的字符串以反序显示。例如,输入“ASDFGHJKL,显示“ LKJHGFDSA。s = InputBox("请输入字符串”)for I = Len( s ) to 1 step -113、print Mid ( s, I, 1 ) n

22、ext i卜面程序的运行结果是什么?该程序的功能是什么?10100将20转换成2进制数表示Private Sub Command1_Click() Dim x$, n% n = 20 Do While n <> 0 a = n Mod 2 n = n 2 x = Chr(48 + a) & x Loop Print x End Sub 14、22, 484利用相差法求x,y的最大公约数和最小公 倍数下面程序的运行结果是什么?该程序的功能是什么? Private Sub Command2_Click() Dim x%, y%, z% x = 242: y = 44 z = x

23、 * y Do Until x = yIf x > y Then x = x - y Else y = y Loop Print x, z / x End Sub15、利用随机函数产生50100围的20个随机数,显示其中最大值,最小值和平均值。Private Sub Command3_Click()Dim i%, min%, max%, avg!, x% min = 100: max = 50: avg = 0 For i = 1 To 20x = Int(Rnd * 51 + 50)Print x;If x > max Then max = xIf x < min Then

24、 min = xavg = avg + xNext IPrint最小值是:”;min;" 平均值是:"avg / 20Print "20个随机数最大是:";max;"End Sub第5章:数组和自定义类型1、2、在VB6.0中,数组的下界默认为 0,用什么语句可以重新定义数组的默认下界?opention Basic 语句要分配存放12个元素的整形数组,下列数组声明(若下界无,按默认规定)哪些符合要求?(1) n=12Dim a ( 1 to n ) As IntergerRedim a ( n )(2) Dim a%()n=11(3) Dim

25、a%2,3(5) Dim a%(10 )(4) Dim a ( 1,1,3) as Integer(6) Dim a!()ReDim a ( 1 to 12 ) Dim a% ( 2,3 )ReDim a (3, 2 ) As Integer(8) Dim a ( 1 to 3 1 to 4 ) AsInteger答:2、4、7、端合要求3、 程序运行时显示“下标越界”可能产生的错误有哪几种情况?答:下标比下界小或比上界大4、 已知下面数组声明,写出它的数组名、数组类型、维数、各维的上下界、数组的大小、并按行的顺序列出各元素。Dim a ( -1 to 2, 3) as single答:数组名

26、为a,数组类型为单精度,二维,各维的下界为-1和0,上界分别为2和3;数组的大小为4*4共16个元素;各元素标号排列为:a (-1, 0 )a (-1, 1)a (-1,2 )a (-1,3 )a (0, 0 )a (0,1)a (0, 2 )a (0, 3 )a (1, 0 )a (1, 1)a (1,2 )a (1,3 )a (2, 0)a (2,1)a (2, 2 )a (2, 3 )5、 利用随机数生成两个矩阵(数据不一定相同,前者 30-70围,后者101-135) (1)将两个矩阵相加结果放入C矩阵中。For i = 1 To 4Forj = 1 To 4c(i, j) = a(i

27、, j) + b (i, j)Next jNext i(2)将A矩阵转置Fori = 2 To 4For j = 1 To i- 1t = a(i, j): a(i, j) = a(j, i): a(j, i) = tNext jNext i(3)统计C矩阵中最大值和下标Dim max%, maxi%, maxj%max = c(1, 1): maxi = 0: maxj = 0For i = 1 To 4Forj = 1 To 4If c(i, j) > max Thenmax = c(i, j): maxi = i: maxj = jEnd IfNext jNext i(4)以下三角

28、形式显示A矩阵,上三角形式显示B矩阵For i = 1 To 4For j = 1 To iPrint a(i, j); Space(2);Next jPrintNext iPrint " 输出B上三角元素"For i = 1 To 4Print Tab(i * 5);For j = i To 4Print b(i, j);Next jPrintNext i( 5 )将 A 矩阵第一行与第三行对应元素交换位置For j = 1 To 4t = a(1, j):a(1, j) = a(3,j): a(3, j) = tNext j( 6) 求 A 矩阵 矩阵条对角线元素之和S

29、um = 0For i = 1 To 4Sum = Sum + a(i, i) + a(i, 5- i)Next i( 7 )将 A 矩阵按列的次序把各元素放入一维数组 D 中,显示结果Dim D%(16)For i = 1 To 4For j = 1 To 4D(k) = a(j, i): k = k + 1Next jNext iPrint "D 一维数组无素为 :"For k = 0 To 15Print D(k);Next k6 、 声明一个一维字符类型数组,有20个元素,每个元素最多放10个字符,要求:1 )由随机数形成小写字母构成的数组,每个元素的字符个数由随机

30、数产生,围1102)要求将生成的数组分4行显示,规定每个元素宽度为103)显示生成的字符数组中字符最多的元素Dim st(1 To 20) As String, c As String * 1Dim i%, n%For i = 1 To 20n = Int(Rnd * 11 + 1)For j = 1 To nc = Chr(Int(Rnd * 26 + 97)st(i) = st(i) & cNext jNext i'( 2)按一行显示5个字符串要求输出For i = 1 To 20Print st(i); Space(15 - Len(st(i);If i Mod 5 =

31、0 Then PrintNext i'( 3)显示20个中字符个数最多的一个maxlen = 0maxstr = ""For i = 1 To 20If Len(st(i) > maxlen Thenmaxlen = Len(st(i)maxstr = st(i)End IfNext iPrintPrint " 最多字符个数:" maxlen; " 字符串是 :" maxstr7 简述列表框和组合框的异同处答:相同处都是可存放字符串;不同处在于:组合框是文本框和列表框的组合,可以输入容,但要通过additem 方法添加;

32、列表框只能选择项目,不能直接输入容。8 列表框或组合框中选中的项目总项目数的属性分别是什么?答:表示选中的容,属性有:text ;总项目数的属性为 ListCounts 。9 简述自定义类型与自定义变量的区别答: 前者仅定义了类型,这如同系统提供的 integer string 等基本类型;后者系统为其分配了存储单元。10 自定义一个职工类型,包含职工号 工资。声明一个职工类型的动态数组。输入 n 信职工的数据; 要求按工资递减的顺序排序,并显示排序的结果,每个职工一行显示三项信息。Private Type zgtypeno As Integername As String * 10gz As

33、 SingleEnd TypeDim s( ) As zgtype, n%Private Sub Form_click()Dim t As zgtypen = InputBox(" 请输入人数 ")ReDim s(1 To n)With s(i).no = InputBox(".name = InputBox(.gz = InputBox("For i = 1 To n请输入职工工号")请输入职工")请输入职工工资")End WithNext i' 根据工资递减排序For i = 1 To n - 1For j =

34、i + 1 To nIf s(j).gz > s(j - 1).gz Thent = s(j): s(j) = s(j - 1): s(j - 1) = tEnd IfNext jNext i' 输出信息For i = 1 To nPrint s(i).no, s(i).name, s(i).gzNext iEnd Sub第六章:过程1 、 简述子过程和函数过程的共同点和不同之处答: 子过程和函数过程的共同点:函数过程和子过程都是功能相对独立的一种子程序结构,它们有各自的过程头、变量声明和过程体。在程序中使用它们不但可避免书写重复的程序语句,缩短代码,而且可使程序条理清晰,容易阅

35、读。两者不同点是:1 )过程声明的关键字不同,子过程用的是sub ,函数过程用的是function.2)子过程名无值就无类型声明,函数过程名有值就有类型声明3 ) 函数过程名兼作结果变量, 因此在函数过程体至少对函数过程名赋值; 而子过程名在过程体不能赋值。4 )调用方式不同,子过程是一条独立的语句,可用call 子过程或或省略call 直接以子过程名调用;函数过程不是一条独立语句,是一个函数值,必须参与表达式的运算5)一般来说,一个函数过程可以被一个子过程代替,代替时只要改变函数过程定义的形式,并在子过程的形参表中增加一个地址传递的形参来传递结果。2 、 什么是形参、 什么是实参?什么时候是

36、值引用?什么是地址引用?地址引用时, 对应的实参有什么影响? 答: 形参是在定义过程时的一种形式虚设的参数,只代表了该过程参数的个数、类型、位置,形参的名字并不重要,也没有任何值,只表示在过程体进行某种运算或处理。实参是调用子过程时提供给过程形参的初始值或通过过程体处理后获得的结果。调用时用实参代替形参,实参与形参在个数类型位置一一对应,实参与形参名相同与否无关。实参与形参的结合有两种方法,即传地址( byref )和传值 (byval) ,或称地址引用和值引用,缺省为地址引用。值引用时,系统将实参的值传递给对应的形参,实参与形参断开了联系。如果在过程体中改变形参的值,不会影响到实参。地址引用

37、时,实参与形参变量共同用一个存储单元,如果在过程中改变了形参的值,则对应的实参也将发生改变。地址引用时,实参只能是变量,不能是常量或表达式。1)2)3)4)sub f1 ( n % ) as Integer function f1 % ( f1 % ) sub f1 (byval n % ( ) ) sub f1 ( x (i) as integer )指出下列过程语句说明中的错误:错误为 sub 子过程名无返回值,也就没有类型函数名与形参名相同了形参 n 为数组,不允许声明为 byval 值传递形参 x( i) 不允许为数组元素已知如下求两个平方数和的 fsum 子过程:public sub

38、 fsum( sum % ,byval m%, byval n%) sum = a*a + b * bend sub在事件过程中若有如下变量声明:private sub command1_click ( )Dim a%, b% ,c!a = 10 : b = 20则指出如下过程调用语句的错误所在:( 1) fsum 3 , 4 , 5 fsum 子过程的第一个形参是地址传递,因此对应的实参应该是个变量,不应是 3( 2) fsum c , a , b'fsum子过程的第一个形参是地址传递并且是整形,但对应的C是单精度( 3) fsum a + b, a , b fsum 子过程的第一个

39、形参是地址传递,对应的实参不应该是个表达式 a+b( 4) call fsum (sqr (a) , sqr (b )fsum 子过程的第一个形参是地址传递,对应的实参不应该是个表达式 sqr(c)( 5) call fsum c, a , b 用 call 语句调用 fsum 子过程,必须加圆括号括起实参。5 利用迭代法求议程x2-a=0 的近似根,要求精度为10-5 ,失代公式为。编制三个过程:迭代函数过程迭代子过程和递归法函数过程。Private Sub Command1_Click()PrintPrint " 函数过程 " f1(10)Call s1(x!, 10)

40、Print " 子过程 " x! Print " 递归调用 " dgf(x, 10)End SubPublic Function f1(a!)' 函数过程Dim x!, x1!x = aDox1 = (x + a / x) / 2If Abs(x - x1) < 0.00001 Then Exit Dox = x1Loopf1 = xEnd FunctionPublic Sub s1(x1!, a!)' 子过程Dim x!x = 9Dox1 = (x + a / x) / 2If Abs(x1 - x) < 0.00001 T

41、hen Exit Dox = x1LoopEnd SubPublic Function dgf!(x, a!) '递归调用x1 = (x + a / x) / 2If Abs(x - x1) < 0.00001 Thendgf = xElsedgf = dgf(x1, a)End IfEnd Function6 、 要使变量在某事件过程中保留值,有哪几种变量声明的方法?答:声明变量为全局(public) 、通用声明段或标准模块声明的模块级变量、局部过程声明的表达态变量static 。7 、 为了使某变量在所有的窗体中都能使用,应在何处声明该变量?答:在标准模块声明为全局变量8 、

42、 在同一模块、不同过程中声明的相同变量名,两者是否表示同一个变量?两者间有无联系?答:表示不同的变量;两者没有关系。第 7章:用户界面设计1 、 框架的作用是什么?如何在框架中建立控件?答: 对单选按钮进行分组,每一组单选按钮都是独立的,对一组单选按钮进行操作不会影响其他组单选按钮的选择;另外可对窗体上现有控件进行分组,提供视觉上的区分和总体的激活或屏蔽特性。在窗体上创建框架及其部控件时,必须先建立框架,然后在其中建立各种控件。在框架创建控件的方法 如下:+”指针,在框架行当位置拖拉出适当大小的控件,不能1 )先单击工具箱上的工具,然后利用出现的“使用双击工具箱上工具的自动方式。2 ) 如果要

43、用框架对窗体中现有控件进行分组, 则应先选定控件, 然后剪切到剪贴板, 最后粘贴到框架上。2 如果要让定时器每30秒产生一个Timer 事件,则 Interval 属性应设置为多少?答: 定时器是以 Interval 属性的值作为时间间隔产生Timer 事件的。 Interval 属性值的单位ms(0.001s) ,因此当 Interval 属性值为 30000时,每 30s 发生一个 Timer 事件。3 、滚动条的Scroll和Change事件有什么区别?答: 滚动条的 Scroll 事件是在拖动滑块时发生的事件,单击两端的箭头或空白处不会产生 Scroll 事件。此外,在拖动滑块过程中会

44、产生许多 Scroll 事件,而不是仅仅在拖动滑块结束时产生一个Scroll 事件。滚动条的Change事件是当Value属性值改变时产生的事件。单击两端的箭头或空白处, Value属性值都会改变,Change事件随之产生;拖动滑块过程不会产生Change事件,直到拖动结束时Value属性值改变了才会产生Change事件。因此,拖动滑块过程中会多次执行Scroll 事件过程,拖动滑块结束时产生一个Change 事件;单击两端的箭头或空白处,会执行Change 事件过程,而不会执行Scroll 事件过程。4 默认情况下,进度条是水平形式的,若要让进度条变成垂直形式,应如何设置?答: 进度条有水平

45、和垂直两种形式,由属性Orientation 决定:0 ccOrentationHorizontal: (缺省)进度条是水平方向1 ccOrentationVertical :进度条为垂直方向因此,若要让进度条变成垂直形式,其Orientation 属性应设置为 1。5 在使用“字体”对话框之前必须设置什么属性?答:在显示“字体”对话框前必须设置Flags 属性,指示选用何种字体,否则将发生不存在字体错误。6 热键与快捷键有什么区别?应如何实现?答:如果要通过键盘来访问菜单项,则需要为菜单项定义热键与快捷键。热键是菜单项中带有下划线的字符。建立热键的方法是在菜单标题的某个字符前加一个“&

46、;”符号,显示是过一字符下面有一个下划线,表示该字符是一个热键字符。快捷键不是用来打开菜单,而是直接去执行相应的操作。要为菜单项指定快捷键,只要打开快捷键( Shortcut )下拉式列表框并选择一个键,则菜单项标题的右边就会显示快捷键名称。7 从设计角度,试说明下拉式菜单和弹出式菜单的区别。答: 菜单有两种基本类型:一种是下拉式菜单,由一个主菜单和若干个子菜单所组成的;另一种是弹出式菜单,是用户在某个对象上单击右键所弹出的菜单。下拉式菜单和弹出式菜单都是在使用菜单编辑器时设计的。在设计时这两种菜单的区别是:弹出式菜单中作为菜单名的菜单项的 Visible 属性应设置为 False , 程序开

47、始运行时不需要显示, 在单击鼠标右键时会弹出;下拉式菜单中作为菜单名的菜单项的 Visible 属性应设置为 True ,程序运行时显示在窗体的顶部。8 、什么是模式对话框?什么是非模式对话框?两者有什么区别?VB中怎样设置窗体作为对话框?答: 对话框有两种类型:模式对话框和非模式对话框。若对话框是模式型,打开后无法将鼠标移支其他窗口,即只有在关闭后才能对其他窗体进行操作,如Office 软件中“帮助”菜单的“关于”命令所打开的对话框;若对话框是非模式型,则打开后可对其他窗口进行操作,如“编辑”菜单的“替换”对话框就是一个非模式对话框的实例。当把窗体作为对话框打开时,Show方法的参数有两个,

48、分别表示模式对话框和非模式对话框:( 1 )将窗体作为模式对话框打开,语句为:窗体名称.Show 1(2)将窗体作为非模式对话框打开,语句为:窗体名称.show 09 简述窗体之间数据互访如何才能实现。答: 在多重窗体程序中,不同窗体之间可以相互访问,即一个窗体可以访问另一个窗体中的数据。两个窗体之间访问有下列三种情况:.专业 .专注 .(1) 一个窗体可以在直接访问另一个窗体上控件的属性,形式如下:另一个窗体名.窗件名.属性(2) 一个窗体直接访问在另一个窗体中定义的全局变量,形式如下:另一个窗体名.全局变量名(3) 在模块中定义公共变量实现相互访问,这是最常用的方法。10、 MouseDo

49、wn#件发生在 MouseUp和Click事件之前,但MouseUp和Click事件发生的次序与对象有关。试编写一个小程序测试在命令按钮和标签上 MouseDown MouseUP Click事件发生的顺序。答:在窗体上创建一个命令按钮Command1一个标签Labell ,然后编写下列事件过程就以测试这三个事件发生的先后顺序了。Private Sub Command1_Click()Print "命令按钮的 Click 事件”End SubPrivate Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As

50、 Single, 丫 As Single) Print "命令按钮的 MouseDown件"End SubPrivate Sub Command1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Print "命令按钮的 MouseUp*件"End SubPrivate Sub Label1_Click()Print " 标签的Click 事件”End SubPrivate Sub Label1_MouseDown(Button As Integer,

51、 Shift As Integer, X As Single, Y As Single) Print " 标签的 MouseDown件"End SubPrivate Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Print " 标签的MouseUp事件"End Sub测试结果发现,在标签上发生的顺序为:MouseDown MouseUp Click ,而在命令按钮上发生的顺序是:MouseDown Click、MouseUp11、 在Ke

52、yDowngT件过程中,如何检测 Ctrl和F3键是否同时被按下?答:使用(KeyCode = vbKeyF3 ) and (Shift = vbCtrlMask ) 或者(KeyCode = 114 ) and (Shift = 2)表达式,可以检测 Ctrl和F3键是否同时被按下,F3键的键盘扫描码是114。12、 KeyDown事件与KeyPress事件的区别是什么?答:用户按下并且释放一个会产生ASCII码的键时,触发KeyPress事件;用户按下键盘上任意一个键时,触发KeyDown事件。KeyDOwnf KeyPress事件的主要区别如下:(1)从时间上来说,按下键盘上的一个键立即

53、触发KeyDown事件,但此时没有引发KeyPress事件。只有在释放该按键时触发KeyPress事件。(2)用户按下键盘中的任一键就会在相应对象引发KeyDown事件,但是并不是按下和释放键盘上的任意一个键都会引发 KeyPress事件,KeyPress事件只对会产生 ASCII码的按键有反应,包括数字、大小写的 字母、Enter、Backspace > Esc、Tab键等。对于如方向键这样的不会产生ASCII码的按键,KeyPress事件不会被触发。13、 试说明键盘扫描代码(Keycode)与键盘 ASCII码(KeyAscii )的区别。答:键盘扫描代码(KeyCode)是对键盘

54、上按键的编码,它告诉事件过程用户所操作的物理键。也就是说, 大写字母和小写字母使用同一个键,它们的KeyCode相同。对于有上档字符和下档字符的键,其 KeyCode也相同,为下档字符的ASCII码。14、 键盘上“4”键的上档字符是“ $”。当同时按下 Shift键和“ 4”键时,KeyPress事件发生了几次?过程中的 KeyAscii 参数值是多少?答 : KeyPress 事件发生了一次, KeyAscii 参数值是36。即“$”字符的 ASCII 码为 36。因为KeyPress 事件是在输入一个ASCII 码字符时发生的事件, 尽管在输入“$”字符时按了两个键,但是输入了一个ASC

55、II字符,所以 KeyPress 事件只发生一次。第 8章:数据文件1 什么是文件? ASCII 文件与二进制文件有什么区别?答: 文件是存储在外存储器(如磁盘)上的用文件名标识的数据的集合。按存储信息的形式分类,文件可分为 ASCII 文件和二进制文件。ASCII 文件存放的是各种数据的 ASCII 代码, 可以用记事本打开; 二进制文件存放的是各种数据的二进制 代码,不能用记事本打开,必须由专用程序打开。2 根据文件的访问模式,文件可分为哪几种类型?访问方式各有什么特点?答: 根据文件的访问模式,文件可分为顺序文件随机文件二进制文件。顺序文件要求按顺序访问文件的数据;随机文件可以根据记录号

56、直接访问某一特定记录;二进制文件要求以字节为单位定位数据位置,允许程序直接访问各个字节数据,也允许程序按所需的任何方式组织和访问数据。构造满足下列条件的 Open语句。( 1)建立一个新的顺序文件答:Open“ Seqnew.dat( 2)打开一个旧的顺序文件答:Open“ Seqold.dat( 3)打开一个旧的顺序文件函数获得。答: Dim No%No= FreeFileSeqnew.dat ,供用户写入数据,指定文件号为1For Output As #1Seqold.dat ,用户将从该文件读出数据,指定文件号为 2For Input As # 2FreefileSeqappend.dat ,用户将在该文件后面添加数据,文件号通过调用Open “ Seqappend.dat “ For Append As # No试写出程序代码片段,将文本文件Text.dat 中的容读

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论