




已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北京石油化工學(xué)院信息工程學(xué)院java實(shí) 驗(yàn) 報(bào) 告(2010/2011 學(xué)年 第 1 學(xué)期)課程名稱Java語言程序設(shè)計(jì)任課教師張世博指導(dǎo)教師張世博小組成員馬嘉良 彭博 王鵬學(xué) 號(hào)馬090700彭090701 王090705年 級(jí)計(jì)算機(jī)092專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)綜合成績(jī)實(shí)驗(yàn)名稱計(jì)算器指導(dǎo)教師張世博一、 實(shí)驗(yàn)?zāi)康暮鸵?. 計(jì)算器程序(界面、事件編程)2. 處理輸入數(shù)據(jù)的異常3. 記錄用戶的計(jì)算操作(包括正常計(jì)算與異常錯(cuò)誤)到本地txt文件中,并記錄時(shí)間,采用追加的方式。4. 10+4=142010-11-6 13:23:95. 9/3=3 2010-11-12 21:19:126. 可發(fā)揮主觀能動(dòng)性添加其他內(nèi)容作為加分項(xiàng)。7. 每三人(不超過三人)一個(gè)小組8. 采用程序現(xiàn)場(chǎng)講解、提問及部分編程的考察方式9. 杜絕全盤拷貝!10. 驗(yàn)收時(shí),請(qǐng)備好本小組的實(shí)驗(yàn)報(bào)告。四、實(shí)驗(yàn)小結(jié)(包括問題和解決方法、心得體會(huì)、意見與建議等) 通過本次試驗(yàn),我們從中學(xué)習(xí)到了很多,復(fù)習(xí)了許多java的基本知識(shí),培養(yǎng)了我們團(tuán)隊(duì)合作的精神,增進(jìn)了我們之間的感情,此程序雖然已完成基本操作與少許額外的功能,但是還有諸多不足之處,在編程中對(duì)時(shí)間的輸出感到比較困難,在團(tuán)隊(duì)人員的共同努力下,查閱許多資料后,終于解決了這一難題,鍛煉了團(tuán)隊(duì)成員的堅(jiān)忍不拔的精神,此次試驗(yàn)讓我們?cè)谝院蟮膶W(xué)習(xí)生活中受益良多。程序代碼package calculate;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.text.DateFormat;import java.util.Date;public class Calculator extends JFrame implements ActionListener,KeyListenerprivate JPanel p1, p2; private JButton numbers;private JButton b11, b12, b13, b14, b15, b16, b17, b18, b19, b20;private boolean dotExist, operated, equaled; / 幫助運(yùn)算的布爾變量 private double storedNumber; / 目前的結(jié)果 private char lastOperator; / 上一運(yùn)算符private JTextField t = new JTextField(20);static StringBuffer buffer = new StringBuffer(); public Calculator() t.setText(0); t.setEditable(false); storedNumber = 0; lastOperator = ?; setTitle(calculator); dotExist = false; / 表示當(dāng)前的數(shù)是否有小數(shù)點(diǎn) operated = false; / 表示任意運(yùn)算符是否被按下 equaled = false; / 表示等號(hào)是否被按下 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); p1 = new JPanel(); p2 = new JPanel(); p1.setLayout(new FlowLayout(); p2.setLayout(new GridLayout(5, 4, 10, 10); numbers = new JButton10; for (int i = 0; i 10; i+) numbersi = new JButton( + i); numbersi.addActionListener(this); b11 = new JButton(+); b11.addActionListener(this); b12 = new JButton(-); b12.addActionListener(this); b13 = new JButton(*); b13.addActionListener(this); b14 = new JButton(/); b14.addActionListener(this); b15 = new JButton(); b15.addActionListener(this); b16 = new JButton(); b16.addActionListener(this); b17 = new JButton(x2); b17.addActionListener(this); b18 = new JButton(=); b18.addActionListener(this); b19 = new JButton(.); b19.addActionListener(this); b20 = new JButton(C); b20.addActionListener(this); p1.add(t); for (int i = 0; i 10; i+) p2.add(numbersi); p2.add(b11); p2.add(b12); p2.add(b13); p2.add(b14); p2.add(b15); p2.add(b16); p2.add(b17); p2.add(b18); p2.add(b19); p2.add(b20); Container c = getContentPane(); c.add(p1, North); c.add(p2,Center); this.setSize(320, 240); this.setVisible(true); t.addKeyListener(this); public void actionPerformed(ActionEvent e) JButton btn = (JButton)e.getSource(); if(btn = b20) t.setText(0); t.setEditable(false); storedNumber = 0; lastOperator = ?; dotExist = false; / 表示當(dāng)前的數(shù)是否有小數(shù)點(diǎn) operated = false; / 表示任意運(yùn)算符是否被按下 equaled = false; / 表示等號(hào)是否被按下 else if (btn = b18) calculator(=); equaled = true; else if (btn = b11) calculator(+); equaled = false; else if (btn = b12) calculator(-); equaled = false; else if (btn = b13) calculator(*); equaled = false; else if (btn = b14) calculator(/); equaled = false; else if(btn = b15) calculator(s); calculator(=); equaled = true; else if (btn = b16) calculator(p); equaled = false; t.setText(-+storedNumber); else if (btn = b17) calculator(); calculator(=); equaled = true; else if (equaled) storedNumber = 0; for (int i = 0; i 10; i+) if (btn = numbersi) if (t.getText().equals(0) t.setText( + i); else if(! operated) t.setText(t.getText() + i); else t.setText( + i); operated = false; if (btn = b19 & ! dotExist) t.setText(t.getText() + .); dotExist = true; private void calculator(char d) double currentNumber = Double.valueOf(t.getText().doubleValue(); if (lastOperator = ?) storedNumber = currentNumber; else if (lastOperator = +) record(+,storedNumber,currentNumber); storedNumber += currentNumber; record1(d,storedNumber); else if (lastOperator = -) record(-,storedNumber,currentNumber); storedNumber -= currentNumber; else if (lastOperator = *) record(*,storedNumber,currentNumber); storedNumber *= currentNumber; record1(d,storedNumber); else if (lastOperator = /) record(/,storedNumber,currentNumber); storedNumber /= currentNumber; record1(d,storedNumber); else if (lastOperator = p) storedNumber *= -1; else if (lastOperator = s) record(s,storedNumber,currentNumber); storedNumber = Math.sqrt(currentNumber); record1(d,storedNumber); else if (lastOperator = ) record(,storedNumber,currentNumber); storedNumber = currentNumber * currentNumber; record1(d,storedNumber); else if (lastOperator = = & equaled) storedNumber = currentNumber; t.setText( + storedNumber); operated = true; lastOperator = d; public void record(char d,double storedNumber,double currentNumber) buffer = buffer.append(storedNumber); buffer = buffer.append(d); buffer = buffer.append(currentNumber); public void record1(char d,double storedNumber) buffer = buffer.append(=); buffer = buffer.append(storedNumber); Date dt = new Date(); DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); System.out.println(fullDateFormat.format(dt); buffer = buffer.append( + dt + ); buffer = buffer.append(rn); System.out.println(buffer); try FileOutputStream F1=new FileOutputStream(D:Wendang.txt); DataOutputStream F2=new DataOutputStream(F1); F2.writeBytes(buffer.toString(); F2.close(); catch(IOException ioe) public void keyPressed(KeyEvent arg0) int numbers = new int10;numbers0 = KeyEvent.VK_0;numbers1 = KeyEvent.VK_1;numbers2 = KeyEvent.VK_2;numbers3 = KeyEvent.VK_3;numbers4 = KeyEvent.VK_4;numbers5 = KeyEvent.VK_5;numbers6 = KeyEvent.VK_6;numbers7 = KeyEvent.VK_7;numbers8 = KeyEvent.VK_8;numbers9 = KeyEvent.VK_9;int a = arg0.getKeyCode();tryif(a = KeyEvent.VK_C ) t.setText(0); t.setEditable(false); storedNumber = 0; lastOperator = ?; dotExist = false; / 表示當(dāng)前的數(shù)是否有小數(shù)點(diǎn) operated = false; / 表示任意運(yùn)算符是否被按下 equaled = false; / 表示等號(hào)是否被按下else if (a = KeyEvent.VK_ENTER) calculator(=); equaled = true; else if (a = KeyEvent.VK_ADD) calculator(+); equaled = false; else if (a = KeyEvent.VK_SUBTRACT) calculator(-); equaled = false; else if (a = KeyEvent.VK_MULTIPLY) calculator(*); equaled = false; else if (a = KeyEvent.VK_DIVIDE) calculator(/); equaled = false; else if (equaled) storedNumber = 0; for (int i = 0; i 10; i+) if (a =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省南通市2024-2025學(xué)年高一上學(xué)期11月期中英語試題(解析版)
- 海洋量子科技應(yīng)用可能
- 2025年四川九州電子科技股份有限公司招聘IT等崗位考試筆試試題(含答案)
- 2025年寧夏中衛(wèi)市屬國(guó)有企業(yè)財(cái)務(wù)總監(jiān)(總會(huì)計(jì)師)選聘考試筆試試題(含答案)
- 2025年巴戟天行業(yè)深度調(diào)查及發(fā)展前景研究報(bào)告
- 車輛抵押擔(dān)保合同書模板
- 采砂船運(yùn)輸與海洋環(huán)境保護(hù)責(zé)任書
- 財(cái)稅返還合同原件
- 車輛掛靠汽車維修與保險(xiǎn)理賠服務(wù)合同
- 地保巡查方案
- 0號(hào)柴油安全技術(shù)說明書SDS
- GA/T 1454-2018信息安全技術(shù)網(wǎng)絡(luò)型流量控制產(chǎn)品安全技術(shù)要求
- 2022泉州實(shí)驗(yàn)中學(xué)初一新生入學(xué)考試語文卷
- 高原切花玫瑰編制說明(農(nóng)標(biāo)委報(bào)批)
- 中小學(xué)生防溺水安全教育PPT課件【愛生命防溺水】
- 礦山開采承包合同參考
- GA∕T 743-2016 閃光警告信號(hào)燈
- 《課程標(biāo)準(zhǔn)》編制說明
- 《體操—隊(duì)形隊(duì)列》單元教學(xué)計(jì)劃和教案
- 紹興市基準(zhǔn)地價(jià)
- 土方回填施工組織設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論