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頁
java課程設(shè)計(jì)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
java課程設(shè)計(jì)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、java課程設(shè)計(jì)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)java課程設(shè)計(jì)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)15/15java課程設(shè)計(jì)計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)淮海工學(xué)院計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱:面向?qū)ο笳n程設(shè)計(jì)選題名稱:計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)姓名:學(xué)號:專業(yè)班級:系(院):計(jì)算機(jī)工程學(xué)院設(shè)計(jì)時間:設(shè)計(jì)地址:軟件實(shí)驗(yàn)室、教室指導(dǎo)教師考語:成績:署名:年月日面向?qū)ο笳n程設(shè)計(jì)報(bào)告第2頁,共15頁1課程設(shè)計(jì)目的面向?qū)ο蟪绦蛟O(shè)計(jì)是一門實(shí)踐性很強(qiáng)的計(jì)算機(jī)專業(yè)基礎(chǔ)課程,課程設(shè)計(jì)是學(xué)習(xí)完該課程后進(jìn)行的一次較全面的綜合練習(xí)。其目的在于經(jīng)過實(shí)踐加深學(xué)生對面向?qū)ο蟪绦蛟O(shè)計(jì)的理論、方法和基礎(chǔ)知識的理解,掌握使用Java語言進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本方法,提升運(yùn)

2、用面向?qū)ο笾R剖析實(shí)質(zhì)問題、解決實(shí)質(zhì)問題的能力。2課程設(shè)計(jì)任務(wù)與要求:課程設(shè)計(jì)可采納NetBeans、Eclipse、JBuilder等作為開發(fā)平臺以提升開發(fā)效率,盡可能嫻熟掌握此中一種集成開發(fā)環(huán)境。建議采納UML建模技術(shù)進(jìn)行系統(tǒng)的剖析設(shè)計(jì),在Visio中畫出系統(tǒng)用例圖和類圖,并將UML圖復(fù)制到設(shè)計(jì)報(bào)告中。經(jīng)過此次設(shè)計(jì),要求掌握以下內(nèi)容:1)面向?qū)ο蠹夹g(shù)中的繼承與多態(tài)(重載和覆蓋)體制、各樣修飾符的使用2)類、包、接口的定義與使用3)常用工具類與算法的實(shí)現(xiàn)(數(shù)組、向量、字符串、鏈表)4)Java常用標(biāo)準(zhǔn)GUI組件及其事件辦理5)Java的異樣辦理體制6)Java的數(shù)據(jù)庫連結(jié)技術(shù)7)Java的多

3、線程技術(shù)與動畫制作8)Java的網(wǎng)絡(luò)編程3課程設(shè)計(jì)說明書面向?qū)ο笳n程設(shè)計(jì)報(bào)告第3頁,共15頁、需求剖析(用例圖)計(jì)算器加減乘除階乘正弦用戶余弦歷史查驗(yàn)清空歷史圖1.用例圖課題:計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)功能剖析:此計(jì)算器有連續(xù)運(yùn)算的功能,但是在好多人使用計(jì)算器時簡單忘記從前是用8*2呢仍是6*2,于是這個計(jì)算器多出歷史查驗(yàn)的功能,能夠?qū)那暗氖阶语@示在下方,一邊查驗(yàn)正確與否。2、綱要設(shè)計(jì)MultipleOperation類,用來實(shí)現(xiàn)連續(xù)運(yùn)算的類MultipleOperationtrans:String+operation(expr:String)Listl類,用來記錄歷史的類面向?qū)ο笳n程設(shè)計(jì)報(bào)告第4頁

4、,共15頁listStr:StringEstr:Stringflag:String+toString()3詳盡設(shè)計(jì)MultipleOperationtrans:String+operation(expr:String)publicclassMultipleOperationStringtrans;publicvoidoperation(Stringexpr)ScriptEngineManagermanager=newScriptEngineManager();ScriptEngineengine=manager.getEngineByName(js);trytrans=String.value

5、Of(engine.eval(expr);catch(Exceptione)trans=錯誤語法;System.out.println(e);listStr:StringEstr:Stringflag:String+toString()publicclasslist面向?qū)ο笳n程設(shè)計(jì)報(bào)告第5頁,共15頁StringStr;StringEstr;Stringflag;publiclist()Str=;Estr=;flag=;OverridepublicStringtoString()/returnA+F+B+D+C;returnStr+=+Estr;4編程實(shí)現(xiàn)packageCalculator;i

6、mportjava.awt.event.*;importjavax.swing.*;importjava.util.*;intClearNumber=1;/判斷點(diǎn)擊“=”后點(diǎn)擊數(shù)字按鈕重置文本框intI=0;/用來加入列表第一行的提示intflag=0;/點(diǎn)擊列表后提取結(jié)果的判斷源judgeju;privatebooleannumber=true;privateStringequalOp=;privateCalculatorOpop=newCalculatorOp();MultipleOperationCalcuOperation;listhistory;Vectordata=newVecto

7、r();ActionListenernumberListener=newNumberListener();/*classNumberListenerimplementsActionListenerpublicvoidactionPerformed(ActionEventevent)Stringdigit=event.getActionCommand();if(number)textfield.setText(digit);number=false;elsetextfield.setText(textfield.getText()+digit);面向?qū)ο笳n程設(shè)計(jì)報(bào)告第6頁,共15頁*Action

8、ListeneroperatorListener=newOperatorListener();privatevoidaction()number=true;textfield.setText();*equalOp=;op.setTotal(0);*classOperatorListenerimplementsActionListenerpublicvoidactionPerformed(ActionEvente)if(number)action();textfield.setText(0);elsenumber=true;StringdisplayText=textfield.getText(

9、);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=-;*elseif(equalOp.equals()op.multiply(displayText);op.B();history.F=;*elseif(equalOp.equals()op.divide(di

10、splayText);op.B();history.F=;elseif(equalOp.equals(N)op.B();history.F=;intA;intB;inttrans=1;StringC;面向?qū)ο笳n程設(shè)計(jì)報(bào)告A=Integer.parseInt(history.A);B=Integer.parseInt(history.B);op.B();*for(inti=0;iB;i+)trans*=A;op.power(String.valueOf(trans);textfield.setText(+op.getTotalString();equalOp=e.getActionCommand

11、();*/publicclassjudgepublicvoidpan()if(ClearNumber=0)textfield.setText();/*publicclassCalculatorOp*privatedoubletotal;publicCalculatorOp()total=0;publicStringgetTotalString()return+total;publicvoidsetTotal(Stringn)total=convertToNumber(n);publicvoidadd(Stringn)total+=convertToNumber(n);publicvoidsub

12、tract(Stringn)total-=convertToNumber(n);publicvoidmultiply(Stringn)total*=convertToNumber(n);*publicvoiddivide(Stringn)total/=convertToNumber(n);第7頁,共15頁面向?qū)ο笳n程設(shè)計(jì)報(bào)告第8頁,共15頁publicvoidpower(Stringn)total=convertToNumber(n);*publicvoidA()history.A=textfield.getText();publicvoidB()history.B=textfield.get

13、Text();*privatedoubleconvertToNumber(Stringn)returnDouble.parseDouble(n);*/*CreatesnewformNewJFrame*/publicNewJFrame()initComponents();history=newlist();textfield.setText(null);CalcuOperation=newMultipleOperation();ju=newjudge();this.setLocationRelativeTo(null);this.setResizable(false);privatevoidbt

14、nPointActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+.);privatevoidbtnClearActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText().substring(0,textfield.getText().length()-1);privatevoidbtnEqual1ActionPerformed(java.awt.event.ActionEve

15、ntevt)textfield.setText();面向?qū)ο笳n程設(shè)計(jì)報(bào)告第9頁,共15頁privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt)ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+1);privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt)ju.pan();ClearNumber=1;textfield.setText(textfield.getText()+2

16、);privatevoidjButton3ActionPerformed(java.awt.event.ActionEventevt)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.

17、awt.event.ActionEventevt)ju.pan();ClearNumber=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();ClearNum

18、ber=1;textfield.setText(textfield.getText()+7);面向?qū)ο笳n程設(shè)計(jì)報(bào)告第10頁,共15頁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

19、(textfield.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;privatevoidbtnSubtractActionP

20、erformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+-);ClearNumber=1;privatevoidbtnMultiplyActionPerformed(java.awt.event.ActionEventevt)ClearNumber=1;textfield.setText(textfield.getText()+*);privatevoidbtnDivideActionPerformed(java.awt.event.ActionEventevt)textfield.setText

21、(textfield.getText()+/);ClearNumber=1;privatevoidbtnEqualActionPerformed(java.awt.event.ActionEventevt)CalcuOperation;Stringstrans=;history.Str=textfield.getText();面向?qū)ο笳n程設(shè)計(jì)報(bào)告第11頁,共15頁CalcuOperation.operation(textfield.getText();textfield.setText(CalcuOperation.trans);history.Estr=CalcuOperation.tran

22、s;strans=history.Str+=+history.Estr;if(I=0&textfield.getText()!=null)data.addElement(歷史記錄以下:);I=1;if(CalcuOperation.trans=錯誤語法)ClearNumber=0;elsedata.addElement(strans);jlist.setListData(data);textfield.setText(CalcuOperation.trans);ClearNumber=0;privatevoidbtnBrackets1ActionPerformed(java.awt.event

23、.ActionEventevt)textfield.setText(textfield.getText()+();privatevoidbtnBrackets2ActionPerformed(java.awt.event.ActionEventevt)textfield.setText(textfield.getText()+);privatevoidjlistValueChanged(javax.swing.event.ListSelectionEventevt)history.flag=String.valueOf(jlist.getSelectedValue();textfield.se

24、tText(history.flag.substring(history.flag.indexOf(=)+1,history.flag.length();ClearNumber=1;flag=1;privatevoidjButton11ActionPerformed(java.awt.event.ActionEventevt)if(ClearNumber=0|flag=1)Stringa=textfield.getText().substring(0,textfield.getText().indexOf(.);textfield.setText(變換為二進(jìn)制為:+String.valueOf

25、(Integer.toBinaryString(Integer.parseInt(a);elseif(textfield.getText().indexOf(.)!=-1)Stringa=textfield.getText().substring(0,textfield.getText().indexOf(.);textfield.setText(變換為二進(jìn)制為:面向?qū)ο笳n程設(shè)計(jì)報(bào)告第12頁,共15頁+String.valueOf(Integer.toBinaryString(Integer.parseInt(a);elsetextfield.setText(變換為二進(jìn)制為:+String.v

26、alueOf(Integer.toBinaryString(Integer.parseInt(textfield.getText();ClearNumber=0;privatevoidjButton12ActionPerformed(java.awt.event.ActionEventevt)if(ClearNumber=0)Stringa=textfield.getText().substring(0,textfield.getText().indexOf(.);textfield.setText(變換為八進(jìn)制為:+String.valueOf(Integer.toOctalString(I

27、nteger.parseInt(a);elseif(textfield.getText().indexOf(.)!=-1)Stringa=textfield.getText().substring(0,textfield.getText().indexOf(.);textfield.setText(變換為八進(jìn)制為:+String.valueOf(Integer.toOctalString(Integer.parseInt(a);elsetextfield.setText(變換為八進(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(變換為十六進(jìn)制為:+String.valueOf(Integer.toHexString(Integer.parseInt(a);elseif(textfield.getTex

溫馨提示

  • 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

提交評論