



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計報告書課程名稱面向?qū)ο蟪绦蛟O(shè)計設(shè)計題目計算器的設(shè)計與實(shí)現(xiàn)2013 年月1 設(shè)計時間2 設(shè)計目的1、復(fù)習(xí)、鞏固 Java語言的基礎(chǔ)知識,進(jìn)一步加深對Java 語言的理解和掌握;2、能設(shè)計符合問題要求的圖形和用戶界面程序,掌握常用組件的事件接口;3、培養(yǎng)團(tuán)隊(duì)合作精神、創(chuàng)新意識及能力。3 設(shè)計任務(wù)3.1 設(shè)計一個能實(shí)現(xiàn)計算器功能的Java 程序,可以進(jìn)行加、減、乘、除(另外可適當(dāng)加上階乘、正弦、余弦和指數(shù))運(yùn)算。(1) 應(yīng)具有相應(yīng)的界面,如下圖所示:圖示 3-1(2) 操作符號定為:“ +”,“”,“ * ”,“ /”,“ .”,“ sin”,“ cos”等。(3) 用戶通過點(diǎn)擊面板中的各種
2、組件輸入表達(dá)式,應(yīng)在上方文本框中顯示。(4) 當(dāng)用戶點(diǎn)擊“ =”時,文本框中之前的容應(yīng)清空,直接顯示表達(dá)式運(yùn)算結(jié)果。3.2 具有相應(yīng)的科學(xué)計算功能。(1)可以進(jìn)行加、減、乘、除等一些簡單的運(yùn)算。(2)可以進(jìn)行正弦、余弦的運(yùn)算。(3)可以進(jìn)行階乘與指數(shù)運(yùn)算。4 設(shè)計容4.1 實(shí)驗(yàn)容該計算器程序的設(shè)計先引入程序設(shè)計所需要的包,代碼如下:4.2 程序運(yùn)行過程結(jié)果125+235=的運(yùn)行結(jié)果:圖 4-1圖 4-2圖 4-3100/3 的運(yùn)行結(jié)果:圖 4-4圖 4-5圖 4-64.3 界面設(shè)計包括了如下幾個類: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 程序的實(shí)現(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);/設(shè)置窗口關(guān)閉按鈕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("=");/添加按鈕到面板并設(shè)置相應(yīng)的監(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)聽按鈕事件并處理按鈕響應(yīng)事件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();/接收第一個字符并轉(zhuǎn)化成double型end=true;/輸入結(jié)束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、();/接收第一個字符并轉(zhuǎn)化成double型end=true;/輸入結(jié)束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();/接收第一個字符并轉(zhuǎn)化成double型end=true;/輸入結(jié)束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();/接收第一個字符并轉(zhuǎn)化成double型end=true;/輸入結(jié)束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();/接收第一個字符并轉(zhuǎn)化成double型end=true;/輸入結(jié)束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();/接收第一個字符并轉(zhuǎn)化成double型end=true;/輸入結(jié)束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();/接收第一個字符并轉(zhuǎn)化成double型end=true;/輸入結(jié)束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();/接收第一個字符并轉(zhuǎn)化成double型end=true;/輸入結(jié)束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();/接收第二個字符并轉(zhuǎn)化成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);/ 把所得結(jié)果顯示在文本框 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ù)字輸入結(jié)束,則將文本框置零,重新輸入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 總結(jié)與展望通過這次實(shí)驗(yàn),我認(rèn)識到了面向?qū)ο蟮木幊痰幕舅枷?,Java 是一門優(yōu)秀的編程語言,具有面向?qū)ο蟆⑴c平臺有關(guān),安全、穩(wěn)定和多線程等特點(diǎn)。了解了 Java編程的流程,學(xué)會了用 Java 語言編寫簡單的軟件,增強(qiáng)了我對學(xué)習(xí) Java 的興趣。通過查資料更是明白了很多函數(shù)的用法,解決了生活中的很多問題。在課堂上學(xué)習(xí)中不明白的、沒掌握的、認(rèn)識不深刻的,通過自己動手實(shí)踐,都有了解答。經(jīng)過一個學(xué)期的 Java 的學(xué)習(xí),對 Java 編程有了一定的認(rèn)識。在做這個課程設(shè)計的時候,剛開始感覺自己無從下手, 不知道該怎么開始, 最終利用網(wǎng)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司借款合同書集錦
- 勞動合同法第四條
- 國際貿(mào)易貨物買賣合同
- 交通安全統(tǒng)籌服務(wù)合同
- 醫(yī)院聘用醫(yī)師協(xié)議書
- 2025年漯河貨運(yùn)資格證考試答案
- 借貸擔(dān)保合同協(xié)議5篇
- 農(nóng)場整體出租合同范本
- 買賣礦居間合同范本
- 農(nóng)村豬種出售合同范本
- 供應(yīng)商開發(fā)流程及質(zhì)量要求
- 2024年技術(shù)監(jiān)督質(zhì)檢職業(yè)技能考試-電力技術(shù)監(jiān)督上崗員(中國華能)筆試歷年真題薈萃含答案
- 反假幣測試附有答案
- 怎樣調(diào)動員工積極性
- 2024年內(nèi)科護(hù)理學(xué)(第七版)期末考試復(fù)習(xí)題庫(含答案)
- 【上市公司的財務(wù)風(fēng)險的分析和防范:以三只松鼠為例10000字(論文)】
- 急診科培訓(xùn)急診科與其他科室的協(xié)作與溝通
- JCT414-2017 硅藻土的標(biāo)準(zhǔn)
- 肌肉注射評分標(biāo)準(zhǔn)
- 鋼結(jié)構(gòu)主要技術(shù)標(biāo)準(zhǔn)和要求
- 臘八粥 第一課時自學(xué)導(dǎo)學(xué)單
評論
0/150
提交評論