Java計(jì)算器實(shí)驗(yàn)報(bào)告_第1頁(yè)
Java計(jì)算器實(shí)驗(yàn)報(bào)告_第2頁(yè)
Java計(jì)算器實(shí)驗(yàn)報(bào)告_第3頁(yè)
Java計(jì)算器實(shí)驗(yàn)報(bào)告_第4頁(yè)
Java計(jì)算器實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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、一、目標(biāo):通過(guò)Java程序開(kāi)發(fā)實(shí)訓(xùn)使學(xué)生掌握面向?qū)ο蟪绦蛟O(shè)計(jì)(Java)課堂講授的內(nèi)容,靈活運(yùn)用到Java程序的開(kāi)發(fā)與設(shè)計(jì)中。二、要求:按時(shí)參加Java程序開(kāi)發(fā)實(shí)訓(xùn)訓(xùn)練,不得遲到和早退;獨(dú)立完成程序設(shè)計(jì);按要求撰寫(xiě)實(shí)踐報(bào)告。三、詳細(xì)內(nèi)容:使用面向?qū)ο蟪绦蛟O(shè)計(jì)(Java)課程講授內(nèi)容,編寫(xiě)一個(gè)簡(jiǎn)單的計(jì)算器,要求實(shí)現(xiàn)如下功能:1. 進(jìn)行圖形界面設(shè)計(jì) 通過(guò)圖形界面設(shè)計(jì),掌握Frame類(lèi)、Panel類(lèi)、5種布局管理器、文本框、標(biāo)簽及按鈕的使用方法。2. 實(shí)現(xiàn)計(jì)算器的基本功能包括加減乘除四則運(yùn)算、清除結(jié)果等功能。3. 實(shí)現(xiàn)計(jì)算器的存儲(chǔ)計(jì)算功能包括清空、使用清零、退格。和基本運(yùn)算4類(lèi)的屬性及所用到的方法布

2、局布局: 整個(gè)界面(Frame)采用BorderLayout布局 P1組件添加到Frame的南部 P1采用默認(rèn)的流式布局添加文本框P2組件添加到Frame的中部P2采用網(wǎng)格布局四行五列放各種按鈕用到的類(lèi): mycal KeyAdapter WindowAdapterMyCal類(lèi):mycal類(lèi)的屬性:b;按鈕數(shù)組保存各種按鍵 以后放到Panel2中tf;文本匡顯示輸入及運(yùn)算結(jié)果num1,num2,jieguo運(yùn)算數(shù)char c,ch;運(yùn)算符號(hào),ch為輸入的運(yùn)算符號(hào),c保存ch輸入的“+-*/”P(pán)anel p1,p2;/兩個(gè)組件p1放文本匡p2放按鈕P2的布局為網(wǎng)格布局5行4列 mycal類(lèi)的方法

3、:1 構(gòu)造方法:設(shè)置標(biāo)題;設(shè)置文本框;文本框中添加匿名內(nèi)置類(lèi)(KeyAdapter)實(shí)現(xiàn)鍵盤(pán)的輸入和運(yùn)算;將各種組件添加到容器,設(shè)置各種按鍵的顏色 ;添加WindowListenr監(jiān)聽(tīng)器設(shè)置關(guān)閉按鈕; 2Main方法: 新建一個(gè)mycal類(lèi);4. actionPerformed 方法: 設(shè)置按鈕的輸入和運(yùn)算,當(dāng)按下運(yùn)算數(shù)將其顯示在文本匡中如果之前清零則將零去除當(dāng)按下運(yùn)算符將其保存在c中并將文本匡內(nèi)容清空當(dāng)按下等號(hào)判斷字符c的符號(hào)進(jìn)行相應(yīng)的運(yùn)算并將結(jié)果顯示在文本框中。當(dāng)按下清空按鈕將文本框清空,當(dāng)按下退格按鈕取文本框中字符串的字串刪除一個(gè)符號(hào)。KeyAdapter類(lèi):KeyAdapter類(lèi)的屬性

4、:mycal類(lèi)中的屬性KeyAdapter類(lèi)的方法: keyPressed()方法 當(dāng)鍵盤(pán)按下時(shí), 判斷鍵盤(pán)的輸入當(dāng)為“+-*/”時(shí)記錄下num1及c;當(dāng)為”=”或“Enter”時(shí)記錄下num2并將結(jié)果計(jì)算出來(lái)keyReleased()方法當(dāng)鍵盤(pán)松開(kāi)時(shí),如果是按下“+-*/”后松開(kāi)將文本框清空如果是按下“=”或“Enter”后松開(kāi)將計(jì)算結(jié)果顯示在文本框中WindowAdapter類(lèi):WindowAdapter類(lèi)的屬性:WindowEvent eWindowAdapter類(lèi)的方法:windowClosing();設(shè)置關(guān)閉按鈕、四、源代碼 /*類(lèi)mycal繼承Frame實(shí)現(xiàn)了ActionListe

5、ner接口;往容器中添加兩個(gè)組件Panel1,Panel2;Panel中放置文本匡,Panel2中放置各種按鍵;文本匡中以匿名內(nèi)置類(lèi)的方式添加鍵盤(pán)監(jiān)聽(tīng)器實(shí)現(xiàn)鍵盤(pán)的輸入及運(yùn)算;為Panel2中各種按鍵添加動(dòng)作監(jiān)聽(tīng)器實(shí)現(xiàn)按鍵的輸入及運(yùn)算;*/import java.awt.*;import java.awt.event.*;class mycal extends Frame implements ActionListener private Button b; private TextField tf; private double num1,num2,jieguo;/運(yùn)算數(shù) private ch

6、ar c,ch;/運(yùn)算符 Panel p1,p2;/兩個(gè)組件 public mycal() setTitle(My Calculator 1.0); p1=new Panel(); tf=new TextField(25); tf.addKeyListener(new KeyAdapter() /添加鍵盤(pán)監(jiān)聽(tīng)器現(xiàn)鍵盤(pán)的輸入及運(yùn)算 public void keyPressed(KeyEvent e) char ch=e.getKeyChar(); if(+-*/.indexOf(ch)!=-1) num1=Double.parseDouble(tf.getText(); c=ch; if(ch=

7、|ch=e.VK_ENTER) num2=Double.parseDouble(tf.getText(); switch(c) case +: jieguo=num1+num2; break; case -: jieguo=num1-num2; break; case *: jieguo=num1*num2; break; case /: jieguo=num1/num2; break; public void keyReleased(KeyEvent e) char ch=e.getKeyChar(); if(+-*/.indexOf(ch)!=-1) tf.setText(null); i

8、f(ch=|e.getKeyCode()=e.VK_ENTER) tf.setText(Double.toString(jieguo); ); p1.add(tf); add(p1,North); p2=new Panel(); p2.setLayout(new GridLayout(5,4,10,8); b=new Button21; for(int i=1;i21;i+) bi=new Button(); bi.setFont(new Font(仿宋,0,16); String str1=/789*456-123+0; b1.setLabel(退格); b2.setLabel(清空); b

9、3.setLabel(清零); for(int i=4;i=17;i+) bi.setLabel(str1.charAt(i-4)+); b18.setLabel(+/-); b19.setLabel(.); b20.setLabel(=); for(int i=1;i21;i+) p2.add(bi); bi.addActionListener(this); bi.setBackground(new Color(20,130,180); bi.setForeground(Color.yellow); for(int i=1;i4;i+) bi.setBackground(new Color(

10、120,180,170); bi.setForeground(Color.blue); for(int i=1;i=4;i+) bi*4.setBackground(new Color(120,180,170); bi*4.setForeground(Color.red); b20.setBackground(Color.red); add(p2); /Dimension di=this.getPreferredSize(); /System.out.println(di.width+,+di.height); setBounds(100,200,230,300); setVisible(tr

11、ue); addWindowListener(new WindowAdapter()/設(shè)置關(guān)閉按鈕 public void windowClosing(WindowEvent e) e.getWindow().setVisible(false); e.getWindow().dispose(); System.exit(0); ); public static void main(String args) new mycal(); public void actionPerformed(ActionEvent e)/ 為Panel2中各種按鍵添加動(dòng)作監(jiān)聽(tīng)器實(shí)現(xiàn)按鍵的輸入及運(yùn)算; String

12、str=e.getActionCommand().trim(); if(0123456789.indexOf(str)!=-1) if(tf.getText().equals(0)tf.setText(null); tf.setText(tf.getText()+str); return; if(+-*/.indexOf(str)!=-1) num1=Double.parseDouble(tf.getText(); c=str.charAt(0); tf.setText(null); return; else if(str.equals(=) num2=Double.parseDouble(t

13、f.getText(); switch(c) case +: jieguo=num1+num2; break; case -: jieguo=num1-num2; break; case *: jieguo=num1*num2; break; case /: jieguo=num1/num2; break; tf.setText(Double.toString(jieguo); else if(str.equals(+/-) if(tf.getText().isEmpty()=false) Double lnum=-(Double.parseDouble(tf.getText(); tf.setText(Double.toString(lnum); else tf.setText(-); else if(str.equals(清空) tf.setText(null); else if(str.equals(清零) tf.setText(0); else if(str.equals

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論