java課程設(shè)計(jì)_計(jì)算器_武鑫_第1頁(yè)
java課程設(shè)計(jì)_計(jì)算器_武鑫_第2頁(yè)
java課程設(shè)計(jì)_計(jì)算器_武鑫_第3頁(yè)
java課程設(shè)計(jì)_計(jì)算器_武鑫_第4頁(yè)
java課程設(shè)計(jì)_計(jì)算器_武鑫_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、JAVA課程設(shè)計(jì)題目: 計(jì)算器 姓 名: 學(xué) 號(hào): 班 級(jí): 日 期: 指導(dǎo)老師分 數(shù)目 錄一. 引言3二.開發(fā)環(huán)境3三.詳細(xì)設(shè)計(jì)43.1程序中所用的類:43.2程序功能介紹:5四. 運(yùn)行結(jié)果:54.1 運(yùn)行結(jié)果界面截圖:54.2 程序運(yùn)行情況:5五 . 程序源代碼:6六 程序不足之處:12一. 引言該程序是一個(gè)圖形界面的簡(jiǎn)單的java計(jì)算器,使用人員能快捷簡(jiǎn)單地進(jìn)行操作。即時(shí)準(zhǔn)確地獲得需要的計(jì)算的結(jié)果,充分降低了數(shù)字計(jì)算的難度和節(jié)約了時(shí)間,對(duì)人們的生活有一定的幫助??梢赃M(jìn)行簡(jiǎn)單的四則運(yùn)算(加、減、乘、除,以及求倒數(shù),求相反數(shù)),有退格功能, 歸零表示初始化,界面顏色為灰白,該程序支持鍵盤操作

2、。隨著科學(xué)技術(shù)的不斷發(fā)展,計(jì)算機(jī)已經(jīng)成為我們工作學(xué)習(xí)和生活中不可缺少的工具。文本編輯器是個(gè)人計(jì)算機(jī)最司空見慣的應(yīng)用程序了,在學(xué)習(xí)了Java語(yǔ)言之后,我決定使用Java語(yǔ)言編寫一個(gè)簡(jiǎn)單的計(jì)算器,可以實(shí)現(xiàn)簡(jiǎn)單的運(yùn)算功能,滿足日?;镜墓ぷ鲗W(xué)習(xí)和娛樂需要。Java是由Sun公司開發(fā)的新一代純面向?qū)ο蟮木W(wǎng)絡(luò)編程語(yǔ)言。其目標(biāo)是建立一種在任意種機(jī)器、任一種操作系統(tǒng)的網(wǎng)絡(luò)環(huán)境中運(yùn)行的軟件,實(shí)行所謂的“程序?qū)懸淮危教庍\(yùn)行”的目標(biāo)。正因?yàn)槿绱耍琂ava已成為當(dāng)今Internet上最流行、最受歡迎的一種程序開發(fā)語(yǔ)言。Java開發(fā)小組把Java按特性分為基本版、移動(dòng)版、企業(yè)版,每個(gè)版本有一個(gè)軟件開發(fā)包。Java基

3、本版本叫Java 2標(biāo)準(zhǔn)版(Java 2 Standard Edition,J2SE),它包含建立Java應(yīng)用程序或者是Applet所需的應(yīng)用程序編程接口(API)。Java 2移動(dòng)版(The Java 2 Mobile Edition,J2ME)包含創(chuàng)建無(wú)線Java應(yīng)用程序的API。還有Java 2企業(yè)版(The Java 2 Enterprise,J2EE)是J2SE的增強(qiáng)版本,包含建立多層架構(gòu)應(yīng)用程序API。二.開發(fā)環(huán)境 開發(fā)平臺(tái):Microsoft Windows 7旗艦版 開發(fā)工具:JCreator + JDK 1.6.0_02三.詳細(xì)設(shè)計(jì)3.1程序中所用的類:類名:lushuais

4、huaijsq作用:主類繼承的父類:Frame類實(shí)現(xiàn)的接口: KeyListener類,ActionListener類public class lushuaishuaijsq extends Frame implements ActionListener,KeyListener String s=;/S 控制文本框 float k=0;/K P 保存值 float p=0; int b=0;/控制運(yùn)算符號(hào)其中s為文本框內(nèi)的數(shù)據(jù),k,p,b分別為相應(yīng)的保存值和控制運(yùn)算符號(hào)所用。public void actionPerformed(ActionEvent e)語(yǔ)句實(shí)現(xiàn)了ActionListene

5、r接口,因此可以調(diào)用addActionListener(this)方法對(duì)按鈕進(jìn)行點(diǎn)擊監(jiān)聽,在下面的public void actionPerformed(ActionEvent e)方法里面對(duì)各個(gè)點(diǎn)擊事件進(jìn)行處理。程序中的主要方法:private void listener()添加偵聽器對(duì)象,對(duì)來(lái)自鍵盤和點(diǎn)擊的事件進(jìn)行監(jiān)聽;public void actionPerformed(ActionEvent e)添加監(jiān)視器,對(duì)來(lái)自鍵盤和鼠標(biāo)點(diǎn)擊的事件進(jìn)行捕捉;public void keyPressed(KeyEvent e)public void keyReleased(KeyEvent arg0

6、) public void keyTyped(KeyEvent arg0) 針對(duì)鍵盤操作而設(shè)計(jì)的鍵盤操作; 3.2程序功能介紹:功能1,該程序?yàn)槭M(jìn)制計(jì)算器,可進(jìn)行普通十進(jìn)制計(jì)算。功能2,可進(jìn)行四則運(yùn)算(加、減、乘、除)以及求負(fù)數(shù),求倒數(shù)運(yùn)算。功能3,可進(jìn)行退格,點(diǎn)擊“退格”鍵將逐個(gè)刪除已經(jīng)輸入的數(shù)據(jù)。點(diǎn)擊“歸零”鍵可實(shí)現(xiàn)計(jì)算器的初始化。四. 運(yùn)行結(jié)果:4.1運(yùn)行結(jié)果界面截圖:4.2:程序運(yùn)行情況:程序正常的響應(yīng)按鈕事件,進(jìn)行混合四則運(yùn)算的時(shí)候,結(jié)果如果不是很大,可以正常顯示,但如果結(jié)果很大,就可能采用科學(xué)記數(shù)方式,這樣帶來(lái)了進(jìn)制轉(zhuǎn)換時(shí)的麻煩,需要特殊的處理科學(xué)記數(shù)里的E ,當(dāng)結(jié)果太大的時(shí)候,

7、有可能超出可能表示的最大值,(結(jié)果溢出),這個(gè)時(shí)候就會(huì)對(duì)結(jié)果進(jìn)行溢出提示,我并未設(shè)置異常類來(lái)相應(yīng)異常事件,但是程序在發(fā)生異常時(shí)會(huì)提示Infinity字符。 五 . 程序源代碼:import java.awt.event.KeyListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.KeyEvent;/實(shí)現(xiàn)鍵盤事件import javax.swing.*;import java.awt.*;import java.awt.event.ActionEve

8、nt;import java.awt.event.ActionListener;class lushuaishuaijsq extends Frame implements ActionListener,KeyListener String s=;/S 控制文本框 float k=0;/K P 保存值 float p=0; int b=0;/控制運(yùn)算符號(hào) Panel p1=new Panel(); Panel p2=new Panel(); TextField text=new TextField(50); GridLayout gridLayout=new GridLayout(); But

9、ton be=new Button(1/x); Button bf=new Button(負(fù)號(hào)); Button bb=new Button(退格); Button bc=new Button(歸零); Button b0=new Button(0); Button b1=new Button(1); Button b2=new Button(2); Button b3=new Button(3); Button b4=new Button(4); Button b5=new Button(5); Button b6=new Button(6); Button b7=new Button(7)

10、; Button b8=new Button(8); Button b9=new Button(9); Button bd=new Button(.); Button bj=new Button(+); Button bji=new Button(-); Button bs=new Button(*); Button bchu=new Button(/); Button bden=new Button(=); private void init() gridLayout.setColumns(4); gridLayout.setRows(4); gridLayout.setHgap(8); g

11、ridLayout.setVgap(8); p1.add(text,West); p1.add(bc,East); p1.add(bb,East); p1.add(be,East); p1.add(bf,East); p2.setLayout(gridLayout); p2.add(b7); p2.add(b8); p2.add(b9); p2.add(bchu); p2.add(b4); p2.add(b5); p2.add(b6); p2.add(bs); p2.add(b1); p2.add(b2); p2.add(b3); p2.add(bji); p2.add(b0); p2.add

12、(bd); p2.add(bj); p2.add(bden); private void listener() be.addActionListener(this); bf.addActionListener(this); bb.addActionListener(this); bc.addActionListener(this); b0.addActionListener(this); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener

13、(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); bd.addActionListener(this); bj.addActionListener(this); bji.addActionListener(this); bs.addActionListener(this); bchu.addActionListener(this); bden.addA

14、ctionListener(this); public void actionPerformed(ActionEvent e) if(e.getActionCommand()=0) if(b!=5) s=s+0; text.setText(s); if(e.getActionCommand()=1) if(b!=5) s=s+1; text.setText(s); if(e.getActionCommand()=2) if(b!=5) s=s+2; text.setText(s); if(e.getActionCommand()=3) if(b!=5) s=s+3; text.setText(

15、s); if(e.getActionCommand()=4) if(b!=5) s=s+4; text.setText(s); if(e.getActionCommand()=5) if(b!=5) s=s+5; text.setText(s); if(e.getActionCommand()=6) if(b!=5) s=s+6; text.setText(s); if(e.getActionCommand()=7) if(b!=5) s=s+7; text.setText(s); if(e.getActionCommand()=8) if(b!=5) s=s+8; text.setText(

16、s); if(e.getActionCommand()=9) if(b!=5) s=s+9; text.setText(s); if(e.getActionCommand()=.) if(b!=5) if(s.indexOf(.)=-1) s=s+.; text.setText(s); if(e.getActionCommand()=歸零) s=; text.setText(s); k=0; p=0; b=0; if(e.getActionCommand()=+) if(s!=) /k=Float.parseFloat(s); if(b!=0&b!=5) s=this.equal(s, p,

17、k, b); k=Float.parseFloat(s); text.setText(s); s=; b=1; if(e.getActionCommand()=-) if(s!=) if(b!=0&b!=5) s=this.equal(s, p, k, b); k=Float.parseFloat(s); text.setText(s); s=; b=2; if(e.getActionCommand()=*) if(s!=) if(b!=0&b!=5) s=this.equal(s, p, k, b); k=Float.parseFloat(s); text.setText(s); s=; b

18、=3; if(e.getActionCommand()=/) if(s!=) if(b!=0&b!=5) s=this.equal(s, p, k, b); k=Float.parseFloat(s); text.setText(s); s=; b=4; if(e.getActionCommand()=) s=equal(s, p, k, b); text.setText(s); b=5;/b=5控制等號(hào)以后不能直接跟數(shù)字 if(e.getActionCommand()=退格) s=s.substring(0,s.length()-1); text.setText(s); if(e.getAc

19、tionCommand()=負(fù)號(hào)) s=(-+s); text.setText(s); if(e.getActionCommand()=1/x) /int k; float k, j; String m; if(s=0) / System.out.println(asfsdfa); text.setText(dsfaf); else k=Float.parseFloat(s); j=1/k; m=String.valueOf(j); text.setText(m); public String equal(String s,float p,float k,int b) if(s!=) /System.out.println(program is run here); p=Float.parseFloat(s); if(b=1) s=+(p+k); if(b=2) s=+(k-p); if(b=3) s=+(p*k); if(b=4) if(p=0) s=除數(shù)不能為零; else s=+(k/p); return s; public lushuaishuaijsq() this.addWindowListener(new WindowAdapter() publ

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論