Visual Basic程序设计习题与上机实践(txt+pdf+epub+mobi电子书下载)


发布时间:2021-02-20 00:40:22

点击下载

作者:杜文方 (主编)

出版社:人民邮电出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Visual Basic程序设计习题与上机实践

Visual Basic程序设计习题与上机实践试读:

前言

“计算机程序设计”是高等学校计算机专业和非计算机专业学生的一门基础课程,强调知识性与应用性相结合,立足实践,在实践中学习知识。近些年我国高校的程序设计课教学发生了深刻变化,“以程序设计为主”的教学思想被广泛融入到程序设计课的教学中。随着“计算思维”的提出,其主导的程序设计课要培养学生“计算思维”能力的思想被广泛认可和接受。“计算思维”要求运用计算的基本概念、思想去求解问题、设计系统和理解人类的行为,是高校学生必须具备的思维能力。

本教材基于 Visual Basic 语言编写,贯彻以程序设计为主线,以提高学生“计算思维”能力为导向,以培养学生编程能力为目标,进一步提升“计算思维”主导程序设计教学的思想,本书特点:

1.充分体现培养学生“计算思维”能力的教学思想,针对教学内容列出知识点,结合实验提出的问题进行分析,引导学生运用所学知识,解决问题,改变“学了程序设计而不会编程序”的现状,提高学生的程序设计能力。

2.遵循“以程序设计为主线”的指导思想,尽量体现用程序设计语言解决实际问题的基本模式、方法和过程,再思考用 Visual Basic 如何实现,避免只注重语言而忽略问题的本质。

3.采取“提出有意义的问题-分析设计算法-编出程序-运行程序”的方式组织教学内容,总结涉及的 Visual Basic 语言知识点,配合习题和思考题教会学生怎么编程序。

4.突出“案例”的作用,使用实用的“案例”讲解程序设计思想和方法。改变讲解语言概念,然后以一个小程序说明相应概念的做法。而让程序设计始终贯穿于整个教学过程,“案例”选择以训练学生的实际编程能力、计算思维能力为目标。

本书共分两个部分。第一部分为习题与上机实验,内容按主教材的章节顺序编排,习题设计了知识点提示、判断题、单选题和填空题,并附有参考答案,实验主要用于实践教学环节,设计了 Visual Basic 程序设计初步、语言基础、基本控制结构、数组应用、过程应用、常用控件、程序界面设计、文件操作和数据库应用9个编程实践;第二部分为综合设计范例,精心设计了3个不同应用领域的完整范例,每个范例从功能说明、设计思路和设计过程三个方面加以描述,力求通过开发实际应用提高学生应用所学知识的能力。

本书第一部分的实验 1、实验 7 由杜文方编写,实验 2 由耿植林编写,实验3、实验5由楼静编写,实验4由余鹏程编写,实验6由陈明伟编写,实验8由田春瑾编写,实验9由郑陵潇编写;第二部分的综合设计范例1由杜文方编写,范例2由田春瑾编写,范例3由郑陵潇编写。全书由杜文方任主编并负责统稿和审稿,田春瑾任副主编。

本书在编写过程中得到了昆明理工大学教务处及部门同仁的大力支持和帮助,在此表示感谢。同时也对本书参考文献、参考资料的作者表示感谢!

由于作者水平有限,书中难免有错误和不足之处,敬请读者批评指正。编者2013年9月▶▶第一部分习题和上机实验

● 实验1 Visual Basic 程序设计初步

● 实验2 Visual Basic 语言基础

● 实验3 基本控制结构

● 实验4 数组

● 实验5 过程

● 实验6 常用控件

● 实验7 程序界面设计

● 实验8 文件

● 实验9 数据库编程技术实验1 Visual Basic程序设计初步1.1 知识点提示

1.认识Visual Basic

Visual Basic(以下简称 VB)是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言。主要特点有:可视化编程、面向对象的程序设计、结构化高级程序设计语言、事件驱动编程机制、良好的数据库支持。

2.安装Visual Basic

在使用VB进行开发之前,应先将其安装到系统中。安装的时候选择标准安装或自定义安装,其中自定义安装可以灵活控制需要安装的项目。VB 安装结束后,建议安装开发文档 MSDN Library,以便在开发过程中随时获得帮助。

3.Visual Basic的集成开发环境

VB 的集成开发环境(IDE),集工程管理、界面设计、代码编写、代码调试和工程编译为一体。主要功能通过菜单、工具栏和一些可浮动的窗口实现。(1)VB 的工具栏包括标准、编辑、窗体编辑器和调试,并可根据用户需要定制。一般情况下,集成环境只显示标准工具栏,其他工具栏可以通过“视图”菜单中的“工具栏”命令打开或关闭。工具栏有固定和浮动两种形式。(2)VB 的工作窗口有窗体设计器窗口、工具箱窗口、属性窗口、代码窗口、立即窗口和工程资源管理器窗口等。

① 窗体设计器窗口:用于设计窗体。窗体是应用程序最终面向用户的窗口,作为程序设计的重要一步,就是按需要从工具箱中选择控件放置到窗体上。

② 工具箱窗口:工具箱窗口中的一个图标代表一个控件。控件分为内部控件(标准控件)、ActiveX控件和可插入对象。工具箱中默认只显示标准控件。

③ 属性窗口:用来设置对象属性。窗体和控件称为对象,每个对象都可以用属性窗口里的一组属性来刻画其特征。作为程序设计的重要一步,就是在属性窗口中设置对象属性。

④ 代码窗口:用来编写代码的窗口。作为程序设计的重要一步,就是在代码窗口中定义变量、编写对象的事件过程或通用过程的代码。

⑤ 立即窗口:用来检查变量和属性值以及测试过程。

⑥ 工程资源管理器窗口:用来管理应用程序(工程)的所有文件的窗口。管理的文件主要有6类,即窗体文件(.frm)、标准模块文件(.bas)、类模块文件(.cls)、工程文件(.vbp)、工程组文件(.vbg)和资源文件(.res)。(3)快速进入或切换各窗口的按键。

① 在窗体设计窗口双击鼠标或按F7 键进入代码窗口,按Shift+F7键返回窗体设计窗口。

② 按F4键进入属性窗口。

③ 按Ctrl+R键进入工程资源管理器窗口。

④ 按Ctrl+G键进入立即窗口。

⑤ 按F5键运行程序。

4.面向对象概念和事件驱动机制

VB 是面向对象(OOP)的程序设计语言,应用程序设计实际上是对一组对象的控制和交互的过程。对象是属性、方法和事件组合成的实体。通过对对象的属性、方法和事件操作来实现程序的交互。VB 中的对象分为预定义对象和自定义对象,预定义对象主要为窗体和工具箱中的标准控件;自定义对象为ActiveX控件和可插入对象,也称为外部对象。窗体、控件和外部对象统称为VB的可编程对象。(1)属性:对象的属性是对象具有的特征。不同的对象有不同的属性集合。设置对象的属性有两种方法:一是在属性窗口设置;二是在程序中设置,语法为:

对象名称.属性名称 = 属性值(2)事件:对象的事件就是能够被对象所识别的动作。每个对象都有一个由VB预定义好的事件集,不同对象的事件集不同,对象主要有鼠标事件、键盘事件等几类。

事件发生后所需要进行的处理叫做事件响应。根据应用程序的需要,一个对象可以识别多个事件,事件响应通过一段程序代码——事件过程(Event Procdure)来实现。

事件过程的一般格式如下:

Private Sub 对象名称_事件名称(参数列表) ' 有的过程不需要参数

' 事件响应程序代码

End Sub(3)方法:对象内含的函数或程序称为方法。采用方法来控制对象,实际上就是执行这些对象内部的函数或程序。方法也可以说是程序中要求某个对象完成某个动作或任务的一条特殊语句。调用方法的语法如下:

对象名称.方法名称(4)事件驱动:事件驱动是VB作为面向对象程序设计语言的基本特点。在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发,也可以由来自操作系统或其他应用程序的消息触发,甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径都是不同的。因为事件的顺序是无法预测的,所以在代码中必须对执行时的“各种状态”做一定的假设,这些假设就构成了驱动模型。

5.工程管理

VB 的工程中包含了一个应用程序构成的描述,新建的工程需要保存为工程文件(.vbp)。而打开工程实际就是打开工程文件,VB 会按照工程文件中应用程序构成的描述,自动装入组成该应用程序的所有模块文件。

常见的三类模块是窗体模块、标准模块、类模块。(1)窗体模块:窗体模块中的每个窗体由两个部分组成。一部分是描述窗体及窗体上控件的属性数据,即用户界面;另一部分是代码部分,它由窗体上每个对象的事件过程或一些通用过程组成。工程中的每一个窗体都会形成一个扩展名为.frm的文件。

工程中只包含一个窗体,称为单窗体程序,包含一个以上的窗体,就叫做多窗体程序。设计多窗体程序时,可采用每一个窗体地位平等的设计方式,也可采用在一个窗体中包含许多子窗体的设计方式。(2)标准模块:在标准模块中全部为程序代码,每个标准模块形成一个扩展名为.bas的文件。标准模块主要用来声明全局变量,定义能被其他过程或函数调用的公用函数和子过程,定义应用程序运行时的启动子过程——Sub Main()。(3)类模块:在类模块中可以由用户自定义类(Class)。一个类模块定义了一个类,每个类形成一个扩展名为.cls的文件,它包含了自定义类的属性数据、事件过程及方法。

6.应用程序开发步骤(1)创建工程:利用菜单命令“文件\新建工程”或工具栏上的“新建工程”命令创建一个新的工程,这是VB开发程序的第一步。(2)设计应用程序界面:在工程中添加必要的窗体,以窗体为基础,按窗体的功能需求把工具箱中的控件添加到窗体上,调整窗体和控件的大小和位置,创建应用程序界面。(3)设置对象的属性:在属性窗口的属性列表中选中需要修改的属性名称,在名称后通过直接输入、打开列表选择或通过对话框的方式设置对象的属性。(4)编写程序代码:在属性窗口的上方选中编程对象及对象的事件,VB 会自动生成事件过程框架Private Sub…End Sub,在其中编写实现功能的代码。(5)调试程序:利用VB的“调试”菜单或“调试”工具栏在中断模式下检查程序的逻辑错误和运行时错误,找到出错的位置和错误的原因,修改错误。(6)保存工程:工程中每一类模块文件需单独保存,包括窗体文件(.frm)、标准模块文件(.bas)、类模块文件(.cls)及工程文件(.vbp),比较大的程序中还有工程组文件(.vbg)、资源文件(.res)。(7)编译工程:在程序设计过程中或设计完成后都可以运行程序。运行程序有两种模式:一种是在VB开发环境中解释执行,运行的目的是调试并修改程序;另一种是把工程经过编译生成可执行文件(.exe)在Windows环境中独立运行。1.2 习题

一、判断题

1.( )Visual Basic企业版和专业版的功能完全相同,仅是授权方式不一样。

2.( )放置到窗体上的按钮是一个对象,有自己的属性和方法,也可响应事件。

3.( )在程序设计阶段,双击某个控件,所打开的窗口是代码窗口。

4.( )方法是预先定义好的、能够被对象识别的动作。

5.( )对象的所有属性都可以在属性窗口中设置。

6.( )标签控件是专门用来显示信息的,所以不能响应鼠标的单击事件。

7.( )将焦点主动设置到指定的控件上,应采用控件的SetFocus方法。

8.( )程序运行前,必须先保存工程文件、窗体文件等文件。

9.( )TextBox控件与Label控件有许多共同特点,它们都能显示和输入文本。

10.( )Visual Basic 中代码的执行与事件触发的先后顺序无关。

11.( )窗体的Show方法和Load语句具有相同的功能。

12.( )若同一个工程有许多窗体,可以指定任一窗体为启动窗体。

13.( )Visual Basic 规定窗体文件的扩展名是.vbp。

14.( )每个对象都有一系列预先定义好的对象事件,但要使对象能响应具体的事件,则编写该对象的相应的事件过程。

15.( )控件是对象,而窗体不是对象,它只是控件对象的窗口。

二、单选题

1.在Visual Basic 环境下,开发一个新的程序时,所做的第一件事是( )。(A)编写代码   (B)新建一个工程(C)打开属性窗口  (D)进入Visual Basic环境

2.以下可构成语句的一项是( )。(A)对象名.属性名  (B)对象名.方法名(C)对象名.事件名  (D)对象名.函数名

3.以下不是Visual Basic 特点的选项是( )。(A)可视化编程   (B)算法设计(C)事件驱动   (D)面向对象

4.Visual Basic的工程资源管理器可管理多种类型的文件,下面叙述不正确的是( )。(A)窗体文件的扩展名为.frm,每个窗体对应一个窗体文件(B)标准模块是一个纯代码性质的文件,它不属于任何一个窗体(C)用户通过类模块来定义自已的类,每个类都用一个扩展名为.bas文件来保存(D)资源文件是一种纯文本文件,可以用简单的文字编辑器来编辑

5.Visual Basic是一种面向对象的程序设计语言,构成对象的三要素是( )。(A)设计、控件和事件  (B)属性、事件和方法(C)窗体、控件和过程  (D)控件、过程和模块

6.以下叙述中错误的是( )。(A)打开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件(B)保存Visual Basic程序时,应分别保存窗体文件及工程文件(C)Visual Basic应用程序只能以解释方式执行(D)事件可以由用户引发,也可以由系统引发

7.在设计阶段,当双击窗体上的某个控件时,所打开的窗口是( )。(A)立即窗口 (B)属性窗口 (C)代码窗口 (D)工具箱窗口

8.以下叙述中正确的是( )。(A)窗体的Name属性指定窗体的名称,用来标识一个窗体(B)窗体的Name属性的值是显示在窗体标题栏中的文本(C)可以在运行期间改变对象的Name属性值(D)对象的Name属性值可以为空

9.以下叙述中错误的是( )。(A)一个工程中只能有一个Sub Main过程(B)窗体的Show方法的作用是将指定的窗体装入内存并显示该窗体(C)窗体的Hide方法和Unload方法的作用完全相同(D)若工程文件中有多个窗体,可以根据需要指定一个窗体为启动窗体

10.以下关于窗体的描述中,错误的是( )。(A)执行Unload Forml语句后,窗体Forml消失,但仍在内存中(B)窗体的Load事件在加载窗体时发生(C)当窗体的Enabled属性为False时,通过鼠标和键盘对窗体的操作都被禁止(D)窗体的Height、Width属性用于设置窗体的高和宽

11.窗体名称为Form1,把窗体标题设置为“Exam”的正确语句是( )。(A)Form1.Show= "Exam"  (B)Me.Caption= "Exam"(C)Form1.Test= "Exam"  (D)Form1.Name= "Exam"

12.当一个工程含有多个窗体时,其中的启动窗体是( )。(A)启动Visual Basic时建立的窗体(B)第一个添加的窗体(C)最后一个添加的窗体工程属性(D)在工程属性对话框中指定的窗体

13.要使命令按钮在运行时不可见,可通过设置( )属性的取值来实现。(A)Enabled (B)Visible (C)Default (D)Value

14.下述选项中,属于Visual Basic 的程序设计方法是( )。(A)面向对象、顺序驱动  (B)面向过程、顺序驱动(C)面向对象、事件驱动  (D)面向过程、事件驱动

15.以下叙述中错误的是( )。(A)事件过程是响应特定事件的一段程序(B)不同的对象可以具有相同名称的方法(C)对象的方法是执行指定操作的过程(D)对象事件的名称可以由编程者指定

16.程序运行过程中用鼠标双击当前窗体时,会触发窗体的( )事件。(A)Load (B)Unload (C)Click (D)DblClick

17.用Visual Basic设计的应用程序,扩展名为.frm的文件是( )。(A)工程文件   (B)窗体文件(C)标准模块文件  (D)可执行文件

18.单击窗体上的关闭按钮,将触发窗体的( )事件。(A)Load (B)Initialize (C)Click (D)Unload

19.下列关于属性设置的叙述错误的是( )。(A)控件的属性是Visual Basic预先设计好的,用户不能改变(B)控件的属性是Visual Basic预先设计好的,用户可以改变(C)控件的属性既可以在属性窗口中设置,也可以用程序代码设置(D)控件的属性在属性窗口中设置后,还可以用程序代码为其设置新值

20.应用程序设计完成后,应将程序文件保存,保存文件一般顺序是( )。(A)只保存窗体文件即可(B)只保存工程文件即可(C)先保存工程文件,之后再保存窗体文件(D)先保存窗体文件(和标准模块文件),之后再保存工程文件

21.启动Visual Basic进入编程环境后,下列叙述中错误的是( )。(A)工具箱中只有内部控件(B)自动建立名为Form1的窗体(C)属性窗口一定会同时打开(D)只要存盘就会生成一个工程文件

22.下面不能打开属性窗口的操作是( )。(A)执行“视图”菜单中的“属性窗口”命令(B)单击工具栏上的“属性窗口”按钮(C)按Ctrl+T键(D)按F4键

23.下列( )方法不是Visual Basic中打开工程的方法。(A)按CTRL+O键(B)执行“文件”菜单中的“打开工程”命令(C)按ALT+O键(D)单击标准工具栏上的“打开工程”按钮

24.下列叙述中正确的是( )。(A)Visual Basic与BASIC没有什么不同(B)Visual Basic与BASIC的编程机制不同(C)Visual Basic是过程设计语言(D)Visual Basic与BASIC之间没有什么联系

25.以下说法正确的是( )。(A)对象属性只能在属性窗口中设置(B)一个新的工程可以在工程窗口中建立(C)必须先建立一个工程,才能开始设计应用程序(D)只能在代码窗口中编写程序代码

26.要使命令按钮cmdQuit不可用(灰色),应设置的属性是( )。(A)cmdQuit.Enabled=False (B)cmdQuit.Enabled=True(C)cmdQuit.Visible=False  (D)cmdQuit.Visible=True

27.能获取文本框中选定文本的属性是( )。(A)SelStart (B)SelText (C)SelLength (D)Text

28.能够使文本框Text1获取焦点的语句是( )。(A)Text1.SetFocus  (B)Text1.GotFocus(C)SetFocus.Text1  (D)GotFocus.Text1

29.在工程资源管理器中“移出”一个文件后,该文件( )。(A)移入Windows回收站  (B)仍存在于当前工程中(C)从磁盘中删除掉  (D)从当前工程中删除掉

30.Visual Basic集成开发环境可以( )。(A)编辑、调试、运行程序,但不能生成可执行程序(B)编辑、生成可执行程序、运行程序,但不能调试程序(C)编辑、调试、生成可执行程序,但不能运行程序(D)编辑、调试、运行程序,也能生成可执行程序

三、填空题

1.选择多个控件,可以按住______键,然后单击每个控件。

2.一个程序最多可以有______个窗体。

3.Visual Basic是一种可视化的、面向对象和采用______方式的高级程序设计语言。

4.打开Visual Basic窗口或显示工具栏,对应的菜单命令均放置于______菜单中。

5.窗体布局窗口的主要用途是调整______。

6.在窗体设计窗口双击鼠标或按______进入代码窗口。

7.要改变窗体上的文字的字体应该改变窗体的______属性。

8.设置窗体被加载后位于屏幕中央,可通过窗体的______属性设置。

9.单击工具栏中的“启动”按钮,或按______键开始执行程序。

10.______实际上是Visual Basic提供的一种特殊的子程序,用来完成一定的操作。1.3 实验

一、实验目的

1.了解Visual Basic的运行环境,Visual Basic和MSDN 的安装方法。

2.掌握Visual Basic的启动与退出方法。

3.熟悉Visual Basic的集成开发环境。

4.理解面向对象和事件驱动的编程机制,程序的调试和错误处理。

5.掌握窗体对象和文本框、标签、命令按钮等基本控件的使用。

二、实验内容

1.设计一个程序,运行结果如图1-1-1(a)、(b)所示,要求如下。图1-1-1 程序运行界面(1)窗体的高度为2000,宽度为4600,标题为“第一个VB程序”。(2)程序启动时,窗体位于屏幕的中央,文本框中显示信息“我是文本框”。(3)单击“显示”按钮,在文本框中显示“欢迎进入 Visual Basic 世界!”;单击“清除”按钮,清空文本框中的文字信息;单击“退出”按钮,退出程序。(4)保存窗体文件和工程文件。(5)把工程编译生成可执行文件(.exe)。

实验过程如下。(1)新建工程。

启动VB,在“新建工程”对话框中选择“标准 EXE”类型,单击“打开”按钮完成工程的创建,默认的工程名称为“工程1”,工程中自动创建一个名称为Form1的窗体。(2)设计程序界面。

根据程序的功能需求,需要在窗体上添加 1 个文本框(TextBox)控件和 3 个命令按钮(CommandButton)控件。

添加控件的方法:用鼠标单击屏幕左边工具箱中所需的控件图标后,将鼠标移动到窗体中,在创建控件的位置按住鼠标左键拖动鼠标,画出控件对象,松开鼠标按键完成控件的添加;也可以直接用鼠标双击工具箱中的控件图标,系统自动在窗体中产生一个大小和位置为默认值的控件对象,再将其拖动到合适位置即可。

用上面的方法在窗体Form1上添加1个文本框(TextBox)控件,默认名称为Text1,添加3个命令按钮(CommandButton)控件,默认名称分别为Command1、Command2和Command3。

添加控件后,可以用鼠标拖动的方法来改变窗体和控件的大小,移动控件在窗体中的位置;也可以通过改变与位置和尺寸有关的属性(Left、Top、Width、Height)值来改变控件或窗体的大小和位置。

如果想同时对齐多个控件的位置和同时调整多个控件的大小,可先拖动鼠标框选要调整的控件,利用VB的“窗体编辑器”工具栏的相关按钮实现。

初步完成的程序界面如图1-1-2所示。图1-1-2 创建程序界面(3)设置对象属性。

单窗体程序可直接利用属性窗口设置对象属性,多窗体程序则需先在工程资源管理器窗口中先双击窗体名称选中窗体,再利用属性窗口设置对象属性。

① 设置窗体属性。

在Form1的空白处单击,或者在属性窗口的对象列表中选中Form1(见图1-1-3(a))。在属性列表中找到属性(名称)(Name),默认值为“Form1”,把其修改为“frmExample1”;往下找到Caption属性,该属性是窗体的标题,默认值为“Form1”,把其修改为“第一个VB程序”,如图1-1-3(b)所示;往下找到Height属性,该属性表示窗体的高度,把其中的数值改为“2000”;往下找到 StartUpPosition 属性,该属性表示窗体启动后出现在屏幕上的初始位置,默认值为“3——窗口缺省”,打开属性名称后的列表框选择属性值为“2——屏幕中心”;往下找到 Width属性,该属性表示窗体的宽度,把其中的数值改为“4600”。图1-1-3 设置窗体属性

② 设置文本框属性。

在窗体上单击文本框Text1,或在属性窗口上方的对象列表中选中Text1。在属性列表中找到(名称)(Name属性),属性值默认为“Text1”,把其修改为“txtMessage”;往下找到Text属性,该属性是文本框中显示的内容,默认值为“Text1”,把其修改为“我是文本框”。

③ 设置命令按钮的属性。

利用上面类似的方法设置Command1的Name属性值为“cmdShow”,Caption属性值为“显示”;设置Command2的Name属性为“cmdClear”,Caption属性为“清除”;Command3的Name属性为“cmdExit”,Caption属性为“退出”。

设计完成的程序界面如图1-1-1所示。

总结窗体和控件的属性设置,如表1-1-1所示。表1-1-1 窗体及控件的属性设置

注意

Name 属性是对象(窗体和控件)的重要属性,在程序代码中访问对象就是利用对象的Name属性。该属性只能在设计阶段设置,在运行期间不能改变。此外,在属性窗口中,Name 属性在属性列表中为(名称),但在程序代码中,仍使用Name。

设计程序时,不建议使用对象默认的Name属性值,最好给对象取一个和对象功能相关的名称,做到见名知义。另外,微软建议名称应加前缀,用以区别不同的对象类型。

本例中,窗体名称为“frmExample1”,前缀是“frm”,表示是窗体对象;文本框名称为“txtMessage”,前缀为“txt”,表示是文本框;3个命令按钮的名称前缀为“cmd”,表示是按钮。(4)编写程序代码。

VB采用事件驱动的编程机制,通过引发某个事件来驱动完成某种特定的功能。本例中所有功能都是通过单击命令按钮完成,所以应针对命令按钮的鼠标单击事件(Click)在代码窗口中编写代码。

● cmdShow(显示)按钮的单击事件代码。

在窗体上选中命令按钮cmdShow,单击工程资源管理器窗口的“查看代码”按钮打开代码窗口或在窗体上直接双击命令按钮cmdShow打开代码窗口,也可以直接按F7键。

在代码窗口的对象选择框中选择对象cmdShow,事件选择框中选择Click事件,代码编辑区会生成cmdShow按钮的Click事件过程框架,如图1-1-4(a)所示,在Private Sub和End Sub之间输入事件过程代码。图1-1-4 编写代码

单击“显示”按钮,在文本框中显示“欢迎进入Visual Basic世界!”。需要在cmdShow按钮的单击事件中修改文本框txtMessage的Text属性实现,通过代码修改Text属性。

Private Sub cmdShow_Click()

txtMessage.Text = "欢迎进入Visual Basic世界!"

End Sub

● cmdClear(清除)按钮的单击事件代码。

单击“清除”按钮,实现的功能是清空文本框中的内容,只需把文本框的Text属性值设置为一个空字符串("")即可。在代码窗口对象选择框中选择对象cmdClear,事件选择框中选择Click事件,在生成的cmdClear按钮的Click事件过程中编写代码。

Private Sub cmdClear_Click()

txtMessage.Text = ""

End Sub

● cmdExit(退出)按钮的单击事件代码,实现退出程序功能。

Private Sub cmdExit_Click()

Unload Me ' 也可写成 Unload frmExample1 或者 End

End Sub

代码Unload Me卸载当前窗体,Me 在这里代表的是frmExample1,由于工程中只包含一个窗体,窗体卸载了,整个程序也就结束了。但是多窗体程序中,Unload Me不一定能退出程序。另外,退出程序也可以使用End语句,表示结束整个程序。

窗体模块中的事件代码全部编写完成,如图1-1-4(b)所示。每个事件过程的代码是独立的,没有主次之分,地位等同,即事件过程是并列的关系。

至此,一个简单的程序设计完成,单击工具栏上“启动”按钮或按 F5 键,运行程序,屏幕上将显示出与设计一致的运行界面。

尽管上面编写了3个按钮的单击事件代码,但如果在程序界面上不单击按钮,程序什么也不做,就是说程序是不会主动去执行代码的。一旦单击了某个按钮,就触发了该按钮的单击事件(Click),通过执行事件过程中的代码来响应该事件。而且单击哪个按钮由用户随机选择,哪个按钮被单击了,就执行这个按钮的单击事件过程代码。所以事件过程代码的执行顺序和代码编写的前后顺序无关,而是与事件是否发生及发生的顺序有关,这是事件驱动的基本思想。

在程序主界面依次单击或随机单击按钮,测试程序的功能是否正常。(5)工程的保存和打开。

在应用程序的开发过程中,应及时保存和工程有关的文件。而退出VB之后,如果发现程序有错误或不满意的地方,可打开工程进行修改。

① 保存工程。

保存工程时,一般先保存工程中包含的不同类型的模块文件,如窗体模块下的窗体文件,标准模块下的标准模块文件等,然后再保存工程文件。

在实际操作中,为了提高操作效率,可以单击工具栏上的“保存工程”按钮,或执行“文件”菜单中的“保存工程”命令,系统将先弹出保存窗体文件对话框,在保存了窗体文件后,才会弹出保存工程的对话框,完成应用程序的保存操作。

注意

最好将所有的文件保存到一个文件夹中,以便修改和管理程序文件。

本例中,工程中只有一个窗体文件,将其保存为“frmExample1.frm”,工程文件保存为“Example1.vbp”,如图1-1-5和图1-1-6所示。图1-1-5 保存窗体文件图1-1-6 保存工程文件

② 打开工程。

在文件夹中找到需要修改的程序,双击工程文件(.vbp)即可在内存中装入工程文件,系统可自动把工程所包含的所有文件一起载入内存,再通过资源管理器窗口打开不同类型的文件进行修改,之后直接保存修改后的文件即可。(6)运行和编译程序。

在Visual Basic中,应用程序可在两种模式下运行:解释模式和编译模式。

① 解释模式:在Visual Basic集成环境下,单击工具栏“启动”按钮(或选择菜单命令“运行\启动”或按F5键),系统将按事件发生的顺序读取事件过程代码,将其转换为机器代码,并执行该机器代码。由于转换后的机器代码不保存,如需再次运行该程序,则必须再次进行解释,因此解释运行模式比编译运行模式慢。

在应用程序开发阶段,为了便于程序的调试,一般采用解释方式。

② 编译模式:为了使应用程序能在 Windows 环境中运行,必须建立一个可执行文件。方法是选择菜单命令“文件\生成 ××.exe”,“××”表示工程的名称。系统将读取应用程序中的全部代码,然后将其转换为机器代码,并保存在扩展名为.exe 的可执行文件中,供以后多次运行。默认情况下,编译生成的可执行文件和工程文件保存在同一文件夹下。

在Windows下,找到可执行文件,然后双击文件名即可运行程序。本例中,编译生成的可执行文件默认为“Example1.exe”。

2.设计一个程序,运行结果如图1-1-7所示,要求如下。图1-1-7 程序运行界面(1)窗体的标题为“两数相除 – 错误处理演示”。(2)要求在程序启动时清空3个文本框中的内容,不是在设计阶段。(3)单击“计算”按钮,把前两个文本框中输入的数相除,结果显示在第三个文本框中,计算结果保留4位小数。(4)用于显示结果的第三个文本框不允许输入数据。(5)单击“退出”按钮,退出程序。(6)按钮需设置访问键。

实验过程如下。(1)启动Visual Basic,新建“标准 EXE”工程。(2)设计程序界面。

根据程序功能要求,在窗体上需要添加 3 个标签(Label)控件Label1~Label3,添加3个文本框(TextBox)控件Text1~Text3,添加 2 个命令按钮(CommandButton)控件 Command1和Command2。调整窗体的大小及控件的大小和位置,完成界面的初步设计,如图1-1-8所示。图1-1-8 创建程序界面(3)设置对象属性。

在属性窗口中,相关属性窗体和控件的设置如表 1-1-2 所示。在本例中,设计阶段在属性窗口中并未设置3个文本框的Text属性。txtResult文本框不允许输入内容,设置其Locked属性为True来实现。设计完成的程序界面如图1-1-7所示。表1-1-2 窗体及控件属性设置(4)编写程序代码。

要求在程序运行时清除3个文本框中的内容,只需设置文本框的Text属性值为空字符串,在窗体的Load事件中编写文本框的初始化代码实现,该事件由系统触发。

单击“计算”按钮把前两个文本框中的值相除,结果显示在第三个文本框,需要在按钮cdmCalc的单击事件中访问文本框的Text属性,前两个是引用Text属性值,第三个是设置Text属性值。

注意

Text属性值是字符串数据,应转换为数值之后再求相除。计算结果为数值,需转换为字符串后再显示在第三个文本框中。

打开代码窗口,依次编写如下的事件代码。

● 在窗体frmExample2的Load事件代码中,清空文本框中的内容。请补充代码。

Private Sub Form_Load()

……

End Sub

● 在cmdCalc(计算)按钮的Click事件代码中,获得两个文本框中输入的数据,转换为数值后相除,结果显示在第三个文本框。

Private Sub cmdCalc_Click()

Dim dblFirstNum As Double

Dim dblSecondNum As Double

Dim dblResult As Double

dblFirstNum = CDbl(txtFirstNum.Text)   '转换为双精度数

dblSecondNum = CDbl(txtSecondNum.Text)  '转换为双精度数

dblResult = dblFirstNum / dblSecondNum  '两数相除

txtResult.Text = Format(dblResult, "0.0000") '结果显示在第三个文本框

End Sub

● 单击cmdExit(退出)按钮,退出程序,请补充代码。

Private Sub cmdExit_Click()

……

End Sub

至此,程序设计完成。按 F5 键运行程序,测试程序功能。只要在前两个文本框中输入合适的数值,单击“计算”按钮可以得到正确的结果。但如果在第二个文本框中输入0或者在两个文本框中输入的不是数值,单击“计算”按钮程序就会出错。VB 能自动捕获错误,并且给出错误的代码和错误信息,单击错误窗口的“结束”按钮结束程序,单击“测试”按钮则定位到代码窗口中的出错行。

运行结果说明,“计算”按钮的单击事件过程代码存在错误隐患,对于可捕获的错误,可利用VB提供的On Error语句和Err对象处理错误,避免程序由于出错而崩溃。

改进后的cmdCalc按钮的Click事件代码如下,请补充完整。

Private Sub cmdCalc_Click()

' 用On Error语句设置错误捕获

' 发生错误就转移到errHandler标号处的错误处理例程执行代码

On Error GoTo errHandler

……         '此处的代码为改进前的代码

Exit Sub       '此行不能省略,否则程序会继续往下运行

errHandler:       ' errHandler标号,下面是错误处理例程

Select Case Err.Number    '利用Err对象的Number属性获取错误代码

Case 11       '处理被零除错误

MsgBox "除数不能为零,请检查!", vbExclamation, "错误"

Case 13       '处理类型不匹配错误

MsgBox "数据类型不匹配,请检查!", vbExclamation, "错误"

Case Else       '处理其他类型错误

MsgBox "程序发生其他错误!", vbExclamation, "错误"

End Select

End Sub

考虑了错误处理的程序运行结果如图1-1-9和图1-1-10所示。图1-1-9 处理被零除错误图1-1-10 处理类型不匹配错误(5)保存工程。

保存窗体文件为“frmExample2.frm”,工程文件为“Example2.vbp”。(6)运行和编译程序。

程序运行正常后,编译工程生成可执行文件“Example2.exe”。

3.思考题。

第2题中如果不想通过错误处理方式处理程序错误,也可限制第一个文本框中只能输入数值,第二个文本框只能输入不为0的数值,请思考如何实现。1.4 习题答案

一、判断题

二、单选题

三、填空题实验2 Visual Basic语言基础2.1 知识点提示(1)信息是以数据的形式在计算机中进行处理的。数据是信息的二进制编码,不同类型数据的编码方式、占用空间以及参与的运算都有所不同。(2)Visual Basic(以下简称VB)支持的数据类型包括6 种数值型数据(字节型、整型、长整型、单精度型、双精度型、货币型)以及字符串型、逻辑型、日期型、变体型、对象型共 11种基本数据类型。此外,为了方便描述复杂信息,VB 为编程人员提供了将基本数据类型构造成复合数据类型的方法,这就是自定义型和数组。(3)常量是在整个程序运行过程中都不再发生改变的数据。VB 中的常量可分为直接常量、系统常量、符号常量。直接常量就是程序代码中直接书写的数据。对于字节型、整型、长整型常量除了用十进制书写外,还可以用八进制(加前缀&O)和十六进制(加前缀&H)书写;浮点型和双精度型常量可以用小数或科学计数法书写;字符串常量用英文双引号封闭;日期常量用“#”封闭。注意常量的类型符后缀用法(%、&、!、#、@、$)。(4)符号常量需要用户在程序中声明,其语法格式为:

Const 常量名 As [数据类型] = 表达式

此外,还可以用Private、Public声明符号常量。(5)变量本质上是内存单元的指代,其中保存的数据可以读取出来参与运算,也可以通过赋值、输入语句等方式多次修改其中的值,修改后新值覆盖旧值。变量可以显示声明变量名及其数据类型,也可以使用隐式声明,默认的数据类型为变体型。(6)符号常量名、变量名的命名都必须符合标识符命名规则,即以字母或汉字开头的字母、汉字、数字、下划线串,长度不超过255个字符,且不与 VB保留字冲突。VB的保留字、标识符都不区分大小写字母。(7)在代码中对各种数据进行运算的符号称为运算符。VB 提供的运算符有算术运算符、关系运算符、逻辑运算符、字符串运算符。用运算符及圆括号将常量、变量、函数等操作数连接而成的式子称为表达式。不论表达式多么复杂,通过运算最终都将得到1个运算结果。(8)一般而言,各类运算符优先级从高到低的顺序是:算术运算、字符串运算、关系运算、逻辑运算。必要时可以使用圆括号改变运算顺序,但是左右圆括号必须配对使用,并且可以嵌套。(9)VB中的除法分为浮点除法、整除、求模(取余数)3种。对浮点数进行除法运算要用运算符“/”;对整数相除时要用运算符“\”,并要求运算的两个数是整数,如果不是则会自动转换成整型(小数部分四舍五入)后再运算,运算结果自动截断小数取整;取余数要用“Mod”运算符,同样要求被除数和除数都是整型,不是整型的同样会自动四舍五入取整后再求余数。(10)关系运算符>、>=、<、<=、=、<>用于数值型、字符型、日期型操作数的关系比较,其结果为True(-1)或False(0)。关系运算符优先级都相同,一般按照从左到右顺序进行比较,要注意连续比较时VB表达式与代数式含义可能不同。(11)在VB中允许字节型、整型、单精度型、双精度型、货币型、日期型、逻辑型、字符串型等不同类型的数据进行混合运算。两个不同类型的操作数运算时,先要转换成同一类型,然后再运算。不能转换为相同类型的数据(不匹配类型)不能参与运算。(12)VB提供了大量的内部函数,常用的有数学函数、字符函数、日期与时间函数、类型转换函数和格式化函数等。可以通过帮助菜单,获得有关内部函数的使用方法。2.2 习题

一、判断题

1.( )VB的基本数据类型有11 种,表达式中不同类型的数据不能混合运算。

2.( )12.5@、2.3#、18!、75&、9%都是合法的数值常量。

3.( )Currency和Double都占8 字节,但Currency的小数数值精度没有Double高。

4.( )字符串"abc"在内存中占用3个字节。

5.( )Date型数据用6位小数来保存时间的时、分、秒。

6.( )用Const语句声明的符号常量名必须用大写字母。

7.( )VB中的变量可以用Dim语句声明,也可以不声明任意使用。

8.( )VB中10和10.0的数值是一样的,在内存中占用的空间也一样。

9.( )Date型数据不能与数值型数据一起做乘法、除法运算,只能做加减运算。

10.( )VB中运算优先级从高到低为:算术运算、关系运算、逻辑运算。

11.( )表达式(2*3)>=5 and 12/3<=4的值为True。

12.( )逻辑运算的优先顺序是And、Not、Or。

13.( )语句Print "11" < "109"的运行结果是True。

14.( )&O12、&H0A、10%都是合法的常量,它们的数值完全相等。

15.( )False = True+1是非法的表达式。

16.( )_a12和Pab#都不能用作变量名。

17.( )+和&都是字符串连接运算符,在做字符串连接时二者可以相互替代。

18.( )Rnd函数只能产生0~1 之间的小数。

19.( )函数Int()、Round()、Fix()都能用于对浮点数取整数,但结果可能不同。

20.( )函数Format(0.5, "dddddd")的返回值是0.500000。

二、单选题

1.下列合法的标识符是( )。(A)Forloop (B)Const (C)9abc (D)a#x

2.下面对变量的类型说明符的使用不正确的是( )。(A)a@=2000 (B)a%=50000 (C)a&=True (D)a$="OK"

3.设有变量声明语句:Dim a,b As Boolean,则下面叙述中正确的是( )。(A)a和b都是布尔型变量  (B)a是变体型变量,b是布尔型变量(C)a是整型变量,b是布尔型变量 (D)a和 b都是变体型变量

4.下列可作为Visual Basic变量名的是( )。(A)A#A (B)4ABC (C)? xy (D)Print_Text

5.以下叙述中错误的是( )。(A)语句Const A1!=100 声明了整型常量A1,其值是100(B)Static、Private、Public都可以用来声明变量(C)过程中变量不声明也可以使用(D)#2013,10,1 13:15#是合法的日期常量

6.下列表达式不能正确运行的是( )。(A)4<=x<=10 (B)A$ -B$ (C)8^(1/3) (D)1Or 0

7.下列运算符级别最低的是( )。(A)+  (B)Not (C)>  (D)Xor

8.已知x=2,表达式(x=x+1)*True的运算结果是( )。(A)2  (B)-3 (C)0  (D)表达式错误

9.表达式28 Mod 5^2的值是( )。(A)3  (B)0 (C)1  (D)28

10.下列运算结果中,值最大的是( )。(A)5\2  (B)5/2 (C)5Mod 2 (D)2Mod 5

11.以下可构成语句的一项是( )。(A)FalseOrNotTrue  (B)FalseAndNotTrue(C)FalseOrNOTFalse  (D)NotFalseAndNotTrue

12.表达式8.6 Mod 4.3 的值是( )。(A)0  (B)1 (C)2  (D)3

13.假设a=2,b=3,c=4,d=5,表达式a>b And 2*a>c Or c

14.在Visual Basic逻辑运算符中,优先级从高到低的顺序为( )。(A)And>Not>Or>Xor>Eqv>Imp (B)And>Or>Not>Xor>Eqv>Imp(C)Eqv>And>Not>Or>Xor>Imp (D)Not>And>Or>Xor>Eqv>Imp

15.语句Print #12/7/2011# - #10/12/2011#的值是( )。(A)55  (B)56 (C)57 (D)58

16.假设a=3,b=7,c=2,则表达式Not(ba的值是( )。(A)True (B)False (C)表达式错误 (D)不确定

17.下列各式中,值为True的是( )。(A)5>3And "B"<"A"  (B)5>3Or "B"<"C"(C)5>3Xor "B"<"C"  (D)5>3Eqv "B">"C"

18.x是小于100的非负数,用Visual Basic表达式表达正确的是( )。(A)0≤x≤100   (B)0<=x<100(C)x>=0And x<100  (D)x>=0Or x<100

19.执行以下程序段后,变量c的值为( )。

a = "Visual Basic Programming"

b = "Quick"

c = b & UCase(Mid$(a, 7, 6)) & Right$(a, 12)(A)"Quick basic"   (B)"QuickVisual BasicProgramming"(C)"Quick basicProgramming" (D)"QuickBASICProgramming"

20.以下可构成语句的一项是( )。(A)ConstWUMing=20  (B)Dim a#, b!, dol@(C)Print "李明:"+23  (D)PublicDim a, bAs Integer

21.设有如下的用户定义类型:

Type Student

number As String

name As String

age As Integer

End Type

则以下正确引用该类型成员的代码是( )。(A)Student.name= "李明"  (B)Student .age=18(C)Dim s As Type Student

s.name = "李明"(D)Dim s As Type

s.name = "李明"

22.Int(-3.5)、CInt(3.5)、Fix(-3.5)的值分別是( )。(A)-3、3、-4   (B)-4、4、-4(C)-4、3、-3   (D)-4、4、-3

23.以下关于优先级顺序正确的是( )。(A)算术运算符<关系运算符<字符运算符(B)算术运算符>字符运算符>关系运算符(C)逻辑运算符>关系运算符>字符运算符(D)关系运算符>字符运算符>逻辑运算符

24.语句Print Format(32458.5, "000,000.00")的输出结果为( )。(A)3245.8   (B)32,458.5(C)032,458.50   (D)32,458.50

25.有变量声明:Dim TestDate As Date,为变量TestDate 正确赋值的表达方式是( )。(A)TextDate=#1/1/2013#  (B)TestDate=#"1/1/2013"#(C)TextDate=Date("1/1/2013") (D)TestDate=Format("m/d/yy","1/1/2013")

26.设a=3,b=5,则以下表达式为“真”的是( )。(A)(a>b)Or (b>0)  (B)a>bAnd b>10(C)(a<0)Eqv (b>0)  (D)(-3+5>a)And (b<0)

27.用于获取字符串S 中从第2个字符开始的3个字符的函数是( )。(A)Mid$(S,2,3)   (B)Middle$(S,2,3)(C)Right$(S,2,3)   (D)Left$(S,2,3)

28.设有如下变量声明:Dim X As Integer,如果Sgn(X)的值为-1,则X 的值是( )。(A)整数   (B)大于 0的整数(C)等于 0的整数  (D)小于 0的整数

29.下面程序运行时,若输入395,则输出结果是( )。

Private Sub Command1_Click()

Dim x%

x = InputBox("请输入一个3位整数:", "输入")

Print x Mod 10; x\100; (x Mod 100)\10

End Sub(A)3 9 5 (B)5 9 3 (C)5 3 9 (D)3 5 9

30.下列程序段运行的结果是( )。

Dim Num1%, Num2$

Num1 = 138

Num2 = "5736"

Print Num1 & Num2 + 4219(A)13857364219   (B)10093(C)1389955   (D)58744219

三、填空题

1.已知变量 x值为 6,表达式 3<=x<=5的值为______。

2.表达式 13>5 Imp "13">"5"的值是______。

3.数学关系式-5≤X≤5所对应的逻辑表达式是______。

4.表达式"onr"< "five"的值是______。

5.已知 a=3,b=4,c=5,表达式 a>bAndNot c>aOr c>bAnd c

6.日期表达式 #2/24/02# - #2/12/02#的值为______。

7.变量“姓名”、“性别”保存有职工姓名和性别,描述姓“李”的“男”职工的逻辑表达式是______。

8.表达式 100+ "100"& 100的值是______。

9.描述“X是不超过 1000且不等于 100的非负整数”的表达式是

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载