




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)報告設(shè)計(jì)名稱: 面向?qū)ο笳n程設(shè)計(jì) 選題名稱:計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)姓 名:學(xué) 號:專業(yè)班級:系 (院): 計(jì)算機(jī)工程學(xué)院設(shè)計(jì)時間:設(shè)計(jì)地點(diǎn): 軟件實(shí)驗(yàn)室、教室 成績:指導(dǎo)教師評語: 簽名: 年 月 日1課程設(shè)計(jì)目的面向?qū)ο蟪绦蛟O(shè)計(jì)是一門實(shí)踐性很強(qiáng)的計(jì)算機(jī)專業(yè)基礎(chǔ)課程,課程設(shè)計(jì)是學(xué)習(xí)完該課程后進(jìn)行的一次較全面的綜合練習(xí)。其目的在于通過實(shí)踐加深學(xué)生對面向?qū)ο蟪绦蛟O(shè)計(jì)的理論、方法和基礎(chǔ)知識的理解,掌握使用Java語言進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本方法,提高運(yùn)用面向?qū)ο笾R分析實(shí)際問題、解決實(shí)際問題的能力。2課程設(shè)計(jì)任務(wù)與要求:課程設(shè)計(jì)可選用NetBeans、Eclipse、JBuilder等作為開發(fā)平臺
2、以提高開發(fā)效率,盡可能熟練掌握其中一種集成開發(fā)環(huán)境。建議采用UML建模技術(shù)進(jìn)行系統(tǒng)的分析設(shè)計(jì),在Visio中畫出系統(tǒng)用例圖和類圖,并將UML圖復(fù)制到設(shè)計(jì)報告中。通過這次設(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ù)與動畫制作8) Java的網(wǎng)絡(luò)編程3課程設(shè)計(jì)說明書1、需求分析(用例圖)圖1.用例圖 課題:計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn) 功能分析:此計(jì)
3、算器有連續(xù)運(yùn)算的功能,然而在很多人使用計(jì)算器時容易忘掉之前是用8*2呢還是6*2,于是這個計(jì)算器多出歷史檢驗(yàn)的功能,可以將以前的式子顯示在下方,一邊檢驗(yàn)正確與否。 2、概要設(shè)計(jì)MultipleOperation類,用來實(shí)現(xiàn)連續(xù)運(yùn)算的類MultipleOperation trans: String+operation (expr: String)Listl類,用來記錄歷史的類listStr: StringEstr: Stringflag: String+toString ()3詳細(xì)設(shè)計(jì)MultipleOperationtrans: String+operation (expr: String)p
4、ublic 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="錯誤語法" System.out.print
5、ln(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
6、.awt.event.*;import javax.swing.*;import java.util.*;public class NewJFrame extends javax.swing.JFrame int ClearNumber=1;/判定點(diǎn)擊“=”后 點(diǎn)擊數(shù)字按鈕重置文本框 int I=0;/用來加入列表第一行的提示 int flag=0;/點(diǎn)擊列表后 提取結(jié)果的判定源 judge ju; private boolean number = true; private String equalOp = "=" / private CalculatorOp op =
7、new 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.
8、getActionCommand(); * if (number) * textfield.setText(digit); * number = false; * else * textfield.setText(textfield.getText() + digit); * * * * * ActionListener operatorListener = new OperatorListener(); * private void action() * number = true; * textfield.setText(""); * equalOp = "=
9、" * op.setTotal("0"); * * * class OperatorListener implements ActionListener * public void actionPerformed(ActionEvent e) * if (number) * action(); * textfield.setText("0"); * else * number = true; * String displayText = textfield.getText(); * if (equalOp.equals("="
10、;) * 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="-" * else if (equalOp.equal
11、s("×") * op.multiply(displayText); * op.B(); * history.F="×" * else if (equalOp.equals("÷") * op.divide(displayText); * op.B(); * history.F="÷" * else if (equalOp.equals("N") * op.B(); * history.F="" * int A; * int B; *
12、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); * * textfield.setText("" + op.getTotalString(); * equalOp = e.getActionCommand(); * * * */public class judge public
13、 void pan() if(ClearNumber=0) textfield.setText(""); /*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 a
14、dd(String n) * total += convertToNumber(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 = convertToNumb
15、er(n); * * * * public void A() * history.A=textfield.getText(); * * public void B() * history.B=textfield.getText(); * * * private double convertToNumber(String n) * return Double.parseDouble(n); * * */ /* * Creates new form NewJFrame */ public NewJFrame() initComponents(); history=new list(); textf
16、ield.setText(null); CalcuOperation=new MultipleOperation(); ju=new judge(); this.setLocationRelativeTo(null); this.setResizable(false); private void btnPointActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+"."); private void btnClearActionPerformed(java
17、.awt.event.ActionEvent evt) textfield.setText(textfield.getText().substring(0, textfield.getText().length()-1); private void btnEqual1ActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(""); private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearN
18、umber=1; textfield.setText(textfield.getText()+"1"); private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+"2"); private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumbe
19、r=1; textfield.setText(textfield.getText()+"3"); private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+"4"); private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1;
20、 textfield.setText(textfield.getText()+"5"); private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+"6"); private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; tex
21、tfield.setText(textfield.getText()+"7"); private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+"8"); private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfie
22、ld.setText(textfield.getText()+"9"); private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) ju.pan(); ClearNumber=1; textfield.setText(textfield.getText()+"0"); private void btnAddActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()
23、+"+"); ClearNumber=1; private void btnSubtractActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+"-"); ClearNumber=1; private void btnMultiplyActionPerformed(java.awt.event.ActionEvent evt) ClearNumber=1; textfield.setText(textfield.getText()+&q
24、uot;*"); private void btnDivideActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+"/"); ClearNumber=1; private void btnEqualActionPerformed(java.awt.event.ActionEvent evt) / CalcuOperation; String strans="" history.Str=textfield.getText();
25、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="錯誤語法") Cle
26、arNumber=0; else data.addElement(strans); jlist.setListData(data); textfield.setText(CalcuOperation.trans); ClearNumber=0; private void btnBrackets1ActionPerformed(java.awt.event.ActionEvent evt) textfield.setText(textfield.getText()+"("); private void btnBrackets2ActionPerformed(java.awt.
27、event.ActionEvent evt) textfield.setText(textfield.getText()+")"); private void jlistValueChanged(javax.swing.event.ListSelectionEvent evt) history.flag=String.valueOf(jlist.getSelectedValue(); textfield.setText( history.flag.substring(history.flag.indexOf("=")+1,history.flag.len
28、gth(); ClearNumber=1; flag=1; private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) if(ClearNumber=0|flag=1) String a=textfield.getText().substring(0, textfield.getText().indexOf("."); textfield.setText("轉(zhuǎn)換為二進(jìn)制為: "+String.valueOf(Integer.toBinaryString(Integer.par
29、seInt(a); else if(textfield.getText().indexOf(".")!=-1) String a=textfield.getText().substring(0, textfield.getText().indexOf("."); textfield.setText("轉(zhuǎn)換為二進(jìn)制為: "+String.valueOf(Integer.toBinaryString(Integer.parseInt(a); else textfield.setText("轉(zhuǎn)換為二進(jìn)制為:"+Strin
30、g.valueOf(Integer.toBinaryString(Integer.parseInt(textfield.getText(); ClearNumber=0; private void jButton12ActionPerformed(java.awt.event.ActionEvent evt) if(ClearNumber=0) String a=textfield.getText().substring(0, textfield.getText().indexOf("."); textfield.setText("轉(zhuǎn)換為八進(jìn)制為: "+
31、String.valueOf(Integer.toOctalString(Integer.parseInt(a); else if(textfield.getText().indexOf(".")!=-1) String a =textfield.getText().substring(0, textfield.getText().indexOf("."); textfield.setText("轉(zhuǎn)換為八進(jìn)制為: "+String.valueOf(Integer.toOctalString(Integer.parseInt(a); e
32、lse textfield.setText("轉(zhuǎn)換為八進(jìn)制為: "+String.valueOf(Integer.toOctalString(Integer.parseInt(textfield.getText(); ClearNumber=0; private void jButton13ActionPerformed(java.awt.event.ActionEvent 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 攝影器材評測標(biāo)準(zhǔn)與方法考核試卷
- 批發(fā)業(yè)消費(fèi)者畫像分析考核試卷
- 2025年電子脂肪儀項(xiàng)目建議書
- 無人駕駛技術(shù)在城市體育活動中的安全保障考核試卷
- 顯示器件制造中的設(shè)備性能監(jiān)測與提升考核試卷
- 林木育種的抗枯木菌選擇與策略考核試卷
- 毛皮裁剪自動化系統(tǒng)設(shè)計(jì)考核試卷
- 技術(shù)服務(wù)人才梯隊(duì)建設(shè)考核試卷
- 棉花加工機(jī)械的智能物流系統(tǒng)設(shè)計(jì)考核試卷
- 幼兒園環(huán)境教育活動安排計(jì)劃
- 商貿(mào)公司企業(yè)范文
- 第一章《原子結(jié)構(gòu)與性質(zhì)》測試卷-高二化學(xué)人教版(2019)選擇性必修2
- YY/T 1761-2021透析管路消毒液
- GB/T 38330-2019光伏發(fā)電站逆變器檢修維護(hù)規(guī)程
- GB/T 27476.2-2014檢測實(shí)驗(yàn)室安全第2部分:電氣因素
- GA 1010-2012看守所床具
- 婦女權(quán)益保障法課件
- 2023新教科版六年級下冊科學(xué)全冊教材分析(新版本)
- 魯教版八年級美術(shù)下冊《自己設(shè)計(jì)動漫形象》教學(xué)課件
- 急性胰腺炎評分表大全
- 文件、檔案借閱申請表
評論
0/150
提交評論