vb代码——计算器.doc_第1页
vb代码——计算器.doc_第2页
vb代码——计算器.doc_第3页
vb代码——计算器.doc_第4页
vb代码——计算器.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

第三题 Option ExplicitPrivate StoredValue As Double 中间计算值Private Store1 As DoublePrivate Const opNone = 0 代表没有运算符Private Const opAdd = 1 代表加法常量Private Const opSubtract = 2 代表减法常量Private Const opMultiply = 3 代表乘法常量Private Const opDivide = 4 代表除法常量Private Operator As Integer 计算符号 因子Private NewEntry As Boolean 新数据项逻辑变量,若为True,说明无新数据Private jscs As IntegerPrivate Const pi = 3.1415926Private Sub CmdBack_Click() 删除最后一个字符. Dim txt As String Dim min_len As Integer txt = txtDisplay.Text If Left$(txt, 1) = - Then 假如txt中的第一个字符是负号,只有两个字符,删除就会使之为0 min_len = 2 Else 假如txt是正数,只有一个字符,删除就会使之为0 min_len = 1 End If If Len(txt) min_len Then txtDisplay.Text = Left$(txt, Len(txt) - 1) Else txtDisplay.Text = 0 End IfEnd SubPrivate Sub CmdCal_Click(Index As Integer) Select Case Index Case 0 Operator = opAdd Case 1 Operator = opSubtract Case 2 Operator = opMultiply Case 3 Operator = opDivide End Select NewEntry=True 这种方法正确,但显得比较烦琐,下面的方法显得更为简单,不但调用了CmdEqual_Click程序 且运算符号可以直接计算 jscs = jscs + 1 If jscs 1 Then 执行前面的操作 cmdEqual_Click End If 存储操作符 Operator = Index + 1 开始新数据. NewEntry = True End SubPrivate Sub cmdClear_Click() cmdClearEntry_Click StoredValue = 0 jscs = 0 Operator = opNoneEnd SubPrivate Sub cmdClearEntry_Click() txtDisplay.Text = 0End SubPrivate Sub cmdNum_Click(Index As Integer) If NewEntry Then txtDisplay.Text = Format$(Index) NewEntry = False Else If txtDisplay.Text = 0 Then txtDisplay.Text = Format$(Index) Else txtDisplay.Text = txtDisplay.Text & Format$(Index) End If End IfEnd SubPrivate Sub cmdOFF_Click() Unload MeEnd SubPrivate Sub cmdPn_Click() 正负键输入 If NewEntry Then 假如是新数据,则敲+/-键为负号 txtDisplay.Text = - ElseIf Left$(txtDisplay.Text, 1) = - Then 假若数据本身为负值,则按此键变为正值 txtDisplay.Text = Right$(txtDisplay.Text, 2) Else txtDisplay.Text = - & txtDisplay.Text 若数据为正值,则转化为负值 End IfEnd SubPrivate Sub cmdDecimal_Click() 小数点输入 If InStr(txtDisplay.Text, .) Then 若数据中已有小数点,则发出Beep的声音 Beep Else If NewEntry Then txtDisplay.Text = . 若为新数据,则直接输入小数点,数据变为旧数据 NewEntry = False Else txtDisplay.Text = txtDisplay.Text & . 若为旧数据,则将以前数据与小数点相连 End If End IfEnd Sub 计算上述计算操作的结果Private Sub cmdEqual_Click() Dim new_value As Double If txtDisplay.Text = Then 若数据框中无数据则为,否则将该数转换为双精度数 new_value = 0 Else new_value = CDbl(txtDisplay.Text) End If Select Case Operator Case opNone StoredValue = new_value Case opAdd StoredValue = StoredValue + new_value Case opSubtract StoredValue = StoredValue - new_value Case opMultiply StoredValue = StoredValue * new_value Case opDivide StoredValue = StoredValue / new_value End Select Operator = opNone NewEntry = True txtDisplay.Text = StoredValue txtResult.Text = Format$(StoredValue) End SubPrivate Sub CmdStorage_Click(Index As Integer) Select Case Index Case 0 Store1 = Store1 + CDbl(txtDisplay.Text) NewEntry = True If Store1 0 Then txtM.Visible = True Else txtM.Visible = False Case 1 txtDisplay.Text = CStr(Store1) If Store1 0 Then txtM.Visible = True Else txtM.Visible = False MsgBox 寄存器中的数据为 & txtDisplay.Text Case 2 Store1 = 0 txtDisplay.Text = 0 MsgBox 寄存器中的数据已清0 txtM.Visible = False End Select End SubPrivate Sub cmdTransfer_Click() frmTransfer.Show 1End SubPrivate Sub Command1_Click(Index As Integer) Dim Result As Double, angle As Single, x As Double If txtDisplay.Text = Then MsgBox 请输入数据: Exit Sub NewEntry = True Select Case Index Case 0 求正弦,输入角度单位为度 angle = CDbl(txtDisplay) * pi / 180 Result = Sin(angle) txtDisplay = Format(Result, #0.#) Case 1 求余弦,输入角度单位为度 angle = CDbl(txtDisplay) * pi / 180 Result = Cos(angle) txtDisplay = Format(Result, #0.#) Case 2 求正切,输入角度单位为度 angle = CDbl(txtDisplay) * pi / 180 Result = Tan(angle) txtDisplay = Format(Result, #0.#) Case 3 求余切,输入角度单位为度 angle = CDbl(txtDisplay) * pi / 180 Result = 1 / Tan(angle) txtDisplay = Format(Result, #0.#) Case 4 求反正弦 If Val(txtDisplay.Text) 1 Or Val(txtDisplay.Text) 1 Or Val(txtDisplay.Text) 12 Then MsgBox 所输入的整数太大,其阶乘超出长整型范围。 txtDisplay.Text = 0 txtDisplay.SetFocus Exit Sub End If Result = Factor(n) txtDisplay = CStr(Result) Case 11 求自然对数 x = CDbl(txtDisplay.Text) If x 0 Then MsgBox 所输入的数不能为负,请重新输入。 txtDisplay.Text = 0 Exit Sub End If Result = Log(x) txtDisplay = Format(Result, #0

温馨提示

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

评论

0/150

提交评论