VB二级等级考试强化班_第1页
VB二级等级考试强化班_第2页
VB二级等级考试强化班_第3页
VB二级等级考试强化班_第4页
VB二级等级考试强化班_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

上海市高等学校计算机等级考试(二级)《VisualBasic程序设计》考试大纲

(2012年修订)考试时间:10月31日现在是1页\一共有84页\编辑于星期一二、考试目标通过该课程的学习,应能了解程序设计语言的基本知识、面向对象的基本概念,掌握程序设计的基本方法与思路,其中包括数据类型、基本语句、模块化程序设计、常用算法、界面设计等,并能综合应用这些知识解决简单实际问题。《VisualBasic程序设计》的考试目标是测试考生掌握VB基本知识的程度和综合运用VB进行程序设计。现在是2页\一共有84页\编辑于星期一三、考试细则

考试方法为基于网络环境的无纸化上机考试。时间为120分钟,试卷总分为100分。试卷由单选题、程序填空题、程序调试题和综合编程题四部分组成。使用上海市高校计算机等级考试客户端程序登录到服务器,按要求将操作结果存放在本地计算机的指定目录,并上传到服务器,否则考试无效。考试阅卷采用机器和人工相结合的网上阅卷方式。现在是3页\一共有84页\编辑于星期一四、试卷参考样式

现在是4页\一共有84页\编辑于星期一第一章

VisualBasic程序设计概述现在是5页\一共有84页\编辑于星期一3、创建、打开和保存工程1.创建工程第一步,点击任务栏上的【开始】→【程序】→【MicrosoftVisualBasic6.0中文版】→【MicrosoftVisualBasic6.0中文版】,启动VisualBasic6.0应用程序。第二步,在“新建工程”选项卡中选择“标准EXE”(如图1-15所示),点击“确定”,则新建了一个工程,默认的名称为“工程1”。2.打开工程对已有的工程可以使用以下两种方式打开:找到工程文件并双击。启动VisualBasic6.0后,在弹出的菜单中点击“取消”。点击菜单栏上的【文件】→【打开工程】,定位文件所在的路径,选择要打开的工程文件图标,点击“打开”,便可打开一个工程。3.保存工程点击菜单栏上的【文件】→【保存工程】,如果是新建的工程会弹出“文件另存为”对话框。首先要保存的是窗体文件,后缀名为“frm”,选择要保存的文件路径,并给窗体文件命名,默认文件名为“Form1”,也可以自定义名称,点击“保存”。然后保存工程,后缀名为“vbp”,选择要保存的文件路径,并给工程文件命名,默认文件名为“工程1”,也可以自定义名称,点击“保存”。现在是6页\一共有84页\编辑于星期一四、添加、删除和保存窗体、工程1.添加窗体右键单击工程资源管理器窗口中的工程名(如图1-21所示),在弹出的快捷菜单中点击【添加】→【添加窗体】。在弹出的对话框中选择所要添加的窗体的类型(如图1-22所示),点击“打开”,添加了一个空白窗体。2.删除窗体右键单击工程资源管理器窗口中的窗体程名,在弹出的快捷菜单中点击“移除form1”。3.保存窗体在工程资源管理器窗口中,单击要保存的窗体名称,点击菜单栏上的【文件】→【保存form1】。4.保存工程在工程资源管理器窗口中,单击要保存的工程名称,点击菜单栏上的【文件】→【保存工程】。现在是7页\一共有84页\编辑于星期一第二章

建立简单的VB应用程序现在是8页\一共有84页\编辑于星期一对象的属性、事件和方法一.对象属性属性是反应对象的特征,也就是说属性中存放着对象的数据。对象常见的属性有名称(Name)、标题(Caption)、字体(FontName)等。可以在属性窗口可以设置属性,步骤为:1.选择要设置属性的对象2.激活属性窗口3.选择属性名称4.设置属性值设置属性值的方式有三种:(1)直接输入新值某些属性如Caption、Text需要由用户输入。如设置标签对象的Caption值(2)选择输入某些属性的值是VB预先设好的只能从其中进行选择,如DrawStyle、FillStyle等,这些取值可能只有两种、几种,这样的属性只能在下拉列表中选择。(3)利用对话框设置某些属性如Picture、Font等,在设置框的右端会显示省略号按钮,单击这个按钮会弹出相应的对话框用来设置对象属性。如图2-4所示设置字体属性。现在是9页\一共有84页\编辑于星期一二.对象事件

事件是VB预先设置好的,可以被对象识别的动作,不同的对象能够识别的事件不一样。在对象上发生了事件后,应用程序就要处理这个事件,这样一段应用程序代码叫做事件过程(EventProcedure)。VB程序设计的工作就是编写事件过程中的代码。事件过程的形式如下:PrivateSub对象名_事件()…对象程序代码…EndSub“对象名”是指对象属性中的Name属性值,“事件”是VB预先设置好的,在建立对象后,VB能自动确定与该对象相匹配的事件,并可显示出来提供给用户选择。例如,单击Picture1图形框,打印出“欢迎使用VB!”字样,则对应的事件过程为:PrivateSubPicture1_Click()Picture1.Print"欢迎使用VB!"EndSub【注意】用户在对一个对象发出动作时,可能会对该对象激发多个事件,如用户执行了单击动作,会同时触发Click、MouseDown事件。这时只要去编写自己需要的事件如Click,没有代码的空事件系统不会执行。现在是10页\一共有84页\编辑于星期一三.对象方法在面向对象的程序设计语言中,为程序设计人员提供了一种特殊的函数和过程,我们称之为方法(Method)。VB将这些通用的过程和函数已经编写好代码并将其封装,让用户作为方法直接调用,这样避免了用户重复编写大量代码。和属性及事件一样,方法是特定对象的一部分,其调用格式为:对象名.方法[参数名表]若省略对象名,则表示为当前对象,一般指窗体本身。如:Picture1.Print"HelloVB6.0"此语句使用Print方法在Picture1图形框上打印“HelloVB6.0”,如果语句为:Print"HelloVB6.0"在窗体上打印“HelloVB6.0”。现在是11页\一共有84页\编辑于星期一2.2编写简单的VB程序使用VB开发应用程序需要以下几步骤:1.建立可视化用户界面2.设置对象属性3.编写代码4.保存工程5.调试应用程序,排除错误6.创建可执行程序现在是12页\一共有84页\编辑于星期一2.3.1窗体创建VB应用程序的第一步是创建用户界面。用户界面的基础是窗体,各种控件对象必须建立在窗体上。启动VB后,即在屏幕上显示一个窗体。2.3窗体及基本的内部控件窗体控制菜单框窗体控制菜单框窗体控制菜单框标题栏最小化按钮最大化按钮关闭按钮现在是13页\一共有84页\编辑于星期一窗体的属性决定了窗体的外观和操作。窗体的大部分属性可用两种方法来设置:通过属性窗口设置和通过程序代码设置。有少量的属性不能在程序代码中设置。(1)Appearance属性该属性决定窗体的外观效果,属性值为0为平面效果,属性值为1为立体效果。(2)Caption属性用于设置窗体标题栏显示的内容,它的值为字符串。系统默认的Caption值为Form1。(3)Icon属性用于设置当窗体最小化时以该图标显示,如果不设置则以VB默认图标显示。设置方法为,单击Icon属性设置右边的“”,打开“加载图标”对话框,选择图标文件装入。(4)ControlBox属性当其值为True时左上角有控制菜单,当为False时为无控制菜单框。

(5)MaxButton属性和MinButton属性

MaxButton属性为True,窗体右上角有最大化按钮;为False时,无最大化按钮。 MinButton属性为True,窗体右上角有最小化按钮;为False时,无最小化按钮。 设置窗体的初始高度和宽度。其单位为Twip。1Twip=1/20点=1/1440英寸=1/567cm。(一)窗体的主要属性现在是14页\一共有84页\编辑于星期一

(6)BorderStyle属性

决定窗体边框式样及窗体是否能调整大小。(7)BackColor属性和ForeColor属性

BackColor属性设置窗体的背景颜色,ForColor属性设置窗体的前景颜色。窗体的前景颜色是执行Print方法时所显示文本的颜色。(8)Height属性和Width属性

(9)Left属性和Top属性

用于设置窗体左边框距屏幕左边界的距离和窗体顶边距屏幕顶端的距离。其单位为Twip。(10)Name(名称)属性

设置窗体的名称,在程序代码中用这个名称引用该窗体。新建工程时,窗体的名称缺省为Form1;添加第二个窗体,其名称缺省为Form2,依次类推。为了便于识别,用户通常给Name属性设置一个有实际意义的名称。现在是15页\一共有84页\编辑于星期一

(11)Enabled属性

属性值为True或False,设置对象是否能够对用户产生的事件做出反应。一般在程序中设置,用于临时屏蔽对窗体或其它控件的的控制。

(12)Moveable属性

属性值为True或False,设置是否可以移动窗体。

(13)Visible属性

属性值为True或False,设置窗体是否被显示。用户可用该属性在程序代码中控制窗体的隐现。

(14)Picture属性

设置在窗体中显示的图片。单击Picture属性右边的按钮,弹出“加载图片”对话框,用户可选择一个图片文件作为窗体的背景图片。若在程序中设置该属性的值,需要使用LoadPicture函数。

(15)WindowState属性

设置窗体启动后的大小状态。 在VB中,虽然不同的对象有不同的属性集合,但有一些属性,如Name、Enabled、Visible、Height、Width、Left、Top等,其它控件也有,且具有相似的作用。在后续的章节中,主要介绍各种控件常用的特殊属性。现在是16页\一共有84页\编辑于星期一2.3.5图形框(PictureBox)和图像框(Image)一.图形框在图形框中加载图片的方法有两种:方法一:在设计界面设置其Picture属性。步骤为:1.选中设计界面的图形框控件对象;2.在其属性窗口中选择Picture属性;3.单击设置框右方的“”按钮,在弹出的加载图片窗口中选择需要添加的图片。方法二:在代码窗口可以使用LoadPicture()函数装入图片,则在程序运行时会自动将图片加载进来。其格式为:

图形框对象名.Picture=LoadPicture(”图形文件名”)卸载图片的方法也有两种:方法一:在设计界面将其Picture属性清空方法二:在代码窗口可以使用LoadPicture()函数卸载,格式为:

图形框对象名.Picture=LoadPicture(””)

PictureBox的Autosize属性为True时,图形框能自动调整大小与显示的图片匹配,但是,如果图片的大小超过图形框所在的窗体,则只能显示部分图片,因为窗体本身无法自动调整大小。Autosize值为False,则图形框不能自动改变大小来适应其中的图片。PictureBox也可以作为其它控件的容器。这些控件会随着PictureBox的移动而移动。现在是17页\一共有84页\编辑于星期一第三章

VB程序设计基础

现在是18页\一共有84页\编辑于星期一3.1数据类型

在VB中,允许使用的有如下几种数据类型:

1.数值数据类型

(1)Integer和Long型

Integer型占2个字节(即共16位),表示整数的范围为-215~215-1,即-32768~32767。

Long型占4个字节(即共32位),表示整数的范围为-231~231-1,即2147483648~2147483647。

(2)Single和Double型

Single型占4个字节,精度为7位,表示的正数范围为1.401298E-45~3.402823E38,负数范围为-3.402823E38~-1.401298E-45。

Double型占8个字节,精度为16位,表示的正数范围为4.94065645841247E-324~

1.79769313486232E308,负数范围为-1.79769313486232E308~-4.94065645841247E-324。Single和Double型用于保存带小数的数字。

(3)Currency型

占8个字节,能表示数的范围为-922337203685477.5808~922337203685477.5807。

(4)Byte型

用于表示并存储二进制数据。占1个字节,能表示0~255的整数范围。现在是19页\一共有84页\编辑于星期一2.逻辑数据类型逻辑(Boolean)类型用于表示只有两种相反取值的数据,适合于逻辑判断的情况,它只有True与False两个值。3.字符数据类型字符(String)类型用于表示由多个字符组成的字符串。字符可以包括所有的西文字符和汉字,字符两侧用英文输入方式中的双引号括起。4.日期数据类型日期(Date)型数据用于表示日期和时间,它可以接受多种表示形式的日期和时间。表示的日期范围从公元100年1月1日到9999年12月31日,时间范围为0:00:00~23:59:59。赋值时用两个“#”符号把表示日期和时间的值括起来。5.变体数据类型变体(Variant)数据类型能够存储所有系统定义类型的数据,如果把它们赋予Variant类型,则不必在这些数据的类型间进行转换,VB会自动根据上下文的需要完成任何必要的转换。6.对象数据类型对象(Object)类型可用来引用应用程序中或某些其他应用程序中的对象。

现在是20页\一共有84页\编辑于星期一3.2常量和变量3.2.1常量和变量的命名规则在VB6.0中,必须按如下规则命名一个常量或变量:(1)不能使用VB中的关键字。(2)首字符必须是字母或汉字,其余字符可以为字母、汉字、数字或下划线,长度不超过255个字符。例如下面列举的这些变量名是正确的:Inta、a、医德、师_9、y8。而下面列举的这些变量名是不正确的:Sub‘是VB中的关键字255x‘不允许以数字开头_xy‘不允许以下划线开头x-y‘不允许出现减号a&b‘不允许出现符号&xingming‘不允许出现空格现在是21页\一共有84页\编辑于星期一3.2.3变量

在VB中,用变量来表示程序运行过程中其值可发生变化的量。变量名来表示其中存储的数据,变量类型表示其中存储的数据的具体类型。因此每个变量必须有一个唯一的变量名字和相应的数据类型。1、声明变量(1)隐式声明在VB中使用一个变量时,可以不加任何声明而直接使用,叫做隐式声明。(2)显式声明显式声明是指每个变量必须事先做声明,才能够正常使用。声明变量语法格式如下:

声明方式变量名[As数据类型名]

或声明方式变量名[类型符]现在是22页\一共有84页\编辑于星期一3.3运算符和表达式3.3.1运算符1、数学运算符设Inta为整型变量,其值为5,下表为数学运算符及其运算法则,其运算优先级别分别为由高到低。现在是23页\一共有84页\编辑于星期一2.字符串运算符现在是24页\一共有84页\编辑于星期一3.关系运算符对于关系运算符:(1)如果两个操作数是数值型,则按其大小比较;如果一个是数值型,另一个是数字字符型,则系统会先将数字字符型转换成数值型再进行数值大小比较;如果一个是数值型,另一个是非数字字符型,则系统出错。(2)如果两个操作数是字符型,则按字符的ASCII码值从左到右一一比较。现在是25页\一共有84页\编辑于星期一4.逻辑运算符逻辑运算符用于判断操作数之间的逻辑关系,结果是逻辑值True或False。左表列出了VB中的逻辑运算符及其运算法则,其运算优先级别分别为由高到低。

现在是26页\一共有84页\编辑于星期一例:用人单位招聘秘书:年龄小于40岁的女性,学历专科或本科,年龄<40,性别=“女”,(学历=“专科”,学历=“本科”)

And

And

Or比a小,比b大用Ora小数b大数a小数b大数比a大,比b小用And例:表示算术表达式:正确的VB表达式:3〈=xAndx<=7错误的VB表达式:3<=x<=7或3<=xOrx<=7考虑:若分别写成:年龄<40And性别="女"And(学历="专科"And学历="本科")年龄<40Or性别="女"Or(学历="专科"Or学历="本科")现在是27页\一共有84页\编辑于星期一3.5常用内部函数1.数学函数Rnd函数返回0和1(包括0但不包括1)之间的双精度随机数。每次运行时,要产生不同序列的随机数,执行Randomize语句。

产生随机整数的通式:Int(Rnd*范围+基数)例产生1~100的随机数:Int(Rnd*100)+12.转换函数

Chr(66)"B" Asc("B")66Asc(Chr(99))99Chr(Asc("K"))"K"Ucase$("abcdefg")"ABCDEFG"现在是28页\一共有84页\编辑于星期一4.字符串函数Mid$("ABCDEFG",2,3)"BCD"InStr(2,"ABCDEFG","EF") 5

Replace("ABCDABCD","CD","123") “AB123AB123”现在是29页\一共有84页\编辑于星期一

控制结构

现在是30页\一共有84页\编辑于星期一3.1顺序控制结构

顺序结构就是各语句按出现的先后次序执行。一般的程序设计语言中,顺序结构的语句主要是赋值语句、输入/输出语句等。在VB中也有赋值语句,而输入/输出可以通过文本框、print方法等实现,也可以通过系统提供的函数和过程来实现。3.1.1赋值语句赋值语句的一般形式如下:

变量名=表达式

对象.属性=表达式程序执行时,先计算右边表达式的值,然后将值赋给左边的变量或属性。

例如:X=100

‘把数值赋给变量X;Text1.Text="VB欢迎你"

‘把字符串赋给Text1的Text属性Label1.Caption=Date()

‘把Date函数的结果赋给Label1的Caption属性Label1.Top=Label1.Top-100

‘把表达式的值赋给Label1的Top属性

在赋值语句中,赋值运算符"="代表赋值操作,而不代表等量关系。

现在是31页\一共有84页\编辑于星期一3.1.2人机交互函数和过程Vb程序与用户之间的直接交互可以通过InputBox()函数、MsgBox()函数和Msg过程进行。1.InputBox()函数InputBox()函数可以产生一个对话框,这个对话框作为输入数据的界面,等待用户输入数据,当用户单击“确定“按钮或回车时,函数返回输入的值,类型为字符型。函数格式如下:

变量$=InputBox(Prompt[,Title][,Default][,XPos][,YPose])现在是32页\一共有84页\编辑于星期一2.MsgBox()函数和MsgBox过程MsgBox()函数可以产生一个消息框,等待用户选择按钮,当用户单击某个按钮时,函数返回按钮的值,类型为整型。函数格式如下:变量%=MsgBox(Prompt[,Type][,Title])现在是33页\一共有84页\编辑于星期一3.2选择结构3.2.1IF条件语句1.IF……Then语句(单分支结构)语句形式:(1)IF<表达式>Then语句块EndIF(2)IF<表达式>Then语句块表达式语句块FT单分支结构流程示意图其中:表达式:一般为关系表达式、逻辑表达式,也可以为算术表达式。表达式的值按非零为True,零为False进行处理。语句块:可以是一条或多条语句。如果采用形式(2)表示则语句之间要用冒号分隔,并且一定写在同一行上。现在是34页\一共有84页\编辑于星期一例3-3已知两个变量x和y,比较它们的大小,使x中的值大于y。(要实现两个变量中的数互相交换通常以使用第三变量为过渡,在此为t)语句如下:IFx<yThent=x‘将变量x中的值暂时存放于变量t中x=y‘用变量y中的值替代变量x中的值y=t‘再将原变量x中的值替代变量y中的值EndIF或者IFx<yThent=x:x=y:y=t现在是35页\一共有84页\编辑于星期一3.2.2SelectCase语句SelectCase语句是多分支结构的又一种表示形式,又称情况语句。语句形式:

SelectCase变量或表达式Case表达式列表1<语句块1>Case表达式列表2<语句块2>……[CaseElse<语句块n+1>]EndSelect说明:变量或表达式:为数值型或字符型表达式(1)表达式(2)一组用逗号分隔的枚举值(3)表达式1To表达式2(4)Is关系运算符表达式F表达式列表1语句块1表达式列表2语句块2表达式列表n语句块n…..语句块n+1TTTSelect语句流程示意图FF…..现在是36页\一共有84页\编辑于星期一3.3循环结构3.3.1For循环语句For循环语句是计数型循环语句,用于控制循环次数预知的循环结构。语句形式:

For循环变量=初值To终值[Step步长]

Next循环变量说明:循环变量必须是数值型步长:一般为正数,初值小于终值;若为负数,初值大于终值;Step缺省时默认为1。语句块:重复执行的部分,构成循环体,可以是一句或多句。ExitFor:退出循环,执行Next后的下一条语句。循环次数:n=Int(+1)<语句块>[ExitFor]<语句块>循环体终值-初值

步长TF循环变量=初值循环变量≤终值语句块有ExitFor语句块循环变量=循环变量+步长FT步长>0时For循环语句流程示意图现在是37页\一共有84页\编辑于星期一例3-8求100以内所有数的和。程序块如下:Sum=0‘sum为累加和变量,设初值为0Fori=1To100Sum=Sum+iNextI又如:求10的阶乘。T=1‘T为连乘积的变量,设初值为1Fori=1To10T=T*iNexti现在是38页\一共有84页\编辑于星期一3.3.2Do…Loop循环语句

Do循环用于控制循环次数未知的循环结构。语句形式:(1)Do[{While|Until}<条件>]<语句块>[ExitDo]<语句块>Loop(2)Do<语句块>[ExitDo]<语句块>Loop[{While|Until}<条件>

]TFF表达式列表语句块有ExitDo语句块DoWhile…Loop循环流程图TFT表达式列表语句块ExitDo语句块TDo…LoopWhile流程示意图现在是39页\一共有84页\编辑于星期一例:求自然对数e的近似值,n由文本框输入,近似公式如下:e=1+1/1!+1/2!+1/3!+…+1/n!现在是40页\一共有84页\编辑于星期一PrivateSubCommand1_Click()Dimi%,m%,nAsDouble,eeAsSingleee=1n=1m=Val(Text1.Text)Fori=1Tomn=n*iee=ee+1/nNextiLabel3.Caption=eeEndSub现在是41页\一共有84页\编辑于星期一第四章

VB中的数组

现在是42页\一共有84页\编辑于星期一4.2静态数组

4.2.1一维数组的声明和引用1.静态一维数组的声明格式:

Dim数组名(下标)[As类型]2.一维数组元素的引用引用一维数组元素的格式:

数组名(下标)

引用数组元素时,下标可以为整型常量、变量或表达式例如:a(1)=1:a(i)=x+y:a(i+1)=t现在是43页\一共有84页\编辑于星期一4.2.2使用一维数组1.一维数组的赋值(1)对数组中的元素逐个赋值例如:Dimarr(5)AsIntegerarr(0)=5:arr(1)=4:arr(2)=-2:arr(3)=1:arr(4)=-8:arr(5)=6一般来说,如果各个数组元素的值彼此之间毫无规律可寻,则可以采用逐个赋值的方法,显然这种方法在进行大量数据的处理时决非上乘之选。(2)使用循环语句对数组元素赋值例如:Fori=0to5arr(i)=Int(Rnd*90)+10Nexti如果各个数组元素的值彼此之间是有规律可寻的,则可以采用循环语句来实现其赋值操作。(3)使用Array函数Array函数:给Variant类型的变量赋值,同时确定数组大小。使用格式:Array(参数列表)例如:DimarrAsVariantarr=Array(1,3,6,9,11)现在是44页\一共有84页\编辑于星期一2.一维数组的输出对于一维数组的输出,基本上都是使用一个单循环语句来达到目的:Fori=0to5Printarr(i)NextI例:随机产生50个0~100之间的整数。例:随机产生10个大写字母保存在数组中,并在标签上显示现在是45页\一共有84页\编辑于星期一PrivateSubCommand1_Click()Dima(9)AsString,sAsStringDimiAsInteger,jAsIntegerLabel1.Caption="随机产生的字母为:"&vbCrLfFori=0To9a(i)=Chr(Rnd*26+65)Label1.Caption=Label1.Caption&a(i)&","NextiEndSub现在是46页\一共有84页\编辑于星期一4.3.1动态数组的声明

声明动态数组通常分为两步:第一,使用Dim、语句声明一个没有下标的数组,即括号内为空的数组,但是括号不能省略;第二,在过程中使用ReDim语句指定该数组的大小,其作用是为数组分配实际存储空间。Redim语句的格式:

ReDim数组名(下标1[,下标2…])[As类型]其中下标可以是常量,也可以是有了确定值的变量,类型可以省略,若不省略,必须与Dim中的声明语句保持一致。例如:Dimd()AsSingleSubForm_Load()……ReDimd(4,6)……EndSub现在是47页\一共有84页\编辑于星期一4.3.2与动态数组操作相关的函数

1.Array函数:给Variant类型的动态数组赋值,同时确定数组大小使用格式:Array(参数列表)说明:(1)用Array函数给动态数组赋值后,该数组被确定为一维数组,其下标下界由OptionBasen语句决定,下标上界由参数个数决定。(2)用Array函数也可给Variant类型的变量赋值,此时该变量也表示一个Variant类型的动态数组。例如:Dima()AsVariant,bAsVarianta=Array(1,”abc”,3)b=Array(5,6)a=Array(9,8,7,6):重新改变数组a的元素个数ReDimPreservea(2),b(1To5):改变数组a、b的大小,并保留原来的数据。2.Lbound()函数和Ubound()函数Lbound()函数和Ubound()函数帮助用户确定数组每一维下标的变化范围,Lbound()函数返回数组的下界,Ubound()函数返回数组上界。使用格式:Lbound(数组名,n)和Ubound(数组名,n)说明:n表示第几维,默认为1(第一维),即省略参数n时,默认数组为一维数组。例如:输出动态一维数组a中的各元素Fori=Lbound(a)ToUbound(a)Printa(i)Nexti现在是48页\一共有84页\编辑于星期一常用算法

数组排序(选择法)

对已知存放在数组中的n个数,用选择法按递增顺序排序。(1)从n个数的序列中选出最小的数(递增),与第1个数交换位置;(2)除第1个数外,其余n-1个数再按(1)的方法选出次小的数,与第2个数交换位置;(3)重复(1)n-1遍,最后构成递增序列。

Fori=1Ton-1 iMin=i Forj=i+1TonIfiA(j)<iA(iMin)TheniMin=jNextjt=iA(i):iA(i)=iA(iMin):iA(iMin)=tNextI现在是49页\一共有84页\编辑于星期一程序功能是:随机产生10个小写字母保存在数组中,并在标签上显示。用选择排序法将数组中的字母按降序排列,并显示在标签上。现在是50页\一共有84页\编辑于星期一PrivateSubCommand1_Click()Dima(9)AsString,sAsString

DimiAsInteger,jAsInteger,maxiAsInteger

Label1.Caption="原来的字符序列为:"&vbCrLfFori=0To9a(i)=___(1)______Label1.Caption=Label1.Caption&a(i)&","

NextiFori=0To8maxi=___(2)_______Forj=i+1To9Ifa(j)>a(maxi)Then_______(3)_________Nextjs=a(maxi)a(maxi)=a(i)______(4)_________NextiLabel1.Caption=Label1.Caption&vbCrLf&"按降序排序输出为:"&vbCrLfFori=0To9Label1.Caption=Label1.Caption&a(i)&","NextiEndSubchr(Int(97+Rnd()*26))imaxi=ja(i)=s现在是51页\一共有84页\编辑于星期一数组排序(冒泡法)

冒泡法排序在每一轮排序时只要将第一个与其他几个比较,只要次序不对,就交换,出了内循环,最小数已冒出。排序进行的过程见下表。

Fori=1Ton-1'进行n-1轮比较Forj=i+1Ton'从n~i个元素进行两两比较IfiA(j)<iA(i)Then'若次序不对,则马上进行交换位置t=iA(j):iA(j)=iA(i):iA(i)=tEndIfNextj '出了内循环,一轮排序结束,最小数已冒到最上面Nexti现在是52页\一共有84页\编辑于星期一程序功能是:随机产生10个大写字母保存在数组中,并在标签上显示。用冒泡排序法将数组中的字母按升序排列,并显示在标签上。现在是53页\一共有84页\编辑于星期一PrivateSubCommand1_Click()Dima(9)AsString,sAsString

DimiAsInteger,jAsInteger

Label1.Caption="原来的字符序列为:"&vbCrLfFori=0To9a(i)=Chr(65+___(1)______)Label1.Caption=Label1.Caption&a(i)&","NextiFori=0To___(2)____Forj=9Toi+1Step-1Ifa(j-1)____(3)_______Thens=a(j-1)____(4)________=a(j)a(j)=sEndIfNextjNextiLabel1.Caption=Label1.Caption&vbCrLf&"按升序排序输出为:"&vbCrLfFori=0To9Label1.Caption=Label1.Caption&a(i)&","NextiEndSuba(j-1)>a(j)a(j-1)Chr(Rnd*26+65)

8现在是54页\一共有84页\编辑于星期一数组元素的插入与删除(1)插入在有序数组a(1ton)(原有n-1个元素)插入一个值Key元素,算法:查找要插入的位置k(1<=k<=n-1)腾出位置,把最后一个元素开始到第k个元素往后移动一个位置第k个元素的位置腾出,就可将数据Key插入(2)删除

要找到欲删除的元素的位置k;然后从k+1到n个位置开始向前移动;最后将数组元素减1。现在是55页\一共有84页\编辑于星期一例:已知数组,在文本框中输入要插入到数组中的一个数字,最后将整个数组元素输出。现在是56页\一共有84页\编辑于星期一PrivateSubCommand1_Click()Dima(),i%,k%,b%a=Array(1,4,7,10,13,16,19,22,25)n=UBound(a)Fori=0TonPrinta(i);Nextib=Val(Text1.Text)Fork=1TonIfb<a(k)ThenExitForNextkReDimPreservea(n+1)Fori=nTokStep-1a(i+1)=a(i)Nextia(k)=bPrintFori=LBound(a)ToUBound(a)Printa(i);NextiEndSub现在是57页\一共有84页\编辑于星期一第6章

过程

现在是58页\一共有84页\编辑于星期一函数过程形式:

Function函数过程名([参数列表])[As类型]

局部变量或常数定义语句块函数名=返回值函数过程体[ExitFunction]语句块

函数名=返回值

EndFunction2.调用函数过程

函数过程调用同标准函数调用,形式:函数过程名([参数列表])

参数列表:称为实参或实元,它必须与形参个数相同,位置与类型一一对应。可以是同类型的常量、变量、表达式。现在是59页\一共有84页\编辑于星期一6.3子过程6.3.1子过程的定义:子过程定义

Sub子过程名[(参数列表)]

局部变量或常数定义 语句

[ExitSub]

语句

EndSub调用子过程调用Sub过程有两种方法:子过程的调用

子过程名

[参数列表]

Call子过程名(参数列表)当使用Call语法时,参数必须在括号内。若省略Call关键字,则也必须省略参数两边的括号。现在是60页\一共有84页\编辑于星期一6.5参数传递1.传址与传值

传址:

形参得到的是实参的地址,当形参值的改变同时也改变实参的值。

传值:

形参得到的是实参的值,形参值的改变不会影响实参的值。用ByVal关键字指出参数是按值来传递的。两个变量的交换。SubSwap1(ByValx%,ByValy%)t%=x:x=y:y=tEndSubSubSwap2(x%,y%)t%=x:x=y:y=tEndSubPrivateSubCommand1_Click()a%=10:b%=20:Swap1a,b'传值Print"A1=";a,"B1=";ba=10:b=20:Swap2a,b'传址Print"A2=";a,"B2=";bEndSub现在是61页\一共有84页\编辑于星期一自定义函数Myf(m),该函数通过函数名Myf获得m阶乘的结果。主调程序在文本框中输入n的值,要求n不小于5,否则显示出错信息,并清空文本框的内容待重新输入;调用Myf函数过程,计算并显示1/1!+1/3!+...+1/i!的值,i为不超过n的最大奇数,并在Label2显示结果,界面如下图。现在是62页\一共有84页\编辑于星期一FunctionMyf(ByValmAsInteger)AsSingleDimiAsInteger,tAsSingle_____(1)_______Fori=1Tomt=t*iNexti____(2)________=tEndFunctiont=1Myf现在是63页\一共有84页\编辑于星期一PrivateSubCommand1_Click()Dimn%,i%,s!n=Val(Text1.Text)Ifn<5ThenMsgBox("数据不符合要求,重新输入")Text1.Text=""Text1.SetFocusElseLabel2.Caption=""IfnMod2=0Thenn=____(3)______s=0Fori=1TonStep2s=s+____(4)________Label2.Caption=Label2.Caption&"1/"&i&"!"Ifi<nThenLabel2.Caption=Label2.Caption&"+"NextiLabel2.Caption=Label2.Caption&"="&sEndIfEndSubn-11/Myf(i)现在是64页\一共有84页\编辑于星期一第七章

常用控件

现在是65页\一共有84页\编辑于星期一7.3列表框和组合框列表框(ListBox)通过显示多个选项供用户选择,达到与用户对话的目的。如果有较多的选项而不能一次全部显示时,VB会自动加上滚动条。列表框的最主要的特点是用户只能从其中选择而不能直接修改选项内容。组合框(ComboBox)是组合了文本框和列表框的特性而形成的一种控件。组合框在列表框中列出可供用户选择的选项,当用户选定某项后,该项内容自动装入文本框中。组合框有三种组合风格,即下拉式组合框、简单组合框和下拉式列表框,由其Style属性值决定,他们的Style属性值分别为0,1,2。

列表框组合框现在是66页\一共有84页\编辑于星期一7.3.1列表框和组合框共有的重要属性①List属性该属性是一个字符型数组,存放列表框或组合框的选项内容。数组的下标是从0开始的,即第一个项目的下标是0。例如上例中List1.List(0)的值是“生理学”,List1.List(2)的值是“药理学”。List属性可以在设计状态设置也可以在程序中设置或引用。②ListIndex属性该属性是整型,表示程序运行时被选定的选项的序号。例如,如果选定“中药学”,则该属性值为3。如果没有选任何选项则该属性值为-1。该属性只能在程序中设置或引用。③ListCount属性该属性值类型为整型,表示列表框或组合框中项目的数量。ListCount-1表示最后一项的序号。该属性只能在程序中设置或引用。④Sorted属性该属性值类型为逻辑型,决定在程序运行期间列表框或组合框的选项是否按字母顺序排列显示。如果Sorted值为True则项目按字母顺序排列显示,如果为False,则选项按加入的先后顺序排列显示。该属性只能在程序中设置或引用。⑤Text属性该属型值类型为字符型,表示被选定的选项的文本内容。如上例中,“生理学”被选定,因此List1.Text的值为“生理学”。Text属性为默认属性,只能在程序中设置或引用。现在是67页\一共有84页\编辑于星期一7.4时钟控件时钟控件(Timer)可以实现有规律地以一定的时间间隔激发计时器事件(Timer)而执行相应的程序代码。7.4.1重要属性Interval属性单位:ms(0.001s),0.5秒是500。Interval=0:屏蔽计时器。Enabled属性True:有效计时False:停止时钟工作7.4.2事件时钟控件只有一个事件,即Timer事件。时钟现在是68页\一共有84页\编辑于星期一7.5滚动条滚动条(ScrollBar)控件通常用来附在窗体上协助观察数据或确定位置,也可以作为数据输入的工具。滚动条有水平和垂直两种,如图所示。7.5.1重要属性Max属性:该属性表示当滑块处于最大位置时所代表的值(-32767~32767)。Min属性:该属性表示当滑块处于最小位置时所代表的值(-32767~32767)。SmallChange属性:该属性表示用户单击滚动条两端箭头时,滑块移动的增量值。LargeChange属性:该属性表示用户单击滚动条的空白处滑块移动的增量值。Value属性:该属性表示滑块所处位置所代表的值。7.5.2事件滚动条有两个重要的事件是Scroll和Chang。用户拖动滑块时触发Scoll事件,而当Value值改变时会触发Chang事件。现在是69页\一共有84页\编辑于星期一第8章

用户界面设计

现在是70页\一共有84页\编辑于星期一8.1菜单设计

菜单界面是现在绝大多数应用程序的用户界面,许多简单的应用程序只由一个窗体和几个控件组成,但是通过增加菜单可以增强VisualBasic应用程序的功能。这一节将介绍如何在应用程序中创建菜单和使用菜单。菜单的组成元素有:菜单栏,菜单名,菜单项,子菜单名,快捷键,热键和子菜单标记,如图所示。菜单栏8.1菜单设计菜单栏菜单项动态菜单项子菜单项分隔条快捷键热键现在是71页\一共有84页\编辑于星期一8.1.1用菜单编辑器创建菜单

用菜单编辑器可以创建新的菜单和菜单栏、在已有的菜单上增加新命令、用自己的命令来替换已有的菜单命令以及修改和删除已有的菜单和菜单栏。从“工具”菜单上,选取“菜单编辑器”。这就会打开菜单编辑器,如图所示。现在是72页\一共有84页\编辑于星期一8.2通用对话框对象通用对话框对象允许在程序中显示五种标准对话框。通用对话框对象提供的五个通用对话框可以通过设置其Action属性或调用方法而获得。程序中获得对话框的属性值及方法如下表所示:现在是73页\一共有84页\编辑于星期一第九章

多窗体和多文档界面

现在是74页\一共有84页\编辑于星期一9.1多窗体界面(1)Show方法:显示一个窗体(当窗体没有Load,自动Load) [窗体名称].Show[模式] 0-Modal:关闭才能对其他窗体进行操作。 1-Modeless,可以对其他窗体进行操作。 (2)Hide方法:隐藏窗体,没有Unload删除 [窗体名称.]Hide现在是75页\一共有84页\编辑于星期一第十章

文件

现在是76页\一共有84页\编辑于星期一10.2顺序访问模式顺序文件的写入步骤:打开、写入、关闭;

读出步骤:打开、读出、关闭。一.打开文件打开文件的命令是Open,格式为:

Open“文件名”For模式

As[#]文件号[Len=记录长度]说明:1)文件名可以是字符串常量也可以是字符串变量2)模式可以是下面之一:

温馨提示

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

评论

0/150

提交评论