



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計報告書課程名稱面向對象程序設計設計題目計算器的設計與實現(xiàn)2013 年月1 設計時間2 設計目的1、復習、鞏固 Java語言的基礎知識,進一步加深對Java 語言的理解和掌握;2、能設計符合問題要求的圖形和用戶界面程序,掌握常用組件的事件接口;3、培養(yǎng)團隊合作精神、創(chuàng)新意識及能力。3 設計任務3.1 設計一個能實現(xiàn)計算器功能的Java 程序,可以進行加、減、乘、除(另外可適當加上階乘、正弦、余弦和指數(shù))運算。(1) 應具有相應的界面,如下圖所示:圖示 3-1(2) 操作符號定為:“ +”,“”,“ * ”,“ /”,“ .”,“ sin”,“ cos”等。(3) 用戶通過點擊面板中的各種
2、組件輸入表達式,應在上方文本框中顯示。(4) 當用戶點擊“ =”時,文本框中之前的容應清空,直接顯示表達式運算結果。3.2 具有相應的科學計算功能。(1)可以進行加、減、乘、除等一些簡單的運算。(2)可以進行正弦、余弦的運算。(3)可以進行階乘與指數(shù)運算。4 設計容4.1 實驗容該計算器程序的設計先引入程序設計所需要的包,代碼如下:4.2 程序運行過程結果125+235=的運行結果:圖 4-1圖 4-2圖 4-3100/3 的運行結果:圖 4-4圖 4-5圖 4-64.3 界面設計包括了如下幾個類:public class Calculator extends JFrame implement
3、s ActionListener public void actionPerformed(ActionEvent e) public void Display(int i)public static void main(String args)/主函數(shù)入口new Calculator();4.4 程序的實現(xiàn)代碼public class Calculator extends JFrame implements ActionListener JPanel pnl1,pnl2;JTextField textfild;GridLayout grdlyt;JButton b0,b1,b2,b3,b4,b
4、5,b6,b7,b8,b9,bp,bd;JButton badd,bsub,bmul,bdiv,bcos,bsin,bjiecheng,bpow,beql,bclear; String str;boolean end,add,sub,mul,div,cos,sin,jiecheng,pow;double num1,num2;Calculator()super("計算器 ");grdlyt=new GridLayout(3,7,6,6);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/設置窗口關閉按鈕pnl1=new
5、JPanel();pnl2=new JPanel(grdlyt);Container cp=this.getContentPane();cp.add(pnl1,"North");cp.add(pnl2,"Center");this.setBounds(400,300,450,240);textfild=new JTextField("0",30);textfild.setHorizontalAlignment(JTextField.RIGHT);/數(shù)字按鈕區(qū)b0=new JButton("0");b1=new JB
6、utton("1");b2=new JButton("2");b3=new JButton("3");b4=new JButton("4");b5=new JButton("5");b6=new JButton("6");b7=new JButton("7");b8=new JButton("8");b9=new JButton("9");bd=new JButton(".");/操作按鈕區(qū)bdi
7、v=new JButton(" ÷");bmul=new JButton("×");bsub=new JButton("");badd=new JButton("");bsin=new JButton("Sin");bcos=new JButton("Cos");bjiecheng=new JButton("n!");bclear=new JButton("C");bpow=new JButton("xy&
8、quot;);beql=new JButton("=");/添加按鈕到面板并設置相應的監(jiān)聽事件pnl1.add(textfild);pnl2.add(b0);b0.addActionListener(this);pnl2.add(b1);b1.addActionListener(this);pnl2.add(b2);b2.addActionListener(this);pnl2.add(b3);b3.addActionListener(this);pnl2.add(b4);b4.addActionListener(this);pnl2.add(b5);b5.addActio
9、nListener(this);pnl2.add(b6);b6.addActionListener(this);pnl2.add(b7);b7.addActionListener(this);pnl2.add(b8);b8.addActionListener(this);pnl2.add(b9);b9.addActionListener(this);pnl2.add(bd);bd.addActionListener(this);pnl2.add(bdiv);bdiv.addActionListener(this);pnl2.add(bmul);bmul.addActionListener(th
10、is);pnl2.add(bsub);bsub.addActionListener(this);pnl2.add(badd);badd.addActionListener(this);pnl2.add(bsin);bsin.addActionListener(this);pnl2.add(bcos);bcos.addActionListener(this);pnl2.add(bjiecheng);bjiecheng.addActionListener(this);pnl2.add(bpow);bpow.addActionListener(this);pnl2.add(bclear);bclea
11、r.addActionListener(this);pnl2.add(beql);beql.addActionListener(this);this.setVisible(true);/顯示界面/監(jiān)聽按鈕事件并處理按鈕響應事件public void actionPerformed(ActionEvent e)if(e.getSource()=b1)Display(1);else if(e.getSource()=b2)Display(2);else if(e.getSource()=b3)Display(3);else if(e.getSource()=b4)Display(4);else i
12、f(e.getSource()=b5)Display(5);else if(e.getSource()=b6)Display(6);else if(e.getSource()=b7)Display(7);else if(e.getSource()=b8)Display(8);else if(e.getSource()=b9)Display(9);else if(e.getSource()=b0)Display(0);else if(e.getSource()=badd)add=true; sub=false; mul=false; div=false; cos=false; sin=false
13、; jiecheng=false; pow=false;bd.setEnabled(true);num1=Double.parseDouble(textfild.getText();/接收第一個字符并轉化成double型end=true;/輸入結束else if(e.getSource()=bsub)add=false; sub=true; mul=false;div=false;cos=false; sin=false; jiecheng=false; pow=false;bd.setEnabled(true);num1=Double.parseDouble(textfild.getText
14、();/接收第一個字符并轉化成double型end=true;/輸入結束else if(e.getSource()=bmul)add=false; sub=false; mul=true;div=false;cos=false;sin=false;jiecheng=false; pow=false;bd.setEnabled(true);num1=Double.parseDouble(textfild.getText();/接收第一個字符并轉化成double型end=true;/輸入結束else if(e.getSource()=bdiv)add=false;sub=false;mul=fal
15、se; div=true;cos=false;sin=false; jiecheng=false; pow=false;num1=Double.parseDouble(textfild.getText();/接收第一個字符并轉化成double型end=true;/輸入結束else if(e.getSource()=bcos)add=false; sub=false; mul=false; div=false;cos=true; sin=false;jiecheng=false; pow=false;bd.setEnabled(true);num1=Double.parseDouble(text
16、fild.getText();/接收第一個字符并轉化成double型end=true;/輸入結束else if(e.getSource()=bsin)add=false; sub=false;mul=false;div=false;cos=false; sin=true; jiecheng=false; pow=false;bd.setEnabled(true);num1=Double.parseDouble(textfild.getText();/接收第一個字符并轉化成double型end=true;/輸入結束else if(e.getSource()=bjiecheng)add=false
17、;sub=false; mul=false;div=false;cos=false;sin=false;jiecheng=true;pow=false;bd.setEnabled(true);num1=Double.parseDouble(textfild.getText();/接收第一個字符并轉化成double型end=true;/輸入結束else if(e.getSource()=bpow)add=false; sub=false; mul=false; div=false;cos=false;sin=false;jiecheng=false;pow=true;bd.setEnabled(
18、true);num1=Double.parseDouble(textfild.getText();/接收第一個字符并轉化成double型end=true;/輸入結束else if(e.getSource()=bclear)bd.setEnabled(true);textfild.setText("0");else if(e.getSource()=bd)str=textfild.getText();str+="."textfild.setText(str);bd.setEnabled(false);else if(e.getSource()=beql)b
19、d.setEnabled(true);num2=Double.parseDouble(textfild.getText();/接收第二個字符并轉化成double型if(add)num1=num1 + num2;else if(sub)num1=num1 - num2;else if(mul)num1=num1*num2;else if(div) if(num2=0)textfild.setText(" 輸入非法 "); return;num1=num1/num2;else if(cos)num1=Math.cos(num1);else if(sin)num1=Math.si
20、n(num1);else if(jiecheng) num1=funjiecheng(num1); else if(pow)num1=Math.pow(num1,num2);textfild.setText(String.valueOf(num1);/ 把所得結果顯示在文本框 end=true;public double funjiecheng(double num)/階乘計算double sum=1;double i;for(i=num;i>0;i-)sum=sum*i;return sum;public void Display(int i) /textfild顯示按鈕輸入Strin
21、g s = null;s=String.valueOf(i);if(end)/ 如果數(shù)字輸入結束,則將文本框置零,重新輸入textfild.setText("0");end=false;if(textfild.getText().equals("0")/ 如果文本框的容為零,則覆蓋文本框的容textfild.setText(s);else/如果文本框的容不為零,則在容后面添加數(shù)字str=textfild.getText() + s;textfild.setText(str);public static void main(String args)/主函數(shù)入口new Calculator();5 總結與展望通過這次實驗,我認識到了面向對象的編程的基本思想,Java 是一門優(yōu)秀的編程語言,具有面向對象、與平臺有關,安全、穩(wěn)定和多線程等特點。了解了 Java編程的流程,學會了用 Java 語言編寫簡單的軟件,增強了我對學習 Java 的興趣。通過查資料更是明白了很多函數(shù)的用法,解決了生活中的很多問題。在課堂上學習中不明白的、沒掌握的、認識不深刻的,通過自己動手實踐,都有了解答。經過一個學期的 Java 的學習,對 Java 編程有了一定的認識。在做這個課程設計的時候,剛開始感覺自己無從下手, 不知道該怎么開始, 最終利用網
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動合同標準格式范文
- 簡易自愿離婚合同模板
- 菜鳥驛站快遞柜租賃合同
- 餐飲企業(yè)戰(zhàn)略合作區(qū)域代理合同樣本
- 老舊農村房屋轉讓合同范本
- 自行車安全培訓課件
- 木工機械的現(xiàn)代控制技術考核試卷
- 木質游藝器材制作工藝考核試卷
- 批發(fā)行業(yè)的品牌形象塑造考核試卷
- 合成材料在汽車制造領域的應用研究考核試卷
- 2024年鎮(zhèn)江市高等??茖W校單招職業(yè)適應性測試題庫完美版
- 2024年云上貴州大數(shù)據(jù)(集團)有限公司招聘筆試沖刺題(帶答案解析)
- 珠海市高級技工學校校企合作管理辦法修訂
- GB 31825-2024制漿造紙單位產品能源消耗限額
- 消防設施操作員報名工作證明(操作員)
- 供應商開發(fā)流程及質量要求
- 2024年技術監(jiān)督質檢職業(yè)技能考試-電力技術監(jiān)督上崗員(中國華能)筆試歷年真題薈萃含答案
- 反假幣測試附有答案
- 怎樣調動員工積極性
- 2024年內科護理學(第七版)期末考試復習題庫(含答案)
- 急診科培訓急診科與其他科室的協(xié)作與溝通
評論
0/150
提交評論