VB实例代码-计算器.doc

上传人:飞****2 文档编号:60127269 上传时间:2022-11-13 格式:DOC 页数:6 大小:24KB
返回 下载 相关 举报
VB实例代码-计算器.doc_第1页
第1页 / 共6页
VB实例代码-计算器.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《VB实例代码-计算器.doc》由会员分享,可在线阅读,更多相关《VB实例代码-计算器.doc(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、首先,需建立如下控件:标签:Label1命令按钮:名称 Caption值Cback Cclear CECstart CCsin SinCcos CosCsqrt SqrtCsign +/-Cpoint CpointCequal =控件数组:(命令按钮)Calcu(1) +Calcu(2) -Calcu(3) *Calcu(4) /Cnum(0) 0Cnum(1) 1.Cnum(9) 9然后在代码窗口写源码:Option ExplicitDim Num1, Num2 As DoubleDim PointIn As BooleanDim Inputing As BooleanDim Operati

2、on1 As IntegerPrivate Sub Calcu_Click(i As Integer) If Inputing = False Then 在前次运算提交之后尚未输入新的数据 Operation1 = i 运算符重置 Num1 = Label1 将显示栏里的数据赋值给第一个操作数 Exit Sub End If Inputing = False 将当前状态置为非输入数据阶段 If Num1 0 Then 非首次计算 Num2 = Label1 将显示栏里的数据赋值给第二个操作数 Calculate (Operation1) 计算前一次运算并显示结果 Else 首次计算 Num1

3、= Label1 将显示栏里的数据赋值给第一个操作数 End If Operation1 = i 提交运算符End SubPrivate Sub Cback_Click() Dim TheLen As Integer TheLen = Len(Label1) If TheLen 2 Then If Right(Label1, 1) = . Then Label1 = Left(Label1, TheLen - 2) & . Else Label1 = Left(Label1, TheLen - 1) End If Else Cclear_Click End IfEnd SubPrivate S

4、ub Cclear_Click() Label1 = 0. Num2 = 0 PointIn = FalseEnd SubPrivate Sub Ccos_Click() Calculate (6) Inputing = FalseEnd SubPrivate Sub Cequal_Click() If Inputing Then 如果刚输入过数据Or Operation1 0 Then Num2 = Label1 将显示栏里的数据赋值给第二个操作数 End If Inputing = False 将当前状态置为非输入数据阶段 Calculate (Operation1) 计算提交的运算并显示

5、结果 Num1 = 0 Operation1 = 0End SubPrivate Sub Calculate(Oprt As Integer) Select Case Oprt Case 1 Num1 = Num1 + Num2 ShowResult (Num1) Case 2 Num1 = Num1 - Num2 ShowResult (Num1) Case 3 Num1 = Num1 * Num2 ShowResult (Num1) Case 4 Num1 = Num1 / Num2 ShowResult (Num1) Case 5 Num2 = Label1 Num1 = Sin(Num

6、2) ShowResult (Num1) Case 6 Num2 = Label1 Num1 = Cos(Num2) ShowResult (Num1) Case 7 Num2 = Label1 Num1 = Sqr(Num2) ShowResult (Num1) End SelectEnd SubPrivate Sub ShowResult(Num As Double) If Num = Fix(Num) Then 整数 Label1 = Num & . ElseIf Left(Num, 1) = . Then 第一个字符为小数点 Label1 = 0 & Num ElseIf Left(N

7、um, 2) = -. Then 前两个字符为-. Label1 = -0. & Right(CStr(Num), Len(CStr(Num) - 2) Else Label1 = Num End IfEnd SubPrivate Sub Cnum_Click(Index As Integer) NumInput (Index)End SubPrivate Sub Cpoint_Click() If Inputing = False Then Label1 = 0. Inputing = True End If PointIn = TrueEnd SubPrivate Sub Csign_Cl

8、ick() If Label1 0. Then Dim StrTemp As String StrTemp = Label1 If Left(StrTemp, 1) = - Then Label1 = Right(StrTemp, Len(StrTemp) - 1) Else Label1 = - & StrTemp End If End IfEnd SubPrivate Sub Csin_Click() Calculate (5) Inputing = FalseEnd SubPrivate Sub Csqrt_Click() Dim x As Long x = Label1 If x =

9、0 Then Calculate (7) Else Label1 = Error! End If Inputing = FalseEnd SubPrivate Sub Cstart_Click() Label1 = 0. Num1 = 0 Num2 = 0 PointIn = False Inputing = True Operation1 = 0End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Cequal.SetFocus If KeyCode = 46 Then 按Del键 Cclear_Click

10、 End If End SubPrivate Sub Form_KeyPress(KeyAscii As Integer) Select Case KeyAscii 键入数字: Case 48 To 57 NumInput (KeyAscii - 48) Case 46 小数点 Cpoint_Click 键入运算符: Case 43 加号 Calcu_Click (1) Case 45 减号 Calcu_Click (2) Case 42 乘号 Calcu_Click (3) Case 47 除号 Calcu_Click (4) Case 27 重新开始(退出键) Cstart_Click C

11、ase 8 退格 Cback_Click Case 13 等于(回车键) Cequal_Click End SelectEnd SubPrivate Sub Form_Load() Me.Top = (Screen.Height - Me.Height) / 2 Me.Left = (Screen.Width - Me.Width) / 2 Me.KeyPreview = True Cstart_ClickEnd SubPrivate Sub NumInput(n As Integer) If Len(Label1) 15 Then Exit Sub End If If Inputing =

12、False Then Cclear_Click Label1 = n & . Inputing = True ElseIf Label1 0. Then If Right(Label1, 1) = . Then If PointIn = False Then Dim TheLen As Integer TheLen = Len(Label1) Label1 = Left(Label1, TheLen - 1) Label1 = Label1 & n & . Else Label1 = Label1 & n End If Else Label1 = Label1 & n End If Else If PointIn Then Label1 = Label1 & n Else Label1 = n & . End If End IfEnd Sub

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com