




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VB6.0的小程序 计算器对于刚入门学习VB6的朋友来说肯定会做些小程序吧,这里就是给大家演示个简单的计算器程序,仅供参考啦。界面上加减乘除四个按钮分别是cmdAdd、cmdPlus、cmdMultiple、cmdDevide,小数点按钮是cmdDot,负号按钮是cmdMinuse,数字09为了偷懒,用了控件数组cmdNumber(0) cmdNumber(9),上面txtShow是显示数字和结果用的,txtOperate是显示中间步骤的。思路大致是这样,点加减乘除这类操作符的时候,把当前txtShow的值保存在模块变量mstrParam1里,同时把操作符保存到mstrOperate里,按等于
2、号时把先把当前txtShow的值保存在模块变量mstrParam2里,然后对mstrParam1和mstrParam2进行运算,当然要记得设法把String转换成数值进行运算。 转换的过程要注意,这里是用的Variant数据类型,vParam1和vParam2都是Variant类型,保存的是mstrParam1和mstrParam2的数值。之所以不用integer、long、double这些标准类型,是因为这些类型都有大小限制,做出来用着不方便,VB最大的整型long才到 2147483647,这意味着计算器的计算结果只能限制在9位到10位。而Variant类型可以支持非常大的数,具体多大不清
3、楚,但起码几十位是能够支持的。另外,最后算完的结果也要做格式化,因为如果数值非常大的话,VB会自动转成科学计数法,所以要用Format函数进行调整。如果需要源代码的话在我百度空间里留言。Option ExplicitPrivate Const mstrFORMATDEFAULT As String = "#.#"Private mstrParam1 As String, mstrParam2 As StringPrivate mstrOperate As StringPrivate Sub cmdAdd_Click() mstrParam1 = Trim(txtShow.T
4、ext) mstrOperate = "+" txtShow.Text = "" txtOperate.Text = txtOperate.Text & mstrParam1 & vbCrLf txtOperate.Text = txtOperate.Text & mstrOperate & vbCrLf End SubPrivate Sub cmdPlus_Click() mstrParam1 = Trim(txtShow.Text) mstrOperate = "-" txtShow.Text =
5、"" txtOperate.Text = txtOperate.Text & mstrParam1 & vbCrLf txtOperate.Text = txtOperate.Text & mstrOperate & vbCrLf End SubPrivate Sub cmdMultiple_Click() mstrParam1 = Trim(txtShow.Text) mstrOperate = "*" txtShow.Text = "" txtOperate.Text = txtOperate.Te
6、xt & mstrParam1 & vbCrLf txtOperate.Text = txtOperate.Text & mstrOperate & vbCrLf End SubPrivate Sub cmdDevide_Click() mstrParam1 = Trim(txtShow.Text) mstrOperate = "/" txtShow.Text = "" txtOperate.Text = txtOperate.Text & mstrParam1 & vbCrLf txtOperate.Te
7、xt = txtOperate.Text & mstrOperate & vbCrLf End SubPrivate Sub cmdDot_Click() Dim mstrShow As String Dim i As Integer mstrShow = "." i = InStr(1, txtShow.Text, mstrShow) If i <= 0 Then txtShow.Text = txtShow.Text & mstrShow End If End SubPrivate Sub cmdMinuse_Click() Dim mst
8、rShow As String Dim i As Integer mstrShow = "-" i = InStr(1, txtShow.Text, mstrShow) If i <= 0 Then txtShow.Text = mstrShow & txtShow.Text Else txtShow.Text = Right(txtShow.Text, Len(txtShow.Text) - 1) End If End SubPrivate Sub cmdNumber_Click(Index As Integer) Dim mstrShow As Strin
9、g mstrShow = Index txtShow.Text = txtShow.Text & mstrShow End SubPrivate Sub cmdClear_Click() txtShow.Text = ""End SubPrivate Sub cmdResult_Click() Dim vParam1 As Variant, vParam2 As Variant Dim vResult As Variant Dim strResult As String Dim i As Long Dim blnBeforeDot As Boolean Dim ln
10、gDotPos As Long Dim blnMinuse As Boolean mstrParam2 = Trim(txtShow.Text) txtOperate.Text = txtOperate.Text & mstrParam2 & vbCrLf vParam1 = 0 blnBeforeDot = True lngDotPos = -1 blnMinuse = False For i = 1 To Len(mstrParam1) If IsNumeric(Mid(mstrParam1, i, 1) = True Then If blnBeforeDot = True
11、 Then vParam1 = vParam1 * 10 + CByte(Mid(mstrParam1, i, 1) Else vParam1 = vParam1 + CByte(Mid(mstrParam1, i, 1) * (0.1 (i - lngDotPos) End If ElseIf Mid(mstrParam1, i, 1) = "." Then blnBeforeDot = False lngDotPos = i ElseIf Mid(mstrParam1, i, 1) = "-" Then blnMinuse = True End If
12、 Next i If blnMinuse = True Then vParam1 = -vParam1 End If vParam2 = 0 blnBeforeDot = True lngDotPos = -1 blnMinuse = False For i = 1 To Len(mstrParam2) If IsNumeric(Mid(mstrParam2, i, 1) = True Then If blnBeforeDot = True Then vParam2 = vParam2 * 10 + CByte(Mid(mstrParam2, i, 1) Else vParam2 = vPar
13、am2 + CByte(Mid(mstrParam2, i, 1) * (0.1 (i - lngDotPos) End If ElseIf Mid(mstrParam2, i, 1) = "." Then blnBeforeDot = False lngDotPos = i ElseIf Mid(mstrParam2, i, 1) = "-" Then blnMinuse = True End If Next i If blnMinuse = True Then vParam2 = -vParam2 End If Select Case mstrOperate Case "+" vResult = vParam1 + vParam2 Case "-" vResult = vParam1 - vParam2 Case "*" vResult = vParam1 * vParam2 Case "/" vResult = vParam1 / vParam2 End Select txtOperate.Text = txtOperate.Text & "=" & vbCrLf strResult =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 25178-605:2025 EN Geometrical product specifications (GPS) - Surface texture: Areal - Part 605: Design and characteristics of non-contact (point autofocus probe) instrum
- 2025年铝合金精密模锻件合作协议书
- 2025年度商铺租用承诺书规范版4篇
- 行业趋势与发展目标分析计划
- 师生互动促进学习效果的研究计划
- 新年职场新风格与工匠精神计划
- 如何利用社群效应推动品牌计划
- 班主任的心理情感辅导计划
- 企业财务战略的执行方法计划
- 仓库持续改进的必要性与方法计划
- 5000只淮山羊和波尔山羊杂交良种养殖场建设项目可行性研究报告
- GB/T 5534-2008动植物油脂皂化值的测定
- GB/T 12771-2019流体输送用不锈钢焊接钢管
- 测量管理体系内审检查表
- 工程验收及移交管理方案
- 心脏手术麻醉的一般流程课件
- 图片编辑概述课件
- 2023年岳阳职业技术学院单招职业技能考试笔试题库及答案解析
- 信号与系统复习题及答案
- 北师大版八年级数学上册《认识无理数(第2课时)》参考课件2
- 中级建构筑物消防员理论综合模拟题01原题
评论
0/150
提交评论