版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
PAGE2課程設計題目:java計算器設計報告學生姓名:學號:學院:專業(yè):指導教師:摘要Java具有面向?qū)ο蟆⑴c平臺無關、安全、穩(wěn)定和多線程等優(yōu)良特性,是目前軟件設計中優(yōu)秀的編程語言。Java不僅可以用來開發(fā)大型的應用程序,而且特別適合于internet應用的開發(fā)。Java確實具備了“一旦寫成處處可用”的特點,這也是java最初風靡全球的主要原因。Java是一門正在被廣泛使用的編程語言,而且許多的新的技術領域都涉及了java語言,java已成為了網(wǎng)絡時代最重要的編程語言之一。Java是面向?qū)ο缶幊?,并涉及網(wǎng)絡、多線程等重要的基礎知識,是一門很好的面向?qū)ο笳Z言。通過學習java語言不僅可以學習怎樣使用對象來完成某些任務、掌握面向?qū)ο缶幊痰幕舅枷?,而且也為今后進一步學習設計模式奠定較好的語言基礎。本計算器是由java語言所編程設計的電子計算器,可以進行四則運算(加、減、乘、除)、開平方、求倒數(shù)、求百分數(shù)等功能。通過本課程設計能夠較全面的掌握面向?qū)ο蟪绦蛟O計的有關概念和開發(fā)方法,以便能較全面地理解、掌握和綜合運用所學的知識,提高自身的編程能力。關鍵詞:java語言,計算器PAGE10
目錄一、概述41.設計目的及思路42.功能模塊設計43.系統(tǒng)功能圖4二、計算器的設計與實現(xiàn)51、程序界面52、程序源代碼5三、計算器演示8四、總結9五、參考文獻10一、概述1.設計目的及思路通過本課程設計能夠較全面的掌握面向?qū)ο蟪绦蛟O計的有關概念和開發(fā)方法,以便能較全面地理解、掌握和綜合運用所學的知識,提高自身的編程能力。首先開始設計一個計算器的界面,定義計算器所需要的按鈕并賦給其按鈕名稱,使得使用計算器時簡單明了,清晰可見,操作輕松。給各個按鈕進行算法,利用鼠標點擊事件,當鼠標點擊某個按鈕時就開始執(zhí)行那個按鈕所定義的算法,生成數(shù)據(jù)并顯示。除數(shù)字的輸入為直接進行輸入外,其他運算例如+、-、*、/、開平方等算法要求計算時通過內(nèi)部較為復雜的運算將結果顯示在顯示屏上。2.功能模塊設計計算器的基本功能:(1)單擊“計算器”上的數(shù)字按鈕(0~9)可以設置參與計算的運算數(shù)。(2)單擊“計算器”上的運算符按鈕(+、-、*、/、1/x、sqrt、%)可以選擇運算符號。(3)單擊“計算器”上的“=”按鈕顯示計算結果。(4)單擊“計算器”上的“清除”按鈕清空計算結果。(5)單擊“計算器”上的“退格”按鈕刪除輸入的最后一個數(shù)字。3.系統(tǒng)功能圖加法運算開平方運算加法運算開平方運算計算器減法運算倒數(shù)運算計算器減法運算倒數(shù)運算乘法運算乘法運算百分數(shù)運算百分數(shù)運算除法運算除法運算二、計算器的設計與實現(xiàn)1.程序界面2.程序源代碼importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassJCalculatorextendsJFrameimplementsActionListener{/***SerialVersionUID*/privatestaticfinallongserialVersionUID=-169068472193786457L;/***ThisclasshelpclosetheWindow.*/privateclassWindowCloserextendsWindowAdapter{publicvoidwindowClosing(WindowEventwe){System.exit(0);}}inti;//StringsforDigit&Operatorbuttons.privatefinalString[]str={"7","8","9","/","4","5","6","*","1","2","3","-",".","0","=","+"};//Buildbuttons.JButton[]buttons=newJButton[str.length];//Forcancelorreset.JButtonreset=newJButton("CE");//Buildthetextfieldtoshowtheresult.JTextFielddisplay=newJTextField("0");/***Constructorwithoutparameters.*/publicJCalculator(){super("Calculator");//Addapanel.JPanelpanel1=newJPanel(newGridLayout(4,4));//panel1.setLayout(newGridLayout(4,4));for(i=0;i<str.length;i++){buttons[i]=newJButton(str[i]);panel1.add(buttons[i]);}JPanelpanel2=newJPanel(newBorderLayout());//panel2.setLayout(newBorderLayout());panel2.add("Center",display);panel2.add("East",reset);//JPanelpanel3=newPanel();getContentPane().setLayout(newBorderLayout());getContentPane().add("North",panel2);getContentPane().add("Center",panel1);//Addactionlistenerforeachdigit&operatorbutton.for(i=0;i<str.length;i++)buttons[i].addActionListener(this);//Addlistenerfor"reset"button.reset.addActionListener(this);//Addlistenerfor"display"button.display.addActionListener(this);//The"close"button"X".addWindowListener(newWindowCloser());//Initializethewindowsize.setSize(800,800);//Showthewindow.//show();Usingshow()whileJDKversionisbelow1.5.setVisible(true);//Fitthecertainsize.pack();}publicvoidactionPerformed(ActionEvente){Objecttarget=e.getSource();Stringlabel=e.getActionCommand();if(target==reset)handleReset();elseif("0123456789.".indexOf(label)>0)handleNumber(label);elsehandleOperator(label);}//Isthefirstdigitpressed?booleanisFirstDigit=true;/***Numberhandling.*@paramkeythekeyofthebutton.*/publicvoidhandleNumber(Stringkey){if(isFirstDigit)display.setText(key);elseif((key.equals("."))&&(display.getText().indexOf(".")<0))display.setText(display.getText()+".");elseif(!key.equals("."))display.setText(display.getText()+key);isFirstDigit=false;}/***Resetthecalculator.*/publicvoidhandleReset(){display.setText("0");isFirstDigit=true;operator="=";}doublenumber=0.0;Stringoperator="=";/***Handlingtheoperation.*@paramkeypressedoperator'skey.*/publicvoidhandleOperator(Stringkey){if(operator.equals("+"))number+=Double.valueOf(display.getText());elseif(operator.equals("-"))number-=Double.valueOf(display.getText());elseif(operator.equals("*"))number*=Double.valueOf(display.getText());elseif(operator.equals("/"))number/=Double.valueOf(display.getText());elseif(operator.equals("="))number=Double.valueOf(display.getText());display.setText(String.valueOf(number));operator=key;isFirstDigit=true;}publicstaticvoidmain(String[]args){newJCalculator();}}三、計算器演示1.加法2.減法1+4+79-3乘法4.除法5*6121/11倒數(shù)6.開平方1/2√16
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境經(jīng)濟學試題庫(含參考答案)
- 護理教育導論模擬練習題含答案
- 保安跨省派遣合同范例
- 2025年喀什貨運上崗證考試題
- 個人占地協(xié)議合同范例
- 公路汽車租賃合同范例
- 活動方式合同范例
- 2025年杭州貨運從業(yè)資格證考試模擬題庫
- 天府新區(qū)航空旅游職業(yè)學院《審計學2(注會)》2023-2024學年第一學期期末試卷
- 2025年泰安駕駛資格證模擬考試
- 中醫(yī)科進修總結匯報
- 初中英語比較級和最高級專項練習題含答案
- 激光技術在能源、環(huán)保、農(nóng)業(yè)等領域的應用
- 【高分復習筆記】周小普《廣播電視概論》筆記和課后習題詳解
- 中國玉石及玉文化鑒賞智慧樹知到期末考試答案2024年
- MOOC 物理與藝術-南京航空航天大學 中國大學慕課答案
- 《旅游財務管理》課件-1認識旅游企業(yè)
- (正式版)JBT 5300-2024 工業(yè)用閥門材料 選用指南
- 工藝工程師的成長計劃書
- 家政運營方案
- 會展英語教學大綱
評論
0/150
提交評論