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

下載本文檔

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

文檔簡介

1、淮海工學(xué)院計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱:面向?qū)ο笳n程設(shè)計(jì)選題名稱:計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)姓名:學(xué)號(hào):專業(yè)班級(jí):系(院):計(jì)算機(jī)工程學(xué)院設(shè)計(jì)時(shí)間:設(shè)計(jì)地點(diǎn):軟件實(shí)驗(yàn)室、教室指導(dǎo)教師評(píng)語:成績:簽名:年月日1. 課程設(shè)計(jì)目的及面而對(duì)豪思序,訐云說二亓史晦j!很孤而訐算機(jī)專亞塞袖諫程兩!該訐應(yīng)!習(xí)莞該藻程后行的一次較全面的綜合練習(xí)。其目的在于通過實(shí)踐加深學(xué)生對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)的理論、方法和基礎(chǔ)知識(shí)的理解,掌握使用Java語言進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本方法,提高運(yùn)用面向?qū)ο笾R(shí)分析實(shí)際問題、解決實(shí)際問題的能力。2. 課程設(shè)計(jì)任務(wù)與要求:課程設(shè)計(jì)可選用NetBeans、Eclipse、JBuilder等作

2、為開發(fā)平臺(tái)以提高開發(fā)效率,盡可能熟練掌握其中一種集成開發(fā)環(huán)境。建議采用UMLB模技術(shù)進(jìn)行系統(tǒng)的分析設(shè)計(jì),在Visio中畫出系統(tǒng)用例圖和類圖,并將UMLH復(fù)制到設(shè)計(jì)報(bào)告中。通過這次設(shè)計(jì),要求掌握以下內(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ù)與動(dòng)畫制作8)Java的網(wǎng)絡(luò)編程課程設(shè)計(jì)說明書1、需求分析(用例圖)課題:計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)功能分析:此計(jì)算器有連續(xù)運(yùn)算的功能,然

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

4、ationStringtrans;publicvoidoperation(Stringexpr)ScriptEngineManagermanager=newScriptEngineManager();ScriptEngineengine=manager.getEngineByName("js");trytrans=String.valueOf(engine.eval(expr);catch(Exceptione)trans="錯(cuò)誤語法”;System.out.println(e);listStr:StringEstr:Stringflag:String+toStr

5、ing()publicclasslistStringStr;StringEstr;Stringflag;publiclist()(Str=""Estr=""flag=""OverridepublicStringtoString()(/returnA+F+B+D+C;returnStr+"="+Estr;4.編程實(shí)現(xiàn)packageCalculator;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;publicclassNewJFrameext

6、endsjavax.swing.JFrame(intClearNumber=1;/判定點(diǎn)擊"="后點(diǎn)擊數(shù)字按鈕重置文本框intI=0;/用來加入列表第一行的提示intflag=0;/點(diǎn)擊列表后提取結(jié)果的判定源judgeju;privatebooleannumber=true;privateStringequalOp="="/privateCalculatorOpop=newCalculatorOp();MultipleOperationCalcuOperation;listhistory;Vector<String>data=newVecto

7、r<String>();/ActionListenernumberListener=newNumberListener();/*classNumberListenerimplementsActionListener(publicvoidactionPerformed(ActionEventevent)(Stringdigit=event.getActionCommand();if(number)(textfield.setText(digit);number=false;else(textfield.setText(textfield.getText()+digit);Action

8、ListeneroperatorListener=newOperatorListener();privatevoidaction()(number=true;textfield.setText("");equalOp="="op.setTotal("0”);*classOperatorListenerimplementsActionListener(publicvoidactionPerformed(ActionEvente)(if(number)(action();textfield.setText("0”);else(number

9、=true;StringdisplayText=textfield.getText();if(equalOp.equals("=")op.A();op.setTotal(displayText);history.D="="*elseif(equalOp.equals("+")op.add(displayText);op.B();history.F="+”;elseif(equalOp.equals("-")op.subtract(displayText);op.B();history.F="-&

10、quot;elseif(equalOp.equals("")xop.multiply(displayText);op.B();history.F=""xelseif(equalOp.equals("")+op.divide(displayText);op.B();history.F=""+elseif(equalOp.equals("AN")op.B();history.F="A"intA;intB;inttrans=1;StringC;A=Integer.parseInt(

11、history.A);B=Integer.parseInt(history.B);op.B();for(inti=0;i<B;i+)(trans*=A;op.power(String.valueOf(trans);textfield.setText(""+op.getTotalString();equalOp=e.getActionCommand();*/publicclassjudge(publicvoidpan()(if(ClearNumber=0)(textfield.setText("");/*publicclassCalculatorOp

12、(*privatedoubletotal;publicCalculatorOp()(total=0;publicStringgetTotalString()(return""+total;publicvoidsetTotal(Stringn)(total=convertToNumber(n);publicvoidadd(Stringn)(total+=convertToNumber(n);publicvoidsubtract(Stringn)(total-=convertToNumber(n);publicvoidmultiply(Stringn)(total*=conve

13、rtToNumber(n);*publicvoiddivide(Stringn)(total/=convertToNumber(n);*publicvoidpower(Stringn)(total=convertToNumber(n);*publicvoidA()(history.A=textfield.getText();publicvoidB()(history.B=textfield.getText();*privatedoubleconvertToNumber(Stringn)(returnDouble.parseDouble(n);*/*CreatesnewformNewJFrame

14、*/publicNewJFrame()(initComponents();history=newlist();textfield.setText(null);CalcuOperation=newMultipleOperation();ju=newjudge();this.setLocationRelativeTo(null);this.setResizable(false);privatevoidbtnPointActionPerformed(java.awt.event.ActionEventevt)(textfield.setText(textfield.getText()+".

15、");privatevoidbtnClearActionPerformed(java.awt.event.ActionEventevt)(textfield.setText(textfield.getText().substring(0,textfield.getText().length()-1);privatevoidbtnEqual1ActionPerformed(java.awt.event.ActionEventevt)(textfield.setText("");privatevoidjButton1ActionPerformed(java.awt.e

16、vent.ActionEventevt)(ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"1”);privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"2");privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt)(

17、ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"3");privatevoidjButton4ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"4");privatevoidjButton5ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNu

18、mber=1;textfield.setText(textfield.getText()+"5");privatevoidjButton6ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"6");privatevoidjButton7ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNumber=1;textfield

19、.setText(textfield.getText()+"7");privatevoidjButton8ActionPerformed(java.awt.event.ActionEventevt)(ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"8");privatevoidjButton9ActionPerformed(java.awt.event.ActionEventevt)ju.pan();ClearNumber=1;textfield.setText(textfiel

20、d.getText()+"9");privatevoidjButton10ActionPerformed(java.awt.event.ActionEventevt)ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+"0");privatevoidbtnAddActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+"+");ClearNumber=1;p

21、rivatevoidbtnSubtractActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+"-");ClearNumber=1;privatevoidbtnMultiplyActionPerformed(java.awt.event.ActionEventevt)ClearNumber=1;textfield.setText(textfield.getText()+"*");privatevoidbtnDivideActionPerfo

22、rmed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+"/");ClearNumber=1;privatevoidbtnEqualActionPerformed(java.awt.event.ActionEventevt)/CalcuOperation;Stringstrans=""history.Str=textfield.getText();CalcuOperation.operation(textfield.getText();textfield.setTe

23、xt(CalcuOperation.trans);history.Estr=CalcuOperation.trans;strans=history.Str+"="+history.Estr;if(I=0&&textfield.getText()!=null)data.addElement(”歷史記錄如下:");I=1;if(CalcuOperation.trans="錯(cuò)誤語法")ClearNumber=0;elsedata.addElement(strans);jlist.setListData(data);textfield.

24、setText(CalcuOperation.trans);ClearNumber=0;privatevoidbtnBrackets1ActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+"(");privatevoidbtnBrackets2ActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+")");privatevoidj

25、listValueChanged(javax.swing.event.ListSelectionEventevt)history.flag=String.valueOf(jlist.getSelectedValue();textfield.setText(history.flag.substring(history.flag.indexOf("=")+1,history.flag.length();ClearNumber=1;flag=1;privatevoidjButton11ActionPerformed(java.awt.event.ActionEventevt)if

26、(ClearNumber=0|flag=1)Stringa=textfield.getText().substring(0,textfield.getText().indexOf(".");textfield.setText("轉(zhuǎn)換為二進(jìn)制為:"+String.valueOf(Integer.toBinaryString(Integer.parseInt(a);elseif(textfield.getText().indexOf(".”)!=-1)Stringa=textfield.getText().substring(0,textfield

27、.getText().indexOf(".");textfield.setText("轉(zhuǎn)換為二進(jìn)制為:"+String.valueOf(Integer.toBinaryString(Integer.parseInt(a);else(textfield.setText("轉(zhuǎn)換為二進(jìn)制為:"+String.valueOf(Integer.toBinaryString(Integer.parseInt(textfield.getText();ClearNumber=0;privatevoidjButton12ActionPerformed(

28、java.awt.event.ActionEventevt)(if(ClearNumber=0)(Stringa=textfield.getText().substring(0,textfield.getText().indexOf(".");textfield.setText("轉(zhuǎn)換為八進(jìn)制為:"+String.valueOf(Integer.toOctalString(Integer.parseInt(a);else(if(textfield.getText().indexOf(".”)!=-1)Stringa=textfield.getT

29、ext().substring(0,textfield.getText().indexOf(".");textfield.setText("轉(zhuǎn)換為八進(jìn)制為:"+String.valueOf(Integer.toOctalString(Integer.parseInt(a);elsetextfield.setText("轉(zhuǎn)換為八進(jìn)制為:"+String.valueOf(Integer.toOctalString(Integer.parseInt(textfield.getText();ClearNumber=0;privatevoidjButton13ActionPerformed(java.awt.event.ActionEventevt)if(ClearNumber=0)Stringa=textfield.getText().substring(0,textfield.getText().length()-2);textfield.setText("轉(zhuǎn)換為十六進(jìn)制為:"+String.valueOf(Integer.toHexString(In

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論