用VB制作计算器_第1页
用VB制作计算器_第2页
用VB制作计算器_第3页
用VB制作计算器_第4页
用VB制作计算器_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、摘要这个程序是我用VB制作的简单计算器,它可以实现简单的四则运算,数字的平方,平方根,正弦,余弦,倒数,以及进制的相互转换。而且它的功能还有退格,清除当前数据,清除所有数据,复制数据,粘贴数据,退出程序。在这个计算器的程序中,我用到了单行选择语句If Then Else,If语句的嵌套,多条件选择语句Select Case,而且还用到了组合框,框架,菜单的设计,以及键盘事件,可以通过键盘来用于计算。在此报告中我重点叙述了计算机的各个功能及用法。特别是进制间的转换和数字与运算符之间的联系。还有说明了键盘怎样用于操作计算。虽然表达能力不太行,但我会尽力使用系统结构图,程序流程图,划分多个模块,让大

2、家明白我设计的运算器的功能的。目录摘要1目录2第一章 任务概述31.1、目标31.2、需求概述3、鼠标操作3、键盘操作3第二章 总体设计42.1、系统结构功能图4第三章 功能分配53.1、打开计算器界面53.2、平方根,平方,倒数,正弦,余弦的实现73.3、退格83.4、清除8、清除当前数据8清除所有数据83.5、鼠标的输入93.6、进制间的转换11小结13第一章 任务概述1.1、目标本系统的目标是建立一套可以计算数的平方,平方根,倒数,正弦,余弦,数字的进制转换的计算器系统,系统可以帮助我们更好的学习,更好的节省时间。还能避免出现一些不必要的计算错误。1.2、需求概述根据本系统的需求分析,系

3、统的需求可以分为以下的几个方面:、鼠标操作你可以利用鼠标点击界面上的各个按钮来实现计算器的运算。、键盘操作当不方便使用鼠标时可以利用键盘来实现运算,数字的复制和粘贴。第二章 总体设计2.1、系统结构功能图输入数字平方根平方倒数正弦余弦选择转换的进制转换退格清除说有数据清除当前数据结果图2-1系统结构功能图第三章 功能分配3.1、打开计算器界面图3-1 计算器界面Dim dflag As Integer 小数点仍然存在吗?Dim i As Integer Dim opnre As Integer 初始值Dim prev As Double 前面输入的操作数Dim oflag As Integer

4、 等号前后对数字的标记Dim ind As Integer cmdoperator控件数组的数Dim x As DoubleDim y As Double' 运算符 (+, -, x, /, =) 的 Click 事件过程' 如果接下来的按键是数字键,增加 val(text1.Caption)。' 如果有一个操作数,则设置 prev。' 如果有两个操作数,则将 prev设置为 prev 与val(text1.Caption)' 当前输入字符串的运算结果,并显示结果。Private Sub cmdnumber_Click(Index As Integer)

5、 If ind = 4 Then prev = 0 text1.Caption = " " ind = 0 End Ifopnre = 0 If oflag = 0 Then text1.Caption = " " End If oflag = 1小数点 (.) 按钮的 Click 事件过程' 如果上一次按键为运算符,初始化opnre 为 "0.";' 否则显示时追加一个小数点。 If cmdnumber(Index).Caption <> "." Then If text1.Capti

6、on <> " 0" Then text1.Caption = text1.Caption & cmdnumber(Index).Caption Else text1.Caption = " " & cmdnumber(Index).Caption End If Else If dflag = 0 Then text1.Caption = text1.Caption & "." dflag = 1 Else MsgBox ("ILLEGAL SAIRAM") End If End

7、 If' 窗体的初始化过程' 设置所有变量为其初始值。Private Sub Form_Load() 计算器.Height = 5460 计算器.Width = 4680 prev = 0 oflag = 0 ind = 0 opnre = 0 Clipboard.ClearEnd Sub3.2、平方根,平方,倒数,正弦,余弦的实现“平方根(sqrt)”按钮的click事件Private Sub cmdsqrt_Click() y = Val(text1.Caption) text1.Caption = Sqr(y)End Sub“平方(sqmt)”按钮的click事件Priv

8、ate Sub Cmdsqmt_Click()End Subx = Val(text1.Caption) text1.Caption = x 2End Sub“倒数(reciprocal)”按钮的click事件Private Sub cmdreciprocal_Click()x = Val(text1.Caption) If x = 0 Then MsgBox ("除数不能为零!") Else text1.Caption = 1 / x End IfEnd Sub“正弦(sine)”按钮的click事件Private Sub Cmdsine_Click()text1.Cap

9、tion = Sin(x)End Sub“余弦(cosine)”按钮的click事件Private Sub cmdcosine_Click()Dim a As Integera = Val(text1.Caption)text1.Caption = Cos(a)End Sub3.3、退格“退格”按钮的click事件Private Sub cmdback_Click()Dim length As Integer length = Len(text1.Caption)数字的长度 If length = 1 Then If text1.Caption <> "0" T

10、hen除非结果为零,否则长度都要减一 text1.Caption = "0" End If Else text1.Caption = Left(text1.Caption, length - 1) End If flag = TrueEnd Sub3.4、清除、清除当前数据C (取消) 按钮的 Click 事件过程Private Sub Cmdclear_Click() text1.Caption = " 0"清除所有数据CE (取消输入) 按钮的 Click 事件过程' 重新设置显示并初始化变量。Private Sub CancelEntry_

11、Click() dflag = 0 prev = 0 oflag = 0 ind = 0 opnre = 0 text1.Caption = " 0"End Sub3.5、鼠标的输入利用keypress事件,当用户按下和松开一个ASCII字符键时发生。Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = Asc(".") Then i = 10 cmdnumber_Click (i) Beep 当按下这个ASCII字符键时会发出响声 ElseIf KeyAscii = Asc("

12、;0") Then i = 0 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("1") Then i = 1 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("2") Then i = 2 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("3") Then i = 3 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("4"

13、) Then i = 4 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("5") Then i = 5 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("6") Then i = 6 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("7") Then i = 7 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("8") Then i

14、 = 8 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("9") Then i = 9 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("0") Then i = 0 cmdnumber_Click (i) Beep ElseIf KeyAscii = Asc("+") Then i = 0 cmdoperator_Click (i) Beep ElseIf KeyAscii = Asc("+") Then i = 0 c

15、mdoperator_Click (i) Beep ElseIf KeyAscii = Asc("-") Then i = 1 cmdoperator_Click (i) Beep ElseIf KeyAscii = Asc("/") Then i = 2 cmdoperator_Click (i) Beep ElseIf KeyAscii = Asc("*") Then i = 3 cmdoperator_Click (i) Beep ElseIf KeyAscii = Asc("=") Then i = 4 c

16、mdoperator_Click (i) Beep ElseIf KeyAscii = Asc("d") Or KeyAscii = Asc("D") Then dflag = 0 prev = 0 oflag = 0 ind = 0 opnre = 0 text1.Caption = " 0" Beep Beep ElseIf KeyAscii = Asc("c") Or KeyAscii = Asc("C") Then text1.Caption = " 0" Beep

17、End IfEnd Sub3.6、进制间的转换进制转换按钮的click事件Private Sub Command1_Click()Dim x As Long, y As String, s As Integer 定义Dim ch As String, n As Integerch = "0123456789ABCDEF" 把所有数字归纳If Combo1.Text = "二进制" Thenn = 2ElseIf Combo1.Text = "八进制" Thenn = 8Elsen = 16End IfEnd Ify = ""x = Val(text1.Caption)If x = 0 ThenText2.Text = ""MsgBox "请输入要转换的十进制数"text1.Caption = ""Exit SubEnd IfDo While x > 0s = x Mod n 取x/n的最大整数x = Int(x / n) 取小于或等于x/n的最大整数y = Mid(ch, s

温馨提示

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

评论

0/150

提交评论