VB計(jì)算器課程設(shè)計(jì)報(bào)告_第1頁(yè)
VB計(jì)算器課程設(shè)計(jì)報(bào)告_第2頁(yè)
VB計(jì)算器課程設(shè)計(jì)報(bào)告_第3頁(yè)
VB計(jì)算器課程設(shè)計(jì)報(bào)告_第4頁(yè)
VB計(jì)算器課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGE《軟件開(kāi)發(fā)技術(shù)》課程設(shè)計(jì)報(bào)告題目計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)專(zhuān)業(yè)班級(jí)計(jì)算機(jī)科學(xué)與技術(shù)0701學(xué)號(hào)姓名指導(dǎo)教師2010年7月15日計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)摘要:通過(guò)學(xué)習(xí)VISUALBASIC語(yǔ)言應(yīng)用VB開(kāi)發(fā)工具,利用響應(yīng)鼠標(biāo)事件即可制作簡(jiǎn)易計(jì)算器,響應(yīng)鼠標(biāo)事件即:當(dāng)用戶(hù)想要進(jìn)行運(yùn)算時(shí),可以用鼠標(biāo)直接點(diǎn)擊界面的數(shù)字鍵、運(yùn)算符以及各功能的按鈕(清除,退出,鼠標(biāo)位置)。具體操作如下:用鼠標(biāo)按動(dòng)界面上第一個(gè)數(shù)字,然后按動(dòng)運(yùn)算符,再按動(dòng)界面上的第二個(gè)數(shù)字,最后按等于即可運(yùn)算出結(jié)果。1.界面設(shè)計(jì):應(yīng)用VISUALBASIC開(kāi)發(fā)工具,根據(jù)WINDOWS計(jì)算器界面模型,修改后制作計(jì)算器界面。新建一個(gè)窗體,添加一個(gè)文本框用于顯示運(yùn)算數(shù)字和結(jié)果,添加若干按鈕包括(數(shù)字0—9,+,-,*,/,=,CE,C,Back,%,1/x,sqrt)。當(dāng)單擊數(shù)字按鈕時(shí)輸入運(yùn)算數(shù)時(shí),單擊運(yùn)算符按鈕,再單擊“=”按鈕,則再文本框中顯示計(jì)算結(jié)果。具體如下圖所示:圖1計(jì)算器界面設(shè)計(jì)示意圖2.程序設(shè)計(jì):(1)新建框體和按鍵模型后定義變量:輸入的操作數(shù),DimOp1,Op2。小數(shù)點(diǎn)是否仍然存在,DimDecimalFlagAsInteger。操作數(shù)個(gè)數(shù),DimNumOpsAsInteger。指示上一次按鍵事件的類(lèi)型,DimLastInput。指示未完成的操作,DimOpFlag。定義文本框輸出,DimTempReadout。窗體的初始化過(guò)程,設(shè)置所有變量為其初始值:DecimalFlag=FalseNumOps=0LastInput="NONE"OpFlag=""Readout=Format(0,"0.")'Decimal.Caption=Format(0,".")。(2)輸入數(shù)字鍵(0-9)的Click事件過(guò)程,向顯示中的數(shù)追加新數(shù):調(diào)用format函數(shù)強(qiáng)制定義始終在第一位添加一個(gè)”.”,并在顯示數(shù)中追加新數(shù),如果顯示數(shù)小于零,則添加負(fù)號(hào)。IfLastInput<>"NUMS"ThenReadout=Format(0,".")DecimalFlag=FalseEndIfIfDecimalFlagThenReadout=Readout+Number(Index).CaptionElseReadout=Left(Readout,InStr(Readout,Format(0,"."))-1)+Number(Index).Caption+Format(0,".")EndIfIfLastInput="NEG"ThenReadout="-"&ReadoutLastInput="NUMS"(3)運(yùn)算符(+,-,x,/,=)的Click事件過(guò)程如果接下來(lái)的按鍵是數(shù)字鍵,增加NumOps如果有一個(gè)操作數(shù),則設(shè)置Op1如果有兩個(gè)操作數(shù),則將Op1設(shè)置為Op1與當(dāng)前輸入字符串的運(yùn)算結(jié)果,并顯示結(jié)果(以其中加法部分為例):IfLastInput="NUMS"ThenNumOps=NumOps+1EndIfelectCaseNumOpsCase0IfOperator(Index).Caption="-"AndLastInput<>"NEG"ThenReadout="-"&ReadoutLastInput="NEG"EndIfCase1Op1=ReadoutIfOperator(Index).Caption="-"AndLastInput<>"NUMS"AndOpFlag<://.huisheliren/>"="ThenReadout="-"LastInput="NEG"EndIfelectCaseOpFlagCase"+"Op1=CDbl(Op1)+CDbl(Op2)Readout=Op1NumOps=1EndSelect(4)%,sqrt,1/X,等的Click事件過(guò)程以1/X為例舉出:以倒數(shù)1/Readout輸出,在輸出結(jié)果中調(diào)用format函數(shù)強(qiáng)制定義添加“0.”,并可進(jìn)行連續(xù)運(yùn)算Readout=1/ReadoutReadout.Text=Format(Readout.Text,"0.####################")LastInput="Ops"OpFlag="1/x"NumOps=NumOps+1DecimalFlag=True(5)C,CE,Back,”.”等Click事件過(guò)程以C和”.”為例,C按鈕的Click事件過(guò)程,重新設(shè)置顯示并初始化變量:清零操作數(shù),并在顯示結(jié)果中定義一個(gè)“0.”Readout=Format(0,"0.")Op1=0Op2=0Form_Load(6)小數(shù)點(diǎn)(.)按鈕的Click事件過(guò)程,如果上一次按鍵為運(yùn)算符,初始化readout為"0."否則顯示時(shí)追加一個(gè)小數(shù)點(diǎn):PrivateSubDecimal_Click()IfLastInput="NEG"ThenReadout=Format(0,"-0.")ElseIfLastInput<>"NUMS"ThenReadout=Format(0,"0.")EndIfDecimalFlag=TrueLastInput="NUMS"EndSub(7)Back按鈕的Click事件過(guò)程:定義一個(gè)變量cd,并且用LEN函數(shù)求出當(dāng)前字符串長(zhǎng)度,調(diào)用Mid函數(shù)使字符串整體右移一位顯示。DimcdAsIntegercd=Len(Readout.Text)Readout.Text=""&Mid(Readout.Text,1,cd-1)3.調(diào)試:調(diào)試計(jì)算器功能+,-,*,/,sqrt,1/x,%等功能,如圖所示:圖1:0.2+0.3=結(jié)果如圖,圖2:2-3=結(jié)果如圖,圖3:3*6=結(jié)果如圖,圖4:9/3=結(jié)果如圖,圖5:16sqrt結(jié)果如圖,圖6:6%5=結(jié)果如圖,圖7:21/x結(jié)果如圖。圖2加法調(diào)試結(jié)果圖3減法調(diào)試結(jié)果圖4乘法調(diào)試結(jié)果圖5除法調(diào)試結(jié)果圖6sqrt調(diào)試結(jié)果圖7%調(diào)試結(jié)果圖81/x調(diào)試結(jié)果4.結(jié)論:經(jīng)過(guò)二周的學(xué)習(xí)與編制調(diào)試等一系列的過(guò)程,完成了如題所示的簡(jiǎn)易計(jì)算器,包括數(shù)字0—9,+,-,*,/,=,CE,C

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論