版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、淮海 工學(xué)院 計(jì)算機(jī)工程學(xué)院課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 面向?qū)ο笳n程設(shè)計(jì)選題名稱:計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)姓 名: 陳瑤 學(xué) 號(hào):2015123226專業(yè)班級(jí):網(wǎng)絡(luò)151系(院): 計(jì)算機(jī)工程學(xué)院設(shè)計(jì)時(shí)間: 2016.11.282016.12.10設(shè)計(jì)地點(diǎn):軟件實(shí)驗(yàn)室、教室成績(jī):指導(dǎo)教師評(píng)語(yǔ):簽名:1 .課程設(shè)計(jì)目的面向?qū)ο蟪绦蛟O(shè)計(jì)是一門(mén)實(shí)踐性很強(qiáng)的計(jì)算機(jī)專業(yè)基礎(chǔ)課程,課程設(shè)計(jì)是學(xué)習(xí)完該課程后進(jìn)行的一次較全面的綜合練習(xí)。其目的在于通過(guò)實(shí)踐加深學(xué)生對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)的理論、方法和基礎(chǔ)知識(shí)的理解,掌握使用 Java語(yǔ)言進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本方法,提高運(yùn)用面向?qū)ο笾R(shí)分 析實(shí)際問(wèn)題、解決實(shí)際問(wèn)題的能力。同時(shí)復(fù)
2、習(xí)本學(xué)期所學(xué)的知識(shí)以及運(yùn)用于實(shí)踐中去,將基本知識(shí)點(diǎn)進(jìn)行穩(wěn)定,使之更加熟悉知識(shí)點(diǎn)。通過(guò)本次學(xué)習(xí)了解以下的內(nèi)容:1)、類、包、接口的定義與使用2)、Java常用的標(biāo)準(zhǔn) GUI組件及事件處理2 .課程設(shè)計(jì)任務(wù)與要求:設(shè)計(jì)一個(gè)能實(shí)現(xiàn)計(jì)算器功能的Java程序,可以進(jìn)行加、減、乘、除(另外可適當(dāng)加 上階乘、正弦、余弦和指數(shù))運(yùn)算。中間可以加入一些自己的想法,比如界面如何設(shè)計(jì)出一些特色,算法的實(shí)現(xiàn)是否可 以加入自己的想法,以上種種各樣的想法以及構(gòu)思。Java中提供了大量的類有一些問(wèn)題的解決方法根本不用自己去從新定義,前人已經(jīng)栽好了樹(shù)我們只需要直接拿過(guò)來(lái)用就好 了,所以對(duì)于一些你想解決但覺(jué)得自己又解決不了的問(wèn)
3、題,可以上網(wǎng)上查查有沒(méi)有類似 的已經(jīng)有現(xiàn)成的函數(shù)拿過(guò)來(lái)用用。3.課程設(shè)計(jì)說(shuō)明書(shū)、需求分析計(jì)算器大家都不陌生,使用量也是非常的大,所以一款操作方便結(jié)構(gòu)豐富的計(jì)算器是非 常有必要的,所以我們?cè)谶@里設(shè)計(jì)出一款適合大眾的計(jì)算器。輸入一個(gè)數(shù)Display。方法顯讀入下一個(gè)符Math. cos()Math.Math.sin()pow()Funjiecheng()Display。方法顯示二、概要設(shè)計(jì)Calculator類用來(lái)實(shí)現(xiàn)所要應(yīng)用的各種功能:Calculator extends JFrame'<<Interface>>一一 聲 11!ActionListener1* _
4、pnll: JPanel pnl2: JPanel textfild: JTextField grd: GridLayout b0: JButton b1 :JButton b2: JButton b3: JButton b4: JButton b5 :JButton b6: JButton b7: JButton b8: JButton b9: JButton bp: JButton bd: JButton badd:JButton bsub:JButton bmul: :JButton bdiv:JButton bcos: :JButton bsin:JButton bjiecheng:J
5、Button bpow:JButton beql:JButton bclear:JButton num1:double num2:double end:boolean add: boolean sub: boolean mul: boolean div: boolean cos: boolean sin: boolean jiecheng : boolean pow: boolean面向?qū)ο笳n程設(shè)計(jì)報(bào)告第5頁(yè),共 24頁(yè)Calculator。Funjiecheng()actionPerformend(ActionEvent e)Display(int i)加上代碼:public class C
6、alculator extends JFrame implements ActionListenerJMenuBar mb;JMenu menu;JMenuItem t,t1,t2;JPanel pnl1,pnl2;JTextField textfild;GridLayout grd;JButton b0,b1,b2,b3,b4,b5,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,j
7、iecheng,pow;double num1,num2;Calculator。public void actionPerformed(ActionEvent e)else if(e.getSource()=bsub)else if(e.getSource()=bmul)else if (e.getSource()=bdiv)else if(e.getSource()=bcos)end=true;解俞入結(jié)束else if(e.getSource()=bsin)else if(e.getSource()=bjiecheng)else if(e.getSource()=bpow)else if(e
8、.getSource()=bclear)bd.setEnabled(true);textfild.setText("0");else if(e.getSource()=bd)str=textfild.getText();str+="."texfild.setText(str);bd.setEnabled(false);else if(e.getSource()=beql)bd.setEnabled(true);num2=Double.parseDouble(texfild.getText();/數(shù)字類型轉(zhuǎn)化 if(add)num1=num1+num2;e
9、lse 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.sin(num1);else if(jiecheng)num1=funjiecheng(num1);else if(pow)num1=Math.pow(num1,num2);/調(diào)用庫(kù)函數(shù)中的 pow 方法texfild.s
10、etText(String.valueOf(num1);把所得結(jié)果顯示在文本框 end=true;public double funjiecheng(double i)double num=1;if(i=0|i=1)num=1;elsenum=num*funjiecheng(i-1);return num;public void Display(int i)String s=null;s=String.valueOf(i);if(end)/如果數(shù)字輸入結(jié)束,則將文本框置零,重新輸入texfild.setText("0");end=false;if(tex帕ld.getTex
11、t().equals("0")/如果文本框的內(nèi)容為零,則覆蓋文本框的內(nèi)容textfild.setText(s); elsestr=textfild.getText()+s;textfild.setText(str);Text類是對(duì)Calculator類的詳細(xì)實(shí)現(xiàn)及其測(cè)試:Text main(String a)public class Textpublic static void main(String a)new Calculator。;三、詳細(xì)設(shè)計(jì)加上代碼:import java.awt*;import java.awt.event.*;import javax.swin
12、g.*;public class Calculator extends JFrame implements ActionListenerJMenuBar mb;JMenu menu;JMenuItem t,t1,t2;JPanel pnl1,pnl2;JTextField textfild;GridLayout grd;JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,bp,bd;JButton badd,bsub,bmul,bdiv,bcos,bsin,bjiecheng,bpow,beql,bclear;String str;boolean end,add,sub
13、,mul,div,cos,sin,jiecheng,pow;double num1,num2;Calculator。super("簡(jiǎn)單的計(jì)算器”);grd=new GridLayout(6,4,6,6);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);pnl1=new JPanel(grd);pnl2=new JPanel(grd);Container cp=this.getContentPane();姓意 getContentPanecp.add(pnl1,"North");cp.add(pnl2,&quo
14、t;Center");pnl1.setBackground(Color.orange);面向?qū)ο笳n程設(shè)計(jì)報(bào)告第11頁(yè),共 24頁(yè)pnl2.setBackground(Color.green);this.setBounds(400,500,450,240);textfild=new JTextField("0",33);textfild.setHorizontalAlignment(JTextField.CENTER);mb=new JMenuBar();menu=new JMenu('說(shuō)明書(shū)");t=new JMenuItem("此計(jì)算
15、器使用方便,可以實(shí)現(xiàn)連續(xù)不同優(yōu)先級(jí)的運(yùn)算。當(dāng)進(jìn) 行一次運(yùn)算后,");t1=new JMenuItem("再點(diǎn)擊數(shù)字按鈕則開(kāi)始新一輪的運(yùn)算,如果在是運(yùn)算后直接 點(diǎn)運(yùn)算符號(hào)(加減等)");t2=new JMenuItem("則會(huì)直接繼續(xù)上次的結(jié)果進(jìn)行運(yùn)算。");menu.add(t);menu.add(t1);menu.add(t2);mb.add(menu);b0=new JButton("0");b1=new JButton('T);b2=new JButton("2");b3=new JButt
16、on("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(".");bdiv=new JButton(" +");bdiv.setForeground(Color.red);bmul=new
17、JButton(" x");bmul.setForeground(Color.red);badd=new JButton("+");badd.setForeground(Color.red);bsub=new JButton("-");bsub.setForeground(Color.red);bcos=new JButton("Cos");bcos.setForeground(Color.blue);bsin=new JButton("Sin");bsin.setForeground(Colo
18、r.blue);bjiecheng=new JButton("n!");bjiecheng.setForeground(Color.blue);bclear=new JButton("C");bpow=new JButton("xAy");bpow.setForeground(Color.blue);beql=new JButton("=");pnll.add(mb);pnll.add(textfild);pnl2.add(b9);b9.addActionListener(this);pnl2.add(b8);b8
19、.addActionListener(this);pnl2.add(b7);b7.addActionListener(this);pnl2.add(bdiv);bdiv.addActionListener(this);pnl2.add(b6);b6.addActionListener(this);pnl2.add(b5);b5.addActionListener(this);pnl2.add(b4);b4.addActionListener(this);pnl2.add(bmul);bmul.addActionListener(this);pnl2.add(b3);b3.addActionLi
20、stener(this);pnl2.add(b2);b2.addActionListener(this);pnl2.add(b1);bl.addActionListener(this);pnl2.add(badd);badd.addActionListener(this);pnl2.add(bsub);bsub.addActionListener(this);pnl2.add(b0);bO.addActionListener(this);pnl2.add(bd);bd.addActionListener(this);pnl2.add(bjiecheng);bjiecheng.addAction
21、Listener(this);pnl2.add(badd);badd.addActionListener(this);pnl2.add(bsin);bsin.addActionListener(this);pnl2.add(bcos);bcos.addActionListener(this);pnl2.add(bpow);bpow.addActionListener(this);pnl2.add(bclear);bclear.addActionListener(this);pnl2.add(beql);beql.addActionListener(this);this.setVisible(t
22、rue);public void actionPerformed(ActionEvent e)if(e.getSource()=b0)Display(0);else 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 if(e.getSource()=b5)Display(5);else if(e.getSource()=b6)Display(6);else i
23、f(e.getSource()=b7)Display(7);else if(e.getSource()=b8)Display(8);else if(e.getSource()=b9)Display(9);else if(e.getSource()=badd)add=true;sub=false;mul=false;div=false;cos=false;sin=false;jiecheng=false;pow=false;bd.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第一個(gè)字符并轉(zhuǎn)化成double 型end=tr
24、ue;解俞入結(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(texfild.getText();接收第一個(gè)字符并轉(zhuǎn)化成double 型end=true;解俞入結(jié)束else if(e.getSource()=bmul)add=false;sub=false;mul=true;div=false;cos=false;sin=false;
25、jiecheng=false;pow=false;bd.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第一個(gè)字符并轉(zhuǎn)化成double 型end=true;解俞入結(jié)束else if (e.getSource()=bdiv)add=false;sub=false;mul=false;div=true;cos=false;sin=false;jiecheng=false;pow=false;num1=Double.parseDouble(texfild.getText();接收第一個(gè)字符并轉(zhuǎn)化成double 型end=tru
26、e;解俞入結(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(texfild.getText();接收第一個(gè)字符并轉(zhuǎn)化成double 型end=true;解俞入結(jié)束else if(e.getSource()=bsin)add=false;sub=false;mul=false;div=false;cos=false;sin=true;j
27、iecheng=false;pow=false;bd.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第一個(gè)字符并轉(zhuǎn)化成double 型end=true;解俞入結(jié)束else if(e.getSource()=bjiecheng)add=false;sub=false;mul=false;div=false;cos=false;sin=false;jiecheng=true;pow=false;bd.setEnabled(true);num1=Double.parseDouble(texfild.getText();接收第
28、一個(gè)字符并轉(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(true);num1=Double.parseDouble(texfild.getText();接收第一個(gè)字符并轉(zhuǎn)化成 doubleend=true;解俞入結(jié)束else if(e.getSource()=bclear)bd.setEnabled(true);textfild.setTex
29、t("0");else if(e.getSource()=bd)str=textfild.getText();str+="."textfild.setText(str);bd.setEnabled(false);else if(e.getSource()=beql)bd.setEnabled(true);num2=Double.parseDouble(texfild.getText();/數(shù)字類型轉(zhuǎn)化 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.sin(num1);else if(jiecheng)num1=funjiecheng(num1);else if(pow)num
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 階段述職報(bào)告(7篇)
- 德邦物流個(gè)人心得體會(huì)
- 第二學(xué)期小班家長(zhǎng)會(huì)發(fā)言稿(11篇)
- 煤礦個(gè)人警示教育心得體會(huì)5篇
- 總監(jiān)年會(huì)獲獎(jiǎng)感言300字(3篇)
- 2024年二手奢品項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- DB12 764-2018 鑄鍛工業(yè)大氣污染物排放標(biāo)準(zhǔn)
- 2024-2025學(xué)年河南新高中創(chuàng)新聯(lián)盟TOP二十名校高三上學(xué)期語(yǔ)文試題及答案
- 資產(chǎn)評(píng)估學(xué)教程-練習(xí)答案7
- 四年級(jí)數(shù)學(xué)(簡(jiǎn)便運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案
- 浙教版數(shù)學(xué)七年級(jí)上44-46代數(shù)式復(fù)習(xí)課課件
- 顱腦損傷的腦保護(hù)措施
- 餐廚垃圾清運(yùn)協(xié)議書(shū)范本
- 網(wǎng)絡(luò)監(jiān)控?cái)z像頭安裝作業(yè)指導(dǎo)書(shū)
- 商業(yè)銀行會(huì)計(jì)業(yè)務(wù)檢查方案
- 《出生缺陷》課件
- 數(shù)與代數(shù)領(lǐng)域教學(xué)策略學(xué)習(xí)教案課件
- 動(dòng)畫(huà)場(chǎng)景鏡頭透視與應(yīng)用課件
- 畜禽環(huán)境衛(wèi)生-畜舍環(huán)境控制-PPT演示文稿
- 小學(xué)生衛(wèi)生健康小常識(shí)-課件
- 藏式建筑簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論