資源描述:
《用vb編寫一個簡單計算器》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、用VB編寫一個簡單計算器一、功能:實現(xiàn)簡單的加減乘除功能,C歸零,CE取消輸入,%計算并顯示第一個操作數(shù)的百分比。二、控件:1個label,20個commandbutton。三、計算器運行界面:四、詳細代碼:OptionExplicitDimOp1,Op2'前面輸入的操作數(shù)DimDecimalFlagAsInteger'小數(shù)點仍然存在嗎?DimNumOpsAsInteger'操作數(shù)個數(shù)DimLastInput'指示上一次按鍵事件的類型DimOpFlag'指示未完成的操作DimTempReadout'C(取消)按鈕的Click事件過
2、程'重新設(shè)置顯示并初始化變量PrivateSubCancel_Click()Readout=Format(0,"0.")Op1=0Op2=0Form_LoadEndSub'CE(取消輸入)按鈕的Click事件過程PrivateSubCancelEntry_Click()Readout=Format(0,"0.")DecimalFlag=FalseLastInput="CE"EndSub'小數(shù)點(.)按鈕的Click事件過程'如果上一次按鍵為運算符,初始化readout為"0.";'否則顯示時追加一個小數(shù)點PrivateSubDec
3、imal_Click()IfLastInput="NEG"ThenReadout=Format(0,"-0.")ElseIfLastInput<>"NUMS"ThenReadout=Format(0,"0.")EndIfDecimalFlag=TrueLastInput="NUMS"EndSub'窗體的初始化過程'設(shè)置所有變量為其初始值PrivateSubForm_Load()DecimalFlag=FalseNumOps=0LastInput="NONE"OpFlag=""Readout=Format(0,"0.")'Decim
4、al.Caption=Format(0,".")EndSub'數(shù)字鍵(0-9)的Click事件過程'向顯示中的數(shù)追加新數(shù)PrivateSubNumber_Click(IndexAsInteger)IfLastInput<>"NUMS"ThenReadout=Format(0,".")DecimalFlag=FalseEndIfIfDecimalFlagThenReadout=Readout+Number(Index).CaptionElseReadout=Left(Readout,InStr(Readout,Format(0,".
5、"))-1)+Number(Index).Caption+Format(0,".")EndIfIfLastInput="NEG"ThenReadout="-"&ReadoutLastInput="NUMS"EndSub'運算符(+,-,x,/,=)的Click事件過程'如果接下來的按鍵是數(shù)字鍵,增加NumOps。'如果有一個操作數(shù),則設(shè)置Op1。'如果有兩個操作數(shù),則將Op1設(shè)置為Op1與'當前輸入字符串的運算結(jié)果,并顯示結(jié)果PrivateSubOperator_Click(IndexAsInteger)TempReadout=R
6、eadoutIfLastInput="NUMS"ThenNumOps=NumOps+1EndIfSelectCaseNumOpsCase0IfOperator(Index).Caption="-"AndLastInput<>"NEG"ThenReadout="-"&ReadoutLastInput="NEG"EndIfCase1Op1=ReadoutIfOperator(Index).Caption="-"AndLastInput<>"NUMS"AndOpFlag<>"="ThenReadout="-"LastInput="NEG
7、"EndIfCase2Op2=TempReadoutSelectCaseOpFlagCase"+"Op1=CDbl(Op1)+CDbl(Op2)Case"-"Op1=CDbl(Op1)-CDbl(Op2)Case"X"Op1=CDbl(Op1)*CDbl(Op2)Case"/"IfOp2=0ThenMsgBox"除數(shù)不能為0",48,"計算器"ElseOp1=CDbl(Op1)/CDbl(Op2)EndIfCase"="Op1=CDbl(Op2)Case"%"Op1=CDbl(Op1)*CDbl(Op2)EndSelectRead
8、out=Op1NumOps=1EndSelectIfLastInput<>"NEG"ThenLastInput="OPS"OpFlag=Operator(Index).CaptionEndIfEndSub'百分比鍵(%)的Click事件過程'計算并