4.71k likes | 4.89k Views
计算机基础教育课程体系规划教材. 计算机程序设计基础:. Visual Basic 版 邱李华 郭志强 曹青. 第1章 程序设计基础. 本章要点: 程序设计语言 算法 ▲ * 结构化程序设计 ▲ 面向对象的程序设计. 指令: 规定计算机完成一定操作的命令。 程序设计语言: 要使计算机能够理解人给出的各种 指令 ,就需要在人和计算机之间有一种特定的语言,人和计算机都能够识别,这种特定的语言就是计算机语言,也叫程序设计语言。 程序: 使用程序设计语言编写的用来使计算机完成一定任务的一段“文章”称为程序。 程序设计: 编写程序的工作称为程序设计。
E N D
计算机基础教育课程体系规划教材 计算机程序设计基础: Visual Basic 版 邱李华 郭志强 曹青
第1章 程序设计基础 • 本章要点: • 程序设计语言 • 算法▲ * • 结构化程序设计▲ • 面向对象的程序设计
指令: 规定计算机完成一定操作的命令。 • 程序设计语言: 要使计算机能够理解人给出的各种指令,就需要在人和计算机之间有一种特定的语言,人和计算机都能够识别,这种特定的语言就是计算机语言,也叫程序设计语言。 • 程序: 使用程序设计语言编写的用来使计算机完成一定任务的一段“文章”称为程序。 • 程序设计: 编写程序的工作称为程序设计。 • 学习目的: 利用程序设计语言进行程序设计,完成一定功能
1.1 程序设计语言 • 发展: 机器语言汇编语言高级语言 • 1.1.1 机器语言 • 机器指令:由0和1组成的二进制编码 • 机器语言:计算机能直接识别的机器指令的集合 例:用某机器语言编写的求“9+8”的程序。 10110000 00001001 00000100 00001000 11110100 把加数9送到累加器AL中 把累加器AL中的内容与另一数8相加,结果存在累加器AL中 停止操作 特点:机器能直接识别、执行效率高 难学、难记、难写、难检查、难移植
汇编 程序 连接 程序 目标程序 可执行程序 汇编语言源程序 1.1.2 汇编语言 引入助记符代替指令,如ADD、SUB、MOV、HLT等。 例:用汇编语言实现求“9+8” MOV AL,9 把加数9送到累加器AL中 ADD AL,8 把AL中的数与8相加,存在AL中 HLT 停止操作 特点: 可读性好,容易查错、方便 机器不能直接识别、需翻译、可移植性差
解释程序 高级语言源程序 执行结果 目标 程序 可执行 程序 高级语言源程序 编译程序 连接程序 1.1.3 高级语言 更接近自然语言,脱离具体机器,与指令系统无关 高级语言处理程序:翻译程序 翻译程序的工作方式:解释方式和编译方式 例:用某高级语言计算9+8的问题,只需写成: S=9+8 计算9+8的值,保存到变量S中 END 结束 特点: 易编写、易读、易查错、不依赖具体机器 需要配合使用翻译程序
1.2 程序设计 • 程序设计: 编制程序的工作 • 实现: 选择工具—语言 • 掌握解题的方法和步骤—算法 • 1.2.1 算法 • 1. 什么是算法 • 计算机为解决一个问题而采取的方法和步骤 。 • 2 . 算法的特性 • 有穷性、确定性、有效性、有0个到若干个输入、 • 有1个到若干个输出。 • 3. 算法的表示形式 • (1)用自然语言表示算法
例如:将两个变量X和Y的值互换。 • 算法表示如下: • 步骤1 将X值存入中间变量Z中:XZ • 步骤2 将Y值存入变量X中:Y X • 步骤3 将中间变量Z的值存入Y中:Z Y • 用自然语言表示算法,虽然容易表达,但文字冗长且易产生“二义性”。 • (2)用流程图表示算法 • 传统流程图 判断框: 起止框: 流向线: 处理框: 连接点: 输入/输出框: • N-S流程图:表示成三种基本的结构
开始 输入X,Y 输入X,Y XZ YX XZ ZY 输出X,Y YX ZY 输出X,Y 结束 • 例:交换两个变量的流程图 传统流程图: N-S流程图:
a A A B B b • 1.2.2 结构化程序设计 • 1. 三种基本结构 • 顺序结构、选择结构和循环结构 • (1) 顺序结构 传统流程图: N-S流程图:
a 成立 不成立 条件? A B b 条件 成立 不成立 A B (2) 选择结构 传统流程图: N-S流程图:
开始 输入X ?? 输入X X>=0? Yes No X>=0? Yes No XY -XY XY -XY 输出Y 输出Y 结束 例:分别用传统流程图和N-S流程图表示求一个数的绝对值的算法。 N-S流程图: 传统流程图:
a 不成立 条件? 成立 A b 当条件为真 A • (3) 循环结构 • 当型循环结构 传统流程图: N-S流程图:
a A 条件? 不成立 成立 b A 直到条件为真 • 直到型循环结构 传统流程图: N-S流程图:
开始 1 0S 0S 输出S 1I 1I 结束 S+IS S+IS I+1I I+1I 直到I>100 No I>100 输出S Yes 1 例: 分别用传统流程图和N-S流程图表示: 求1+2+3+…+100的算法。 N-S流程图: 传统流程图:
三种基本结构有以下共同的特点: • 只有一个入口、一个出口 • 每个基本结构中的每一部分都有机会被执行到 • 结构内不存在“死循环” 2. 结构化程序设计方法 • 自顶向下、逐步求精、模块化
1.2.3 面向对象的程序设计 任何现实问题都是由一些基本事物组成,这些事物之间存在着一定的联系,在使用计算机解决现实问题的过程中,为了有效地反映客观世界,最好建立相应的概念去直接表现问题领域中的事物及事物之间的相互联系。 面向对象技术中引入了“对象”来表示事物;用消息传递建立事物间的联系。 • (1) 对象 (Object) • 用于描述某一实体。如房屋、人、汽车等: • 属性: • 事件: • 方法:
(2) 面向对象(Object Oriented,简称OO) • (3) 消息(Messages) • 消息是用来请求对象执行某一处理或回答某些信息的要求。 某一对象可以在必要时通过传递消息请求其他对象完成某些处理工作或回答某些信息,其他对象在执行所要求的处理活动时,同样可以通过传递消息与别的对象联系。因此,程序的执行是靠在对象间传递消息来完成的。 • (4) 类(Class)及类的实例 • 将带有相似属性和行为的事物组合在一起构成一个类。一个属于某种类的特定对象称为该类的一个实例。
(5) 封装(Encapsulation) • 将数据和操作数据的函数衔接在一起,构成一个具有类类型的对象的描述称为封装。 • (6) 继承(Inheritance) • 在面向对象的语言中,可以从一个类生成另一个类。派生类(也称子类)继承了其父类和祖先类的数据成员和成员函数。 • (7) 多态性(Polymorphism) • 多态性是一种面向对象的程序设计功能,当同样的消息被不同的对象接收时,却导致完全不同的行为,即完成不同的功能。
本章小结 • 1. 程序设计语言 • 机器语言、汇编语言、高级语言 • 2. 程序设计 • 算法的概念 • 结构化程序设计的三种基本结构 • 顺序结构、选择结构、循环结构 • 面向对象程序设计的基本概念 • 对象、面向对象、消息、类及类实例、封装、继承、多态性
第2章 Visual Basic简介 • 本章要点: • Visual Basic的集成开发环境(IDE) • 可视化编程的基本概念▲ • 窗体、命令按钮、标签、文本框▲ • Visual Basic工程的设计步骤▲ • Visual Basic的帮助系统
2.1 概述 • Visual Basic是程序设计语言(开发工具) • 用于开发Windows环境下的应用程序。 • Visual Basic由BASIC语言发展而来 • Visual: 可视的, 指开发图形用户界面 (GUI) 的方法 • Basic: 初学者通用符号指令代码 • 不但是专业人员得心应手的开发工具,而且易于被非专业人员掌握使用 • 以事件驱动作为运行机制,提供了一定的面向对象编程机制
2.1.1 Visual Basic 6.0的版本 • (1) 是面向对象的可视化程序设计工具。 • (2) 采用结构化的程序设计方法 。 • (3) 采用事件驱动的编程机制。 • (4) 提供了易学易用的应用程序集成开发环境。 • (5) 支持多种数据库系统的访问。 • (6) 采用了对象的链接与嵌入技术。 • 学习版: 用于初学者开发基于Windows的应用程序 • 专业版: 用于专业人员开发客户/服务器应用程序 • 企业版: 用于创建高级的、高性能的网络应用程序 2.1.2 Visual Basic主要的功能特点
2.2 Visual Basic的安装与启动 • 2.2.1 系统要求 • (1) 微处理器: 486DX/66MHz或更高。 • (2) 内存: 至少16MB。 • (3) 硬盘空间: • 学习版: 典型安装48MB,完全安装80MB。 • 专业版: 典型安装48MB,完全安装80MB。 • 企业版: 典型安装128MB,完全安装147MB。 • MSDN(用于提供帮助文档): 67MB。 • IE 4.x: 约需66MB (Windows 98中已经包含)。 • (4) 显示设备: VGA或更高分辨率的显示器。 • (5) 读入设备: CD-ROM。 • (6) 操作系统: Windows 95/98或更新的版本; • Windows NT 3.51或更新的版本。 • 2.2.2 Visual Basic的安装:VB、MSDN • 2.2.3 Visual Basic的启动
2.3 Visual Basic的集成开发环境(IDE) • 1. 标题栏:三种工作模式 • 设计模式:可以进行用户界面的设计和代码的编写: • 运行模式:运行应用程序,此时不可以编辑代码,也不可以编辑界面。 • 中断模式:应用程序运行暂时中断,此时可以编辑代码,但不可以编辑界面 • 2. 菜单栏 • 提供了VB中用于开发、调试和保存应用程序所需要的所有命令。 • 3. 工具栏:提供了对常用命令的快速访问。 • 4种工具栏:编辑、标准、窗体编辑器和调试 • 使用:视图→工具栏 打开或关闭工具栏 。
4. 工具箱: 控件的容器 • 控件: 用于创建对象,每个控件都有其属性、事件和方法。工具箱中的控件可以有三类: • 内部控件—默认状态下工具箱中显示的控件 • ActiveX控件—存于.OCX文件中,包括各种版本的VB控件以及第三方厂家提供的控件,必要时可添加到工具箱中。 • 可插入对象—将其他应用程序产品作为一个对象加入到工具箱中。如Excel工作表、公式等。 添加选项卡: 右击工具箱→添加选项卡→输入名称 添加控件: 将控件直接拖入新选项卡 切换选项卡: 单击选项卡名称 删除选项卡: 右击选项卡名称→删除选项卡
查看代码 切换文件夹 查看对象 • 5.工程资源管理器窗口 • 工程: 每个应用程序可称为一个工程 • 每个工程可包括多种类型的文件 • 文件类型: • .Vbp .Frm .Bas .Cls .Res .Ocx .Frx 显示: 视图→工程资源管理器 使用工具栏按钮
对象下拉列表框 选项卡 属性列表框 属性说明 • 6.属性窗口 显示: 视图→属性窗口 使用工具栏按钮 按F4键
7. 窗体布局窗口: 调整程序运行时窗体显示的位置 • 8. 窗体设计器窗口 • 是进行界面设计的窗口。 • 工程中的每个窗体都有自己的窗体设计器窗口。 • 一个应用程序至少有一个窗体。 • 9. 代码编辑器窗口: 用于编写程序代码 • 进入代码编辑器窗口的方法: • 双击窗体的任何地方 • 右击窗体,从快捷菜单中选择“查看代码” • 单击工程资源管理器窗口中的“查看代码”按钮。 • 执行“视图”菜单中的“代码窗口”命令。
过程下拉 列表框 对象下拉 列表框 代码区 拆分栏 过程查看 全模块查看 代码编辑器窗口组成: 自动列出成员特性: 自动列出控件的属性和方法。 自动显示快速信息: 自动显示语句和函数的语法格式 自动语法检查: 出错时显示为红色。 10. 立即窗口 用于调试应用程序。 可键入或粘贴一行代码,按下回车键立即执行。
2.4 可视化编程的基本概念 • 2.4.1 对象 • 对象: 代码和数据的集合。 • 如: 窗体、按钮、菜单、文本框等。 • 对象名: 如Form1、Command2、Menu1、Text3 • 2.4.2 属性 • 属性: 对象的一组特征,如:标题、宽度、字体等 • 属性名: 如Caption、Width、Font、Color • 属性设置方法: • 设计阶段在属性窗口中设置 • 在代码中设置: <对象名>.<属性名>=<属性值> • 例: Form1.Caption= "学籍管理" • CmdOK.Caption="确定"
2.4.3 事件 • 事件: 在对象上所发生的事情 • 如单击、双击、内容改变、尺寸改变等 • 事件是固定的。 • 事件过程: 发生某事件后所要执行的程序代码 • 一般格式: • Private Sub <对象名>_<事件名>([<参数表>]) • <程序代码> • End Sub • 例: Private Sub Command1_Click( ) • Form1.BackColor = vbRed • End Sub
2.4.4 方法 • 方法: 用于对对象进行一定的操作。 • 由函数或过程实现。 • 方法是固定的 • 调用格式为: [<对象名>.]方法名 [<参数表>] • 例: FirstForm.Print "欢迎使用Visual Basic" • SecondForm.Show • MyPicture.Cls
控制菜单 标题栏 最小化 最大化/还原 关闭 边框 2.5 窗体、命令按钮、标签、文本框 • 2.5.1 窗体(Form) • 窗体: 窗口(一般,设计期称窗体、运行期称窗口) • 窗体模块: 每个窗体对应于一个窗体模块 • 1. 窗体的结构
显示具体窗体名 2. 添加窗体、移除窗体 添加方法一: • 工程→添加窗体(打开“添加窗体”对话框) → 新建 现存 添加方法二: 使用工具栏中的“添加窗体”按钮 设置启动对象:工程→工程1属性→设置启动对象 移除方法一: 工程→移除Form1 移除方法二: 在工程资源管理器中右击窗体名称→移除Form1
3. 属性 • (1)Name(名称): 窗体的名称。以英文字母开始,最多40个字符。不能包含标点符号或空格。 • (2) Caption(标题) : 窗体标题栏显示的内容。 • (3) BackColor: 窗体的背景颜色。 • (4) ForeColor: 窗体的前景颜色。 • (5) Font: 窗体中输出字符的字体、大小等特性。 • (6) Icon: 运行时窗体处于最小化时所显示的图标。 • (7) Picture: 设置要在窗体上显示的图片。 • (8) MaxButton: 决定窗体的标题栏中是否具有最大化按钮。 • (9) MinButton: 决定窗体的标题栏中是否具有最小化按钮。 • (10) BorderStyle: 窗体的边框样式 。 • (11) ControlBox: 决定窗体是否具有控制菜单。 • (12) Moveable: 决定窗体是否能移动 • (13) WindowState: 决定运行时窗体是正常、最小化还是最大化。
4. 事件 • Load、 Activate 、 Click、DblClick • 例: 单击窗体时产生Click事件,将窗体背景设成黄色 • Private Sub Form_Click() • Form1.BackColor = vbYellow • End Sub • 例:在窗体加载时将窗体背景设成红色 • Private Sub Form_Load() • Form1.BackColor = vbRed • End Sub • 5. 方法 • 窗体上常用的方法有Print、Cls、Move和Show等
2.5.2 命令按钮(CommandButton) • 1. 属性 • (1) Caption: 命令按钮的标题。 • 在字符前加一个“&”符号,该字符就会带有一个下划线,成为访问键。运行时,同时按下Alt键和带下划线的字符相当于单击该按钮。 • (2) Font: 设置文字的字体、字形、大小和效果等。 • (3) Style: • 0-Standard(缺省值) —不能显示图形或设置颜色 • 1-Graphical —可以显示图形或设置颜色 • (4) Picture: 指定要在命令按钮上显示的图形。 • (5) DownPicture: 指定命令按钮按下时显示的图形。
(6) DisabledPicture: 指定命令按钮无效时显示的图形。 • (7) Enabled: 该属性值为False时,表示命令按钮无效,不能对用户产生的事件作出反应,呈暗淡显示。缺省值为True。 • (8) Visible: 决定命令按钮在运行时是否可见。 • (9) Value: 该属性只能在程序运行期间使用。 设置为True表示该命令按钮被按下。 • (10) Default: 指定该命令按钮是否为窗体的缺省按钮。 • (11) Cancel: 指定该命令按钮是否为窗体的取消按钮。
2. 事件 • Click; KeyDown; KeyUp; MouseDown; MouseUp… • 例: Private Sub Command1_MouseDown(……) • Form1.BackColor = vbRed • End Sub • Private Sub Command1_MouseUp(……) • Form1.BackColor = vbGreen • End Sub • Private Sub Command1_KeyDown(……) • Form1.Caption = "你好" • End Sub • Private Sub Command1_KeyUp(……) • Form1.Caption = "再见" • End Sub
在程序运行时,可以用以下方法之一触发命令按钮的Click (单击)事件: • 用鼠标单击命令按钮。 • 按Tab键,把焦点移动到命令按钮上,再按回车或空格键。 • 按命令按钮的访问键。 • 在程序代码中将命令按钮的Value属性值设为True。如: • Private Sub Command2_Click() • Command1.Value = True' 单击Command1 • End Sub • 直接在程序代码中调用命令按钮的Click事件。如 • Private Sub Command4_Click() • Command1_Click' 单击Command1 • End Sub
如果指定某命令按钮为窗体的缺省按钮,那么即使焦点移到其他控件上,也能通过按回车键单击该命令按钮。如果指定某命令按钮为窗体的缺省按钮,那么即使焦点移到其他控件上,也能通过按回车键单击该命令按钮。 • 如果指定某命令按钮为窗体的缺省取消按钮,那么即使焦点移到其他控件上,也能通过按Esc键单击该命令按钮。 • 3. 方法 • SetFocus方法: 将焦点定位在指定的命令按钮上 • 例: cmdOk.SetFocus
2.5.3 标签(Label) • 标签常用在界面上提供一些文字提示信息。 • 1.属性 • (1) Caption:标签的标题。 • (2) Alignment:标签中标题的对齐方式。 • (3) AutoSize:设为True时,可根据标题自动调整大小;设为False时,标签保持设计时定义的大小,太长的标题内容将不能显示出来。 • (4) BorderStyle:设置标签的边框。 • (5) BackStyle:设置标签是否透明。 • (6) WordWrap:指示是否随标题沿垂直方向自动扩展。 • True—标签将随标题在垂直方向变化。 • (此时AutoSize属性值应设置为True) • False—标签不能在垂直方向上扩展。
2. 事件 • Click、DblClick。 • 例: 设窗体上有一个标签控件Label1,其AutoSize属性值为True,双击该标签控件,则标签的标题字体增加10磅,可以通过如下代码实现: • Private Sub Label1_DblClick() • Label1.FontSize = Label1.FontSize + 10 • End Sub
3.方法 • Move方法: • <对象名>.Move left[,[top][,[width][, height]]] • 其中: • <对象名>:标签名。 • left:指示对象左边的水平坐标(x-轴)。 • top:指示对象顶边的垂直坐标(y-轴)。 • width:指示对象新的宽度。 • height:指示对象新的高度。 • 例:单击标签Label1使该标签向右移动50缇: • Private Sub Label1_Click() • Label1.Move Label1.Left + 50 • End Sub
2.5.4 文本框(TextBox) • 可以使用文本框控件输入、编辑、显示数据。 • 1. 属性 • (1) Text属性:文本框中显示的内容。 • 例: Text1.Text = "欢迎使用Visual Basic" • (2) MultiLine: 决定是否可以显示多行文本。 • (3) PasswordChar: 常用于输入口令。 • 在文本框中键入字符显示为该指定的字符。 • (此时MultiLine属性值应为False) • (4) ScrollBars: 用于确定文本框是否带滚动条以及滚动条的方向(无、水平、垂直、双向)。 • (仅当MultiLine属性值为True时才可以带滚动条)
(5) SelStart: 在运行期返回或设置当前选择文本的起始位置。 • 例: Text1.SelStart=0 • 表示选择文本的起始位置从第一个字符开始。 • (6) SelLength: 在运行期返回或设置选择的字符数。 • 例: Text1.SelLength=Len(Text1.Text) • 表示选中文本框Text1中所有字符。 • (7) Locked: 指定运行时文本框内容是否可以编辑。 • False—可以编辑 • True—不可编辑(只读)
2. 事件 • Change、Click、DblClick、 • GotFocus、LostFocus、 • KeyPress • 3. 方法 • SetFocus方法: • [<对象名>.]SetFocus • 例:将焦点定位在文本框Text1中: • Text1.SetFocus
(a) (b) 2.6 Visual Basic工程的设计步骤 • (1) 新建一个工程 • (2) 设计用户界面 • (3) 编写事件过程及通用过程 • (4) 运行、调试并保存工程 • 【例2-1】编写一个求两个数相加的程序。界面设计如下图a所示。运行时,当按下“求和(S)”按钮时,求数1和数2的和。运行效果如下图b所示。
Top Left Height Width 启动VB 在“新建工程”对话框中 选择“标准EXE” • 2.6.1 新建工程 文件→新建工程 2.6.2 设计界面 1. 控件的画法: 拖动、双击、连续画 连续画: Ctrl+单击控件→画多个控件→单击箭头 2. 控件的缩放和移动 缩放: 鼠标;Shift+箭头; 改Width、Height属性 移动: 鼠标;Ctrl+箭头; 改Left、Top属性