![java課程設(shè)計(jì)報(bào)告計(jì)算器的設(shè)計(jì)實(shí)現(xiàn)分析_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/49f637bb-3750-459a-8312-701f0052d952/49f637bb-3750-459a-8312-701f0052d9521.gif)
![java課程設(shè)計(jì)報(bào)告計(jì)算器的設(shè)計(jì)實(shí)現(xiàn)分析_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/49f637bb-3750-459a-8312-701f0052d952/49f637bb-3750-459a-8312-701f0052d9522.gif)
![java課程設(shè)計(jì)報(bào)告計(jì)算器的設(shè)計(jì)實(shí)現(xiàn)分析_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/49f637bb-3750-459a-8312-701f0052d952/49f637bb-3750-459a-8312-701f0052d9523.gif)
![java課程設(shè)計(jì)報(bào)告計(jì)算器的設(shè)計(jì)實(shí)現(xiàn)分析_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/49f637bb-3750-459a-8312-701f0052d952/49f637bb-3750-459a-8312-701f0052d9524.gif)
![java課程設(shè)計(jì)報(bào)告計(jì)算器的設(shè)計(jì)實(shí)現(xiàn)分析_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/49f637bb-3750-459a-8312-701f0052d952/49f637bb-3750-459a-8312-701f0052d9525.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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)室、教室 成績(jī):指導(dǎo)教師評(píng)語(yǔ): 簽名: 年 月 日. z-1課程設(shè)計(jì)目的?面向?qū)ο蟪绦蛟O(shè)計(jì)?是一門實(shí)踐性很強(qiáng)的計(jì)算機(jī)專業(yè)根底課程,課程設(shè)計(jì)是學(xué)習(xí)完該課程后進(jìn)展的一次較全面的綜合練習(xí)。其目的在于通過(guò)實(shí)踐加深學(xué)生對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)的理論、方法和根底知識(shí)的理解,掌握使用Java語(yǔ)言進(jìn)展面向?qū)ο笤O(shè)計(jì)的根本方法,提高運(yùn)用面向?qū)ο笾R(shí)分析實(shí)際問(wèn)題、解決實(shí)際問(wèn)題的能力。2課程設(shè)計(jì)任務(wù)與要求:課程設(shè)計(jì)可選用NetBeans、
2、Eclipse、uilder等作為開(kāi)發(fā)平臺(tái)以提高開(kāi)發(fā)效率,盡可能熟練掌握其中一種集成開(kāi)發(fā)環(huán)境。建議采用UML建模技術(shù)進(jìn)展系統(tǒng)的分析設(shè)計(jì),在Visio中畫出系統(tǒng)用例圖和類圖,并將UML圖復(fù)制到設(shè)計(jì)報(bào)告中。通過(guò)這次設(shè)計(jì),要求掌握以下容: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ù)庫(kù)連接技術(shù)7) Java的多線程技術(shù)與動(dòng)畫制作8) Java的網(wǎng)絡(luò)編程 3課程設(shè)計(jì)說(shuō)明書1、需求分析用例圖圖1.用例圖 課題:計(jì)算
3、器的設(shè)計(jì)與實(shí)現(xiàn) 功能分析:此計(jì)算器有連續(xù)運(yùn)算的功能,然而在很多人使用計(jì)算器時(shí)容易忘掉之前是用8*2呢還是6*2,于是這個(gè)計(jì)算器多出歷史檢驗(yàn)的功能,可以將以前的式子顯示在下方,一邊檢驗(yàn)正確與否。 2、概要設(shè)計(jì)MultipleOperation類,用來(lái)實(shí)現(xiàn)連續(xù)運(yùn)算的類MultipleOperation trans: String+operation (e*pr: String)Listl類,用來(lái)記錄歷史的類listStr: StringEstr: Stringflag: String+toString ()3詳細(xì)設(shè)計(jì)MultipleOperationtrans: String+operation
4、(e*pr: String)public class MultipleOperation String trans; public void operation(String e*pr) ScriptEngineManager manager=new ScriptEngineManager(); ScriptEngine engine =manager.getEngineByName("js"); try trans= String.valueOf( engine.eval(e*pr); catch(E*ception e) trans="錯(cuò)誤語(yǔ)法" S
5、ystem.out.println(e); listStr:StringEstr: Stringflag: String+toString ()public class list String Str; String Estr; String flag; public list() Str=" Estr=" flag=" Override public String toString () /return A+F+B+D+C; return Str+"="+Estr; 4編程實(shí)現(xiàn)package Calculator;import java.aw
6、t.event.*;import java*.swing.*;import java.util.*;public class NewJFrame e*tends java*.swing.JFrame int ClearNumber=1;/判定點(diǎn)擊“=后 點(diǎn)擊數(shù)字按鈕重置文本框 int I=0;/用來(lái)參加列表第一行的提示 int flag=0;/點(diǎn)擊列表后 提取結(jié)果的判定源 judge ju; private boolean number = true; private String equalOp = "=" / private CalculatorOp op = new
7、CalculatorOp(); MultipleOperation CalcuOperation; list history; Vector<String> data=new Vector<String>(); / ActionListener numberListener = new NumberListener(); /* class NumberListener implements ActionListener * public void actionPerformed(ActionEvent event) * String digit = event.getA
8、ctionmand(); * if (number) * te*tfield.setTe*t(digit); * number = false; * else * te*tfield.setTe*t(te*tfield.getTe*t() + digit); * * * * * ActionListener operatorListener = new OperatorListener(); * private void action() * number = true; * te*tfield.setTe*t("); * equalOp = "=" * op.s
9、etTotal("0"); * * * class OperatorListener implements ActionListener * public void actionPerformed(ActionEvent e) * if (number) * action(); * te*tfield.setTe*t("0"); * else * number = true; * String displayTe*t = te*tfield.getTe*t(); * if (equalOp.equals("=") * op.A();
10、* op.setTotal(displayTe*t); * history.D="=" * * * else if (equalOp.equals("+") * op.add(displayTe*t); * op.B(); * history.F="+" * else if (equalOp.equals("-") * op.subtract(displayTe*t); * op.B(); * history.F="-" * else if (equalOp.equals("×
11、;") * op.multiply(displayTe*t); * op.B(); * history.F="×" * else if (equalOp.equals("÷") * op.divide(displayTe*t); * op.B(); * history.F="÷" * else if (equalOp.equals("N") * op.B(); * history.F="" * int A; * int B; * int trans=1;
12、* 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); * * te*tfield.setTe*t(" + op.getTotalString(); * equalOp = e.getActionmand(); * * * */public class judge public void pan() if(ClearNu
13、mber=0) te*tfield.setTe*t("); /*public class CalculatorOp * * private double total; * public CalculatorOp() * total = 0; * * public String getTotalString() * return "+total; * * public void setTotal(String n) * total = convertToNumber(n); * * public void add(String n) * total += convertToN
14、umber(n); * * public void subtract(String n) * total -= convertToNumber(n); * * public void multiply(String n) * total *= convertToNumber(n); * * * public void divide(String n) * total /= convertToNumber(n); * * * public void power (String n) * total = convertToNumber(n); * * * * public void A() * h
15、istory.A=te*tfield.getTe*t(); * * public void B() * history.B=te*tfield.getTe*t(); * * * private double convertToNumber(String n) * return Double.parseDouble(n); * * */ /* * Creates new form NewJFrame */ public NewJFrame() initponents(); history=new list(); te*tfield.setTe*t(null); CalcuOperation=ne
16、w MultipleOperation(); ju=new judge(); this.setLocationRelativeTo(null); this.setResizable(false); private void btnPointActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"."); private void btnClearActionPerformed(java.awt.event.ActionEvent evt) te*tfield
17、.setTe*t(te*tfield.getTe*t().substring(0, te*tfield.getTe*t().length()-1); private void btnEqual1ActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t("); private void utton1ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t(
18、)+"1"); private void utton2ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"2"); private void utton3ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"
19、3"); private void utton4ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"4"); private void utton5ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"5")
20、; private void utton6ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"6"); private void utton7ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"7"); privat
21、e void utton8ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"8"); private void utton9ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"9"); private void u
22、tton10ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"0"); private void btnAddActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"+"); ClearNumber=1; private void btnSubtractActionP
23、erformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"-"); ClearNumber=1; private void btnMultiplyActionPerformed(java.awt.event.ActionEvent evt) ClearNumber=1; te*tfield.setTe*t(te*tfield.getTe*t()+"*"); private void btnDivideActionPerformed(java.awt.ev
24、ent.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"/"); ClearNumber=1; private void btnEqualActionPerformed(java.awt.event.ActionEvent evt) / CalcuOperation; String strans=" history.Str=te*tfield.getTe*t(); CalcuOperation.operation(te*tfield.getTe*t(); te*tfield.setTe*t(Calcu
25、Operation.trans); history.Estr=CalcuOperation.trans; strans=history.Str+"="+history.Estr; if(I=0&&te*tfield.getTe*t()!=null) data.addElement("歷史記錄如下:"); I=1; if(CalcuOperation.trans="錯(cuò)誤語(yǔ)法") ClearNumber=0; else data.addElement(strans); jlist.setListData(data); te
26、*tfield.setTe*t(CalcuOperation.trans); ClearNumber=0; private void btnBrackets1ActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+"("); private void btnBrackets2ActionPerformed(java.awt.event.ActionEvent evt) te*tfield.setTe*t(te*tfield.getTe*t()+")&
27、quot;); private void jlistValueChanged(java*.swing.event.ListSelectionEvent evt) history.flag=String.valueOf(jlist.getSelectedValue(); te*tfield.setTe*t( history.flag.substring(history.flag.inde*Of("=")+1,history.flag.length(); ClearNumber=1; flag=1; private void utton11ActionPerformed(jav
28、a.awt.event.ActionEvent evt) if(ClearNumber=0|flag=1) String a=te*tfield.getTe*t().substring(0, te*tfield.getTe*t().inde*Of("."); te*tfield.setTe*t("轉(zhuǎn)換為二進(jìn)制為: "+String.valueOf(Integer.toBinaryString(Integer.parseInt(a); else if(te*tfield.getTe*t().inde*Of(".")!=-1) Strin
29、g a=te*tfield.getTe*t().substring(0, te*tfield.getTe*t().inde*Of("."); te*tfield.setTe*t("轉(zhuǎn)換為二進(jìn)制為: "+String.valueOf(Integer.toBinaryString(Integer.parseInt(a); else te*tfield.setTe*t("轉(zhuǎn)換為二進(jìn)制為:"+String.valueOf(Integer.toBinaryString(Integer.parseInt(te*tfield.getTe*t();
30、ClearNumber=0; private void utton12ActionPerformed(java.awt.event.ActionEvent evt) if(ClearNumber=0) String a=te*tfield.getTe*t().substring(0, te*tfield.getTe*t().inde*Of("."); te*tfield.setTe*t("轉(zhuǎn)換為八進(jìn)制為: "+String.valueOf(Integer.toOctalString(Integer.parseInt(a); else if(te*tfie
31、ld.getTe*t().inde*Of(".")!=-1) String a =te*tfield.getTe*t().substring(0, te*tfield.getTe*t().inde*Of("."); te*tfield.setTe*t("轉(zhuǎn)換為八進(jìn)制為: "+String.valueOf(Integer.toOctalString(Integer.parseInt(a); else te*tfield.setTe*t("轉(zhuǎn)換為八進(jìn)制為: "+String.valueOf(Integer.toOctalString(Integer.parseInt(te*tfield.getTe*t(); ClearNumber=0; private void utton13ActionPerformed(java.awt.event.ActionEvent evt) if(ClearNumber=0) String a=te*tfield.getTe*t().substring(0, te*tfield.getTe*t().length()-2); te*tfield.setTe*t(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)建新公司合同范本
- 書買賣協(xié)議合同范例
- 伐木工招聘合同范例
- 別墅老宅轉(zhuǎn)讓合同范例
- 農(nóng)村豪宅出售合同范本
- 個(gè)人住宅出售合同范例
- 獸藥批發(fā)市場(chǎng)調(diào)研考核試卷
- 代加工合同范例模版
- 修剪綠化直營(yíng)合同范本
- 中介代打備案合同范本
- 2025版茅臺(tái)酒出口業(yè)務(wù)代理及銷售合同模板4篇
- 新版《醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范》(2024)培訓(xùn)試題及答案
- 2025年人教版數(shù)學(xué)五年級(jí)下冊(cè)教學(xué)計(jì)劃(含進(jìn)度表)
- 北師大版七年級(jí)上冊(cè)數(shù)學(xué)期末考試試題及答案
- 初中信息技術(shù)課堂中的項(xiàng)目式學(xué)習(xí)實(shí)踐研究結(jié)題報(bào)告
- 2024安全事故案例
- 生日快樂(lè)祝福含生日歌相冊(cè)課件模板
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(kù)(含答案)
- 復(fù)工復(fù)產(chǎn)安全培訓(xùn)考試題
- 手術(shù)風(fēng)險(xiǎn)及醫(yī)療意外險(xiǎn)告知流程
- 《醫(yī)院重點(diǎn)??平ㄔO(shè)專項(xiàng)資金管理辦法》
評(píng)論
0/150
提交評(píng)論