《VisualBasic程序设计项目化教程》制作简易计算器.ppt

上传人:sh****n 文档编号:6622032 上传时间:2020-03-01 格式:PPT 页数:55 大小:371.50KB
返回 下载 相关 举报
《VisualBasic程序设计项目化教程》制作简易计算器.ppt_第1页
第1页 / 共55页
《VisualBasic程序设计项目化教程》制作简易计算器.ppt_第2页
第2页 / 共55页
《VisualBasic程序设计项目化教程》制作简易计算器.ppt_第3页
第3页 / 共55页
点击查看更多>>
资源描述
VisualBasic程序设计项目化教程 主编管小清郭贺彬 项目四制作简易计算器 项目目标 本项目利用控件数组来设计一个简易的计算器 能够实现加 减 乘 除四则运算 运算的数据可以包括整数和小数 同时对于除法运算还进行数据有效性的验证等 本项目主要用来学习VB中控件数组的画法 控件数组的各个控件的调用 控件数组的事件 Frame控件的使用 IF Case控制语句的应用 项目四制作简易计算器 项目主要知识点 1 Frame控件的使用2 控件数组的使用画法编程3 控件的特殊属性AlignmentTag4 VB中的运算符以及运算顺序算术运算符逻辑运算符关系运算5 表达式的运算6 赋值语句 InputBox函数 7 选择程序结构IF Else语句SelectCase语句8 数据有效性验证的方法 项目四制作简易计算器 项目实施步骤 阅读相关基础知识界面设计窗体设计控件属性设置程序设计编程初步程序代码程序调试 功能完善 4 1第1步 基础知识概述 4 1 1Frame控件Frame控件为控件提供可标识的分组 当需要在同一窗体内建立几组互独立的控件时 就需要用框架将每一组控件框起来 把控件分成几组 举例说明 用Frame控件将OptionButton分三组显示 如下图4 1所示 用Frame可以美化界面 在视觉上感觉清晰 图4 1Frame控件设计的界面 4 1第1步 基础知识概述 框架内控件的创建方法 为了将控件分组 首先绘制Frame控件 然后绘制Frame里面的控件 这样就可以把框架和里面的控件同时移动 成为一体 方法1 单击工具箱上的Frame控件 然后用出现的 指针 在Form窗体上画出适当大小的Frame框架控件 然后再继续把其他的控件画在Frame框架中适当位置 如果在Frame外部绘制了一个控件并试图把它移到框架内部 那么控件将在浮在Frame的上部 无法和Frame成为一体 当移动控件的时候 需分别移动Frame和控件 这时候通过方法2可以实现控件和框架一体的效果 方法2 将已有控件 剪切 Ctrl X 到剪贴板 然后选中框架 使用 Ctrl V 命令粘贴到框架内 即可实现控件和框架一体的效果 Frame的重要属性参见表4 1 4 1第1步 基础知识概述 表4 1Frame控件的常用属性 4 1第1步 基础知识概述 4 1 2控件数组的使用控件数组是一组具有共同名称和类型和事件过程的控件 它们的事件过程也相同 同一控件数组中的元素有自己的属性设置值 如Label 0 Label 1 Label 2 是控件数组 但Label1 Label2 Label3 就不是控件数组 1 建立控件数组的方法控件数组时针对控件建立的 因此与普通数组的定义不一样 建立控件数组有3种方法 方法1 给控件起相同的名称步骤如下 在窗体上画出多个同类型的控件 并决定哪个控件是数组的第一个元素 单击要包含到数组中的某个控件 控件数组的第一个元素表示的控件除外 将其激活 在属性窗口中选择 名称 属性 并键入和控件数组第一个元素一样的名称 对每个要加到数组中的控件重复步骤 键入与控件数组第一个元素一样的名称 4 1第1步 基础知识概述 当对第二个控件键入与第一个控件相同的名称后 VB将显示一个如图4 2所示的对话框 询问是否确实要建立控件数组 单击 是 将建立控件数组 单击 否 将放弃建立控件数组 以后键入其他控件相同的名称时 将不会出现类似的提示框 图4 2建立控件数组提示 适用场合 如果要求一个控件数组的绝大多数属性都不同 适用于方法1 可以先设置好各个同类型控件的 名称 以外的其他属性值 4 1第1步 基础知识概述 方法2 将控件复制并粘贴到窗体等上面在窗体上画一个控件 单击一下将其激活 执行 编辑 菜单中的 复制 命令或Ctrl C 将该控件放入剪贴板 执行 编辑 菜单中的 粘贴 命令或者Ctrl V 将显示一个对话框 询问是否建立控件数组 如图4 2所示 单击对话框中的 是 按钮 窗体的左上角将出现一个控件 它就是控件数组的第二个元素 其名称和第一个创建的控件一样 下标索引值为1 而第一个创建的控件的下标索引值自动为0 4 1第1步 基础知识概述 将新创建的控件移动到适当的位置 再次使用 粘贴 命令创建下一个控件 作为控件数组的下一个元素重复本操作直到添加了控件数组的所有元素为止 用这种方法创建的控件数组 其中各个控件 其下标索引值和添加到控件数组的次序相同 由于每次都是从第一个控件复制而来 所以 不仅它们的名称和类型是相同的 而且各个控件的大多数属性都相同 适用场合 如果要求控件数组中的各个控件的绝大部分属性都相同 宜采用方法2 4 1第1步 基础知识概述 方法3 将控件的Index属性设置为非Null数值 0 32767 在窗体上添加多个同类型的控件 选择一个控件 打开属性窗口将其Index属性设置为0 32767之间的整数 重复步骤 完成对所有的控件Index属性的修改 注意 各个控件的Index属性值可以连续 也可以不连续 但一定要唯一 在属性窗口中 将所有控件的名称修改为控件数组的名称 适用场合 如果要求用户指定控件数组中各控件的Index属性值 宜用方法3 三种方法可以配合使用 也可以单独使用 4 1第1步 基础知识概述 2 控件数组的特点控件数组具有以下特点 相同的控件名称 Name属性相同 控件数组中的控件具有相同的一般属性 所有的控件共用相同的事件过程 控件数组的每一个元素都有一个下标 下标值由Index属性值指定 数组名字有Name决定 而每个元素由Index属性值来确定 控件数组中的控件执行相同的事件过程 控件数组元素通过数组名和括号中的下标来引用 控件数组多用于单选按钮 在一个框架中 有时候可能会有多个单选按钮 可以把这些单选按钮定义为一个数组 然后通过赋值语句使用Index属性或Caption属性 4 1第1步 基础知识概述 3 控件数组的使用使用控件数组主要是利用其共享事件过程的特点来简化编程 对当一个已经建立好的控件数组编写事件过程时 为了区别各个控件 VB把控件的Index属性作为过程参数 在过程中通过如下形式引用相应的控件 控件数组名 Index 当控件数组中的控件识别出一个事件已经发生时 VB就会立刻调出控件数组的相应的事件过程 并把可应用的索引号当做附加参数传递给过程 举例控件数组的使用用方法2建立如图4 3所示界面的按钮数组 要实现单击各个按钮时将按钮的标题显示在text1中 4 1第1步 基础知识概述 图4 3设计按钮数组界面 4 1第1步 基础知识概述 双击按钮数组进入代码编辑窗口 自动生成如下结构 PrivateSubCommand1 Click IndexAsInteger EndSub注意观察程序中的参数传递的是控件数组的各个控件的Index属性值 所有的控件共享同一个事件 通过Index来标识不同的控件 在代码结构中间补充实现本功能的代码 Text1 Text Command1 Index Caption通过 数组名 Index 属性名 这样的形式来调用使用控件数组中的各个控件 在这个例子中 Index的值是从0 2 4 1第1步 基础知识概述 4 1 3表达式及运算符运算是对数据进行加工的过程 在程序设计语言中用不同的符号来描述不同的运算形式 这些符号称为运算符或者操作符 运算的对象称为操作数 运算符和操作数可以组成各种类型的表达式 从而实现程序中需要的大量的运算 由运算符将操作数连接起来即构成了各种类型的表达式 表达式描述了对不同类型的操作数以何种顺序进行何种操作 或者说描述了某个求值规则 每个表达式都产生唯一的值 操作数可以是常量 变量 函数 对象等 4 1第1步 基础知识概述 表达式的类型由运算符的类型决定 在VB中有4类常用的运算符和表达式 VB中的运算符有4类 第一类 1 算术运算符和算术表达式算术运算符是最常用的运算符 用来对数值型数据执行简单的算术运算 按照优先级别给出算术运算符 如表4 1所示 表4 1算术运算符 4 1第1步 基础知识概述 运算顺序根据优先级从高到低 括号改变优先级的高低 括号优先 数学表达式转换为算术表达式举例 见表4 2 表4 2数学表达式转换为VB表达式 4 1第1步 基础知识概述 第二类 2 字符串运算符和字符串表达式VB字符串运算符有两个 和 运算符 都是双目运算符 其作用是把两个字符串连接在一起 生成一个较长的字符串 由字符串运算符与运算量构成的表达式称为字符串表达式 和 运算符在连接两个字符串时 功能是等价的 但是在某些时候是不一样的 具体参见表4 3 表4 3 和 运算符的用法 4 1第1步 基础知识概述 和 举例 见表4 4 表4 4 和 示例 4 1第1步 基础知识概述 第三类 3 关系运算符和关系表达式关系运算符也称作比较运算符 用来对两个表达式的值进行比较 比较的结果为逻辑值 如果关系成立 则返回True 否则返回False 在VB中用 1和0表示True和False 关系运算符如表4 5所示 表4 5关系运算符 4 1第1步 基础知识概述 第四类 4 逻辑运算符和逻辑表达式逻辑运算符是用来执行逻辑运算的运算符 常用的有And 与 Not 非 和Or 或 逻辑表达式是用逻辑运算符将逻辑变量连接起来的式子 如表4 6所示 表4 6逻辑运算符 4 1第1步 基础知识概述 4 1 4赋值语句VB具有结构化程序设计的三种结构 即顺序结构 选择结构 循环结构 是程序设计的基础 顺序结构就是各语句按出现的先后次序执行 一般的程序设计语言中 顺序结构的语句主要是赋值语句 输入 输出语句等 在VB中也有赋值语句 形式为 变量名 表达式计算右边表达式的值 然后赋给左边的变量 给变量赋值和设定属性是VB编程中常见的两个任务 4 1第1步 基础知识概述 例如 n n 1 计数累加Text1 Text 清除文本框的内容Text1 Text 欢迎使用VB 文本框显示字符串赋值语句不允许写成 表达式 变量 虽然赋值号与关系运算符等于号都用 表示 VB系统会根据所处的位置自动判断符号的意义 赋值号左边的变量只能是变量 不能是常量 常数符号 表达式 下面均为错误的赋值语句 Now x y 左边是表达式 函数 5 sqr s x y 左边是常量 4 1第1步 基础知识概述 4 1 5选择程序结构计算机要处理的问题往往是复杂多变的 仅采用顺序结构是不够的 必须利用选择结构等来解决实际应用中的各种问题 VB中提供了多种形式的条件语句来实现选择结构 有If条件语句和Select情况语句等 它们都是对条件进行判断 根据判断结果 选择执行不同的分支 1 第一种分支语句 If语句IF语句分为三种 单分支结构 双分支结构和多分支结构 分别介绍如下 If Then语句 单分支结构 格式为 IfThen语句块 可以是一句或多句语句 EndIf或IfThen 4 1第1步 基础知识概述 表达式 关系表达式 逻辑表达式 算术表达式 字符表达式 表达式值按非零为True 零为False进行判断 单分支IF语句的执行流程如图4 6所示 图4 6单分支IF语句执行流程该语句的作用是当表达式的值为True 执行Then后面的语句块 否则不做任何操作 4 1第1步 基础知识概述 例 已知两个数x和y 比较它们的大小 使得x大于y Ifx yThent xx yy tEndIf或Ifx yThent x x y y t简单If形式无EndIf时 只能是一句语句或语句间用冒号分隔 而且必须在一行上书写 4 1第1步 基础知识概述 双分支结构 If Then Else语句结构如下 If表达式Then语句块1Else语句块2EndIf或If表达式Then语句1Else语句2当表达式的值为True时 执行Then后面的语句块1 否则执行Else后面的语句块2 4 1第1步 基础知识概述 例子 计算分段函数双分支结构实现 Ifx0Theny sin x sqr x x 1 Elsey cos x x 3 3 xEndIf 4 1第1步 基础知识概述 多分支结构 If Then ElseIf语句结构 If表达式1Then语句块1ElseIf表达式2Then语句块2 Else语句块n 1 EndIf作用 根据不同的表达式值确定执行哪个语句块 4 1第1步 基础知识概述 多分支IF语句的执行流程如图4 7所示 图4 7多分支IF语句执行流程 4 1第1步 基础知识概述 If语句的嵌套 If语句的嵌套是指If或Else后面的语句块中又包含If语句 If表达式1ThenIf表达式2Then EndIf EndIf 4 1第1步 基础知识概述 2 第二种分支结构 select语句语法格式为 SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2 CaseElse语句块n 1 EndSelect 4 1第1步 基础知识概述 表达式列表与变量或表达式的类型必须相同 是下面4种形式之一 表达式例 A 一组用逗号分隔的枚举值2 4 6 8表达式1To表达式260To100Is关系运算符表达式Is 60多分支结构 用SelectCase语句比If Then ElseIf语句直观 程序可读性强 但不是所有的多分支结构均可用SelectCase语句代替If Then ElseIf语句 4 2第2步 界面设计 4 2 1任务一 建立应用程序用户界面选择新建工程 进入窗体设计器 首先增加一个框架控件Frame1 选中Frame1后 在其中增加一个文本框控件Text1 两个命令按钮数组Command1 0 Command1 10 Command2 0 Command2 3 和一个命令按钮Command3 各控件排列如下图4 8所示 图4 8界面设计 4 2第2步 界面设计 注 框架控件一般用在窗体布局中 其作用是对控件进行位置上的限定 通常不对框架进行编程 控件数组是由一组相同类型的控件组成 这些控件共用一个相同的控件名 具有相同的属性设置 数组中每个控件都有唯一的索引号 即下标 下标值有Index属性指定 其所有的Name属性必须相同 控件数组通常用于需要对若干个同类型的控件执行大致相同的操作 如本例中的命令按钮 控件数组共享同样的事件过程 例如 假定一个控件数组含有3个命令按钮 则不管单击哪个 都会调用同一个Click过程 4 2第2步 界面设计 4 2 2任务二 设置对象属性修改Form1的属性 Caption改为 计算器 MaxButton改为 False并调整窗体合适大小 修改Text1的属性 对齐方式 Alignment 改为 1 RightJustify 文本 Text1 改为 无 修改Command1 0 Command1 10 的属性 标题 Caption 依次改为 1 2 3 4 5 6 7 8 9 0 修改Command2 0 Command2 3 的属性 标题 Caption 依次改为 修改Command3的属性 标题 Caption 改为 如下图4 9所示 图4 9修改属性后的界面 4 3第3步 程序代码 4 3 1任务一 在 通用 过程中 声明 变量首先在 通用 过程中 声明 变量编程思想 用计算器进行运算的时候 至少需要存放两个操作数和一个运算符 所以需要声明三个变量 另外需要设置一个开关变量来指示是否第一次按下运算符 来分情况处理运算的位置 1 处理用户是连续按下运算符而不按下等号的情况 2 处理用户按下等号进行计算的情况 4 3第3步 程序代码 变量设置如下 DimvAsBoolean 是否第一次按运算符DimsAsString 存放上次按的运算符DimxAsDouble 存放第一个操作数DimyAsDouble 存放第二个操作数通用过程如下图4 10所示 图4 10在通用部分定义全局变量 4 3第3步 程序代码 说明 通用过程一般用来声明全局变量 也就是作用范围为整个工程的变量 在程序代码窗口的下拉菜单中选择即可 4 3第3步 程序代码 4 3 2任务二 命令按钮控件数组Command1 的Click事件代码编程思想 单击0 9以及小数点时 需要将用户单击的内容显示在计算器中 用Command1 Index Caption来获取用户按下的键上的字符显示信息 每次用户按下数字键和小数点的时候 系统要都要调用Command1 的click事件 当用户多次按下多个字符键 那么就需要暂存用户以前按下的结果 设置一个临时变量a暂存用户最近按下数字键 程序为 a Text1 Text 保存以前按下的内容Text1 Text a Command1 Index Caption 和现在按下的键的内 容连接在一起显示在text1文本框中 4 3第3步 程序代码 当用户按下运算符后 我们要显示第二个运算数 text1中的内容需清除来存放第二个操作数 在此用Form窗体的一个特殊的属性Tag来区分用户是否按下过运算符 如果用户按下过运算符 那么这时需要显示的内容是当前按下键的内容 即Text1 Text Command1 Index Caption 特殊情况 当用户单击小数点的时候 按照刚才的代码会直接显示了一个单独的 在此需要对text1显示的内容做补充 即text1的显示内容在小数点的前面补 0 使得直接按下小数点的时候为前面自动补零 实现代码如下 IfIndex 10Then 单击小数点情况Text1 Text 0 单击小数点的时候需要在点前补 0 显示ElseText1 Text Command1 Index Caption 按下的内容显示text1中EndIf当按下运算符后按第一个数字键的时候 需要处理如上两种情况 处理后对Form1 Tag置空 等待下次使用 4 3第3步 程序代码 Command1数组的单击事件代码如下 PrivateSubCommand1 Click IndexAsInteger 数字键 0 9 以及小数点 键的Click事件过程IfForm1 Tag T Then 处理用户按下运算符后按下的第一个数字区符号IfIndex 10Then 单击小数点的时候Text1 Text 0 单击小数点的时候需要在点前补 0 显示ElseText1 Text Command1 Index Caption 按下的内容显示text1中EndIfForm1 Tag Elsea Text1 Text 保存以前按下的内容Text1 Text a Command1 Index Caption 连接新按下字符一起显示EndIfEndSub说明 Tag属性用来返回或者设置一个表达式用来存储程序中需要额外存储的数据与其它属性不同 Tag属性值不被VisualBasic使用 可以用该属性来标识对象 语法 object Tag expression 4 3第3步 程序代码 4 3 3任务三 命令按钮组Command2 的Click事件代码 编程思想 对于运算符键 有两种情况 一种是用户第一次按下运算符号键的时候 一种是用户不是第一次按下运算符键的时候 需要分情况处理 4 3第3步 程序代码 1 当用户第一次按下运算符号的时候 需要做两个处理 把text1中内容保存为第一个操作数即x Text1 Text保存运算符号的Index值在s变量中 等待获取第二个操作数后进行运算处理 此时却不必计算 代码为 s Index 核心代码为 IfvThenx Text1 Text v NotvElse EndIfs Index 4 3第3步 程序代码 2 当用户不是第一次按下运算符的时候 并且是用户多次按下运算符而没有按下等号的时候 此时需要进行计算处理 包括三项工作 保存第二个操作数到y变量中 以备计算使用 根据s中保存的运算符的Index值 决定执行相应的计算 计算结果保存在x中 作为下一次运算的第一操作数 4 3第3步 程序代码 为实现上述功能 双击Command2数组后的核心代码如下 PrivateSubCommand2 Click IndexAsInteger 运算符的加 减 乘 除键的Click事件过程Form1 Tag T IfvThenx Text1 Text v Notv 保存第一个运算数在x变量中Elsey Text1 Text 处理多次按下运算符键的情况 这时需要对之前按下的数字和运算符号进行 对应的计算 把计算结果显示在text1中 4 3第3步 程序代码 SelectCasesCase0Text1 Text x yCase1Text1 Text x yCase2Text1 Text x yCase3Ify0ThenText1 Text x yElseMsgBox 不能以0为除数 32 错误 EndIfEndSelectx Text1 Text 把text1的内容保存在x中 再次作为第一个操作数参与下一次运算EndIfs Index 保存运算符的Index值 在计算时使用EndSub 4 3第3步 程序代码 说明 MsgBox语句的格式为 MsgBox 三个部分的意义如下 提示信息是显示在提示框的文字显示内容 标题显示在提示框的标题栏上 而按钮包括 按钮的数目及形式 使用的图标类型 默认按钮等 3个按钮可以相加达到需要的样式 32是图标类型为VbQuestion问号图标 4 3第3步 程序代码 4 3 4任务四 编写命令按钮Command3的Click事件过程编程思想 用户单击等号以后所需要做的事情包括如下三步 保存第二个操作数到y变量中 以备计算使用 使用s中保存的运算符的Index值 执行相应的计算 计算结果保存在x中 作为下一次运算的第一操作数 把存放第二个操作数的变量y清除 把保存运算符的变量s清除 以备下一次接收新的内容进行下一次计算 v设置为false 意味已经按下过运算符 4 3第3步 程序代码 双击Command3按钮的核心代码如下 PrivateSubCommand3 Click 运算符 的Click的事件过程Form1 Tag T y Text1 Text 把text1中的值保存在y中作为第二个运算数SelectCases s中保存的是运算符 当单击运算符的时候s的值已经保存Case0Text1 Text x y text1中显示运算后的结果Case1Text1 Text x yCase2Text1 Text x yCase3Ify0Then 被除数是否为0Text1 Text x yElseMsgBox 不能以0为除数 32 错误 EndIfEndSelectx Text1 Text y 0 v False s 5EndSub 4 3第3步 程序代码 程序执行效果如下图4 11所示 图4 11程序运算结果图 4 4第4步 程序调试 完善功能 考虑输入 9 后观察程序运行的结果 输入 8 9 8 观察程序运行结果 如何改进和完善程序 项目总结 Frame控件数组的画法及作用 如何让已有控件包括在Frame中 复制粘贴法 控件数组的三种画法及各自的适用场合控件数组中控件的调用方法 通过 数组名 index 调用控件数组中的某一控件 各个控件的大部分属性是相同 一个控件数组共享同一个事件合理的控件的排列方式 让界面更美观选择程序结构 块IF结构以及SelectCase结构的使用方法 case语句处理多分支结构清晰明了 主意表达式的写法 主意IF语句和Selectcase语句的结构写完整 4 4第4步 程序调试 完善功能 复习思考 一 填空题1 是一组具有共同名称和类型和事件过程的控件 它们的事件过程也 2 控件数组具有以下特点 相同的 Name属性相同 控件数组中的控件具有相同的 所有的控件共用相同的事件过程 控件数组的每一个元素都有一个下标 下标值由属性值指定 数组名字有属性值决定 而每个元素由属性值来确定 控件数组中的控件执行的事件过程 控件数组元素通过数组名和括号中的来引用 3 VB具有结构化程序设计的三种结构 即顺序结构 是程序设计的基础 4 VB字符串运算符有两个 和运算符 都是双目运算符 其作用是把两个字符串连接在一起 生成一个较长的字符串
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!