資源描述:
《java小程序設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、共12頁(yè)2021-08-13課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:用Java編的計(jì)算器院系班級(jí)設(shè)計(jì)者學(xué)號(hào)指導(dǎo)教師設(shè)計(jì)時(shí)間12共12頁(yè)2021-08-13前言:通過上課學(xué)習(xí)了java程序設(shè)計(jì)的基本原理和模式,這次又以java語(yǔ)言為基本結(jié)合其圖形應(yīng)用界面來(lái)設(shè)計(jì)一個(gè)包括加、減、乘、除。還有帶括號(hào)以及帶負(fù)號(hào)、小數(shù)運(yùn)算的計(jì)算程序。系統(tǒng)功能和使用說明:一.硬件環(huán)境:本系統(tǒng)適用于現(xiàn)應(yīng)用各種類型的計(jì)算機(jī),內(nèi)存容量為128MB以上,不必配備的外部附加設(shè)備。二.軟件環(huán)境:本系統(tǒng)的設(shè)計(jì)采用的是JAVA語(yǔ)言,應(yīng)在JDK5.0或者其更高版軟件環(huán)境下本使用。三.系統(tǒng)流程
2、圖:1.下圖是本程序的運(yùn)行后的界面,其標(biāo)注是此組件在程序中的名字TextshowLabelnow2.系統(tǒng)流程圖中各個(gè)模塊的功能說明:本程序一共包括:構(gòu)造方法A5i13w(),setup(),windowClosing(),actionPerformed(),appendchar(),countall(),counting(),Iscountnum()和一個(gè)windowcloser類。(1).A5i13w()是構(gòu)造方法,在程序創(chuàng)建其對(duì)象時(shí)就調(diào)用,初始化次程序的事件的監(jiān)聽機(jī)制。(2).setup()是我定義的方法,是用來(lái)初始化程序
3、的圖形應(yīng)用界面,由A5i13w()來(lái)調(diào)用。(3).windowClosing()是用來(lái)響應(yīng)用戶的關(guān)閉功能。(4).actionPerformed()是用來(lái)處理每個(gè)事件的響應(yīng)的方法(5).appendchar()方法的作用是在用戶產(chǎn)生事件后向Textshow追加產(chǎn)生此事件的字符串(6).countall()的意義是在用戶按“=”號(hào)后,從最里層括號(hào)向最外層逐層把括號(hào)里的內(nèi)容傳遞給counting()方法,并負(fù)責(zé)對(duì)括號(hào)本身是否符合數(shù)學(xué)語(yǔ)法要求進(jìn)行檢驗(yàn)。(7).counting()方法的作用是首先對(duì)無(wú)括號(hào)的數(shù)學(xué)表達(dá)式有關(guān)的數(shù)學(xué)計(jì)算符號(hào)
4、進(jìn)行調(diào)整,并檢驗(yàn)所有的數(shù)學(xué)符號(hào),如發(fā)現(xiàn)錯(cuò)誤的數(shù)學(xué)符號(hào)立即在Labelnow中顯示出來(lái)。12共12頁(yè)2021-08-13(8).Iscountnum()方法的作用是把“+-×÷%.()”算術(shù)符號(hào)轉(zhuǎn)化相應(yīng)的數(shù)字,便于程序的流程控制。3.此計(jì)算器的基本的計(jì)算過程說明:當(dāng)用戶發(fā)出計(jì)算整個(gè)數(shù)學(xué)表達(dá)式的命令后,本計(jì)算器首先是對(duì)用戶向Textshow(即文本域)輸入的數(shù)學(xué)表達(dá)式經(jīng)行括號(hào)索檢。如果有一層括號(hào),則對(duì)括號(hào)的內(nèi)容進(jìn)行優(yōu)先計(jì)算。如果有多層括號(hào),則按先計(jì)算里層括號(hào)后計(jì)算外層括號(hào)的原則進(jìn)行計(jì)算。如果沒有發(fā)現(xiàn)括號(hào),則只進(jìn)行一次無(wú)括號(hào)計(jì)算即可
5、?,F(xiàn)在是關(guān)于要計(jì)算的數(shù)學(xué)表達(dá)式,本計(jì)算器也能檢驗(yàn)此即將計(jì)算的數(shù)學(xué)表達(dá)式是否符合數(shù)學(xué)語(yǔ)法規(guī)則。如發(fā)現(xiàn)符合數(shù)學(xué)規(guī)則的表達(dá)式,則在Labelnow中提示用戶,并且Labelnow的背景顏色將變成紅色。在計(jì)算的開始,計(jì)算的過程,計(jì)算的出錯(cuò),計(jì)算的成功,我都設(shè)計(jì)好不同的背景顏色與之對(duì)應(yīng)。用戶要注意Labelnow的提示信息。在提示信息的對(duì)應(yīng)要求,我認(rèn)為次程序是不符合要求的。有幾條提示信息只是告訴用戶你輸入的表達(dá)式有問題,并不能很明確的告訴用戶他的出錯(cuò)的地方。這是我作為程序的開發(fā)者對(duì)錯(cuò)誤的分類標(biāo)準(zhǔn)把握的不好造成的。是的,這是我的作品的不足
6、。但是,我要說一句話,本程序的重點(diǎn)是計(jì)算出合法的數(shù)學(xué)表達(dá)式,而對(duì)非法的表達(dá)式過于重視是否有一點(diǎn)本末倒置呢?四.程序執(zhí)行的流程圖輸入數(shù)學(xué)表達(dá)式檢驗(yàn)此數(shù)學(xué)表達(dá)式是否有括號(hào)把傳遞過來(lái)的數(shù)學(xué)表達(dá)式首先進(jìn)行校監(jiān),后計(jì)算。并返回此部分的計(jì)算結(jié)果檢驗(yàn)到和數(shù)學(xué)語(yǔ)法的括號(hào),把括號(hào)的內(nèi)容傳遞給下面的計(jì)算方法沒有檢驗(yàn)到括號(hào),則把整個(gè)的次數(shù)學(xué)表達(dá)式傳遞過去,并進(jìn)行最后一次運(yùn)算。把此部分?jǐn)?shù)學(xué)表達(dá)式的計(jì)算的結(jié)果返回給調(diào)用者,用結(jié)果把括號(hào)內(nèi)容(含括號(hào))覆蓋。調(diào)用此程序已寫好的追加字符的方法,在“=”號(hào)面追加結(jié)果。并設(shè)置Textshow為不可編輯,以便順利進(jìn)
7、入下一輪計(jì)算。12共12頁(yè)2021-08-13五.程序的調(diào)試出錯(cuò)情況:我在程序的調(diào)試過程中最容易發(fā)生的錯(cuò)誤就是:就是我畫紅線的句子即是“Exceptioninthread"AWT-EventQueue-0"java.lang.NumberFormatException”。用戶輸入的數(shù)學(xué)表達(dá)式在我設(shè)計(jì)的程序轉(zhuǎn)化為數(shù)學(xué)計(jì)算形式是不可行的。假如是正確的數(shù)學(xué)表達(dá)式,則我的程序在處理數(shù)字轉(zhuǎn)化方面是有問題的,為了解決這個(gè)問題我花大時(shí)間去重寫我的程序的核心代碼。終于,我找到了一種捷徑——把無(wú)括號(hào)的數(shù)學(xué)表達(dá)式進(jìn)行校正合理的轉(zhuǎn)化為在數(shù)字和數(shù)字之
8、間只有一個(gè)運(yùn)算符。雖然我就擺平這個(gè)問題,但是我為了解程序執(zhí)行的具體的過程,在DOS中都有關(guān)于每一步的提示信息。六.結(jié)論:1.這次課程設(shè)計(jì)心得是的,JAVA的功能是十分強(qiáng)大的。借助其強(qiáng)大的平臺(tái)。我的程序不僅有不錯(cuò)(至少我這樣認(rèn)為)的圖形界面,而且其程序本身的功能也得到很好的發(fā)揮