資源描述:
《用vb編寫一個(gè)簡單計(jì)算器》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、用VB編寫一個(gè)簡單計(jì)算器一、功能:實(shí)現(xiàn)簡單的加減乘除功能,C歸零,CE取消輸入,%計(jì)算并顯示第一個(gè)操作數(shù)的百分比。二、控件:1個(gè)label,20個(gè)commandbutton。三、計(jì)算器運(yùn)行界面:四、詳細(xì)代碼:OptionExplicitDimOp1,Op2'前面輸入的操作數(shù)DimDecimalFlagAsInteger'小數(shù)點(diǎn)仍然存在嗎?DimNumOpsAsInteger'操作數(shù)個(gè)數(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ù)點(diǎn)(.)按鈕的Click事件過程'如果上一次按鍵為運(yùn)算符,初始化readout為"0.";'否則顯示時(shí)追加一個(gè)小數(shù)點(diǎn)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'運(yùn)算符(+,-,x,/,=)的Click事件過程'如果接下來的按鍵是數(shù)字鍵,增加NumOps。'如果有一個(gè)操作數(shù),則設(shè)置Op1。'如果有兩個(gè)操作數(shù),則將Op1設(shè)置為Op1與'當(dāng)前輸入字符串的運(yùn)算結(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,"計(jì)算器"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事件過程'計(jì)算并