java課程設(shè)計計算器的設(shè)計與實(shí)現(xiàn)_第1頁
java課程設(shè)計計算器的設(shè)計與實(shí)現(xiàn)_第2頁
java課程設(shè)計計算器的設(shè)計與實(shí)現(xiàn)_第3頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、淮海 工學(xué)院 計算機(jī)工程學(xué)院課程設(shè)計報告設(shè)計名稱: 面向?qū)ο笳n程設(shè)計選題名稱:計算器的設(shè)計與實(shí)現(xiàn)姓 名:學(xué) 號:專業(yè)班級:系 (院): 計算機(jī)工程學(xué)院設(shè)計時間:設(shè)計地點(diǎn):軟件實(shí)驗(yàn)室、教室成績:指導(dǎo)教師評語:簽名: 1. 課程設(shè)計目的面向?qū)ο蟪绦蛟O(shè)計是一門實(shí)踐性很強(qiáng)的計算機(jī)專業(yè)基礎(chǔ)課程,課程設(shè)計是學(xué)習(xí)完該課程后進(jìn) 行的一次較全面的綜合練習(xí)。其目的在于通過實(shí)踐加深學(xué)生對面向?qū)ο蟪绦蛟O(shè)計的理論、方法和基 礎(chǔ)知識的理解,掌握使用Java語言進(jìn)行面向?qū)ο笤O(shè)計的基本方法,提高運(yùn)用面向?qū)ο笾R分析實(shí)際問題、解決實(shí)際問題的能力。2. 課程設(shè)計任務(wù)與要求:課程設(shè)計可選用NetBeans、Eclipse、JBui

2、lder等作為開發(fā)平臺以提高開發(fā)效率,盡可能熟練掌握其中一種集成開發(fā)環(huán)境。建議采用UML建模技術(shù)進(jìn)行系統(tǒng)的分析設(shè)計,在Visio中畫出系統(tǒng)用例圖和類圖,并將 UML圖復(fù)制到設(shè)計報告中。通過這次設(shè)計,要求掌握以下內(nèi)容:1)面向?qū)ο蠹夹g(shù)中的繼承與多態(tài)(重載和覆蓋)機(jī)制、各種修飾符的使用2)類、包、接口的定義與使用3)常用工具類與算法的實(shí)現(xiàn)(數(shù)組、向量、字符串、鏈表)4)Java常用標(biāo)準(zhǔn)GUI組件及其事件處理5)Java的異常處理機(jī)制6)Java的數(shù)據(jù)庫連接技術(shù)7)Java的多線程技術(shù)與動畫制作8)Java的網(wǎng)絡(luò)編程3. 課程設(shè)計說明書1、需求分析(用例圖)計算器圖1用例圖課題:計算器的設(shè)計與實(shí)現(xiàn)功

3、能分析:此計算器有連續(xù)運(yùn)算的功能,然而在很多人使用計算器時容易忘掉之前是 用8*2呢還是6*2,于是這個計算器多出歷史檢驗(yàn)的功能,可以將以前的式子顯示在下 方,一邊檢驗(yàn)正確與否。2、概要設(shè)計MultipleOperation類,用來實(shí)現(xiàn)連續(xù)運(yùn)算的類Multipleoperationtrans: String+operation ( expr: String)Listl類,用來記錄歷史的類listStr: Stri ng Estr: String flag: String +toStri ng ()3 .詳細(xì)設(shè)計MultipleOperatio ntrans: String+operation

4、( expr: String) public class MultipleOperati on String trans;public void operation(String expr)ScriptEngineManager manager =new ScriptEngineManager();ScriptE ngine engine =ma nager.getE ngin eByName("js"); trytrans= Strin g.valueOf( engin e.eval(expr);catch(Excepti on e)trans="錯誤語法&qu

5、ot;System.out.pri ntl n( e);listStr:Stri ng Estr: String flag: String +toStri ng ()public class list Stri ng Str;Stri ng Estr;Stri ng flag;public list()Str=""Estr=""flag=""Overridepublic Stri ng toStri ng ()/return A+F+B+D+C;return Str+"="+Estr;4 .編程實(shí)現(xiàn)package

6、Calculator;import java.awt.eve nt.*;import javax.swi ng.*;import java.util.*;public class NewJFrame exte nds javax.sw in g.JFrameint ClearNumber=1;判定點(diǎn)擊"=”后點(diǎn)擊數(shù)字按鈕重置文本框int 1=0;/用來加入列表第一行的提示int flag=0;/點(diǎn)擊列表后提取結(jié)果的判定源judge ju;private boolea n nu mber = true;private String equalOp ="="/ pri

7、vate CalculatorOp op = new CalculatorOp();MultipleOperati on CalcuOperati on;list history;Vector<Stri ng> data=new Vector<Stri ng>();/Action Liste ner nu mberListe ner = new NumberListe ner();/* class NumberListe ner impleme nts Action Liste ner * public void action Performed(Acti onEven

8、t event) * String digit = even t.getAct ion Comma nd();* if (nu mber) * textfield.setText(digit);* nu mber = false;* else * textfield.setText(textfield.getText() + digit);* * * Acti on Liste ner operatorListe ner = new OperatorListe ner();* private void acti on()* nu mber = true;* textfield.setText(

9、"");* equalOp ="="* op.setTotal("0");* * class OperatorListe ner impleme nts Acti on Liste ner * public void action Performed(Acti onEvent e) * if (nu mber) * acti on();* textfield.setText("0");* else * nu mber = true;* Stri ng displayText = textfield.getText(

10、);* if (equalOp.equals("=") * op.A();* op.setTotal(displayText);* history.D="="* else if (equalOp.equals("+") * op.add(displayText);* op.B();* history.F="+"* else if (equalOp.equals("-") * op.subtract(displayText);* op.B();* history.F="-"*

11、else if (equalOp.equals(”") x* op.multiply(displayText);* op.B();* history.F=" " x* else if (equalOp.equals(”") 十* op.divide(displayText);* op.B();* history.F=""十* else if (equalOp.equals("AN") * op.B();* history.F="A"* int A;* int B;* int tran s=1;*

12、 Stri ng C;* A=l nteger.parsel nt(history.A);* B=l nteger.parse In t(history.B);* op.B();* for(i nt i=0;i<B;i+)* trans *=A;* * op.power(Stri ng.valueOf(tra ns);* * textfield.setText("” + op.getTotalStri ng();* equalOp = e.getAct ion Comma nd();* * * */public class judgepublic void pan()if(Cl

13、earNumber=O) textfield.setText("");/*public class CalculatorOp * private double total;* public CalculatorOp() * total = 0;* * public Stri ng getTotalStri ng() * return ""+total;* * public void setTotal(Stri ng n) * total = con vertToNumber( n);* * public void add(Stri ng n) * tot

14、al += con vertToNumber( n);* * public void subtract(Stri ng n) * total -= con vertToNumber( n);* * public void multiply(Stri ng n) * total *= con vertToNumber( n);* * public void divide(Stri ng n) * total /= con vertToNumber( n);* * public void power (Stri ng n) * total = con vertToNumber( n);* * pu

15、blic void A()* history.A=textfield.getText();* * public void B()* history.B=textfield.getText();* * private double con vertToNumber(Stri ng n) * retur n Double.parseDouble( n);* * */* Creates new form NewJFrame*/public NewJFrame() in itComp onen ts();history=new list();textfield.setText( null);Calcu

16、Operati on=new MultipleOperati on(); ju=new judge();this.setLocati on RelativeTo (n ull); this.setResizable(false);private void btnPoin tActi on Performed(java.awt.eve nt.Acti onEvent evt) textfield.setText(textfield.getText()+".");private void btn ClearAct ion Performed(java.awt.eve nt.Ac

17、ti onEvent evt) textfield.setText(textfield.getText().substri ng(0, textfield.getText().le ngth()-1); private void btn Equal1Acti on Performed(java.awt.eve nt.Act ionEvent evt) textfield.setText("");private void jButt on 1Acti on Performed(java.awt.eve nt.Acti onEvent evt) ju.pa n();ClearN

18、umber=1;textfield.setText(textfield.getText()+"1");private void jButt on 2Acti on Performed(java.awt.eve nt.Acti onEvent evt) ju.pa n();ClearNumber=1;textfield.setText(textfield.getText()+"2");private void jButt on 3Acti on Performed(java.awt.eve nt.Acti onEvent evt) ju.pa n();Cl

19、earNumber=1;textfield.setText(textfield.getText()+"3");private void jButt on4 Acti on Performed(java.awt.eve nt.Acti onEvent evt) ju.pa n();ClearNumber=1;textfield.setText(textfield.getText()+"4");private void jButt on 5Acti on Performed(java.awt.eve nt.Acti onEvent evt) ju.pa n(

20、);ClearNumber=1;textfield.setText(textfield.getText()+"5");private void jButt on 6Acti on Performed(java.awt.eve nt.Acti onEvent evt) ju.pa n();ClearNumber=1;textfield.setText(textfield.getText()+"6");private void jButt on 7Acti on Performed(java.awt.eve nt.Acti onEvent evt) ju.p

21、a n();ClearNumber=1;textfield.setText(textfield.getText()+"7");面向?qū)ο笳n程設(shè)計報告第10頁,共 15頁private void jButt on 8Acti on Performed(java.awt.eve nt.Acti onEvent evt) ju.pa n();ClearNumber=1;textfield.setText(textfield.getText()+"8");private void jButt on 9Acti on Performed(java.awt.eve n

22、t.Acti onEvent evt) ju.pa n();ClearNumber=1;textfield.setText(textfield.getText()+"9");private void jButt on 10Act ion Performed(java.awt.eve nt.Act ionEvent evt) ju.pa n();ClearNumber=1;textfield.setText(textfield.getText()+"0");private void btn AddAct ion Performed(java.awt.eve

23、 nt.Act ionEvent evt) textfield.setText(textfield.getText()+"+");ClearNumber=1;private void btn SubtractAct ion Performed(java.awt.eve nt.Act ion Eve nt evt) textfield.setText(textfield.getText()+"-");ClearNumber=1;private void btnM ultiplyActio nPerformed(java.awt.eve nt.Actio n

24、Eve nt evt) ClearNumber=1;textfield.setText(textfield.getText()+"*");private void btn DivideActi on Performed(java.awt.eve nt.Act ion Eve nt evt) textfield.setText(textfield.getText()+"/");ClearNumber=1;private void btn EqualAct ion Performed(java.awt.eve nt.Act ion Eve nt evt) /

25、 CalcuOperati on;String stra ns=""history.Str=textfield.getText();面向?qū)ο笳n程設(shè)計報告CalcuOperati on .operatio n( textfield.getText();textfield.setText(CalcuOperatio n.tra ns); history.Estr=CalcuOperatio n.tra ns;stra ns=history.Str+"="+history.Estr;if(I=0&&textfield.getText()!=nu

26、ll)data.addEleme nt(” 歷史記錄如下:”);1=1;if(CalcuOperation.trans="錯誤語法")ClearNumber=O;elsedata.addEleme nt(stra ns);jlist.setListData(data);textfield.setText(CalcuOperati on .tra ns);ClearNumber=0;private void btn Brackets1Act ion Performed(java.awt.eve nt.Act ionEvent evt) textfield.setText(te

27、xtfield.getText()+"(");private void btn Brackets2Act ion Performed(java.awt.eve nt.Act ionEvent evt) textfield.setText(textfield.getText()+")");private void jlistValueCha nged(javax.swi ng.eve nt.ListSelectio nEve nt evt) history.flag=Stri ng.valueOf(jlist.getSelectedValue();text

28、field.setText( history.flag.substri ng(history.flag.i ndexOf("=")+1,history.flag .len gth(); ClearNumber=1;flag=1;private void jButt on 11Act ion Performed(java.awt.eve nt.Act ionEvent evt) if(ClearNumber=0|flag=1)String a=textfield.getText().substring(0, textfield.getText().indexOf("

29、."); textfield.setText("轉(zhuǎn)換為二進(jìn)制為: ”+Stri ng.valueOf( In teger.toB in aryStri ng(l nteger.parse In t(a);else if(textfield.getText().i ndexOf(".")!=-1)String a=textfield.getText().substring(0, textfield.getText().indexOf(".");textfield.setText(” 轉(zhuǎn)換為二進(jìn)制為:”面向?qū)ο笳n程設(shè)計報告第12頁,共 1

30、5頁+Stri ng.valueOf( In teger.toB in aryStri ng(l nteger.parse In t(a);elsetextfield.setText(” 轉(zhuǎn)換為二進(jìn)制為:”+Stri ng.valueOf(l nteger.toBi naryStri ng(l nteger.parsel nt(textfield.getText();ClearNumber=O;private void jButt on 12Act ion Performed(java.awt.eve nt.Act ionEvent evt) if(ClearNumber=0)String a

31、=textfield.getText().substring(0, textfield.getText().indexOf(".");textfield.setText("轉(zhuǎn)換為八進(jìn)制為:”+Stri ng.valueOf( In teger.toOctalStri ng(l nteger.parse In t(a);else if(textfield.getText().i ndexOf(".")!=-1)Stringa =textfield.getText().substring(0, textfield.getText().indexOf

32、(".");textfield.setText("轉(zhuǎn)換為八進(jìn)制為: ”+Stri ng.valueOf( In teger.toOctalStri ng(l nteger.parse In t(a);elsetextfield.setText("轉(zhuǎn)換為八進(jìn)制為:”+Stri ng.valueOf( In teger.toOctalStri ng(l nteger.parse In t(textfield.getText();ClearNumber=0;private void jButt on 13Act ion Performed(java.awt.eve nt.Act ionEvent evt) if(ClearNumber=0)String a=textfield.getText().substring(0, textfield.getText().length()-2);textfield.setTe

溫馨提示

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

評論

0/150

提交評論