全套课件 Visual-Basic程序设计(第二版)-柳青_第1页
全套课件 Visual-Basic程序设计(第二版)-柳青_第2页
全套课件 Visual-Basic程序设计(第二版)-柳青_第3页
全套课件 Visual-Basic程序设计(第二版)-柳青_第4页
全套课件 Visual-Basic程序设计(第二版)-柳青_第5页
已阅读5页,还剩743页未读 继续免费阅读

下载本文档

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

文档简介

Visual

Basic程序设计(第二版)第1章Visual

Basic

6.0入门本章简要介绍VisualBasic6.0(以下简称VB6)语言。通过本章的学习,初步了解VB6的功能特点、集成开发环境以及面向对象程序设计的基本概念,然后通过一个简单的例子说明VB6应用程序设计的步骤。1.1概述

Visual

Basic从Basic语言发展而来,是

Windowns环境下应用程序的可视化快速开

发工具。其中,“Visual”指开发图形用户界面(GUI)的方法,应用时不需要编写大量代码去描述界面元素(如按钮、列表框

等)的外观和位置,只要把预先建立的对

象拖放到屏幕的某一位置即可。“Basic”指BASIC(Beginners

All-Purpose

SymbolitInstruction

Code)语言,是一种在计算技术发展历史上应用最为广泛的语言。从使用的语言上来区分,常用的VB有两种1.2应用程序的设计与运行1.2.1启动Visual

Basic

6.0

安装Microsoft

Visual

Basic

6.0是非常简单的过程,在此省略。需要指出的是,安装VB6.0后,如果选择安装VB6.0的在线帮助系统MSDN(单独购买的2CD光盘),安装位

置所在的驱动器最好预留有1G以上的硬盘

空间。

正菜单确安装VB6后,在Windows操作系的[所有程序]组中选择[Micros统[开始]

oft

Visual图1-1启动VB

6.0Basic

6.0中文版]的选菜单项选,择启动Visual

Basic

6.0如图1-1所示。启动VB6之后,首先看到[新建工程]对话框,如图1-2所示。图1-2[新建工程]对话框

图1-2中提供了各种类型项目的模版,默认[标准EXE]应用程序模版。[新建工程]对话框列出了VB6的各类应用程序,默认“标准EXE”类型。初学者选择默认即可。该对话框有三个选项卡:1.“新建”选项卡:建立新的工程。

2.“现存”选项卡:选择并打开已保存过的工程。

3.“最新”选项卡:列出最近使用过的工程。1.2.2

Visual

Basic

6.0集成开发环境IDE

启动Visual

Basic

6.0后,选择[打开]按钮,进入VB6

IDE环境(见图1-3),开始VB工程的创建。•图1-3

VB6

IDE环境图1-3

VB6

IDE环境VB6集成开发环境的主要组成部分:

【工程资源管理器】:又称工程窗口,用于管理在开发项目过程中所有的文件。初次创建工程时,只有窗体文件夹中的第一个文件

Form1(Form1.vb),该文件保存当前窗体对应的所有程序代码。

【工具箱】:用于界面设计的各种控件,包含VB6中的20个标准控件。

[工具箱]相当于建造房屋时用到的基本材料,如砖、钢筋、水泥等。

【窗体窗口】:界面设计场所,相当于建造房子的空地。一个实用的应用程序至少有一个窗体。双击[工程资源管理器]中的Form1(Form1.vb),即可打开窗体窗口。

【属性窗口】:用于显示或设置当前窗体,以及即将添加到窗体的各种控件的特征值,如窗体的高度、宽度、显示在屏幕的位置等信息。

【窗体布局管理器】:显示当前窗体在屏幕中即将显示的位置。可以拖动管理器中虚拟显示器中的窗体,以改变窗体出现在屏幕中的初始位置。

【代码窗口】:在VB6中,每个窗体对应一个代码文件,即[工程资源管理器]中的[Form1.vb],该文件保存对应窗体的所有程序代码。图1-3中没有显示出代码窗口,在窗体上双击即可打开并显示[代码窗口]。

注意:如果在操作时无意中关闭了上述几个窗口,可以通过[视图]菜单或工具栏上的按钮使其再次显示出来,如图1-4所示。图1-4VB6工具栏对应窗口[例1-1]一个最简单的应用程序。进入集成开发环境后,无须编写任何代按[F5]键,或单击工看到图1-5所示的运码,程序即可运行。具栏的运行按钮,将行结果。图1-5最简单的VB6应用程序1.2.3设计应用程序界面--为窗体添加对象

设计应用程序界面是设计VB应用程序的第一步。界面由对象即窗体和控件组成,所有的控件都放在窗体上,程序中的所有信息都通过窗体显示出来。窗体是应用程序的最终用户界面。

窗体是应用程序界面的基础,只能在窗体

上设计构成界面的对象元素。要向窗体添

加控件,首先要显示当前窗体,然后在[工

具箱]中选择需要添加的控件类型(单击)。此时,鼠标变为十字形状,在窗体上再按下

鼠标左键,拖动直到合适大小,如图1-6所图1-6添加按钮控件到窗体的方法调整控件的尺寸①用鼠标单击要调整尺寸的控件。②移动鼠标指针到蓝色的小方块上,拖动直到控件达到所希望的大小为止。四个角上的蓝色的小方块可以同时调整控件水平和垂直方向的大小,边上的蓝色的小方块可以调整控件一个方向的大小。移动控件用鼠标单击要移动的控件,该控件上出现8个蓝色的小方块时,用鼠标把控件移动到新的位置;或用“属性”窗口改变Top属性和Left属性值。1.2.4设置对象属性

设置控件的属性时,首先选中控件,被选

中的控件称为“当前控件”,如图1-6中的

按钮。[属性窗口](见图1-7)只有一个,因此,只能显示当前控件的属性。

选中窗体上的按钮,使其成为当前控件,在属性窗口的“(名称)”栏显示控件名称。

注意:每个控件都有唯一的名称,通过名称区分不同的对象;编写代码时,通过名称来取得对象的属性或设置对象的属性或调用对象的方法。图1-7设置对象属性1.2.5添加事件代码

在窗体上添加按钮控件后,按[F5]键运行程序。我们会发现,单击窗体上的按钮时,

程序没有任何响应。若要使单击按钮时执

行关闭窗体的操作,必须在代码窗体中编

写代码。1-9是打开窗体上任的代码窗口何对象,也1.打开代码窗口图1-8中显示了打开代码窗口的方法;图。直接双击窗体或可以快速打开代码窗口。图1-8进入代码窗口的方法选择[对象]和[过程]后,自动生成的过程结构图1-9代码窗口2.创建事件过程

VB采用事件驱动程序设计的机制,大部分程序是针对窗体中各控件支持的方法或事件编写的,这样的程序称为事件过程。

事件过程包含了事件发生时要执行的代码。控件的事件过程由控件的实际名称(由Name属性中指定)、下划线(_)和事件名组合而成。例如,单击一个名为

Command1的命令按钮时,调用的事件

过程可称为Command1_Click事件过程。

在代码窗口(见图1-9)中,[对象]下拉框中列出窗体,包括窗体上所有对象的

名称;[过程]下拉框列出所选对象的所有事件。按钮最常用的事件是单击事件,

这里选择Click事件。一般最常用的事件是对象的默认事件。选择Command1对象

后,在代码窗口区自动生成Click事件的代码结构,在该结构中添加所需要的代

码即可。

在代码窗口中添加以下代码,可以实现单击按钮时关闭窗体的操作。

其中,Unload是VB内置的函数,实现从内存中卸载对象,在这里是关闭窗体;再次按[F5]键,运行

按钮时,将关闭窗体并Me代表窗体本身。程序,单击[关闭]退出应用程序。图1-10运行结果u

2.查看代码在代码编辑器窗口左下角单击“全模块查看”(显示全部过程)按钮或“过程查看”(每次显示一个过程)按钮,可以查看程序代码。1.2.6项目的保存与编辑保存。首次保存项目时,将框,依次保存工程中的所有单项目保存后,在保存位置

通常情况下,建议经常执行项目保存的操作,避免突然断电或运行时无法退出程序,造成项目非正常关闭而丢失已完成的大量的其它工作内容。单击VB6工具栏中按钮,即可完成项目文件弹出系列对话

文件。以上简

将看到图1-11所示图1的-114工个程文文件件。

其中,扩展名为frm的文件即窗体文件,保存窗体及窗体上所有控件相关信息,以及编写的代码;扩展名为vbp的文件为工程文件。其他两个文件为工程相关的配置文件。

没有打开VB6的集成开发环境时,直接双击vbp文件可以自动进入VB6的集成开发

环境,并自动打开该工程进行编辑操作。若已经打开VB6的集成开发环境,可在[新建工程]对话框(见图1-2)中选择[最新]选项卡,找到已经保存的工程并打开,1.2.7第一个应用程序

[例1-2]由一个图像框控件、一个定时器控件和两个命令按钮组成一个简单的应用程序。运行程序时,若单击start按钮,则地球滚动;若单击end按钮,则结束运行。来放图像框控件,用件用来控制地球制地球开始滚动图1-12所示。

[分析]窗体中放置一个置地球的图片;定时器控的运动;命令按钮用来控和结束。程序运行界面如图1-12

程序的运行界面[建立工程]

新建工程,按默认名称保存工程为“工程1”,窗体名称保存为Form1。

创建一个新的窗体Form1,在窗体上创建四个控件:命令按钮Command1和Command2,、定时器”Timer1控件,如图1图像框Image1-13所示。图1-13应用程序设计界面[属性设置]见表1-1。对象类型默认对象名属性设置窗体Form1Caption滚动的地球命令按钮Command1Captionstart命令按钮Command2Captionend图像框Image1名称BallPictureEarth图标定时器Timer1Interval50[程序代码]Dim

X,

Y,

a,

b

As

SinglePrivate

Sub

Command1_Click()Timer1.Enabled=True

‘单击start按钮,定时器开始工作End

SubPrivate

Sub

Command2_Click()Timer1.Enabled=False

‘单击end按钮,定时器停止工作

EndEnd

SubPrivate

Sub

Form_Load()Set

ball.Picture=LoadPicture(App.Path+"\earth.ico")‘运行时将地球图标装入图片框中

X=10Y

=

10a=

50b

=

80End

SubPrivate

Sub

Timer1_Timer()ball.Move

X,

YX

=

X

+

aY

=

Y

+

bIf

X

>=

Form1.Width

-

ball.Width

Then

a

=

-20If

Y

>=

Form1.Height

-

ball.Height

Then

b

=

-30If

X

<=

0

Then

a

=

15If

Y

<=

0

Then

b

=

30End

Sub[运行结果]

在工具栏上单击“启动”按钮,在窗体

上单击“start”按钮,地球将滚动起来;单击“end”按钮,地球将停止滚动。[保存工程]

在菜单栏上选择“文件→Forml另存为”选项,在文件夹c:\myfile下以文件名

ex1.frm”保存窗体文件;在菜单栏上选择“文件→工程另存为”选项,在文件夹c:\myfile下以文件名ex1.vbp保存工程文[总结与提高]设置工程的名称,系的工程名称,称为“名称可以在工程窗口

工程是用来建造应用程序的文件集合。对于VB来说,每一个应用程序的开发都是一个工程。启动时,由于用户还没有统先定义一个默认

工程1”,这个工程中看到,如图1-14所示。图1-14

工程窗口示例

用户建立一个应用程序后,系统根据应用程序的功能建立一系列的文件,并将这些文件的有关信息保存在工程中,每次保存工程时,有关文件的信息都会被更新。一个工程又称为一个工程文件。工程的组成

在工程窗口内,一个工程可能包含各种类型的文件,如表1-2所示。文件类型说明工程文件包含了与该工程相关的全部文件和对象清单信息。每次保存工程时,这些信息都要被更新。保存工程文件时,扩展名为.Vbp。窗体文件包含窗体的界面信息(如窗体的大小、各控件的大小、位置等)和在窗体内编写的过程、函数等代码以及在窗体内定义的变量。保存窗体文件时,扩展名为.frm。窗体二进制文件当窗体上对象的数据含有二进制属性(如图标或图片)时,保存该窗体文件时,系统会自动产生同名的.frx文件。标准模块文件用来定义变量、常量、子程序、函数等基本程序,供其他模块使用。这类程序存盘时,扩展名为.bas。类模块文件用来建立类,供其他模块建立对象使用。这类程序存盘时,扩展名为.cls。资源文件包含不必重新编辑代码即可改变的位图、字符串等,这类程序存盘时,扩展名为.res。ActiveX控件文件扩展控件,可以添加到工具箱并在窗体中使用,这类程序存盘时,扩展名为.ocx。2.工程组在同一个工作环能以工程组的

vbg为扩展名录该工程组所在菜单栏上选择一个应用程序可以包含若干项工程,这些工程构成一个工程组。在菜单栏上选择

“文件→添加工程”选项,可以在同一个工作环境下建立或打开多个工程,如图1-15所示。境下含有多个工程时,只文件名进行保存文件,以.。被保存的工作组文件中记包含的全部工程。“文件→打开工程”选项,打开某工程组文件,该工程文件包含的图1-15

工程组窗口示例

注意:一次只能启动一个工程。方法:在要改变启动的工程上单击鼠标右键,在弹出的快捷菜单中选择“设置为启动”选项即可。3.工程文件在工程中的文件可以共享。象窗体这样的单个文件,可以是多个工程的组成部分。在一个工程中的窗体或模块所做的改变,将会传播到共享这个模块的所有工程中。打开某个工程文件时,系统自动把其他相关文件一起加载到内存。对工程文件操作时,凡涉及到保存工程文件,同时保存与工程文件有关的修改过的窗体或标准模块等文件。通过“工程”菜单可在工程中添加各类文件,如图1-

16所示。从工程中删除文件。如果从工程中删除了文件,保存该工程时,系统将更新该工程文件中的相应信息。如果在VB系统之外删除一个文件,系统不能更新该工程文件。打开该工程时,系统将显示一个错误信息,警告一个文件丢失。图1-16“工程”菜单选项1.2.8面向对象与事件驱动的概念

学习过C语言的读者都知道,程序从main()

函数开始,然后逐行执行代码。VB6是怎么

实现程序的运行的呢?main()函数在哪里呢?要注意,C语言是面向过程、结构化的程序

设计模式,而VB6是可视化开发环境下面向

对象、事件驱动的程序设计模式。那么,什么是面向对象、事件驱动呢?

为此,首先需要理解两个重要概念:事件驱动与对象。事件驱动

简单地说,事件驱动是针对在对象上发生什么事(触发事件)做什么(编写代码响应该事件)。例如,人们在办公室中电话响时(来电事件)接听电话(响应事件)。

事件分系统事件和用户事件。系统事件由操作系统触发。例如,程序正在运行时执行系统关机操作,操作系统将向每一个当前运行的程序发出关闭的消息,正在运行的程序将触发“退出”事件。用户事件一般由用户通过键盘或鼠标触对象

简单地说,一切实际存在的物体就是对象。对应用程序来说,每一个窗体上的控件(包括窗体)都是一个实际的对象,如窗体上的按钮、文本框等。对象具有属性(特征)和方法(动作)。例如,张三是一个具体的人,具有姓名、年龄和性别等特征,可能还会唱歌、跳舞(动作)。编写代码的一般思路

在VB6中编写代码的一般思路是,在对象上发生什么事件时(一般是键盘或鼠标事件),应用程序做什么(通过代码取得对象的属性、设置对象的属性,或调用内部函数或对象的方法实现所要求功能),即有选择性地对事件作出响应。因此,认识对象的常用事件、属性和方法,是使用VB6快速编写应用程序的基础。例如,在按钮上发生单击事件时,可以改变窗体的标题(设置窗体对象的属性)或关闭窗体。1.3认识窗体每次新建标准的EXE工程时,首先面对的是默认建立的窗体。窗体是我们频繁接触到的对象,因此有必要熟悉窗体常用的属性及方法和事件。1.3.1窗体常用属性打开窗体的属性窗口,可以设置窗体的属性。属性窗体常用属性如下:(1)实现窗体居中显示。将StartUpPosition属性设置为:,可以使窗体初次显示时在

屏幕中居中位置显示。根据需要,

StartUpPosition属性可以选择4个值:-手动。根据属性left和top而定.-所有者中心,当窗体是其他窗体子窗体时, 显示在其父窗体中心。(2)为窗体添加背景图。为窗体添加合适的背景图,可以美化界面。

设置窗体背景图的属性:单击[…]按钮,可以选择图片文件作为窗体背景图;需要取消背景图时,将光标定位在该属性值(None的位置)中,然后按DEL键即可。(3)使窗体启动时最大化/最小化。窗体的WindowState属性可以实现,该属性有三个值供选择:0-(缺省值)Normal正常:按设计大小显示。1-Minimized最小化(最小化为任务栏中的一个图标)2–Maximized最大化(最大化窗体)(4)去掉最大化或最小化按钮。设置窗体的MaxButton或MinButton属性值为

True/False,可实现最大化或最小化按钮可用/不可用。如果同时设置两者为

False,则最大最小化按钮将不出现在标题栏中。注意:虽然设置最大化最小化按钮不可使用,但窗体大小还是可以调整的。如果希望窗体大小不可调整,可以按下面的方法设置BorderStyle属性。自动退出。BorderStyle属

(5)没有标题栏的窗体。没有标题栏的窗体(见图1-17左图)通常用于制作程序的

Logo窗体,一般居中显示,不能拖动改

变位置。例如,Word应用程序启动时,

显示程序的名称、版本等相关信息,然后

性设

实现无标题栏窗体(见置为0-None,可以图1-17右图)。图1-17没有标题栏及不可调整大小的窗体

将BorderStyle属性设置为1-Fixed

Single(可有最大/小化按钮,但不可调整)或3-FixedDialog(不可调整,但没有最大/小化按钮),可以实现窗体在运行时不可调整大小。该属性默认值为2–Sizable,即有最大化和最小化按钮,可以调整大小和通过标题栏移动窗体位置。

将ControlBox属性设置为False,同时将

Caption属性设置为空,也将实现无标题栏窗体。1.3.2窗体生命周期

窗体生命周期,是指窗体从产生、出现在屏幕,到完全关闭的整个过程,即“生与灭”的过程,如图1-18所示。正确认识该过程,有助于正确的将代码编写到合适的位置。在 窗体经历了哪些事这个过程中,主要认识件。图1-18窗体的生命周期

当窗体初始化还没显示时,发生Initialize事件;当窗体已经加载到内存,准备显示到屏幕时,发生Load事件;当窗体已

经显示在屏幕中,并且成为活动窗体时,发生Activate事件。一般来说,对界面控件的初始化操作,将代码写在Load事件

中;activate事件是在多个窗口切换时,有失去焦点到获得焦点(成为活动窗体)时发生,与其对应的是Deactivate事件;Initialize事件中不应该对窗体上的控件操作,因为此时窗体还没出现,如果使文本框取得输入焦点,运行时将出现错误1.3.3窗体常用方法

所谓方法,即存在于某一对象中的函数。使用时,需要通过“对象名.函数名”格式调用。

通常情况下,一个工程至少包含一个以上的窗体。窗体常用的方法有显示和隐藏窗体,其语法格式如下:窗体名.Show:显示窗体窗体名.Hide:隐藏窗体

方法中的“.”可以读为“的”。表示属于一个对象的方法或属性。第2章Visual

Basic语言基础本章主要介绍VisualBasic6.0的编程基础知识,包括常量、变量的基本概念;数据类型及定义;运算符与表达式的使用;程序结构;自定义过程、函数的基本语法和使用。本章还详细探讨了变量作用范围,介绍了VB应用程序的启动模式等,为后续学习面向对象的程序设计,打下坚实的基础。2.1

常量、变量与数据类型2.1.1 Visual

Basic的数据类型数据是分类型的,数据的类型表明数据可以参与的运算以及所需存储空间的大小与范围。VB6的数据类型包括标准数据类型和用户自定义类型。其中,标准数据类型包括字节型(Byte)、逻辑型(Boolean)、整型(Integer)、长整型(Long)、货币型(Currency)、无符号整型(Decimal)、单精度浮点型(Single)、双精度浮点型(Double)、日在VB6中,数据类型及所占存储空间大小和范围列表如表2-1所示。表2-1数值类型类型名称关键字字节数取值范围及用途字节型Byte10~255用于存储二进制数据,如图像、声音等。整型Integer2-32768~32767用于表示没有小数点的数据。长整型Long4-2147483648~2147483647当使用整型不足以表示数据时,使用长整型单精度浮点型Single4负数时:-3.402823E38到-1.401298E-45;正数时:1.401298E-45到3.402823E38双精度浮点型Double8负数时:-1.79769313486232E308到-

4.94065645841247E-324;正数时:4.94065645841247E-324到1.79769313486232E308续表类型名称关键字字节数取值范围及用途货币型Currency8-922337203685477.5808到9223372203685477.5807用于精确计算,整数部分有15位数字,小数部分有4位数字无符号整型Decimal14无小数点时:+/-

79,228,162,514,264,337,593,543,950,335小数点右边有28位数时:+/-7.9228162514264337593543950335;最小的非零值:+/-0.0000000000000000000000000001字符型(变长)String10字节加字符串长度0到大约20亿字符型(定长)String字符串长度1到大约65,400日期型Date8100年1月1日到9999年12月31日续表类型名称关键字字节数取值范围及用途逻辑型Boolean2True或False对象型Object4任何Object引用变体型(数字)Variant16任何数字值,最大可达Double的范围变体型(字符)Variant22个字节加字符串长度与变长String有相同的范围用户自定义初学者大可利用Type不必马上所有元素所需数目记住每每个元素的范围与它本身的数据类型的范围相同。种数据类型的存储空间大小和范围。2.1.3节将结合变量的学习对数据类型进行分类,以帮助读者掌握常用数据类型的定义和使用。2.1.2常量1.常量

在整个程序执行过程中,常量的值保持不变。使用常量可增加代码的可读性和可维护性。

常量是有意义的名字,取代重复出现而难以记住的数字、不变的数值或字符串。在程序运行过程中,常量的值不能象变量那样被修改,也不能被赋以新值。VB有许多内部常量,用户也可以建立自表2-2

VB内部常量常数相当于描述vbCrLfChr(13)

+

Chr(10)回车符与换行符结合vbCrChr(13)回车符vbLfChr(10)换行符vbNewLineChr(13)

+

Chr(10)平台指定的新行字符;适用于当前平台vbNullCharChr(0)值为0的字符vbNullString值为0的字符串用来调用外部过程;与长度为零的字符串("")不同vbObjectError-2147221504用户定义的错误号应当大于该值,例如:Err.Rais

Number=vbObjectError+1000vbTabChr(9)Tab字。vbBackChr(8)退格字符vbFormFeedChr(12)在Microsoft

Windows中没有作用vbVerticalTabChr(11)在Microsoft

Windows中没有作用

此外,还有表示颜色的常量,如vbRed表示红色(vb+颜色的英文单词);表示键盘代码的常量,如vbKey代表A键(vbKey+键名)等。需要时,可以通过MSDN查看

“Visual

Basic常数”的相关内容例如:VbRed:颜色常量,代表红色。VbCrLf:代表回车换行。常量名采用大小写混合的格式,其前缀表示定义常量的对象库名。来自VB和

VBA(Visual

Basic

for

applications)对象库的常量以“vb”开头,例如,vbBSNone表示窗体无边框;来自数据访问对象库的常量以“db”开头,等等。(2)用户自定义常量:用Const语句声明的常量。声明格式:[Public|Private]Const常量名[AsType]=表达式其中:常量名是有效的符号名(规则与变量名一样),表达式由数值常数或字符串常数以及运算符组成。以下是正确的常量声明:Const

Pi

=

3.14159265358979

‘声明了常量Pi,其值为

3.14159265358979Public

Const

MaxPlanets

As

Integer=9‘声明了公用整型常量MaxPlanetsu

2.用户自定义常量的范围和变量声明一样,用Const语句声明的常量也有作用范围。规则如下:在过程内部声明的常量,仅存在于过程中。在模块声明段中声明的常量,对模块中所有过程都有效,但对模块外任何代码都无效。在标准模块声明段中声明的常量,在整个应用程序中有效,可在Const前面放置Public关键字,但在窗体模块或类模块中不能声明Public常量。2.1.3

变量

应用程序在运行期间,可以用变量临时存储数据。变量是指程序运行期间其值可以变化的量,实质是程序运行过程中保存临时数据的内存单元,内存单元的名字即变量名。

变量由名字和数据类型组成。变量的名字用于在程序中标识变量和使用变量的值,通过变量名可以引用变量中存储的数据。数据类型则确定变量中能保存哪种类型的数据。1.变量的命名规则(1)变量必须以字母开头,由字母、汉字、数字或下划线组成。[例2-1]已知某电视机的销售价格为1500元/台,编程统计某商店销售电视机的总数量及总销

售额。[分析]销售前并不知道销售电视机的数量。设

计两个变量CurTVPrice和IntTVnumber保存数量和销售额,根据变量设计一个表达式,不必

事先知道实际的输入是多少。每次运行程序

时,输入销售电视机的数量后,通过以下代

码计算销售额;CurTVPrice

=

1500

*

IntTVnumber2.变量的声明在C语言中,在使用变量之前必须声明变量;而在VB中,变量可以不需要声明就可以直接使用,且变量名不区分大小写。例如,下面的语句都是正确的:

X=10Y=20Z=X+Y但是,声明变量可以节省编程时间,减少因键

userNam先定义U入操作引起的错误例如e写成了ueseName,如serName变量,VB不会,将果没有事自动提示输入错误。如图2-1果编译要错误强提示制在VB中必须先声声明变量的语法格式:Dim变量名[As类型]说明:(1)Dim是变量定义的关键字。(还可能是变量作用范围修饰关键字Public或Private,“作用范围修饰关键字”将在变量作用范围讨论)。(2)[As类型名]是可选项。As可以解读为“为”,如果省略该语句,变量默认为Variant(变体)类型。Variant数据类型在不同场合可代表不同的数据类型。(3)变量名:必须满足变量命名规则。通过Dim语句进行变量的声明,可以事先将变量通知程序。以下是变量类型定义语句的几个例子:Dim

strName

As

String

"定义字符串类型变量Dim

intNum

As

Integer"定义整型变量Dim

dblMoney

As

Double

"定义实型变量Dim

dBirthday

As

Date"定义日期类型变量Dim

bolYesNo

As

Boolean"定义布尔类型变量3.变量的声明方式隐式声明。使用变量前,可以不声明该变量。这种方法虽然方便,但如果拼错了变量名,将会导致一个难以查找的错误。显式声明。显式声明变量后,系统一旦遇到一个未经声明的变量名时,将发出错误警告。显式声明变量的方法:在类模块、窗体模块或标准模块的声明段中加入OptionExplicit语句;或在菜单栏上选择“工具→选项”选项,在“选项”对话框的“编4.变量的数据类型(1)数值类型变量:包含整数和小数(实数)。①整数类型关键字:Integer(整型)和Long(长整型)当变量保存的数在整数范围-32,768到32,767之间时,可以定义为Integer类型,超过该范围的整数,则定义为Long类型。例如:Dim

a

As

Integer,b

As

Longa=100:b=40000a=b"该行在运行时,将产生“溢出”的运行错误说明:可以在一行中定义多个变量,类型说明之间提示:定义变量时,最好同时声明其类型,程序运行可以避免类型转换所需的时间

开销,使得程序的运行效率更高。如果变量b不是赋予整数类型的数值(如b="abc

"),将产生“类型不匹配”的运行错误;如果将小数89.9赋值给变量b,则变量b的值将是四舍五入后的整数。所有Integer类型数据都可以保存到Long类型变量中,反之不成立。例如,上面代码中的第三行a=b。如果不能确定保存的整数将会有多大,应将变量a定义为Long类型。(2)字符类型关键字:String字符型变量的值包含一连串字符。字符串可以包括字母、数字、空白和标点符号。字符串有两种:变长与定长的字符串。变长字符串在定义时不指定长度,定长字符串在定义时通过“*”号指定长度。例如:Dim变量名as

String[*长度][例2-2]在当前窗体中添加一个Button

1按钮,如图2-2所示;在按钮的Click事件中添加以下代码Private

Sub

Command1_Click()Dim

s1

As

String,

s2

As

String

*

10图2-2使用字符串的例子图2-3测试长度u

[分析]本例在按钮事件中定义变长字符串s1和定长字符串s2,当对定长字符串赋值超过其定义的长度时,超过的长度将被截取;如果数据不足定义的长度,则以空格填充。变长度字符串长度是实际保存的字符串数据长度。可以使用VB6中的Len函数进行验证,将上面代码中的最后一行改为测试长度的代码:MsgBox

(Len(s1)&

vbCrLf

&

Len(s2))运行结果如图2-3所示。Msgbox是VB6内部函数,作用是弹出信息对话框,信息内容为括号中的参数。本书将经常使用MsgBox函数来测试显示某个变量值。&是连接符,可以将不同类型的数据,连接成字符串,这里连接s1和换行符以及s2的值。(3)日期类型关键字:Date日期类型变量可以保存的日期数据范围从100年1月1日到9999年12月

31日,时间可以从0:00:00到23:59:59。任何可辨认的文本日期都可以赋值给Date变量。日期类型常量必须使用定界符“#”括起来,当字符串中包含正确的日期格式时,也可以赋值给日期类型变量。例如:Dim

d

As

Dated

=

#9/9/2009

12:30:30

PM#或:d="2009-10-09

12:30:30"[例2-3]在标题栏中显示当前的日期和时间,如图2-4所示。在当前窗体的Load事件中添加如下代码:Private

Sub

Form_Load()

Me.Caption="当前时间:"&

Now()End

Sub

[分析]以上代码中,Now()为VB6中同时取得日期和时间的函数。Date不但是日期类型的关键字,也是取得当前日期的函数;Time为取得当前时间的函数。VB6还提供以下处理日期类型数据的函数:Date():取得当前日期,Time()取得当前时间。Year(日期类型数据):取得当前日期中的图2-4显示当前日期时间[例2-4]在窗体上显示当前日期、时间和星期。在窗体上添加三个标签Label控件,名称默认,界面布局如图2-5所示。在窗体的Load事件中,编写如下代码:Private

Sub

Form_Load()Dim

d

As

Dated

=

Date()Label1.Caption="今天的日期是:"&

_

Year(d)&"年"&

Month(d)&"月"&

Day(d)&"日"Label2.Caption="当前时间是"&

Time()[代码说明]行3:取日期函数,赋值给变量d。行4:设置Label控件的Caption属性,属性值为“=”号后面的字符串。用函数Year、Month和Day分别求得变量d中的年、月和日,并连接成中文日期格式。提示:符号“_”(下划线)是VB6中的续行符,前面必须带空格。当程序行太长时,可以用续行符将本该属于一行的语句分成多行书写,便于阅读代码。行6:用函数time()取得时间。行7:函数WeekDay求星期几,其中,参数d是日期类型数据,第2个参数为常数。默认星期日为一周的第一天。为了符号中国的习惯,将星期一vbMonday设置为一周的第一天。[运行结果]如图2-6所示。图2-5界面布局图2-6运行结果(4)逻辑类型关键字:Boolean逻辑类型又称布尔类型,通常用来表示逻辑判断的结果。该数据类型只有两个取值:

True和False。例如:Dim

bol

As

Booleanbol=True(5)变体类型

关键字:Variant如果定义变量时没有指明变量的数据类型,则变量为Variant类型;或当未使用Option

Explicit语句要求强制变量定义时,直接使用的变量也为Variant类型。Variant数据类型没有类型声明字符。Variant是一种特殊的数据类型,除定长String数据及用户定义类型外,可以包含任何种类的数据。[例2-5]对可变类型变量赋值,验证其最终数据类型。在当前窗体的Load事件中,添加如下代码:1234567Private

Sub

Form_Load()Dim

x

x

=

100x

=

"abc"x

=

NowMsgBox("x的值是:"&

x

&

vbCrLf

&"x的类型是:"&

TypeName(x))End

Sub[代码说明]为为日日期期类类行行66::当当程程行2:在定义变量x时,并没有指明其类型,因此默认为Variant类型行3:将整数100赋于变量x,则此时x为整数类型Integer,值为100。行4:将字符串abc赋于变量x,则此时x为字符串类型String,值为abc。行5:将日期类型数据赋于变量x,则此时x型Date,值为当前日期值。序执行到该行时,将弹出对话框如图2-7所示。运行结果说明了,对于可变类型变量,最终赋予它什么类型数据,则其为该类型变量。本例最终赋予它为提示:Variant变量虽然使用起来很方便,但不便于阅读程序,而且容易产生混乱,建议编程时最好不使用这类变量。(6)自定义类型:Type如果基本类型不能满足使用要求,可以使用自定义类型。自定义类型相当于C语言中的结构体类型,即将各种基本数据类型组合成需要的类型。语法格式:[Private/Public]Type类型名变量名As基本数据类型…

…End

Type注意:如果在窗体的代码窗口中使用自定义类型定义,其定义语句Type必须放自定义类型可以包含任何的基本类型,包括后面讲到的数组以及其它的自定义类型(即嵌套使用自定义类型)。[例2-6]假设需要定义一个保存各个学生三门课程的成绩,可以自定义名称为

Student的类型,代码如下:Private

Type

studentName

As

String"姓名

Sex

As

Boolean"性别ClassName

As

Integer"班级名称Score1

As

Single"分数1定义student类型后,在程序中可以像使用普通数据类型那样使用student类型。用student类型声明变量的语句:Dim

stuAs

student。给变量stu赋值时,必须为该变量的每个成员赋值。自定义类型的使用方式与对象属性的使用方式相同,如图2-8所示。例如,以下代码对stu变量进行初始化:Number=5stu.strName=”张三”

stu.strSex=”男”stu图.2i-8n自tA定g义e类型=1的8使用定义自定义类型后,在程序中只要写出变量名和后面的小数点,即可显示该自定义类型的成员变量。为了简化输入,可用With语句对某个对象执行一系列的语句,不必重复指出对象的名称。With语句格式:With对象名[语句系列]End

With功能:在一个单一对象或一个用户定义类型上执行一系列的语句。若用With语句对stu变量进行初始化,代码如下:With

stu.intNumber

=

5.strName="张三".strSex=“男”.intAge

=

18.blnFlag

=

FalseEnd

With注意:Type语句只能在模块级使用,其默认作用域是Public。如果需要在类模块或对象模块中使用,必须在Type关键字前加上关键字Private。使用类型名和变量名时不要混淆。在例2-6中,student为类型名,stu为变量名。With与End

With必须配对使用。程序一旦进入With语句,对象就不能改变。因此,运算是对数据的加工。最基本的运算形式常常可以用一些简洁的符号来描述,这些符号称为运算符或操作符,被运算的数据称为运算量或操作数。2.2

运算符与表达式2.2.1算术运算符和算术表达式算术表达式又称数值表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果一般为数值。算术运算符是常用的运算符,用于执行简单的算术运算。VB6常用的算术运算符如表2-3所示。表2-3算术运算符运算符说明示例+(加)返回两个操作数之和5

+

4-(减)返回两个操作数之差5

-

4*(乘)返回两个操作数之积5

*

4/(除)返回两个操作数之商5

/

4\(整除)将两个数相除并返回以整数形式表示的结果5\4Mod(取余)将两个数相除并只返回余数10

Mod

5^(幂)求以某个数为底、以另一个数为指数的幂3^3[例2-7]算术运算符应用范例。(1)Mod运算Dim

testResult

As

DoubletestResult

=

10

Mod

5testResult

=

10

Mod

3"结果为:0"结果为:1testResult=12

Mod

4.3"结果为:0将小数字四舍五入成整数注意:如果有一个数是小数,则将小数四舍五入成整数再进行运算(2)除运算Dim

resultValue

As

Double(3)整除运算Dim

resultValue

As

IntegerresultValue

=

11

\

4resultValue

=

67

\

-3"结果为:2"结果为:-22注意:结果是一个整数,表示两个操作数的整数商,余数被丢弃。(4)幂运算Dim

exp1,

exp2,

exp3,

exp4,

exp5,

exp6

AsDoubleexp1=2

^

2

"结果为4(2的平方)exp3=(-5)^

3

"结果为-125(-5的立方)2.2.2字符串运算符与字符串表达式字符串表达式由连接运算符、字符串常量、字符串变量和字符串函数组成。VB6提供两个字符串运算符“+”和“&”,用于连接两个或更多的字符串。说明:+:对字符串类型实现连接;对数字类型实现相加运算。&:可以将所有数据类型的数据连接成字符串。[例2-8]字符串表达式范例。

Dim

sampleStr

As

StringsampleStr="Hello"&"World""2.2.3关系运算符和关系表达式关系运算符比较两个表达式的值,以判断它们之间的大小关系,常用在判断语句中,用来决定程序执行的流程。常用关系运算符见表2-4。表2-4还列出关系表达式运算结果为True或False的条件。表2-4关系运算符运算符满足条件,表达式值为True满足条件,表达式值为False<(小于)表达式1<表达式2表达式1>=表达式2<=(小于或等于)表达式1<=表达式2表达式1>表达式2>(大于)表达式1>表达式2表达式1<=表达式2>=(大于或等于)表达式1>=表达式2表达式1<表达式2=(等于)表达式1=表达式2表达式1<>表达式2<>(不等于)表达式1<>表达式2表达式1=表达式2注意:运算符“=”也用作赋值运算符。关系运算符两边可以是数值、字符串、日期、逻辑类型的数据。比较运算后得到的运算结果是逻辑类型,即值为True或False。[例2-9]关系运算符的使用。

Dim

testResult

As

BooleantestResult=45<35testResult=45=45testResult=4<>3testResult="5">"4444"2.2.4赋值运算符基本赋值运算符是“=”,用于给变量或属性赋值。格式:[Let]变量名=表达式

[Let]对象.属性=表达式功能:将“=”右边表达式的值赋给左边的变量(或对象的属性)。说明:“=”称为赋值号,不是等号。Let关键字表示赋值,一般我们在使用时都省略不写。表达式中可以包含变量、常量、属性值。2.2.5逻辑运算符逻辑运算符一般用于判断某个条件是否成立,然后根据该条件决定程序执行哪一个分支。逻辑运算符可以对多个逻辑表达式或关系表达式进行逻辑运算,运算结果是逻辑类型。VB6提供的常用逻辑运算符见表2-5。表2-5逻辑运算符运算符运算运算规则例子结果And与当两表达式结果均为真时,结果才为真T

And

TTOr或当两表达式结果均为假时,结果才为假T

Or

TFNot非当表达式为假时,结果为真Not

FTXor异或两表达式结果相同时,结果为假T

Xor

TF[例2-10]逻辑运算符的使用。Dim

a

As

Integer

=

10,b

As

Integer

=

8,c

AsInteger

=

6Dim

val

As

Booleanval

=

(a

>

b)

And

(b

>

c)val

=

(b

>

a)

And

(b

>

c)val

=

a

>

b

Xor

bval

=

a

>

b

Xor

b

>

c"结果为True"结果为False"结果为True"结果为True2.2.5运算优先级当一个表达式中包含多个运算符时,存在运算符的优先次序问题。一般先进行算术运算,其次进行关系运算,最后进行逻辑运算。在同一级运算符中,按运算符出现的顺序从左向右进行计算。各运算符的优先次序由高到低排列的顺序为:圆括号(由里向外逐层展开)、函数、算术运算符、关系运算符(其优先级相同)、逻辑运算符。当表达式包含不止一种运算符时,按照以下规则进行计算:算术运算符和连接运算符的优先级高于比较运算符、逻辑运算符和位运算符。算术运算符和连接运算符之间的优先级顺序如下:①求幂(^)②一元标识和非(+、–)③乘法和浮点除法(*、/)④整数除法(\)⑤取余(Mod)⑥加法和减法(+、–),字符串连接(+)⑦字符串连接(&)比较运算符之间具有相同的优先级,它们的优先级均高于逻辑运算符,低于算术运算符和连接运算符。逻辑运算符的优先级均低于算术运算符、连接运算符和比较运算符。逻辑运算符之间的优先级顺序如下:①非(Not)②与(And)③或(Or)④异或(Xor)具有相同优先顺序的运算符按照它们在表达式中出现的顺序从左至右进行计算。注意:这里的“=”运算符是相等比较运算符,不是赋值运算符。字符串连接运算符“&”不是算术运算符,但在优先级方面与算术运算符属于一组。[例2-11]以下运算结果等效。Dim

a,

b,

c,

d,

f,

h

As

Doublea

=

8.0b

=

3.0c

=

4.0d

=

2.0h

=

1.0f

=

a

-

b

+

c

/

d

*

h"结果为7f=(a-b)+((c/d)*

h)

"结果为72.3

数组与字符串所谓数组,是保存在一片连续内存单元中的一组数。数组中,每一个元素的名称相同,索引(下标)连续,且具有相同的数据类型。数组单元通过数组的索引(下标)引用,VB6数组的下标默认从0开始。例如,a(0)表示数组a的第1个元素,a(1)表示数组a的第2个元素,依此类推。图2-9所示是一个保存5个整数的数组Arr在内存单元中的示意图。一般变量在内存中存放的位置没有规律,而且不同类型的变量占用的内存空间也不相同。数组具有相同数据类型、相同变量名、连续的下标。用户可以根据下标区分不同的元素。由于这些变量的变量名相同、下标不同,用户使用循环来访问其中的某些变量或所有变量比较方便。图2-9数组Arr在内存单元中的示意例如,求一个班40个学生某门课程的平均分,为了保存这些成绩,可以定义40个变量。这样虽然可以解决问题,但显得很繁琐,而用数组可以很好地解决这个问题。2.3.1一维数组的声明定义一维数组的语法:Dim数组名(上限)[As数据类型]例如:Dim

arr(4)As

Integer说明:该语句建立一个有5个元素的数组arr,数组的下限为0,上限为4数组默认识的下限为0,也可以在定义时指定下限,例如:Dim

stdScore(1

To

10)

As

Single以上语句建立有10元素的数组stdScore,数组下限为1,上限为10。数组stdScore定义后若对数组元素stdScore(0)赋值,将出现“下[例2-12]求数组上限和下限。

Option

Base

1Private

Sub

Form_Load()Dim

arr(4)

As

IntegerMsgbox

(Lbound(arr)&

Ubound(arr))"结果为14共4个元素"如果去掉第一句Option

Base

1,则结果为04,公有5个元素End

Sub2.3.2一维数组的使用定义数组后,可以将数据逐一保存到数组单元中,也可以通过循环将所有元素取出来。[例2-13]以下代码将数据逐一保存到数组单元中,然后显示数组中第一个数组第一个元素和第二单元的第一个元素。Private

Sub

Form_Load()Dim

arr(4)

As

Integer,

brr(4)

As

StringDim

tmpArr(1)1234567891011121314For

i

=

LBound(arr)

To

UBound(arr)arr(i)

=

i

+

1brr(i)

=

"A"

&

iNexttmpArr(0)

=

arrtmpArr(1)

=

brrMsgBox

tmpArr(0)(0)

&

vbCrLf

&

tmpArr(1)(0)End

Sub[代码说明]个单元:将brr数组行2:分别定义一个包含5个元素的整型数组arr和一个字符串数组brr行3:定义一个变体类型数组。变体类型数组可以用来保存其他任何类型数组。行5~8:用循环语句对arr和brr数组赋值行10:将arr数组保存到变体数组tmpArr的第一行11

保存到变体数组tmpArr的第二个单元行13:显示变体数组中第一个数组的第一图2-10运行结果2.3.3二维数组与多维数组二维数组相当于一个二维表格。例如,以下语句声明了一个3×4,共12个元素的的二维数组:Dim

arr(2,3)

as

string多维数组的定义类似,维数之间使用逗号分隔。例如,以下语句定义了一个三维数组:Dim

mulArr

(3,

1

To

10,

1

To

15)数组的大小为4×10×15,元素总数为三个维数的乘积600。二维数组的操作通常使用循环语句,如以下代码所示:Private

Sub

Form_Load()Dim

i

As

Integer,

j

As

IntegerDim

arr(0

To

2,

0

To

3)

As

DoubleFor

i

=

0

To

2For

j

=

0

To

3arr(i,

j)

=

i

*

3

+

jNext

jNext

iEnd

Sub注意:增加数组的维数时,数组所占的存储空间会大幅度增加。因此,要慎用多维数组。使用Variant类型数组时更要格外小心,因为他们需要更大的存储空间。2.3.4动态数组在某些情况下,数组的长度不能事先确定,希望能够在运行时改变数组的大小。动态数组可以在任何时候改变大小。因此,在系统中可短时间内使用一个大数组,当不使用该数组时,可将内存空间释放。动态数组具有灵活、方便的特点,可以有效地管理内存动态数组的声明先用Dim语句声明不定长度的数组,例如:Dim

DyArray()

‘将数组声明为一个空维数表,即可将数组声明为动态数组。用ReDim语句动态声明某一长度的数组ReDim语句可重新为数组分配内存空间(即用ReDim语句分配实际的元素个数)例如:ReDim

DyArray(4

to

12)’ReDim语句给数组DyArray分配一个有9个元素的矩阵说明:可用变量设置动态数组的边界,例如:

Dim

n

As

IntegerDim

A(

)

As

String…n=2*nReDim

A(n)ReDim语句是可执行语句。应用程序运行时,执行ReDim语句将除数组中原有的数据。每个ReDim语句只能改变数组的长度及上下界,但不能改变数组的维数。Erase语句用于删除动态数组并释放动态数组占用的内存空间,例如:Erase

A每次执行ReDim语句时,当前存储在数组中的值都会全部丢失。若希望改变数组大小又不丢失数组中的数据,可用带Preserve关键字的ReDim语句为数组重新分配空间。可用UBound函数引用上界,使数组扩大、增加一个元素,而现有元素的值不会丢失,例如:ReDim

Preserve

A(UBound(A)+1)使用Preserve关键字时,只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,运行时将会出错。[例2-12]求任意多个从键盘输入的整数之和。[建立工程]新建工程,按默认名称保存工程为“工程1”,窗体名称保存为Form1。在窗体上添加两个按钮,Button1和Button2,标题属性Caption分别改为“录入数据”和“查看结果”,如图2-11所示。图2-11界面布局[程序代码]Dim

arrNum()

As

IntegerDim

TmpNum

As

Integer12345678910111213141516171819202122Private

Sub

Form_Load()ReDim

arrNum(0)End

SubPrivate

Sub

Command1_Click()TmpNum=Val(InputBox("请输入一个整数:","输入一个整数",0))ReDim

Preserve

arrNum(UBound(arrNum)

+

1)arrNum(UBound(arrNum))

=

TmpNumEnd

SubPrivate

Sub

Command2_Click()Dim

sum

As

IntegerFor

i

=

1

To

UBound(arrNum)sum

=

sum

+

arrNum(i)NextMsgBox"你输入了["&

UBound(arrNum)&"]个数,计算结果为:"&

sumEnd

Sub[代码说明]行1:定义变体数组(注意:可变数组不能指定上限)。行2:临时保存录入的整数变量。行4~6:初始化数上限和下限为0。行9:通过InputBox函数弹出对话框,接受用户输入数据。函数中各参数对应对话框的位置,参见图2-12,该对话框返回字符串类型数据,因此必须通过Val()函数转换为数值类型保存到整型变量TmpNum中;单击“取消”按

钮时,该对话框将返回空字符串,Val()函数可以将一切非数字字符串的内容转换为数值0。图2-12

InputBox对话框:将整数保存中。行11:在数组原来的长度基础上,增加一个元素。如果是首次执行该语句,那么第一个输入的值将保存到数组中下标为1的元素中。计算时要注意,下标为0的元素其实没有保存数据,参见行17分析。行12

到当前数组最后一个元素行17~1图92:-13将计算数结果组从第2元素(下标为1元素)到最后一个元素的整数累加起来,保存到sum变量中,最后显示计算结果,如图2-13所示。[例2-13]随机生成10个1~100范围之间的整数,并进行从大到小排序。[分析]利用随机函数产生10个两位整数,存入一维数组arr中。排序的基本思想:先从要排序的数中选择最大的数并放在第一个位置,然后从剩下的数中选择最大的数放在第二个位置,如此类推,最后在剩下的两个数中选择大的数放在倒数第二个位置,剩下的一个数放在最后位置,排序完成。产生指定范围的随机数。[程序代码]Private

Sub

Form_Load()Dim

I,

j,

temp

As

Integer,

a(1

To

10)

As

IntegerDim

S

As

String12345678910111213141516171819S="产生的10个随机整数如下:"&

vbCrLfFor

I

=

1

To

10a(I)=Int((100-1+1)*

Rnd+1)"产生1~100之间的整数S=S

&

a(I)&""NextFor

I=1

To

9

"进行排序

For

j=I+1

To

10If

a(I)

<

a(j)

Then

temp

=

a(I)a(I)

=

a(j)

a(j)

=

temp

End

IfNext

jNext

IS=S

&

vbCrLf

&

vbCrLf

&"排序后输出10个整数如下:"&

vbCrLf2021222324

For

I

=

1

To

1025 S

=

S

&

a(I)

&

"

"NextMsgBox

SEnd

Sub[代码说明]本例使用了循环结构。如果对行12~20的排序算法难以理解,请学习

温馨提示

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

评论

0/150

提交评论