




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、武漢理工大學(xué)華夏學(xué)院課程設(shè)計報告課程名稱:JAVA課程設(shè)計計算器的設(shè)計與實現(xiàn)名:信息工程系專業(yè)班級:計算機(jī)1121班名:袁世杰學(xué) 號:10210412102劉春燕指導(dǎo)教師:2014年9月11日課程設(shè)計任務(wù)學(xué)生姓名:袁世杰專業(yè)班級:計算機(jī)1121班指導(dǎo)教師:劉春燕工作單位:信息工程系設(shè)計題目:要求完成的主要任務(wù):(包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)設(shè)計一個圖形界面(GUI)的計算器應(yīng)用程序,完成簡單的算術(shù)運算(1 )完成加法,減法,乘法和除法的計算;(2)具有小數(shù)點,正負(fù)號,退格和清零功能;設(shè)計報告撰寫格式要求:讀懂課程設(shè)計指導(dǎo)書的要歸納相關(guān)資料解決具體問1、明確課程設(shè)計
2、的目的和重要性,認(rèn)真領(lǐng)會課程設(shè)計的題目,求,學(xué)會設(shè)計的基本方法與步驟,學(xué)會如何運用前修知識與收集、 題的方法。嚴(yán)格要求自己,要獨立思考,按時、獨立完成課程設(shè)計任務(wù)。2、設(shè)計報告:要求層次清楚、整潔規(guī)范、不得相互抄襲,凡正文內(nèi)容有整段完全相同者一律以抄襲論處。設(shè)計報告正文字?jǐn)?shù)不少于0.2萬字(不包括附錄)時間安排:消化資料、系統(tǒng)調(diào)查項目原型開發(fā)系統(tǒng)功能實現(xiàn)系統(tǒng)驗收指導(dǎo)教師簽字:2014 年 9 月 5 日系主任簽字:2014 年 9 月 5 日1目標(biāo)設(shè)計一個圖形界面 (GUI)的計算器應(yīng)用程序,完成簡單的加、減、乘、除等算術(shù)運算。通過對計算器的編輯來檢測和提升自己的java編程能力。2軟件開發(fā)環(huán)
3、境與技術(shù)簡介2.1開發(fā)工具介紹NetBeans包括開源的開發(fā)環(huán)境和應(yīng)用平臺,NetBeans IDE可以使開發(fā)人員利用Java平臺能夠快速創(chuàng)建 Web企業(yè)、桌面以及移動的應(yīng)用程序,NetBeans IDE已經(jīng)支持PHP Ruby、JavaScript、Groovy、Grails 和 C/C+等開發(fā)語言。NetBeans項目由一個活躍的開發(fā)社區(qū)提供支持,NetBean開發(fā)環(huán)境提供了豐富的產(chǎn)品文檔和培訓(xùn)資源以及大量的第三方插件。NetBeans是開源軟件開發(fā)集成環(huán)境,是一個開放框架,可擴(kuò)展的開發(fā)平臺,可以用于Java、C/C+,PHP等語言的開發(fā),本身是一個開發(fā)平臺,可以通過擴(kuò)展插件來擴(kuò)展功能。2
4、.2硬件環(huán)境帶有windows xp系統(tǒng)的計算機(jī)2.3軟件環(huán)境NetBea ns IDE 6.9.13系統(tǒng)需求分析設(shè)計的計算器可以完成加法、減法、乘法、除法的簡單運算。實現(xiàn)一些簡單的擴(kuò)展運算,如:正負(fù)號、倒數(shù)、退格、清零等功能。添加小數(shù)點功能,用以實現(xiàn)浮點型數(shù)據(jù)的計算。使用布局管理器設(shè)計一個計算器的界面,使用事件監(jiān)聽器處理數(shù)據(jù)的輸入,并完成相關(guān)的計算。4系統(tǒng)總體設(shè)計4.1系統(tǒng)功能簡介(1 )完成加法,減法,乘法和除法的計算;(2)具有小數(shù)點,正負(fù)號,退格和清零功能;4.2系統(tǒng)功能模塊規(guī)劃(1)根據(jù)所設(shè)計出來的界面,首先要設(shè)計其GUI界面,總體界面有一個文本框,20個按鈕,總體界面用 GridL
5、ayout布局,文本框放置在最 NORTH然后0到9以及+,-*,/等按鈕放置到一個面板 Panel中,完成界面設(shè)計。(2)設(shè)計計算流程,首先點擊數(shù)字按鈕時,將按鈕數(shù)值添加到文本框當(dāng)中,并將該數(shù)值保存到一個字符串中,再次點擊數(shù)字按鈕時, 將之前保存的字符串與新的數(shù)值拼接起來,再添加到文本框當(dāng)中, 直到點擊運算符按鈕時, 將文本框當(dāng)中的字符串保存在一個字符串變量中,然后重置文本框內(nèi)容, 將運算符號顯示到文本框中,隨后輸入第二個計算數(shù)據(jù)時,用同樣的辦法保存數(shù)據(jù),最后通過控制“=”運算符先將字符串?dāng)?shù)據(jù)轉(zhuǎn)化成雙精度類型,然后計算出結(jié)果并顯示到文本框當(dāng)中。5系統(tǒng)詳細(xì)設(shè)計5.1程序流程圖5.2 程序分析1
6、)類 Calculator繼承自 ActionListener 接口,通過這一接口來處理界面中的按鈕所觸發(fā)的動作事件。ActionListener 接口可以接收 ActionEvent ,該接口有一個事件方法 actionPerformedActionEvent e ),在該方法中將觸發(fā)需要實現(xiàn)的功能。(2) ActionEvent類繼承自AWTEven,代表的是一個語義事件,用來指出某組件(component)所定義行動”發(fā)生了。這種事件由一個組件(如Button )引發(fā),而觸動的時機(jī)則是當(dāng)這組件的某種特定動作(如該 Button 被單擊)發(fā)生之時。此事件產(chǎn)生后,系統(tǒng)會將它分配給該組件所注冊
7、(用 addActionListenert ()方法實現(xiàn)注冊)的每一個ActionListener (監(jiān)聽者) ,來接收并處理這種事件。所以如果一個按鈕組件注冊一個addActionListener 方法,那么當(dāng)用戶用鼠標(biāo)單節(jié)此按鈕時,就會產(chǎn)生ActionEvent 事件。3)在程序運行中,每當(dāng)單擊數(shù)字按鈕和運算符按鈕,都會觸發(fā)動作actionPerformed( ActionEvent e ),利用類 ActionEvent 得 getActionCommand ()方法確定是由哪一個按 鈕觸發(fā)的,進(jìn)行相應(yīng)的計算操作。(4)在AWT中提供了五種布局管理類。 布局管理器指明了容器中構(gòu)件的位置和
8、尺寸大小。通過布局管理器, 只需知道放置的構(gòu)件同其他構(gòu)件的相對應(yīng)的位置即可,有助于實現(xiàn)軟件的平臺無關(guān)性。本程序中用到的布局管理管理器的BorderLayout 、 GridLayout 。其中BorderLayout類使用地理上的方向North、South、West和Center來確定構(gòu)件添加的位置。其中前四個方向占據(jù)屏幕的四邊,而 Center 方向占據(jù)剩下的空白; GridLayout 是比較復(fù)雜 但是卻很靈活得AWW局,可以精確地指定組件的放置位置,它是在將屏幕劃分成網(wǎng)格的基 礎(chǔ)上, 允許每個機(jī)構(gòu)占據(jù)一個或多個單元 (顯示區(qū)域) 。在程序中用到 GridLayout 的構(gòu)件函 數(shù) Gri
9、dLayout ( int rows , int cols , int hasp , int vgap )其中的參數(shù)分別表示行數(shù), 列數(shù),水平間距和垂直間距。(5) AWT中提供了可以用來盛裝構(gòu)件的面板( Panel),可以把對象放在面板上,在把面板鑲到窗口中,每一個面板有顏色、大小,甚至頁面設(shè)計等屬性。5.3 部分代碼及解析1.需要調(diào)用的類import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class hutest extends JFrame imp
10、lements ActionListener,DocumentListenerJTextField text;/文本誆String x=,y=,operation=;boolean flag1=true,flag2=true,flag3=true,flag4=true,flag5=true; 2.主函數(shù)public static void main(String args)new hutest();3界面設(shè)計public hutest()sup er(計算器);Co ntai ner c=this.getCo nte ntPan e();/獲得一個容器 c.setLayout (n ull);
11、/ 布局為空text=new JTextField();text.setSize(480,38);/大小text.setLocatio n( 10,50);/位 置 text.setHorizontalAlignment(JTextField .RIGHT) ;/文本曠右邊 c.add(text);text.getDocume nt().addDocume ntListe ner(this);/文本框注冊事件 JPanel pan 2=new JPan el()面板pan2.setSize(480,240);pan2.setLocation(10,150);pan2.setLayout(new
12、 GridLayout(4,5,10,10);String str=1,2,3,+,c,4,5,6,-, 退格,7,8,9,*, 倒數(shù) ,0,+/-,.,/,=;for(int i=0;istr.length;i+)JButton button=new JButton(stri);button.addActionListener(this);pan2.add(button);c.add(pan2); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(500,450);this.setVisible(true);
13、4運算符的控制和值的輸入輸出 public void changedUpdate(DocumentEvent e)public void insertUpdate(DocumentEvent e)x=text.getText();/獲得文本誆的內(nèi)容/ System.out.println(y=+y+ x=+x);public void removeUpdate(DocumentEvent e)public void actionPerformed(ActionEvent e)Stri ng z=e.getActio nComma nd();/記錄按紐上的字符tryif(Character.is
14、Digit(z.charAt(0) text.setText(text.getText()+z); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;else if(z.equals(+)&flag1) operation=+;y=x;text.setText();flag1=false;else if(z.equals(-)&flag2) operation=-;y=x;text.setText();flag2=false;else if(z.equals(*)&flag3) operation=*;y=x;text.setText
15、();flag3=false;else if(z.equals(/)&flag4) operation=/;y=x;text.setText();flag4=false;else if(z.equals(倒數(shù))flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;y=x;Doubley2=Double.parseDouble(y);doubley22=1/y2;text.setText(y22+);else if(z.equals(+/-)y=x;double yy=-Double.parseDouble(y);text.setText(
16、yy+); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;else if(z.equals(.)if(x.indexOf(.)=-1)text.setText(x+.);flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;else if(z.equals(=)flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;Double op1=Double.parseDouble(y);Double op2=Double.par
17、seDouble(x);if(operation.equals(+)x=op1+op2+;text.setText(x); else if(operation.equals(-)x=op1-op2+;text.setText(x); else if(operation.equals(*)x=op1*op2+;text.setText(x); else if(operation.equals(/)x=op1/op2+;text.setText(x); else if(operation.equals(%)x=op1%op2+;text.setText(x); else if(z.equals(c
18、)x=;text.setText(); flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;else if(z.equals(退格)text.setText(x.substring(0,x.length()-1);flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;catch(Exce ptio n ex)x=;y=; op erati on=;text.setText();6系統(tǒng)測試與運行(1)界面顯示0岡123+C456-退格789A凰數(shù)0*/-/=(2)輸入數(shù)字“13”B計
19、算口區(qū)I13123+C456-琨朋789A倒數(shù)0時-I=(3)點擊“ +”后輸入“14”。14123+C【456-789A倒數(shù)01/(4)點擊“=”,獲得結(jié)果。27 0123+C456-琨朋789A倒數(shù)0時-I=|(5)輸入數(shù)字“10”口岡1C123+C456-789A倒數(shù)ol1/(6)取倒數(shù)運算后,獲得結(jié)果。0.1123+C456-789A倒數(shù)0H-I=(7)點擊“退格”,獲得結(jié)果回岡123+C456-789A倒數(shù)01/本次課程設(shè)計到此算是告一段落了,經(jīng)過這次的學(xué)習(xí),我學(xué)到了很多東西, 在此基礎(chǔ)上更加鞏固了自己對 java 的認(rèn)識與了解。在做本項目是時候, 會遇到很多小問題, 比如說, 在整
20、個運算過程中要如何 確保輸入的計算數(shù)據(jù)哪個是第一個計算數(shù)據(jù)的, 哪個是第二個計算數(shù)據(jù)的, 同時 也要區(qū)分運算符, 因為該計算器程序應(yīng)用的都是利用字符串來完成計算的, 而且 不能重復(fù)輸出運算符,更不能將運算符錯誤的存儲在了第一個計算數(shù)據(jù)的數(shù)值 中,也得考慮到萬一不小心重復(fù)點擊了運算符按鈕會不會造成第一個計算數(shù)據(jù)的 重新賦值等等問題,最后想到利用布爾類型來很好的控制運算符的應(yīng)用! 此次課程設(shè)計讓我更了解熟悉了 Java 中的圖形用戶界面和它的編程方式。 在完成課題的過程中也不斷充實了自己,學(xué)習(xí)到了很多以前沒有學(xué)習(xí)到的知識, 收獲很大。最大的收獲就是對大學(xué)學(xué)習(xí)的總結(jié)和培養(yǎng)了解決困難的信心和能力, 使
21、我對所學(xué)知識能夠融會貫通,又不斷豐富了新知識。 Java 計算器設(shè)計使得我 們對所學(xué)的專業(yè)課有了更為深刻的認(rèn)識,使得知識得到了鞏固和提高。在接下來的時間里, 我覺得我要更加努力的往深一層次的方面看齊, 了解更 多有關(guān) java 的知識,對 java 有更深一步的了解,我會一步一步的走下去! 8 參考文獻(xiàn)1 王建華 . ASP NET 2.0 動態(tài)網(wǎng)站開發(fā)技術(shù)與實踐 M. 北京:電子工業(yè)出版社, 2007.2徐迎曉 Java語法及網(wǎng)絡(luò)應(yīng)用設(shè)計清華大學(xué)出版社 2002 3戴特爾(美) Java 大學(xué)簡明教程 實例程序設(shè)計 2005附錄A:系統(tǒng)核心代碼public void changedUpdat
22、e(DocumentEvent e) public void insertUpdate(DocumentEvent e)x=text.getText();/獲得文本誆的內(nèi)容/ System.out.println(y=+y+ x=+x);public void removeUpdate(DocumentEvent e)public void actionPerformed(ActionEvent e)Stri ng z=e.getActio nComma nd();/記錄按紐上的字符 tryif(Character.isDigit(z.charAt(0)text.setText(text.ge
23、tText()+z);flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;else if(z.equals(+)&flag1)operation=+;y=x;text.setText();flag1=false;else if(z.equals(-)&flag2)operation=-;y=x;text.setText();flag2=false;else if(z.equals(*)&flag3)operation=*;y=x;text.setText();flag3=false;else if(z.equals(/)&flag4)o
24、peration=/;y=x;text.setText();flag4=false;else if(z.equals(倒數(shù))flag1=true;flag2=true;flag3=true;flag4=true;flag5=true;y=x;Doubley2=Double.parseDouble(y);doubley22=1/y2;text.setText(y22+);else if(z.equals(+/-)y=x;double yy=-Double.parseDouble(y);text.setText(yy+); flag1=true;flag2=true;flag3=true;flag4
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/TR 24589-1:2024 EN Examples of good practice for the management of assets of water supply and wastewater systems - Part 1: Water supply
- 【正版授權(quán)】 ISO 24591-1:2024 EN Smart water management - Part 1: General guidelines and governance
- 2025貝殼房產(chǎn)中介加盟店客戶滿意度調(diào)查及提升措施合同
- 2025年房屋拆除工程環(huán)境保護(hù)與監(jiān)測合同
- 教學(xué)理念與實踐探索計劃
- 課堂游戲與學(xué)習(xí)效果的關(guān)系計劃
- 圖書發(fā)行渠道拓展計劃
- 主管年度工作方案計劃
- 公司企業(yè)文化建設(shè)的年度工作計劃
- 七年級下冊《垂線》課件與練習(xí)
- 完形療法概述
- 說課的技巧和方法專題講座
- 園林景觀工程報價表
- SL631-637-2012-水利水電工程單元工程施工質(zhì)量驗收評定標(biāo)準(zhǔn)
- 2023年黑龍江省哈爾濱市單招數(shù)學(xué)摸底卷(含答案)
- 監(jiān)理質(zhì)量管理講義監(jiān)理工作的基本知識
- 浙江臺州仙居富民村鎮(zhèn)銀行2023年招聘人員筆試歷年高頻考點試題答案帶詳解
- 教科版六下科學(xué)全冊課時練(含答案)
- 煙花爆竹考試真題模擬匯編(共758題)
- 非遺申請書范本
- 四年級數(shù)學(xué)上冊口算天天練4
評論
0/150
提交評論