VB程序设计教程 习题解答



《VB程序设计教程 习题解答》由会员分享,可在线阅读,更多相关《VB程序设计教程 习题解答(83页珍藏版)》请在装配图网上搜索。
1、《VB程序设计教程》(第3版)习题解答 习题1答案 一、选择题 1.1 Visual Basic 6.0分为3种版本,不属于这3种版本的是 A)学习版 B)专业版 C)企业版 D)业余版 【答】D。 1.2 下列方法中不能退出Visual Basic的是 A)按Alt+Q组合键 B)按下Alt+F组合键,然后按Esc键 C)按F10键,然后按F键,再按X键 D)打开“文件”菜单→“退出”命令 【答】B。 1.3 Visual Basic集成的主窗口中不包括 A)属性窗口 B)标题栏 C)菜单栏 D)工具栏 【答】A。 1.4 下
2、列操作可以打开立即窗口的是 A)Ctrl+D B)Ctrl+F C)Ctrl+G D)Ctrl+E 【答】C。 二、填空题 1.5 与传统的程序设计语言相比,Visual Basic最突出的特点是____。 【答】事件驱动编程机制。 1.6 如果不使用鼠标,用键盘打开菜单和执行菜单命令,第一步应按____键。 【答】功能键F10或Alt键。 1.7 建立一个新的标准模块,应该选择____菜单下的“添加模块”命令。 【答】“工程”菜单。 三、思考题 1.8 简述Visual Basic的特点。 【答】与一般的程序设计语言相比,VB具有以下特点:
3、 (1) 可视化的设计平台; (2) 面向对象的设计方法; (3) 事件驱动的编程机制; (4) 结构化的设计语言; (5) 充分利用Windows资源; (6) 开放的数据库功能与网络支持。 1.9 简述Visual Basic集成开发环境的组成。 【答】VB 6.0集成开发环境除了具有标准Windows环境的标题栏、菜单栏、工具栏外,还有工具箱、属性窗口、工程管理器窗口、窗体设计器、立即窗口、窗体布局窗口等有用的开发工具。 (1) 标题栏和菜单栏:标题栏中显示的有窗体控制菜单图标、当前激活的工程名称、当前工作模式以及最小化
4、、最大化∕还原、关闭按钮。菜单栏中显示了“文件”、“编辑”、“视图”、“工程”、“格式”等菜单项,其中包含了VB编程的常用命令。单击菜单栏中的菜单名,即可打开下拉菜单。在下拉菜单中显示了各种功能子菜单,包含执行该项功能的热键和快捷键。 (2) 工具栏及数字显示区:在菜单栏的下面是工具栏,工具栏提供了许多常用命令的快速访问按钮。单击某个按钮,即可执行对应的相关操作。数字显示区包含两个部分,左数字区显示的是对象的坐标位置(窗体工作区的左上角为坐标原点,即(0,0)位置),右数字区显示的是对象的高度(向下递增)和宽度,即对象的大小。 (3) 工具箱:标准工具箱包含了建立应用程序所需的各种控件。另
5、外,VB还提供了很多ActiveX控件可以添加到工具箱中。 (4) 工程管理器窗口:采用Windows资源管理器式的界面,层次分明地列出当前工程中的所有文件。 (5) 属性窗口:“属性”窗口包含选定对象(窗体或控件)的属性列表,在设计程序时可通过修改对象的属性设计其外观和相关数据,这些属性值将是程序运行时各对象属性的初始值。 (6) 窗体设计器:也称为“对象窗口”,每一个应用程序中的窗体,都有与之对应的窗体设计器窗口。 (7) 窗体布局窗口:用来显示窗体在屏幕中的位置。 (8) 立即窗口:使用立即窗口可以在中断状态下查询对象的值,也可以在设计时查询表达式的值或命令的结果。 1.
6、10 属性窗口主要包括哪些内容? 【答】“属性窗口”的内容包括: (1) 对象下拉列表框:标识当前选定对象的名称以及所属的类。单击右端的下拉箭头,可列出当前窗体以及所包含的全部对象的名称,可从中选择要更改其属性的对象。 (2) 选项卡:可按字母排序和分类排序两种排序方式显示所选对象的属性。 (3) 属性列表框:属性列表框中列出了当前选定的窗体或控件的属性设置值。左半边显示所选对象的所有属性名,右半边是属性值。可以直接在属性窗口中修改属性值,有的属性取值具有预定值,如右侧显示“三点”式按钮或“下拉箭头”式按钮,都有预定值可供选择。在“属性”列表中双击属性值可以遍历所有选项。选择任一属性
7、并按F1键可得到该属性的帮助信息。 (4) 属性说明:显示当前属性的简要说明。可通过右键快捷菜单中的“描述”菜单来切换显示或隐藏“属性说明”。 1.11 打开属性窗口的方法有哪些? 【答】可通过以下方法之一打开属性窗口: (1)单击工具栏中的“属性窗口”按钮。 (2)单击“视图”菜单→“属性窗口”命令。 习题2答案 一、选择题 2.1 在VB中,被称为对象的是 A)窗体 B)控件 C)控件和窗体 D)窗体、控件和属性 【答】C。 2.2 关于VB“方法”的概念错误的是 A)方法是对象的一部分 B)方法是预先定义好的操作 C)方法
8、是对事件的响应 D)方法用于完成某些特定的功能 【答】C。 2.3 确定窗体控件启动位置的属性是 A)Width和Height B)Width或Height C)StartUpPositon D)Top和Left 【答】C。 2.4 下列说法正确的是 A)对象的可见性可设为True或False B)标题的属性值不可设为任何文本 C)属性窗口中属性只能按字母顺序排列 D)某些属性的值可以跳过不设置,自动设为空值 【答】A。 2.5 下列说法错误的是 A)方法是对象的一部分 B)在调用方法时,对象名是不可缺少的 C)方法是一种特殊的
9、过程和函数 D)方法调用格式和对象属性使用格式相同 【答】B。 2.6 下列说法错误的是 A)窗体文件的扩展名为.frm B)一个窗体对应一个窗体文件 C)VB中一个工程只包含一个窗体 D)VB中一个工程最多可以包含255个窗体 【答】C。 2.7 一个工程必须包含的文件的类型是 A)*.vbp *.frm *.frx B)*.vbp *.cls *.bas C)*.bas *.ocx */res D)*.frm *.cls *.bas 【答】A。 2.8 新建一个窗体,其BorderStyle属性设置为Fixed Single,但运行
10、时却无最大化和最小化按钮,可能的原因是 A)BorderStyle的值设为Fixed.Single,其设置值的作用即禁止最大化和最小化按钮 B)窗体的MaxButton和MinButton值设为False C)正常情况下新建的窗体都没有最大化和最小化按钮 D)该窗体可用鼠标拖动框的方法改变窗体的大小 【答】B。 二、填空题 2.9 VB程序设计采用的编程机制是____。 【答】事件驱动。 2.10 VB对象可以分为两类,分别为____和____。 【答】预定义对象;用户定义对象。 三、思考题 2.11 什么是对象?什么是对象的属性、事件和方法? 【答】在可视
11、化编程语言中,对象是代码和数据的集合,它可以是窗体和控件,也可以是菜单或数据库等。从可视化编程的角度来看,这些对象都具有属性(数据)和方法(行为方式)。简单地说,属性是用于描述对象的一组特征,方法是对象实施的一些动作,对象的动作则常常要触发事件,而触发事件又可以修改属性。一个对象建立以后,其操作就通过与该对象有关的属性、事件和方法来描述。 2.12 如何创建一个应用程序? 【答】 (1)设计界面。先建立窗体,再利用控件在窗体上创建各种对象。 (2)设置属性。设置窗体或控件等对象的属性。 (3)编写代码。编写对象的事件代码。 (4)运行调试程序。 2.13 如何在当前窗
12、体上创建和删除一个对象? 【答】向窗体中添加控件的步骤为: (1)单击工具箱中的控件图标,鼠标指针变成一个十字指针。 (2)在窗体的工作区按住鼠标左键拖动鼠标,即可在窗体上画出对应控件。 删除一个对象的方法为:选中要删除的对象,按键盘上的Delete键。 2.14 如何设置对象的属性? 【答】设置对象的属性有两种方式: (1) 预设法:在设计界面时,使用属性窗口设置对象的属性。这时只要在属性窗口中选中要修改的属性,然后在右列中键入新的值即可。 (2) 现改法:在编写代码的过程中,通过程序代码更改对象的属性。在程序中设置属性的语法格式为: 对象名.属性名 = 属性值
13、 2.15 建立对象后,每个属性都有一个默认值,“(名称)”属性和Caption属性的默认值相同,它们有什么区别?能否用代码修改“(名称)”属性? 【答】建立对象后,名称属性是事件驱动的标识,而Caption属性是显示在窗体上标签提示。在编写代码中,不能用代码修改“(名称)”属性,而能用代码修改Caption属性。 2.16 在没有关闭程序的情况下,如果又添加了一个工程,但运行时会发现运行的仍是第一个工程,这是什么原因?如何解决? 【答】这是因为VB默认“工程1”为启动工程。解决办法为:在工程资源器窗口中,右键单击添加的“工程”,在快捷菜单中选择“设置为启动”即可。 习题3答案
14、 一、选择题 3.1 以下关于VB数据类型的说法,不恰当的是 A)VB 6.0提供的数据类型主要有字符串型和数值型,此外还有字节、货币、对象、日期、布尔和变体数据类型等 B)目前Decimal数据类型只能在变体类型中使用 C)用户不能定义自己的数据类型 D)布尔型数据只能取两种值,用两个字节存储 【答】C。 3.2 以下各项,可以作为VB变量名的是 A)Book B)2_Seek C)123.58 D)Book-1 【答】A。 3.3 下列哪个符号不能作为VB中的变量名? A)ABCDEFG B)P000000 C)89TWDDFF D)x
15、yz 【答】C。 3.4 下列( )是VB中的合法变量名。 A)AB7 B)7AB C)IF D)A[B]7 【答】A。 3.5 表达式2 *3^2 + 2 * 8 / 4 + 3^2的值为 A)64 B)31 C)49 D)22 【答】B。 3.6 函数Int(Rnd(0)*10)是在( )范围内的整数。 A)( 0 , 1 ) B)( 1 , 10 ) C)( 0 , 9 ) D)( 1 , 9 ) 【答】C。 3.7 表达式3 ^ 2 Mod 14\2^3的值是 A)1
16、 B)0 C)2 D)3 【答】B。 3.8 在VB中,下列两个变量名相同的是 A)Japan和Ja_pan B)English和ENGLish C)English和Engl D)China和Chin 【答】B。 3.9 数学式子sin25写成VB表达式是 A)Sin25 B)Sin(25) C)Sin(25) D)Sin(25*3.14/180) 【答】D。 3.10 在VB中,要强制用户对所用的变量进行显式声明,可以在( )设置。 A)“属性”对话框 B)“程序代码”窗口 C)“选项”对话框
17、 D)对象浏览器 【答】C。 3.11 下列符号常量的声明中,不合法的是 A)Const a As Single = 1.1 B)Const a =″OK″ C)Const a As Double = Sin(1) D)Const a As Integer =″12″ 【答】C。 3.12 在代码编辑器中,续行符是换行书写同一个语句的符号,用以表示续行符的是 A)一个空格加一个下划线“_” B)一个下划线“_” C)一个造字符“-” D)一个空格加一个连字符“-” 【答】A。 二、填空题 3.13 如果希望使用变量x来存放数据765
18、432.123 456,应将变量x声明为____类型。 【答】双精度型。 3.14 把VB算术表达式a/(b + c/(d + e/Sqr(f)))改写成数学表达式为____。 【答】。 3.15 如果x是一个正实数,对x的第3位小数四舍五入的表达式是____。 【答】0.01 * Int(100 * (x + 0.005))。 3.16 函数Str$(256.36)的值是____。 【答】256.36。 三、思考题 3.17 VB定义了哪几种数据类型?变量有哪几种数据类型?常量有哪几种数据类型? 【答】VB 6.0定义了11种数据类型,它们是整型、长整
19、型、单精度浮点型、双精度浮点型、字符型(变长字符串、定长字符串)、逻辑型、日期型、货币型、字节型、对象型、可变类型(数值、字符)。 变量的数据类型有数值型、字符型、逻辑型、日期型、对象型、可变数据类型。其中,数值型变量的数据类型有:整型、长整型、单精度浮点型、双精度浮点型、货币型和字节类型。字符型变量的数据类型有变长字符串和定长字符串。 常量的数据类型有:字符串常量、数值常量、逻辑常量、日期常量。 3.18 下列数据哪些是变量?哪些是常量?是什么类型的常量? (1)name (2) "name" (3)False (4)ff (5)"11/16/99" (6
20、)cj (7)"120" (8)n (9)#11/16/1999# (10)12.345 【答】变量有(1),(4),(6),(8)。 常量有(2),(3),(5),(7),(9),(10)。其中:(2),(5),(7)为字符型常量,(3)为逻辑型常量,(9)为日期型常量,(10)为数值型常量。 3.19 在VB中,对于没有赋值的变量,系统默认值是什么? 【答】使用声明语句建立一个变量后,VB自动将数值类型的变量赋初值0,变长的字符串被初始化为一个零长度的字符串(""),而定长的字符串则用空格填充。Variant变量被初始化为Empty,逻辑型的变量则初始化为Fals
21、e。 3.20 将下列数学表达式改写为等价的VB算术表达式。 (1) (2) (3) 【答】VB中的算术表达式与数学中的表达式写法有所区别,主要表现在:VB中每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标;在数学表达式中省略的内容必须重新写上;所有括号都要使用小括号“( )”,而且括号必须配对;数学表达式中的有些符号,需要改成VB中可以表示的符号。 (1)(1 + y / x) / (1 – y / x) (2)(Abs( a * b – c^3))^0.5 或 (Abs(a * b – c^3))^(1 / 2)
22、 或 Sqr(Abs(a * b – c^3)) (3)(s * (s – a) * (s – b) * (s – c))^0.5 或 (s * (s – a) * (s – b) * (s – c) )^(1 / 2) 或 Sqr(s * (s – a) * (s – b) * (s – c)) 3.21 写出下列表达式的值。 (1)( 2 + 8 * 3 ) / 2 (2)3^2 + 8 (3)#11/22/99# – 10 (4)"ZYX" & 123 & "ABC" 【答】题中各表达式的值分别为: (1)13
23、(2)17 (3)#11/12/99# (4)"ZYX123ABC" 3.22 设A = 7, B = 3, C = 4,求下列表达式的值: (1)A + 3 * C (2)A^2 / 6 (3)A / 2 * 3 / 2 (4)A Mod 3 +B^3 / C \ 5 【答】题中各表达式的值分别为: (1)19 (2)8.16666666666667 (3)5.25 (4)2 3.23 写出下列表达式的值。 (1)"Visual"+"Basic" (2)"xyz" & 1234 & "ABCD" 【答】题中
24、各表达式的值分别为: (1)"VisualBasic" (2)"xyz1234ABCD" 3.24 写出下列函数的值。 (1)Int(–3.14159) (2)Sqr(Sqr(64)) (3)Int(Abs(99–100)/2) (4)Sgn(7*3+2) 【答】函数的值为: (1)– 4 (2)2.828427 (3)– 3 (4)1 习题4答案 一、选择题 4.1 要将名为MyForm的窗体显示出来,正确的使用方法是 A
25、)MyForm.Show B)Show.MyForm C)MyForm Load D)MyForm Show 【答】A。 4.2 如果要将窗体中的某个命令按钮设置成无效状态,应设置命令按钮的( )属性。 A)Value B)Visible C)Enabled D)Default 【答】C。 4.3 输入代码时,VB可以自动检测( )错误。 A)语法错误 B)编译错误 C)运行错误 D)逻辑错误 【答】A。 4.4 在VB中,要将一个窗体加载到内存进行预处理但不显示,应使用的语句是 A)Load B)S
26、how C)Hide D)Unload 【答】A。 4.5 以下能在窗体Form1的标题栏中显示"VisualBasic窗体"的语句是 A)Form1.Name="VisualBasic窗体" B)Form1.Title="VisualBasic窗体" C)Form1.Caption="VisualBasic窗体" D)Form1.Text="VisualBasic窗体" 【答】C。 4.6 对下列程序段,说法正确的是( ) Text1.Top=2000 : Text1.Left=800 A)Text对象的左边界距窗体的左边界是800tw
27、ip,上边界距窗体的上边界为2000twip B)Text1的左边界距屏幕的左边界为800twip,上边界距屏幕的上边界为2000twip C)Text1对象的宽度为2000twip,高度为800twip D)Text1对象的高度为800点,宽度为2000点 【答】A。 4.7 单击窗体上的关闭按钮时,触发的事件是 A)Form_Initialize() B)Form_Load() C)Form_Unload() D)Form_Click() 【答】C。 4.8 用于将屏幕上的对象分组的控件是 A)列表框 B)组合框 C)标签 D)框
28、架 【答】D。 4.9 能够获得一个文本框中被选取文本的内容的属性是 A)Text B)Length C)Seltext D)SelStart 【答】C。 4.10 用InputBox函数设计的对话框,其功能是 A)只能接收用户输入的数据,但不会返回任何信息 B)能接收用户输入的数据,并能返回用户输入的信息 C)既能用于接收用户输入的信息,又能用于输出信息 D)专门用于输出信息 【答】B。 二、填空题 4.11 下列语句的输出结果为____。 Print Format$(5689.36,″000,000.000″) 【答】005,689.36
29、0。 4.12 为了使一个窗体从屏幕消失但仍在内存中,所使用的方法或语句为____。 【答】Hide方法。 4.13 当对象得到焦点时,会触发____事件,当对象失去焦点时将触发____事件。 【答】GotFocus;LostFocus。 4.14 新建一个工程,内有两个窗体,窗体Form1上有一个命令按钮Command1,单击该按钮,Form1窗体消失,显示Form2窗体,试补充程序。 Private Sub Command1_Click() ____ Form2.____ End Sub 【答】Me.Hide或者Forml.Hide或者Un
30、load Me;Show。 4.15 在文本框中要使键入的所有字符显示为*号,应设置____属性为"*"。 【答】PasswordChar。 三、编程题 4.16 设计工程,已知圆的半径r,求圆面积S。 【解答】 设圆半径为r,圆面积为S。根据数学知识,已知圆半径r,求圆面积S的公式为:。 设计步骤如下。 (1)建立应用程序用户界面,如图4-1所示。 (2)设置对象属性: Label1的Caption属性为“已知圆半径r=”; Text1的Text属性为空; Command1的Caption属性为“圆面积为:”; Label2的Caption属性为空; La
31、bel2的BorderStyle属性为1-Fixed Single。 各控件的属性设置如图4-2所示。 图4-1 建立用户界面 图4-2 设置各控件的属性 (3)编写程序代码。 写出“圆面积为:”命令按钮Command1的Click事件代码为: Private Sub Command1_Click( ) Const pi = 3.14 Dim r As Single, S As Single r = Val(Text1.Text) S = pi * r ^ 2 Label2.Caption = S
32、 End Sub 运行程序时,在文本框输入圆半径的值,单击“圆面积为:”按钮后,输出结果如图4-3所示。 也可以不用文本框接收输入值,改用InputBox函数接收圆的半径r,求圆面积S,代码如下。 图4-3 程序运行结果 Private Sub Form_Load( ) Show Const pi = 3.1415926 Dim r As Single, S As Single r = Val(InputBox("输入半径:", "计算圆面积", "10")) FontSize = 18 S = pi * r ^ 2 Print "圆面
33、积:"; S End Sub 程序运行时,首先显示如图4-4所示的对话框,在该对话框的文本框中输入数字,按Enter键或单击“确定”按钮后,才能显示窗体。 图4-4 输入对话框 用InputBox函数输入文本虽然很方便,但是由于输入框弹出后将暂停程序的运行,直到用户响应,因此输入框不符合VB自由环境的精神。输入框适合于像要求用户输入口令等这样不常见的输入方式。还可以用更好的用户输入方式,如文本框、选项按钮等。 4.17 已知平面坐标系中两点的坐标,求两点间的距离。 【解答】 由数学知识可知,已知两点坐标(xA, yA)、(xB, yB),求两点间距离的计算公式为
34、 建立用户界面如图4-5所示。在该界面中用TextBox控件输入数据,用Label控件输出数据。为了形象地表示两点之间的距离,可用Picture控件插入一幅图,该图用画图软件绘制。 命令按钮Command1的Click事件代码为: Private Sub Command1_Click( ) Dim xa As Single, xb As Single Dim ya As Single, yb As Single Dim s As Single xa = Val(Text1.Text) ya = Val(Text2.Text) xb = Val(Text3
35、.Text) yb = Val(Text4.Text) s = Sqr((xb - xa) ^ 2 + (yb - ya) ^ 2) Label6.Caption = s End Sub 程序运行结果如图4-6所示。 图4-5 设计用户界面 图4-6 程序运行结果 4.18 在文本框中输入三种商品的单价、购买数量,计算并输出所用的总金额。 【解答】 假设第一种商品的单价和购买数量分别是a1和a2,第二种商品的单价和购买数量分别是b1和b2,第三种商品的单价和购买数量分别是c1和c2,所用总
36、金额为x。通过TextBox控件输入这三种商品的单价、购买数量,然后利用公式x = a1*a2+b1*b2+c1*c2进行计算,最后输出x的值。 设计步骤如下。 (1)建立应用程序用户界面,并设置对象属性,如图4-7所示。 图4-7 计算商品总金额 (2)编写程序代码。 写出Command1_Click( )的事件代码为: Private Sub Command1_Click( ) Dim a1 As Single, b1 As Single, c1 As Single Dim a2 As Integer, b2 As Integer, c2 As Integer
37、 Dim x As Single a1 = Val(Text1.Text) a2 = Val(Text2.Text) b1 = Val(Text3.Text) b2 = Val(Text4.Text) c1 = Val(Text5.Text) c2 = Val(Text6.Text) x = a1 * a2 + b1 * b2 + c1 * c2 Text7.Text = x End Sub 4.19 设计工程,输出在指定范围内的三个随机数,范围在文本框中输入。 【解答】 随机函数Rnd( )可以返回一个(0,1)区间中的随机
38、小数,那么,Rnd * a语句可以返回(0, a)区间中的随机实数(带小数)。 若n, m均为整数,则表达式:Int((m + 1 – n) * Rnd) + n的值是闭区间[ n, m ]中的一个随机整数。 设计步骤如下。 (1)设计程序界面及设置控件属性。新建一个工程,进入窗体设计器,在窗体中增加一个框架控件Frame1,一个命令按钮Command1和三个标签Label1~Label3。选定Frame1,在其中增加两个文本框Text1和Text2以及一些标签。修改对象属性参见表4-1。设置属性后的窗体如图4-8所示。 表4-1 属性设置 对 象 属 性 属 性
39、 值 说 明 Frame1 Caption 请指定随机整数的范围: 框架的标题 Command1 Caption 生成随机数 按钮的标题 Label1~Label3 Caption 0 Text1, Text2 Text 0, 1 (2)编写程序代码。 Private Sub Command1_Click( ) Randomize n = Val(Text1.Text) m = Val(Text2.Text) Label4.Caption = Int((m + 1 – n) * Rnd) + n Label5.Ca
40、ption = Int((m + 1 – n) * Rnd) + n Label6.Caption = Int((m + 1 – n) * Rnd) + n End Sub 运行程序,在文本框中输入范围值后,单击“生成随机数”按钮,可以不断生成指定范围之内的随机整数,如图4-9所示。 图4-8 设计用户界面 图4-9 生成随机数 4.20 使用大小写转换函数设计程序,实现在文本框中输入英文字母,按“转大写”按钮,文本变为大写;按“转小写”按钮,文本变为小写。 【解答】 本题主要使用大小写转换函数UCase(
41、)和LCase( ),另外还用到了KeyUp(键抬起)事件。 设计步骤如下。 (1)建立应用程序用户界面,并设置对象属性。新建一个工程,进入窗体设计器,在窗体中增加一个标签Label1,一个文本框Text1和三个命令按钮Command1~Command3,参照图4-10设置各个对象的属性。 (a) (b) (c) 图4-10 大小写转换 (2)设计代码。 首先设计文本框的KeyUp事件代码,使得输入的字符存入文本框的Tag属性中: Private Sub Text1_KeyU
42、p(KeyCode As Integer, Shift As Integer) Text1.Tag = Text1.Text End Sub 编写命令按钮Command1的Click事件代码: Private Sub Command1_Click( ) Text1.Text = UCase(Text1.Tag) End Sub 编写命令按钮Command2的Click事件代码: Private Sub Command2_Click( ) Text1.Text = LCase(Text1.Tag) End Sub 编写命令按钮Command3的Click事件代码
43、: Private Sub Command3_Click( ) Text1.Text = Text1.Tag End Sub 4.21 设某职工应发工资x元,试求各种票额钞票总张数最少的付款方案。 【解答】 可以从最大的票额(100元)开始,算出所需的张数,然后在剩下的部分算出较小票额的张数,直到最小票额(1元)。 设计步骤如下。 (1)建立应用程序用户界面。新建一个工程,进入窗体设计器,增加一个命令按钮Command1,14个标签Label1~Label14,七个文本框Text1~Text7。用户界面如图4-11(a)所示。 (a)
44、 (b) 图4-11 建立程序界面与程序运行结果 (2)设置对象属性,参见表4-2。其中标签的标题属性参见图4-11(a)。 表4-2 属性设置 对 象 属 性 属 性 值 说 明 Text1 Text 0 文本框的内容 Text2~Text7 Text 文本框的内容 Alignment 1-Right Justify 文本内容右对齐 Locked True 文本内容只读 Command1 Caption 应付 按钮标题 Default True 窗体的默认按钮
45、(3)编写程序代码。 编写命令按钮Command1的Click事件代码: Private Sub Command1_Click( ) x = Val(Text1.Text) x为实发工资数 y = x \ 100 : Text2.Text = y 求100元票张数并显示 x = x – 100 * y 求剩余款项 y = x \ 50 : Text3.Text = y 求50元票张数并显示 x = x – 50 * y 求剩余款项 y = x \ 10 : Text4
46、.Text = y 求10元票张数并显示 x = x – 10 * y 求剩余款项 y = x \ 5 : Text5.Text = y 求5元票张数并显示 x = x – 5 * y 求剩余款项 y = x \ 2 : Text6.Text = y 求2元票张数并显示 x = x – 2 * y : Text7.Text = x 求1元票张数并显示 End Sub 编写文本框Text1的Change事件代码: Private Sub Text1_Change( )
47、 当在Text1中输入新数时,清空其他文本框中的内容 Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" End Sub 运行结果如图4-11(b)所示。 【说明】 文本框的Change事件当文本框中的内容被改变时发生。 下面用信息对话框来输出各种票额钞票张数的付款方案,如图4-12所示。 图4-12 信息对话框 只需将图4-11中多余的文本框和标签删去,并改写命令按钮的Click事件代码如下
48、: Private Sub Command1_Click( ) x = val(Text1.Text) x为实发工资数 y1 = x \ 100 求100元票张数 x = x Mod 100 求剩余款项 y2 = x \ 50 求50元票张数 x = x Mod 50 求剩余款项 y3 = x \ 10 求10元票张数 x = x Mod 10 求剩余款项 y4 =
49、x \ 5 求5元票张数 x = x Mod 5 求剩余款项 y5 = x \ 2 求2元票张数 x = x Mod 2 求1元票张数 Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) Text1.SetFocus a = "===========================" & Chr(13) a = a & Format(Y1 & "张 百元票,", "@@@@@@@@
50、@@") & _ Format(Y2 & "张 50元票", "@@@@@@@@@@") & Chr(13) a = a & Format(Y3 & "张 10元票,", "@@@@@@@@@@@") & _ Format(Y4 & "张 5元票", "@@@@@@@@@@") & Chr(13) a = a & Format(Y5 & "张 2元票,", "@@@@@@@@@@@") & _ Format(x & "张 1元票", "@@@@@@@@@@") & Chr(13) a = a & "========
51、===================" & Chr(13) a = a & "共计" & Text1.Text & "元" c = MsgBox(a, 0, "应发工资") End Sub 【说明】 文本框的SelStart属性用来设置(或返回)所选择的文本的起始点,如果没有文本被选中,则指出插入点的位置。 SelLength属性用来设置(或返回)所选择的字符数。函数Len( )返回字符串数据的长度。在命令按钮的Click事件代码中调用SetFocus方法,可使光标重新回到输入框Text1。使用Mod运算可以得到相除的余数。 习题5答案 一、选择题 5.1 下面语
52、句正确的是 A)If x<3*y And x>y Then y=x^3 B)If x<3*y And x>y Then y=3x C)If x<3*y : x>y Then y=x^3 D)If x<3*y : x>y Then y=x**3 【答】A。 5.2 下列语句正确的是 A)If A ≠B Then Print "A不等于B" B)If A < >B Then Printf "A不等于B" C)If A < >B Then Print "A不等于B" D)If A ≠B Print "A不等于B" 【答】C。 5.3
53、 计算z的值,当x大于y时,z=x;否则z=y。下列语句错误的是 A)If x>=y Then z=x : z=y B)If x>=y Then z=x Else z=y C)z=y : If x>=y Then z=x D)If x<=y Then z=y Else z=x 【答】A。 5.4 下列程序段的执行结果为 X=2 Y=5 If X * Y <1 Then Y=Y-1 Else Y=-1 Print Y - X>0 A)True B)False C)-1 D)1 【答】B。 5.5 下列程序段执行
54、结果为 x=5 y=-6 If Not x>0 Then x=y-3 Else y=x+3 Print x-y;y-x A)-3 3 B)5 -9 C)3 -3 D)-6 5 【答】A。 5.6 下列程序段的执行结果为 a=95 If a>60 Then I=1 If a>70 Then I=2 If a>80 Then I=3 If a>90 Then I=4 Print ″I=″; I A)I=1 B)I=2 C)I=3 D)I=4 【答】D。 5.7 下面程序段执行结果为 x=Int
55、(Rnd()+4) Select Case x Case 5 Print "excellent" Case 4 Print "good" Case 3 Print "pass" Case Else Print "fail" End Select A)excellent B)good C)pass D)fail 【答】B。 5.8 在窗体上画一个名称为Timer1的计时器控件,要求每隔0.5秒发生一次计时器事件,则以下正确的属性设置语句是 A)Timer1.Interval=0.5
56、 B)Timer1.Interval=5 C)Timer1.Interval=50 D)Timer1.Interval=500 【答】D。 二、填空题 5.9 闰年的条件是:年号(year)能被4整除,但不能被100整除;或者能被400整除。闰年的VB布尔表达式是_____。 【答】设y表示年份,判断闰年的布尔表达式为: (y Mod 4 = 0 And y Mod 100 <> 0) Or (y Mod 400 = 0) 或表示为: (Int(y / 4) = y / 4 And Int(y / 100) <> y / 100) Or (Int(y / 40
57、0) = y / 400) 5.10 一元二次方程ax2 + bx + c = 0有实根的条件为:a≠ 0,并且b2 - 4ac ≥ 0,其相应的VB布尔表达式为____。 【答】a <> 0 And b^2 – 4 * a * c >= 0 5.11 有下面一个程序段,从文本框中输入数据,如果该数据满足条件,除以4余1,除以5余2,则输出,否则,将焦点定位在文本框中,并清除文本框的内容。 Private Sub Command1_Click() x=Val(Text1.Text) If ____ Then Print x Else
58、 Text1.Text="" ____ End If End Sub 【答】x Mod 4 = 1 And x Mod 5 = 2; Text1.Setfoucs。 5.12 下列程序的功能是:当x<50时,y=0.8x;当50≤x≤100时,y=0.7x;当x>100时,没有意义。请填空。 Private Sub Command1_Click() Dim x As Single x=InputBox("输入x的值") ____ Case Is<50 y=0.8 * x Cas
59、e 50 To 100 y=0.7 * x ____ Print "输入的数据出界!" End Select Print x , y End Sub 【答】Select Case x;Case Else。 5.13 在窗体上画一个文本框和一个计时器控件,名称分别为Text1和Timer1,在属性窗中把计时器的Interval属性设置为100,Enabled属性设置为False。程序运行后,如果单击命令按钮,则每隔一秒钟在文本框中显示一次当前的时间。请补充程序。 Private Sub Command1_Click()
60、 Timer1.____ End Sub Private Sub Timer1_Timer() Text1.Text=Time End Sub 【答】Enabled=True。 三、编程题 5.14 x, y关系如下,设计程序,输入x,可计算出y的值。 【解答】 该题是数学中的一个分段函数,它表示当x ≥ 0时,用公式y = 1 + x来计算y的值;当x < 0时,用公式y = 1 – 2x来计算y的值。在选择条件时,既可以选择x≥0作为条件,也可以选择x < 0作为条件。在这里,选x≥0作为选择条件。这时,当x≥0为真时,执行y = 1 + x;为假时,执行y
61、= 1 – 2x。 设计步骤如下。 (1)建立应用程序用户界面并设置对象属性,参见图5-1。 图5-1 计算分段函数的值 (2)编写程序代码。 命令按钮Command1的Click事件代码为: Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x >= 0 Then y = 1 + x Else y = 1 - 2 * x Text2.Text = y End Sub 程序运行结果如图5-1所示。 也可以利用多行If语句编写代码
62、: Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x >= 0 Then y = 1 + x Else y = 1 – 2 * x End If Text2.Text = y Text2.Locked = True End Sub 5.15 若基本工资大于等于600元,增加工资20%;若小于600元,且大于等于400元,则增加工资15%;若小于400元,则增加工资10%。请根据用户输入的基本工资,计算出增
63、加后的工资。 【解答】 设计步骤如下。 (1)建立应用程序用户界面,并设置对象属性,如图5-2所示。 图5-2 计算基本工资 (2)编写程序代码。 编写文本框Text1的KeyPress(按键)事件代码: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then n = Val(Text1.Text) Select Case n Case Is >= 600 gz = n * 1.2 Case Is >= 400
64、 gz = n * 1.15 Case Else gz = n * 1.1 End Select Label1.Caption = "增加后的基本工资为:" & gz & "元" Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End If End Sub 5.16 利用单选钮组控制输入文本的字体,界面如图5-3所示。 图5-3 使用单选钮组 【解答】 设计步骤如下。 (1)建立应用程序用户界面并设置对象属性。 新建一个工程,
65、进入窗体设计器,增加一个标签Label1,一个文本框Text1和四个单选钮Option1~Option4,如图5-4所示。 图5-4 添加控件 然后设置对象属性,见表5-1。 表5-1 属性设置 对 象 属 性 属 性 值 说 明 Label1 Caption 请输入文本 Text1 Text 清空 Option1 Caption 宋体 Value True 单选钮组中的默认按钮 Option2 Caption 隶书 Option3 Caption 黑体 Option4 Caption
66、 楷体 并设置适当的字体大小,如图5-3所示。 (2)编写程序代码。 编写单选钮Option1的Click事件代码: Private Sub Option1_Click( ) Text1.FontName = "宋体" End Sub 编写单选钮Option2的Click事件代码: Private Sub Option2_Click( ) Text1.FontName = "隶书" End Sub 编写单选钮Option3的Click事件代码: Private Sub Option3_Click( ) Text1.FontName = "黑体" End Sub 编写单选钮Option4的Click事件代码: Private Sub Option4_Click( ) Text1.FontName = "楷体_GB2312" End Sub 【说明】 一个单选钮可以用以下方法之一进行选择。 在运行期间单击单选钮。 用Tab键定位到单选钮组,然后在组内使用方向键(箭头键)定位
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。