欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    毕业设计论文基于VB的计算器的设计与实现.docx

    • 资源ID:3607600       资源大小:42.90KB        全文页数:22页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计论文基于VB的计算器的设计与实现.docx

    毕业设计论文基于VB的计算器的设计与实现摘 要 我用VB制作这个程序的简单计算器,它包括一个标准的计算器和一个科学计算器。它可以实现简单的加减乘除四则运算,数字的平方、平方根,正弦、余弦、正切,倒数、指数函数、对数函数,角度、弧度、梯度的转换,以及各进制的相互转换。而且它的功能还有退格,清除当前数据,清除所有数据,复制数据,粘贴数据。 在这个计算器的程序中,我用到了单行选择语句If Then Else, 块语句ifthenend if,If语句的嵌套,多条件选择语句Select Case,而且还用到了按钮、文本框、框架、单选按钮控件,菜单的设计。 在此报告中我重点叙述了计算机的各个功能及用法。特别是进制间的转换和数字与运算符之间的联系。虽然描述的不太完整,但我会尽力使用系统结构图,划分多个模块,让大家明白我设计的运算器的功能的。 - 1 - 目 录 第一章、程序概述 . 错误!未定义书签。 1.1、创作目的 . 错误!未定义书签。 1.2、基本功能 . 错误!未定义书签。 第二章、总体设计 . 错误!未定义书签。 2.1、程序轮廓图 . 错误!未定义书签。 第三章、程序代码 . 错误!未定义书签。 3.1、计算器界面 . 错误!未定义书签。 3.1.1、标准型计算器: . 错误!未定义书签。 3.1.2、科学型计算器: . 错误!未定义书签。 3.2、标准计算器代码 . 错误!未定义书签。 3.2.1、变量的定义及初始化 . 错误!未定义书签。 3.2.2、简单的运算 . 错误!未定义书签。 3.2.3、退格、清除、清空 . 错误!未定义书签。 3.2.4、复制、粘贴 . 错误!未定义书签。 3.2.5、两窗体的切换 . 错误!未定义书签。 3.3、科学型计算器的代码 . 错误!未定义书签。 3.3.1、变量的定义及初始化 . 错误!未定义书签。 3.3.2、简单的运算 . 错误!未定义书签。 3.3.3、正弦、余弦、正切 . 错误!未定义书签。 3.3.4、平方、立方、多次方 . 错误!未定义书签。 3.3.5、指数函数、对数函数 . 错误!未定义书签。 3.3.6、倒数、平方根 . 错误!未定义书签。 3.3.7、角度、弧度、梯度 . 错误!未定义书签。 - 2 - 3.3.8、各进制转换 . 错误!未定义书签。 3.3.9、退格、清除、清空 . 错误!未定义书签。 3.3.10、复制、粘贴 . 错误!未定义书签。 3.3.11、两窗体的切换 . 错误!未定义书签。 第四章、总结 . 错误!未定义书签。 4.1、对学习者知识的要求: . 错误!未定义书签。 4.2、学习程序设计基本要求: . 错误!未定义书签。 4.3、程序设计方法概述 . 错误!未定义书签。 4.4、如何学好VB . 错误!未定义书签。 4.5、不足之处 . 错误!未定义书签。 参考文献 . 错误!未定义书签。 - 3 - 第一章、程序概述 1.1、创作目的 本程序的目标是建立一套可以计算数的平方,平方根,倒数,正弦,余弦,正切,指数函数,对数函数,角度、弧度、梯度相互转换和数字的 进制转换的计算器系统,系统可以帮助我们更快的计算,更好的学习,更 好的节省时间。还能避免出现一些不必要的计算错误。 1.2、基本功能 1) 能够完成整型和实型常数的四则运算。 2) 能够进行如下函数的求值运算,包括sin, cos,tan, exp, log, sqr, 1/x,及和园周率。 3) 能够实现角度、弧度、梯度的相互转换。 4) 能够实现的进制的相互转换。 5) 输出时的格式:结果为整数时不显示小数点,结果为1以下小数时要显示前导0。 6) 分门别类采用控件数组,以减少事件处理的复杂程度,使程序简洁高效。 7) 能够实现退格键、清除、清空功能。 8) 出错处理:操作数如果不符合数学上的定义,应该给出错误信息。例:0做除数,负数或0做真数等情况 - 4 - 第二章、总体设计 2.1、程序轮廓图 输入数字 平方根 选择转退 格 平方 换的进简单四立方 则运算 转换 清除当前正弦 数据 余弦 清除说有正切 角度、数据 弧度、倒数 梯度的指数函数 转换 对数函数 结 果 图 一 - 5 - 第三章、程序代码 3.1、计算器界面 3.1.1、标准型计算器: 图 二 - 6 - 3.1.2、科学型计算器: 图 三 - 7 - 3.2、标准计算器代码 3.2.1、变量的定义及初始化 Dim dflag As Integer Dim i As Integer Dim opnre As Integer Dim prev As Double Dim oflag As Integer Dim ind As Integer Dim X As Double Dim Y As Double Private Sub Form_Load prev = 0 oflag = 0 ind = 0 opnre = 0 Clipboard.Clear ang = 3.14 / 180 End Sub 3.2.2、简单的运算 Private Sub Command1_Click(Index As Integer) If ind = 4 Then prev = 0 Text1.Text = " " ind = 0 End If - 8 - opnre = 0 If oflag = 0 Then Text1.Text = " " End If oflag = 1 If Command1(Index).Caption <> "." Then If Text1.Text <> " 0" Then Text1.Text = Text1.Text Command1(Index).Caption Else Text1.Text = " " Command1(Index).Caption End If Else If dflag = 0 Then Text1.Text = Text1.Text & "." dflag = 1 Else MsgBox ("Error") End If End If End Sub Private Sub Command2_Click(Index As Integer) If opnre = 0 Or Index = 4 Then If ind = 0 Then prev = prev + Val(Text1.Text) ElseIf ind = 1 Then & & - 9 - prev = prev - Val(Text1.Text) ElseIf ind = 2 Then If Val(Text1.Text) = 0 Then MsgBox ("SORRY DIVIDE ZERO") Exit Sub Else prev = prev / Val(Text1.Text) End If ElseIf ind = 3 Then prev = prev * Val(Text1.Text) End If Text1.Text = Str(prev) oflag = 0 End If opnre = 1 ind = Index dflag = 0 End Sub 3.2.3、退格、清除、清空 Private Sub Command3_Click Dim length As Integer length = Len(Text1.Text) If length = 1 Then If Text1.Text <> "0" Then Text1.Text = "0" End If - 10 - Else Text1.Text = Left(Text1.Text, length - 1) End If flag = True End Sub Private Sub Command4_Click dflag = 0 prev = 0 oflag = 0 ind = 0 opnre = 0 Text1.Text = " 0" End Sub Private Sub Command5_Click Text1.Text = " 0" End Sub 3.2.4、复制、粘贴 Private Sub fz_Click Clipboard.Clear Clipboard.SetText Text1.Text End Sub Private Sub zt_Click Text1.Text = "" - 11 - Text1.Text = Clipboard.GetText End Sub 3.2.5、两窗体的切换 Private Sub ck_Click form1.Hide Form2.Show End Sub Private Sub ckx_Click Form2.Hide form1.Show End Sub 3.3、科学型计算器的代码 3.3.1、变量的定义及初始化 Dim dflag As Integer Dim i As Integer Dim opnre As Integer Dim prev As Double Dim oflag As Integer Dim ind As Integer Dim X As Double Dim Y As Double Private Sub Form_Load prev = 0 oflag = 0 - 12 - ind = 0 opnre = 0 Clipboard.Clear ang = 3.14 / 180 End Sub 3.3.2、简单的运算 Private Sub Command1_Click(Index As Integer) If ind = 4 Then prev = 0 Text1.Text = " " ind = 0 End If opnre = 0 If oflag = 0 Then Text1.Text = " " End If oflag = 1 If Command1(Index).Caption <> "." Then If Text1.Text <> " 0" Then Text1.Text = Text1.Text Command1(Index).Caption Else Text1.Text = " " Command1(Index).Caption End If Else & & - 13 - If dflag = 0 Then Text1.Text = Text1.Text & "." dflag = 1 Else MsgBox ("Error") End If End If End Sub Private Sub Command2_Click(Index As Integer) If opnre = 0 Or Index = 4 Then If ind = 0 Then prev = prev + Val(Text1.Text) ElseIf ind = 1 Then prev = prev - Val(Text1.Text) ElseIf ind = 2 Then If Val(Text1.Text) = 0 Then MsgBox ("SORRY DIVIDE ZERO") Exit Sub Else prev = prev / Val(Text1.Text) End If ElseIf ind = 3 Then prev = prev * Val(Text1.Text) End If Text1.Text = Str(prev) oflag = 0 End If - 14 - opnre = 1 ind = Index dflag = 0 End Sub 3.3.3、正弦、余弦、正切 Private Sub Command5_Click Text1.Text = Str(Sin(ang * Val(Text1.Text) End Sub Private Sub Command6_Click Text1.Text = Str(Cos(ang * Val(Text1.Text) End Sub Private Sub Command7_Click If (Cos(Val(Text1.Text) <> 0 Then Text1.Text = Str(Sin(ang * Val(Text1.Text) / Cos(ang * Val(Text1.Text) Else MsgBox ("该数无正切值 ") Text1.Text = "0" End If End Sub 3.3.4、平方、立方、多次方 Private Sub Command8_Click X = Val(Text1.Text) Text1.Text = X 2 End Sub - 15 - Private Sub Command9_Click X = Val(Text1.Text) Text1.Text = X 3 End Sub Private Sub Command10_Click If (Text1.Text = "" Or prev = 0) Then MsgBox ("不合法输入!") Text1.Text = "0" Else prev = power(prev, Fix(Val(Text1.Text) End If End Sub 3.3.5、指数函数、对数函数 Private Sub Command11_Click e = Val(Text1.Text) Text1.Text = Exp(e) End Sub Private Sub Command12_Click L = Val(Text1.Text) Text1.Text = Log(L) End Sub 3.3.6、倒数、平方根 Private Sub Command13_Click X = Val(Text1.Text) If X = 0 Then - 16 - MsgBox ("除数不能为零!") Else Text1.Text = 1 / X End If End Sub Private Sub Command14_Click If Text1.Text < 0 Then MsgBox ("负数不能开方") Text1.Text = "0" Else Text1.Text = Str(Sqr(Val(Text1.Text) End If End Sub 3.3.7、角度、弧度、梯度 Private Sub Option5_Click(Index As Integer) Dim jd As Double, hu As Double, td As Double ju = Val(Text1.Text) Select Case Index Case 0 Text1.Text = ju Case 1 hu = 3.141592654 / 180 * ju Text1.Text = hu Case 2 td = 3.141592654 / 200 Text1.Text = td - 17 - End Select ind = Index End Sub 3.3.8、各进制转换 Private Sub Option1_Click(Index As Integer) Static r Select Case Index Case 0 Dim w As Integer For w = 2 To 9 Command1(w).Enabled = True Next w For w = 0 To 5 Command3(w).Enabled = True Next w If r = 10 Then Text1.Text = trandec(Val(Text1.Text), 16) ElseIf r = 2 Then Text1.Text = Two16(Text1.Text) ElseIf r = 8 Then Text1.Text = OCT_to_HEX(Text1.Text) End If r = 16 Case 1 Dim X As Integer For X = 2 To 9 - 18 - Command1(X).Enabled = True Next X For X = 0 To 5 Command3(X).Enabled = False Next X Text1.Text = Convert(Text1.Text, r) If r = 8 Then Text1.Text = trandec(Val(Text1.Text), 10) r = 10 Case 2 Dim Y As Integer For Y = 2 To 7 Command1(Y).Enabled = True Next Y Command1(8).Enabled = False Command1(9).Enabled = False For Y = 0 To 5 Command3(Y).Enabled = False Next Y If r = 10 Then Text1.Text = trandec(Val(Text1.Text), 8) ElseIf r = 16 Then Text1.Text = HEX_to_OCT(Text1.Text) ElseIf r = 2 Then Text1.Text = BIN_to_OCT(Text1.Text) End If r = 8 - 19 - Case 3 Dim z As Integer For z = 2 To 9 Command1(z).Enabled = False Next z For z = 0 To 5 Command3(z).Enabled = False Next z If r = 10 Then Text1.Text = trandec(Val(Text1.Text), 2) End If If r = 16 Then Text1.Text = HEX_to_BIN(Text1.Text) ElseIf r = 8 Then Text1.Text = OCT_to_BIN(Text1.Text) End If r = 2 End Select Y = N End Sub Function fact(num As Long) As Long If (num < 0 Or num = 0) Then MsgBox ("Error") fact = num Else If (num > 12) Then MsgBox ("指太大") - 20 - fact = num Else re = 1 While (num > 0) re = re * num num = num - 1 Wend fact = re End If End If End Function Public Function trandec$(ByVal m%, ByVal r%) Dim strdtor$ Dim iB%, mr% strdtor = "" Do While m <> 0 mr = m Mod r m = m r If mr >= 10 Then strdtor = Chr(mr - 10 + 65) & strdtor Else strdtor = mr & strdtor End If Loop trandec = strdtor End Function Public Function Convert(ByVal S As String, ByVal N As - 21 - Integer) As Double Dim r As String Dim i As Integer Dim j As Integer L |U|V|W|X|Y|Z" r = Split(L, "|") For i = 1 To Len(S) For j = 0 To UBound(r) If UCase(Mid(S, i, 1) = r(j) Then Convert = Convert * N + j End If Next j Next i End Function Private Function Two16(ByVal X As String) As String Do While Len(X) Mod 4 <> 0 X = "0" + X Loop Do While Len(X) > 0 Select Case Right(X, 4) Case "0000" Two16 = "0" + Two16 Case "0001" Two16 = "1" + Two16 Case "0010" - 22 - = "0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T Two16 = "2" + Two16 Case "0011" Two16 = "3" + Two16 Case "0100" Two16 = "4" + Two16 Case "0101" Two16 = "5" + Two16 Case "0110" Two16 = "6" + Two16 Case "0111" Two16 = "7" + Two16 Case "1000" Two16 = "8" + Two16 Case "1001" Two16 = "9" + Two16 Case "1010" Two16 = "A" + Two16 Case "1011" Two16 = "B" + Two16 Case "1100" Two16 = "C" + Two16 Case "1101" Two16 = "D" + Two16 Case "1110" Two16 = "E" + Two16 Case "1111" Two16 = "F" + Two16 - 23 - End Select X = Left(X, Len(X) - 4) Loop End Function Public Function HEX_to_BIN(ByVal Hex As String) As String Dim i As Long Dim B As String Hex = UCase(Hex) For i = 1 To Len(Hex) Select Case Mid(Hex, i, 1) Case "0": B = B & "0000" Case "1": B = B & "0001" Case "2": B = B & "0010" Case "3": B = B & "0011" Case "4": B = B & "0100" Case "5": B = B & "0101" Case "6": B = B & "0110" Case "7": B = B & "0111" Case "8": B = B & "1000" Case "9": B = B & "1001" Case "A": B = B & "1010" Case "B": B = B & "1011" Case "C": B = B & "1100" Case "D": B = B & "1101" Case "E": B = B & "1110" Case "F": B = B & "1111" End Select - 24 - Next i Do While Left(B, 1) = "0" B = Right(B, Len(B) - 1) Loop HEX_to_BIN = B End Function Public Function OCT_to_BIN(ByVal Oct As String) As String Dim i As Long Dim B As String For i = 1 To Len(Oct) Select Case Mid(Oct, i, 1) Case "0": B = B & "000" Case "1": B = B & "001" Case "2": B = B & "010" Case "3": B = B & "011" Case "4": B = B & "100" Case "5": B = B & "101" Case "6": B = B & "110" Case "7": B = B & "111" End Select Next i While Left(B, 1) = "0" B = Right(B, Len(B) - 1) Wend OCT_to_BIN = B End Function Public Function HEX_to_OCT(ByVal Hex As String) As String - 25 - Dim bin As String Hex = UCase(Hex) bin = HEX_to_BIN(Hex) HEX_to_OCT = BIN_to_OCT(bin) End Function Public Function BIN_to_OCT(ByVal bin As String) As String Dim i As Long Dim H As String If Len(bin) Mod 3 <> 0 Then bin = String(3 - Len(bin) Mod 3, "0") & bin End If For i = 1 To Len(bin) Step 3 Select Case Mid(bin, i, 3) Case "000": H = H & "0" Case "001": H = H & "1" Case "010": H = H & "2" Case "011": H = H & "3" Case "100": H = H & "4" Case "101": H = H & "5" Case "110": H = H & "6" Case "111": H = H & "7" End Select Next i While Lef

    注意事项

    本文(毕业设计论文基于VB的计算器的设计与实现.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开