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

下載本文檔

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

文檔簡介

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

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

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

4、(expr:public class MultipleOperation String trans;public void operation(String expr) ScriptEngineManager manager=new ScriptEngineManager();ScriptEngine engine =manager.getEngineByName("js");try trans= String.valueOf( engine.eval(expr);catch(Exception e)trans="錯誤語法) list Str:String Est

5、r: String flag: String +toString ()public class list String Str; String Estr;String flag; public list() Str=";Estr="; flag="")Overridepublic String toString ()/return A+F+B+D+C; return Str+"="+Estr;) )4.編程實現(xiàn)package Calculator;import javax.swing.*;import java.util.*;int

6、ClearNumber=1;判定點擊"="后 點擊數(shù)字按鈕重置文本框 int I=0;/用來參加列表第一行的提示int flag=0;/點擊列表后提取結(jié)果的判定源judge ju;private booleannumber = true;private StringequalOp ="="/ private CalculatorOp op = new CalculatorOp();MultipleOperation CalcuOperation;list history;Vector<String> data=new Vector<St

7、ring>();/ ActionListener numberListener = new NumberListener();/* class NumberListener implements ActionListener * public void actionPerformed(ActionEvent event) * String digit = event.getActionCommand();* if (number) * textfield.setText(digit);* number = false;* else * textfield.setText(textfiel

8、d.getText() + digit);* * * * ActionListener operatorListener = new OperatorListener();* private void action()* number = true;* textfield.setText("");* equalOp ="="* op.setTotal("0");* * class OperatorListener implements ActionListener * public void actionPerformed(Actio

9、nEvent e) * if (number) * action();* textfield.setText("0");* else * number = true;* String displayText = textfield.getText();* if (equalOp.equals("=") * op.A();* op.setTotal(displayText);* history.D="="* else if (equalOp.equals("+") * op.add(displayText);* op

10、.B();* history.F="+"* else if (equalOp.equals("-") * op.subtract(displayText);* op.B();* history.F="-"* else if (equalOp.equals(" ") x* op.multiply(displayText);* op.B();* history.F=" " x* else if (equalOp.equals(" ") +* op.divide(displayTe

11、xt);* op.B();* history.F=" " 一* else if (equalOp.equals("AN") * op.B();* history.F="A"* int A;* int B;* int trans=1;* String C;* A=Integer.parseInt(history.A);* B=Integer.parseInt(history.B);* op.B();* for(int i=0;i<B;i+)* trans *=A;* )* op.power(String.valueOf(trans

12、);* )* textfield.setText("" + op.getTotalString();* equalOp = e.getActionCommand();* )* )* */public class judgepublic void pan()if(ClearNumber=0) textfield.setText("");/*public class CalculatorOp * private double total;* public CalculatorOp() * total = 0;* * public String getTota

13、lString() * return ""+total;* * public void setTotal(String n) * total = convertToNumber(n);* * public void add(String n) * total += convertToNumber(n);* * public void subtract(String n) * total -= convertToNumber(n);* * public void multiply(String n) * total *= convertToNumber(n);* * publ

14、ic void divide(String n) * total /= convertToNumber(n);* * public void power (String n) * total = convertToNumber(n);* * public void A()* history.A=textfield.getText();* * public void B()* history.B=textfield.getText();* * private double convertToNumber(String n) * return Double.parseDouble(n);* * *

15、/ /* Creates new form NewJFrame*/public NewJFrame() initComponents();history=new list();textfield.setText(null);CalcuOperation=new MultipleOperation();ju=new judge();this.setLocationRelativeTo(null);this.setResizable(false);textfield.setText(textfield.getText()+".");textfield.setText(textf

16、ield.getText().substring(0, textfield.getText().length()-1);textfield.setText("");ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"1");ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"2");ju.pan();ClearNumber=1;textfield.setText(textfield.getTe

17、xt()+"3"); )ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"4"); )ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"5"); )ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"6"); )ju.pan();ClearNumber=1;textfield.setText(tex

18、tfield.getText()+"7"); )ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"8"); )ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"9"); )ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"0"); )textfield.setText(textfield.getT

19、ext()+"+");ClearNumber=1;)textfield.setText(textfield.getText()+"-");ClearNumber=1;)ClearNumber=1;textfield.setText(textfield.getText()+"*");)textfield.setText(textfield.getText()+"/");ClearNumber=1;)/ CalcuOperation;String strans=""history.Str=textf

20、ield.getText();CalcuOperation.operation(textfield.getText(); textfield.setText(CalcuOperation.trans);history.Estr=CalcuOperation.trans; strans=history.Str+"="+history.Estr; if(I=0&&textfield.getText()!=null) data.addElement("歷史記錄如下:"); I=1; if(CalcuOperation.trans="錯

21、誤語法")ClearNumber=0; else data.addElement(strans); jlist.setListData(data);textfield.setText(CalcuOperation.trans); ClearNumber=0; textfield.setText(textfield.getText()+"(");textfield.setText(textfield.getText()+")"); history.flag=String.valueOf(jlist.getSelectedValue(); Clea

22、rNumber=1; flag=1; if(ClearNumber=0|flag=1)String a=textfield.getText().substring(0, textfield.getText().indexOf("."); textfield.setText("轉(zhuǎn)換為二進制為:+String.valueOf(Integer.toBinaryString(Integer.parseInt(a); else if(textfield.getText().indexOf(".")!=-1)String a=textfield.getTe

23、xt().substring(0, textfield.getText().indexOf("."); textfield.setText("轉(zhuǎn)換為二進制為:+String.valueOf(Integer.toBinaryString(Integer.parseInt(a); else textfield.setText("轉(zhuǎn)換為二進制為:" +String.valueOf(Integer.toBinaryString(Integer.parseInt(textfield.getText(); ClearNumber=0;if(ClearNum

24、ber=0)String a=textfield.getText().substring(0, textfield.getText().indexOf(".");textfield.setText("轉(zhuǎn)換為八進制為:"+String.valueOf(Integer.toOctalString(Integer.parseInt(a);)else if(textfield.getText().indexOf(".")!=-1)String a =textfield.getText().substring(0, textfield.getT

25、ext().indexOf(".");textfield.setText("轉(zhuǎn)換為八進制為:"+String.valueOf(Integer.toOctalString(Integer.parseInt(a); elsetextfield.setText("轉(zhuǎn)換為八進制為:+String.valueOf(Integer.toOctalString(Integer.parseInt(textfield.getText();ClearNumber=0;if(ClearNumber=0)String a=textfield.getText().substring(0, textfield.getText().length()-2);textfield.setText("轉(zhuǎn)換為十六進制為:+String.valueOf(Integer.toHexString(Integer.parseInt(a);else if(textfield.getText().indexOf(".")!=-1)String a =textfield.getText().substring(0, textfield.getText().index

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論