




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、VB6.0的小程序 計算器對于剛?cè)腴T學習VB6的朋友來說肯定會做些小程序吧,這里就是給大家演示個簡單的計算器程序,僅供參考啦。界面上加減乘除四個按鈕分別是cmdAdd、cmdPlus、cmdMultiple、cmdDevide,小數(shù)點按鈕是cmdDot,負號按鈕是cmdMinuse,數(shù)字09為了偷懶,用了控件數(shù)組cmdNumber(0) cmdNumber(9),上面txtShow是顯示數(shù)字和結(jié)果用的,txtOperate是顯示中間步驟的。思路大致是這樣,點加減乘除這類操作符的時候,把當前txtShow的值保存在模塊變量mstrParam1里,同時把操作符保存到mstrOperate里,按等于
2、號時把先把當前txtShow的值保存在模塊變量mstrParam2里,然后對mstrParam1和mstrParam2進行運算,當然要記得設法把String轉(zhuǎn)換成數(shù)值進行運算。 轉(zhuǎn)換的過程要注意,這里是用的Variant數(shù)據(jù)類型,vParam1和vParam2都是Variant類型,保存的是mstrParam1和mstrParam2的數(shù)值。之所以不用integer、long、double這些標準類型,是因為這些類型都有大小限制,做出來用著不方便,VB最大的整型long才到 2147483647,這意味著計算器的計算結(jié)果只能限制在9位到10位。而Variant類型可以支持非常大的數(shù),具體多大不清
3、楚,但起碼幾十位是能夠支持的。另外,最后算完的結(jié)果也要做格式化,因為如果數(shù)值非常大的話,VB會自動轉(zhuǎn)成科學計數(shù)法,所以要用Format函數(shù)進行調(diào)整。如果需要源代碼的話在我百度空間里留言。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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 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年鋁合金精密模鍛件合作協(xié)議書
- 2025年度商鋪租用承諾書規(guī)范版4篇
- 行業(yè)趨勢與發(fā)展目標分析計劃
- 師生互動促進學習效果的研究計劃
- 新年職場新風格與工匠精神計劃
- 如何利用社群效應推動品牌計劃
- 班主任的心理情感輔導計劃
- 企業(yè)財務戰(zhàn)略的執(zhí)行方法計劃
- 倉庫持續(xù)改進的必要性與方法計劃
- 5000只淮山羊和波爾山羊雜交良種養(yǎng)殖場建設項目可行性研究報告
- GB/T 5534-2008動植物油脂皂化值的測定
- GB/T 12771-2019流體輸送用不銹鋼焊接鋼管
- 測量管理體系內(nèi)審檢查表
- 工程驗收及移交管理方案
- 心臟手術麻醉的一般流程課件
- 圖片編輯概述課件
- 2023年岳陽職業(yè)技術學院單招職業(yè)技能考試筆試題庫及答案解析
- 信號與系統(tǒng)復習題及答案
- 北師大版八年級數(shù)學上冊《認識無理數(shù)(第2課時)》參考課件2
- 中級建構(gòu)筑物消防員理論綜合模擬題01原題
評論
0/150
提交評論