1.24k likes | 1.82k Views
Visual Basic 程序设计. 导 学: Visual Basic 导学篇. 第一章: Visual Basic 语言概述. 第二章: Visual Basic 6.0 集成开发环境. 第三章: Visual Basic 6.0 程序设计基础. 第四章: Visual 窗体的输入、输出. 第五章: Visaul Basic 6.0 常用控件. 第六章: Visual Basic 6.0 工程与程序管理. 第七章: Visual Basic 6.0 应用程序结构. 第八章: Visual Basic 6.0 菜单程序设计.
E N D
Visual Basic程序设计 导 学:Visual Basic导学篇 第一章:Visual Basic 语言概述 第二章:Visual Basic 6.0集成开发环境 第三章:Visual Basic 6.0程序设计基础 第四章:Visual窗体的输入、输出 第五章:Visaul Basic 6.0常用控件 第六章:Visual Basic 6.0工程与程序管理 第七章:Visual Basic 6.0应用程序结构 第八章:Visual Basic 6.0菜单程序设计 第九章:Visual Basic 6.0应用程序窗体设计 第十章:Visual Basic 6.0文件处理 总复习:Visual Basic 6.0复习指南 休息
教师姓名:郭明全 毕业院校:四川师范学院计算机科学系 教学特长:程序设计、网络 教学特点:启发引导式教学 E_mail:gmq@vip.sina.com 电话:(028)83391279 自我介绍
VB导学篇 • 本门课程的总体结构(十个章节,八个实验) • 本门课程的核心内容 • 本门课程的学习方法(自学、小组学习、参加辅导、答疑) • 本门课程的实验 • 更高层次的发展与追求 • 期末复习与考核(章节复习、作业及全书、期末总复习) • 网上资源查找导学
网上资源查找导学 • 微软公司的详细资料,包括微软的产生、发展、以及未来趋势。搜集比尔盖茨的资料。 • Visual Basic程序设计网站,包括编程技巧、认证考试、VB项目及课题等。 请将上述查阅内容之一或更多在网上找到之后发到gmq@vip.sina.com并落上自己的姓名 查找
VB导学篇 • 关于程序设计的三个问题。 • 算法问题 • 流程(图)问题 • 工程问题 • VB程序设计的思想 • 确定一项工程 • 功能模块化 • 模块化实现 • 组装 • 发布 返回主菜单
Visual Basic简介 Visual Basic工程流程 口试题目 VB应用程序界面设计(实验) Visual Basic语言概述
Visual Basic简介 • VB程序的基本特点 • 可视化设计 • 事件驱动编程 • 理解与应用 • 可视化设计:所见即所得 • 事件驱动编程:通过人机交互(例如鼠标单击、键盘输入等)由用户编写的代码控制这些事件的响应。 • 模块化设计 • 封装技术 • 一个示例程序的步骤与实现 • 启动Visual Basic 6.0
Visual Basic简介 • 新建一个工程 • 向窗体添加(标签、命令按钮)控件 • 修改所添控件属性 • 添加事件响应代码 • 运行程序 • VB与其他可视化编程工具的区别 • 所针对的编程领域各有侧重 • 难易不一(VB较易) • VB不支持虚类、多态性和类的继承 • 变量定义不太严密 • 小结 • 本章主要通过一个示例介绍了VB语言的基本结构与特点,对于可视化设计、事件驱动编程和VB与其他可视化编程工具的区别也作了较简单的说明。 返回
Visual Basic语言概述口试题 • VB的基本特点? • 怎样理解可视化设计? • 怎样理解事件驱动编程并例举说明? • VB与其他可视化编程工具的区别? 返回
Visual Basic工程流程 • 调研(社会需求与市场需要) • 确定开发课题 • 将整个工程模化块 • 分别实现各功能模块 • 将各功能模块进行组装 • 综合调试 • 打包发行 返回
实验一:VB应用程序界面设计 一、Viual Basic的启动与退出 二、控件画法与简单属性设置 三、窗体和控件的基本操作 返回 Visual Basic
VB6.0集成开发环境 • VB6.0的启动与退出 • VB6.0的集成开发环境 • 菜单栏(启用媒体介绍) • 工具栏(启用媒体介绍) • 工具箱 • 代码编辑器窗口(启用媒体介绍) • 工程窗口(启用媒体介绍) • 属性窗口(启用媒体介绍) • 窗体 对象与事件驱动 • 属性、方法和事件概述(P20汽球之例) • 事件驱动:窗口、事件与消息(VB怎样管理)
VB6.0应用的基本开发方法 • 交互式开发 • 代码的自动纠错能力(输入代码即时解释) • 在输入代码时VB自动部分地编译代码。 • 事件驱动程序中的典型事件序列 • 启动应用程序,装载和显示窗体 • 窗体(或窗体上的控件)接收事件。事件可由用户、系统或代码本生引发。 • 如果在相应的事件过程中存在代码,就执行代码。 • 应用程序等待下一次事件。 说明:有些事件是同时发生的。如:MouseUP和Click
应用程序开发示例 • 创建VB应用程序有三个主要步骤 • 创建应用程序界面; • 设置属性; • 编写代码。 • 示例程序开发过程(启用多媒体介绍) • 小结: • 本章介绍了VB6.0的集成开发环境,并对VB中的基本概念作了较详细的说明。这些对学习VB可视化程序设计奠定了基础。 • 口试题目 • 实验:设计不具计算功能的计算器界面(结束)
VB6.0集成开发口试题 • 什么是对象,怎样理解对象的属性、方法和事件? • 什么是事件?事件可能由哪三个因素引发? • 事件驱动的含义是什么? • 怎样理解交互式开发方法? • 启动VB6.0,指出各个部分的名称和用途。启用VB界面(结束)
VB6.0附加实验练习 • 设计一个如下图所示的只有外观,不具有计算功能和计算器的界面。
程序设计基础:数据类型 • VB的标准数据类型
VB中的数据以四种形式存储:变量、常量、数组和VB中的数据以四种形式存储:变量、常量、数组和 记录。每一种形式都适合于不同的特定任务。
程序设计基础:数据类型 • 变量 • 变量命名规则 • 第一个字符必须是字母 • 后接字符可以是字母、数字、下划线。 • 最后一个说明符可以是类型说明符(!,@,#,$,%,&)当然这也可以省略。 • 变量名长度最长不超过255个字符。 • 不能与保留字重名。例如:Input,Dim等。 • 变量的声明 • 隐式声明:变量可以不经声明直接使用,变量类型随数据类型的不同而定。例:C=1; Name=“Zy”
程序设计基础:数据类型 • 显式声明:变量先声明再使用。 3.使用Dim语句声明变量 • Dim Number as Integer • Dim I As Integer,j As Integer • Dim X,Y(X,Y按缺省情况被声明为:Variant,同时值被设为Empty即为空) • Dim X,Choice As Boolean,Date1 As Date 4.全局变量的声明:使用Public或Global声明。但一般我们都在“代码编辑器窗口的‘通用’中声明。 • 常量 • 系统内部常量
程序设计基础:数据类型 常量指在程序运行过程中,其值不能改变的量。系统内部常量是应用程序和控件提供的。例如: 表示颜色的常量
程序设计基础:数据类型 如果把窗体的背景色设置成蓝色,前景色设置成白色,可用下列语句。 form1.BackColor=vbBlue form1.ForeColor=vbRed 2.符号常量(自定义常量) a. [Public|Private]Const 变量名 [As 数据类型]=“表达式” b.符号常量的命名也要遵循标准变量命名规则。 c.说明:用const声明的常量在程序运行的过程中 是不能被重新赋值的;在常量声明的同 时要对常量赋值;可以为声明的常量批 定类型;
程序设计基础:数据类型 • 数据类型 • 整型(%)(变量存储为16位,范围:-32768—32767) • 长整型(&)(变量存储为32位,范围:+2147483647 • 单精度型(!)(变量存储为32位,范围分为两部分) • 双精度型(#)(变量存储为64位,范围分为两部分) • 布尔型(True/False) • 货币型(@)(变量存储为64位) • 字符串:字符串可以是定长也可以是变长。 定长字符串最大长度为:64KB个字符。 可变长字符串($):最大长度为20亿个字符。 8.可变类型(Variant)数据:可赋予多种数据类型的数据
程序设计基础:数据类型 9.Date类型数据:(变量存储为64位,浮点数值形式) VB接受多种格式的日期和时间。但必须用“#”括起来。例如:#January 1,2002# 例行程序分析: Private Sub Form_Click() Dim date1,date2 As Date Dim m1,m2 As Byte date1=#1-10-99# date2=#10-1-00 13:20:50am# print date1,date2 ‘结果是99-1-10 00-10-1 13:20:50 10.数据类型转换(p41表)
程序设计基础:数据类型 11.数组 a.数组的定义: Dim([[下标下界 To]下标上界]) [As 数据类型] 例:dim a(10) as integer ‘包含11个元素的一维数组 dim b(1 to 20) as integer ‘包含20个元素 dim dayarray(50) ‘包含51个元素的Variant数组。 dim mypay(1 to 5,4 to 9) ‘定义了一个二维数组 b.Option Base 语句 Option Base {0|1}:定义数组的下界为0还是为1。 说明: 数组命名规则和变量名的相同。 定义数组时用圆括弧而不是方括弧。
程序设计基础:数据类型 下标的下界必须小于其上界。 可以用变量名或常数名作下标的边界。 c.静态数组、动态数组 静态数组 dim 数组名([下标边界列表])[As 数据类型] 例:dim class(40) as integer dim recclass(40,1,7):定义了一个三维数组 动态数组 例:dim myarry() as integer 综例:dim myarry() as single ‘定义动态数组 ReDim myarry(30,20,10) ‘重定义该数组 ReDim myarry(50,23,21) ‘再次重定义
程序设计基础:数据类型 Redim的语法。 Redim [Preserve] 数组名([下标]) Redim在重定义数组时要将原有数据清除Preserve的功能就是在重定义时不清除原有数据。但要注意当用Redim重定义多维数组时,仅在只改变最后一维的情况下才能保全数据。否则出错。也即是说既要保留数据又想改变多维数组的大小是不可能的。 d. Ubound函数和Lbound函数:测试数组各维的上下标。 例析:(P45) e.数据的高级功能(数组赋值拷贝)例析: p45 f.返回数组的函数。(返回值为一个数组)例析:P46
程序设计基础:数据类型 12.记录类型(用户自定义类型)(缺省为Public) (数据类型:基本类、构造类(数组)、记录类) a.记录类型定义 [public|Private]Type 记录类型名 成员列表(成员名 As 数据类型) End Type 例:Type Student Num As Integer Name As String * 20 Sex As String * 1 Age As Integer Score As Single
程序设计基础:数据类型 Addr As String * 30 End Type b.定义记录类型变量 定义了一个记录类型之后,可以用Dim(或Public、Static)来声明拥有这种数据类型的变量。 例:Dim Student1,Student2 As Student c.赋值和检索值 Student1.name=“ok” d.记录数组:每个数组元素都是一个记录。 例:Dim Students(20) As Student Students(0).Name=“ok” 记录数组也可以是动态的。(解释)
程序设计基础:运算符与表达式 • VB中的运算符有五类: • 算术运算符(+、—、*、/、\、^、mod(求余) • 连接运算符(&、+) &:强制两个表达式作字符串连接,不管类型是否相同。 +:只对两个字符串进行连接操作。例:(P52) • 关系运算符(运算结果可能是:True、False、Null) 运算符:< <= > >= = <> • 逻辑算符(Not And Or Xor:异或 Eqv Imp:蕴涵P55) 例如:a=10:b=8:c=6:d=null mycheck=a>b and b>c ‘结果返回真 5. 特殊运算符:(返回逻辑值)
程序设计基础:运算符与表达式 Is:测试两个对象引用是否相同,返回True或False。 Like:测试一个字符串中是否包含有给定字符串。 Like中用于匹配的字符 ?:代替任一字符 * :代替零个或多个字符 # :代替任一数字 [Charlist] :Charlist中的任何单一字符 [!Charlist]:不在Charlist中的任何单一字符 例析:P59
程序初步 • 语句 1.赋值语句 MyNumb=10:Command1.caption=“返回” 2. 注释语句:使用Rem关键字或撇号(‘) 3. 程序续行:语句过长可在行末用_继续编写 4. 一行中书写多行语句行与行之间用冒号分开。 • 程序流程控制 1.跳转:Goto 语句标号: Goto 行号 例:Sub Form_click() message: print “abcd” goto message
程序初步 2.分支 If ……Then 语法:If 条件表达式 Then 单语句 If ……Then ……End If 语法:If 条件表达式 Then 程序段 End If If ……Then ……Else……End If 语法:If 条件式1 Then 程序段1 Else 程序段2 End If
程序初步 If ……Then ……ElseIf 语法:If 条件式1 Then 程序段1 ElseIf 条件式2 Then 程序段2 ………… ElseIf 条件式n Then 程序段n [Else 默认程序段] End If Select Case
程序初步 语法:Select Case 测试表达式 Case 表达式1 程序段1 [Case表达式2 程序段2] ………… [Case Else 默认程序段] End Select 例行程序分析:(P65)(现场调试) 3.循环
程序初步 Do……Loop 1.当型循环(先判断,后执行) 语法:Do [{While|Until}条件式] [程序段] Loop 2.直到循环(先执行,后判断) 语法:Do [程序段] Loop [{While|Until}条件式] 3. 例行程序分析:(P67)
例1:Private sub form_Click() Dim I As Integer I=1 Do while I<=5 print I; I=I+1 Loop End Sub 例2:Private sub form_Click() Dim I As Integer I=1 Do Until I>5 print I; I=I+1 Loop End Sub
例3:Private sub form_Click() Dim I As Integer I=1 Do print I; I=I+1 Loop while I<=5 End Sub 例4:Private sub form_Click() Dim I As Integer I=1 Do print I; I=I+1 Loop Until I>5 End Sub
程序初步 For……Next 语法:For 计数器 = 初值 To 终值 [Step增量] 语句 Next [计数器] 例:Private Sub Form_Click() Dim I,j,Counter As Integer I=6:J=1 For Counter=I To J Step –1 Print Counter Next Counter End Sub
程序初步 For Each…Next 语法:For Each 元素 In 数组或集合 [程序段] Next [元素] 例:Private Sub form_Click() For Each I In Form1.Controls I.Enabled=False Next I End Sub 说明:当用此语句对数组操作时只能读取数据。 While…Wend
语法:While 条件式 程序段 Wend 4.循环的嵌套 四种循环(Do…Loop、For…Next、For Each…Next和While…Wend)可以互相嵌套。 例:求1!+2!+3!+4!并打印结果 Dim I,j,sum1,sum2 As Integer sum1=0: sum2=1 For I=1 To 4 For J=1 to I Sum2=sum2*J Next J sum1=sum1+sum2 Next I Print sum1
程序初步 Do Events函数与闲置循环(P74调试) DoEvents()将控制权交与操作系统。 说明:在执行长循环,大任务时,占用系统时间和CPU,那么怎样才能让其交权响应其它事件呢。 例析:(一个命按钮,一个Timer,一个文本框)(P73) dim I,openforms For i = 1 To 150000 Cls Print i If i Mod 1000 = 0 Then openforms = DoEvents(): Text1.text=i End If Next i
常见标准函数 • 常见标准函数:交互式函数、类型转换函数、数学函数、日期和时间函数、字符串函数、目录和文件函数。 • 数学函数(P76:现场调试)