




已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
java課 程 設 計 設計題目 簡單計算器 學生姓名 汪龍 學 號 08212155140 專業(yè)班級 08信息與計算科學 指導教師 尹春嬌 信息工程學院信息與計算科學2011年 11 月8日安徽新華學院課程設計成績評定表課題名稱 簡單計算器院 系信息工程學院年級專業(yè) 08信科成員姓名成員學號承擔的任務成 績汪龍08212155140整個課程設計的編寫及整理課題設計目的與設計意義1、課題設計目的:加強自己對java語言更一步的了解認識,檢驗自己一學期對java的學習成果。2、課題設計意義:不同的語言有不同的語法,通過這個課題可以讓我們了解java的語言魅力,同時對java編寫一些小的應用軟件的一個探尋。指導教師:尹春嬌2011年 11 月 8 日摘 要 隨著java語言的日益強大,用java開發(fā)的各種游戲應用軟件不斷更新,更是有替代傳統(tǒng)C的趨勢。Java的強大,是因為它的語法簡單,應用方便,沒有C的復雜。本課題是主要是利用java來開發(fā)的一個簡單的計算器,能夠進行最基本的加、減、乘除運算功能,界面是通過運用三個面板的疊加而成的。通過按鈕來進行簡易計算器的各種運算,并正確實現(xiàn)運算功能。如果輸入錯誤,程序會自動提示你的輸入錯誤。整個程序對話框可實現(xiàn)最小化,最大化,關閉。 關鍵詞:java、強大、簡單、計算器、實現(xiàn)第一章 緒 論11 什么是JavaJava是一個由Sun公司開發(fā)而成的新一代編程語言。使用它可在各式各樣不同種機器、不同種操作平臺的網(wǎng)絡環(huán)境中開發(fā)軟件。不論你使用的是哪一種WWW瀏覽器,哪一種計算機,哪一種操作系統(tǒng),只要WWW瀏覽器上面注明了“支持Java”,你就可以看到生動的主頁。Java正在逐步成為Internet應用的主要開發(fā)語言。它徹底改變了應用軟件的開發(fā)模式,帶來了自PC機以來又一次技術革命,為迅速發(fā)展的信息世界增添了新的活力。Sun的Java語言開發(fā)小組成立于1991年,其目的是開拓消費類電子產(chǎn)品市場,例如,交互式電視、烤面包箱等。Sun內部人員把這個項目稱為Green,那時WorldWideWeb還在圖紙上呢。該小組的領導人是JamesGosling,是一位非常杰出的程序員。他出生于1957年,于1984年加盟SunMicrosystem公司,之前在一家IBM研究機構工作。他是SunNeWs窗口系統(tǒng)的總設計師。也是第一個用C實現(xiàn)的EMACS的文本編輯器COSMACS的開發(fā)者。在研究開發(fā)過程中,Gosling深刻體會到消費類電子產(chǎn)品和工作站產(chǎn)品在開發(fā)哲學上的差異:消費類電子產(chǎn)品要求可靠性高、費用低、標準化、使用簡單,用戶并不關心CPU的型號,也不欣賞專用昂貴的RISC處理器,他們需要建立在一個標準基礎之上,具有一系列可選的方案,從8086到80586都可以選取。1.2 java從C開始 為了使整個系統(tǒng)與平臺無關,Gosling首先從改寫C編譯器著手。但是Gosling在改寫過程中感到僅C是無法滿足需要的,于是在1991年6月份開始準備開發(fā)一個新的語言,那么給它起一個什么名字呢?Gosling回首向窗外望去,看見一棵老橡樹,于是建一個目錄叫Oak,這就是Java語言的前身(后來發(fā)現(xiàn)Oak已是Sun公司另一個語言的注冊商標,才改名為Java,即太平洋上一個盛產(chǎn)咖啡的島嶼的名字)。 Gosling在開始寫Java時,并不局限于擴充語言機制本身,更注重于語言所運行的軟硬件環(huán)境。他要建立一個系統(tǒng),這個系統(tǒng)運行于一個巨大的、分布的、異構的網(wǎng)格環(huán)境中,完成各電子設備之間的通信與協(xié)同工作。Gosling在設計中采用了虛機器碼(Virtual Machine Code)方式,即Java語言編譯后產(chǎn)生的是虛擬機,虛擬機運行在一個解釋器上,每一個操作系統(tǒng)均有一個解釋器。這樣一來,Java就成了平臺無關語言。這和Gosling設計的Sun NeWs窗口系統(tǒng)有著相同的技術味道。在NeWs中用戶界面統(tǒng)一用Postscript描述,不同的顯示器有不同的Postscript解釋器,這樣便保證了用戶界面的良好的可移植性。 Patrick Naughton也是Sun公司的技術骨干,曾經(jīng)是Open Windows項目的負責人。當Naughton加入該小組后,整個工作進展神速。經(jīng)過17個月的奮戰(zhàn),整個系統(tǒng)勝利完成。它是由一個操作系統(tǒng)、一種語言(Java)、一個用戶界面、一個新的硬件平臺、三塊專用芯片構成的。通常情況下,這樣的項目在Sun公司要75個人干三年。項目完成后,在Sun公司內部做了一次展示和鑒定,觀眾的反應是:在各方面都采用了嶄新的、非常大膽的技術。許多參觀者對Java留下了非常深刻的印象,特別得到Sun的兩位領導人Scott McNealy和Bill Joy的關注,但Java的前途未卜。1.3 Java語言的轉折點 到了1994年,WWW已如火如荼地發(fā)展起來。Gosling意識到WWW需要一個中性的瀏覽器,它不依賴于任何硬件平臺和軟件平臺,它應是一種實時性較高、可靠安全、有交互功能的瀏覽器。于是Gosling決定用Java開發(fā)一個新的Web瀏覽器。這項工作由Naughton和Jonathan Payne負責,到1994年秋天,完成了Web Runner的開發(fā)工作。Web Runner是HotJava的前身,這個原型系統(tǒng)展示了Java可能帶來的廣闊市場前景。Web Runner改名為HotJava,并于1995年5月23日發(fā)表后,在產(chǎn)業(yè)界引起了巨大的轟動,Java的地位也隨之而得到肯定。又經(jīng)過一年的試用和改進,Java1.0版終于在1996年年初正式發(fā)表。 第二章 需求分析需求分析是整個軟件開發(fā)過程的指南,是軟件開發(fā)人員開發(fā)出符合用戶要求的軟件的基礎。需求分析為用戶和軟件開發(fā)者雙方對該系統(tǒng)的初始框架有一個共同的理解,使之成為整個項目開發(fā)工作的基礎。2.1鼠標功能分析在整個計算器畫面由多個方格和一個文本框等組成。所有數(shù)字方塊和一些運算符都連有觸發(fā)事件,點擊鼠標就會有相應的反應,具體操作由內部代碼給予命令。2.2 主界面顯示功能主界面需要有輸入文本框,當在輸入數(shù)字時要顯示輸入的數(shù)字和顯示運算結果,同時文本框設計為不可編輯。有了文本框顯示器,當然要有輸入的數(shù)字和運算符,就需要有各相關按鈕進行編排,按鈕分別是0到9還有“+、-、*、/、.、C(清零)”??丶@示:窗口中各文本框按鈕的編排布局,要符合美學要求,可通過一些版面分配的相關類進行自動生成。需要五行四列。錯誤處理:當輸入的數(shù)字和步驟非法時要進行相關報錯,比如沒有輸入數(shù)字的情況下就進行預算這是計算器要提示報錯,在比喻,當進行除法運算時,當除數(shù)為零時,計算器要提示“除數(shù)不能為零”,這些提示應當都由一個彈出窗口進行提示。2.3總框架分析首先需要用一個counter類繼承了JFrame類來形成一個視窗界面,然后通過JPanle定義三個面板,在用JTextField定義文本框,在用JButton定義相關按鈕,在將這些仿佛JPanel中,通過GridLayout進行版面布局,在通過super設置窗體標題。在利用這些類的同時要知道需要引入哪些套件比如需要import java.awt.BorderLayout等。但整個過程由三個框架構成,一是主界面,二是版面配置及各相關按鈕實現(xiàn)先關功能,三是運算出正確結果及相關報錯。計算器主 界 面版 面 配 置 及 相 關 按鈕實現(xiàn)正確結果及相關報錯代碼的框架結構也是按照這樣來劃分的,主要就分為這三塊,這樣在程序代碼編寫過程中,已對各功能進行了模塊化,然后對各個模塊進行代碼實現(xiàn),在編寫過程中一些小問題就很容易解決。這樣,一個簡單的計算器就開發(fā)好了。第三章 代碼實現(xiàn)一、代碼編寫所需要個各套件 import javax.swing .*;import java.io.*;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;功能:這些套件為后面各按鈕的相關功能提供的保障。二、代碼中各種類 1、counter類 public class counter extends JFrame implements ActionListenerJPanel txtpanel,btnpanel,southpanel;/定義三個面板JTextField txtinput;/定義文本框JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,add,divide,subtract,clearbtn,equalbtn;GridLayout g1;/創(chuàng)建布局double simpan,hasil;String operasi;。功能:形成主界面,然后對各組件進行聲明。二、各函數(shù) 1、構造函數(shù) counter public counter().setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/設置程序的關閉方式功能:初始化各組件,并對一些組件進行大小位置等設計。2、事件觸發(fā)函數(shù)actionPerformed(ActionEvent e) public void actionPerformed(ActionEvent e)try .catch(Exception ouch)JOptionPane.showMessageDialog(null,錯誤輸入,error,JOptionPane.ERROR_MESSAGE);/異常處理功能:獲取由計算器的到的數(shù)據(jù)并進行計算,同時加入trycatch,用于捕捉在輸入當中出現(xiàn)的錯誤。 3、主函數(shù)public static void main(String args)tryUIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel);catch(Exception e)/異常處理new counter();/創(chuàng)建窗體 功能:程序運行的開始,激活counter類。三、各組件 1、版面及各組件生成布局 getContentPane().add(txtpanel,BorderLayout.NORTH);/設置面板位置txtpanel.add(txtinput);/添加文本框到txtpanel面板中g1=new GridLayout(4,4,5,5);/設置面板布局btnpanel.setLayout(g1); getContentPane().add(btnpanel); 2、清除鍵設計 public void btnCancelActionPerformed()/清空文本框內容txtinput.setText();第四章 測試1、窗口 2、加法 例子:4+5=9 3、減法 9-5=4 4、乘法 6*3=18 5、除法 20/8=2.5 6、除數(shù)為0時 第五章 心得體會 在此次的課程設計實踐中,我學到了教科書上沒有的東西。這次課程設計,我按照課程設計的要求,分塊實現(xiàn)程序的功能。在實踐中我遇到許多的問題,通過網(wǎng)上求助和同學幫助,最后都克服了,最后我成功的完成了這次課程設計。從中我充分了解java面對對象的特性,并體會到java與C語言的不同之處。在實踐的同時,我又從中成長了許多,特別是在對程序的編譯和調試中掌握了許多的技巧和方法,為今后的發(fā)展帶來幫助。第六章 總結1、通過編寫這個相對復雜的程序,讓我認識解決實際問題前應先建立模型,再通過建立的模型使問題簡單化,從而解決問題。2、這次編寫的程序大部分是通過調用各種包中的方法來實現(xiàn)的,這也讓我充分理解了包和類調用的關系。3、由于這次編寫的程序對于我來說相對的比較復雜,所以不能一次性編寫調試,也由此讓我學會把程序分塊,逐個編寫、調試。第七章 參考文獻 【1】丁振凡.java語言實用教程(第二版)【M】.北京郵電大學出版社.2008.1【2】楊樹林等.java語言最新實用案例教程(第二版)M.清華大學出版社.2010.7 【3】葉核亞.java程序設計實用教程(第三版)M.電子工業(yè)出版社.2010.2*附錄 import javax.swing .*;import java.io.*;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.*;public class counter extends JFrame implements ActionListenerJPanel txtpanel,btnpanel,southpanel;/定義三個面板JTextField txtinput;/定義文本框JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,add,divide,subtract,clearbtn,equalbtn;GridLayout g1;/創(chuàng)建布局double simpan,hasil;String operasi;public counter()super(計算器汪龍);/設置窗體標題txtpanel=new JPanel();/創(chuàng)建面板btnpanel=new JPanel();southpanel=new JPanel();txtinput=new JTextField(25);/創(chuàng)建文本框txtinput.setEnabled(false);/設置文本框不可編輯txtinput.setHorizontalAlignment(JTextField.RIGHT);txtinput.setText();/設置起始文本框內容為空b1=new JButton(1);/創(chuàng)建按鈕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);b0=new JButton(0);bdes=new JButton(.);multiply=new JButton(x);multiply.setFont(new Font(Gothic,Font.BOLD,20);/設置畫筆屬性multiply.setBackground(Color.black);/設置按鈕邊框顏色multiply.setForeground(Color.blue);/設置畫筆顏色divide=new JButton(/);divide.setFont(new Font(Gothic,Font.BOLD,20);divide.setBackground(Color.black);divide.setForeground(Color.blue);add=new JButton(+);add.setFont(new Font(Gothic,Font.BOLD,20);add.setBackground(Color.black);add.setForeground(Color.blue);subtract=new JButton(-);subtract.setFont(new Font(Gothic,Font.BOLD,20);subtract.setBackground(Color.black);subtract.setForeground(Color.blue);clearbtn=new JButton(C);clearbtn.setFont(new Font(Arial,Font.ITALIC,16);clearbtn.setBackground(Color.black);clearbtn.setForeground(Color.green);clearbtn.addActionListener(new ActionListener()public void actionPerformed(ActionEvent argh)btnCancelActionPerformed(););equalbtn=new JButton(=);equalbtn.setFont(new Font(Arial,Font.ITALIC,20);equalbtn.setBackground(Color.black);equalbtn.setForeground(Color.red);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);b0.addActionListener(this);bdes.addActionListener(this);multiply.addActionListener(this);divide.addActionListener(this);add.addActionListener(this);subtract.addActionListener(this);equalbtn.addActionListener(this);getContentPane().add(txtpanel,BorderLayout.NORTH);/設置面板位置txtpanel.add(txtinput);/添加文本框到txtpanel面板中g1=new GridLayout(4,4,5,5);/設置面板布局btnpanel.setLayout(g1);getContentPane().add(btnpanel);/窗體中加入第二個面板/把下列按鈕加入到btnpanel面板中btnpanel.add(b7);btnpanel.add(b8);btnpanel.add(b9);btnpanel.add(multiply);btnpanel.add(b4);btnpanel.add(b5);btnpanel.add(b6);btnpanel.add(divide);btnpanel.add(b1);btnpanel.add(b2);btnpanel.add(b3);btnpanel.add(add);btnpanel.add(b0);btnpanel.add(bdes);btnpanel.add(equalbtn);btnpanel.add(subtract);getContentPane().add(southpanel,BorderLayout.SOUTH);/設置面板位置southpanel.add(clearbtn); /把clearbtn加入到southpanel面板中setSize(250,300);/設置窗體初始大小setVisible(true);/設置窗體可見setLocation(300,200);/設置初始窗體在屏幕上的位置setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);/設置程序的關閉方式public void btnCancelActionPerformed()/清空文本框內容txtinput.setText();public void actionPerformed(ActionEvent e)try / txtinput.setText();Object objkcal=e.getSource();/取得按鈕if(objkcal=b1)/如果按下b1,則把文本框中的內容置為1txtinput.setText(txtinput.getText()+1 );else if(objkcal=b2)txtinput.setText(txtinput.getText()+2);else if(objkcal=b3)txtinput.setText(txtinput.getText()+3 );else if(objkcal=b4)txtinput.setText(txtinput.getText()+4 );else if(objkcal=b5) txtinput.setText(txtinput.getText()+5 );else if(objkcal=b6) txtinput.setText(txtinput.getText()+6 );else if(objkcal=b7) txtinput.setText(txtinput.getText()+7 );else if(objkcal=b8) txtinput.setText(txtinput.getText()+8 );else if(objkcal=b9) txtinput.setText(txtinput.getText()+9 );else if(objkcal=b0)txtinput.setText(txtinput.getText()+0 );else if(objkcal=bdes)txtinput.setText(txtinput.getText()+.);else if(objkcal=add) simpan=Double.parseDouble(txtinput.getText(); operasi=plus; txtinput.setText(); else if(objkcal=subtract)simpan=Double.parseDouble(txtinput.getText();operasi=minus;txtinput.setText(); else if(objkcal=divide) simpan=Double.parseDouble(txtinput.getText();operasi=bagi;txtinput.setText(); else if(objkcal=multiply) simpan=Double.parseDouble(txtinp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 采石場承包合同范本及資源保護與利用協(xié)議
- 招生團隊協(xié)議書范本
- 民族風情步行街個人店鋪租賃與文化傳承合同
- 餐飲場地租賃合同范本:包含租賃合同終止及清算條款
- 代理人協(xié)議書范本
- 拆除工程臨時交通疏導合同范本
- 寵物寄養(yǎng)買賣協(xié)議書范本
- 餐飲行業(yè)廚師勞務派遣與菜品創(chuàng)新合同
- 資產(chǎn)清算拍賣委托代理合同書范本
- 水利設施拆除工程安全監(jiān)管協(xié)議
- 2025年全國新高考II卷高考全國二卷真題英語試卷(真題+答案)
- 經(jīng)濟法學-001-國開機考復習資料
- 2024年廣東省中考生物+地理試卷(含答案)
- 室外供熱管網(wǎng)設計計算書案例
- 外國城建史(復習整理)
- 高考語文必備古詩文(含翻譯及賞析)
- 食品中日文加工用語
- 小班化教育課堂教學.ppt
- 等效內摩擦角計算表
- 2×1000MW高效清潔燃煤發(fā)電項目建議書寫作模板-
- 繼承不動產(chǎn)登記具結書
評論
0/150
提交評論