




已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
#學(xué)院JAVA語言課程設(shè)計報告小程序計算器系統(tǒng)管理班 級:#姓 名:#指導(dǎo)老師:#時間:2012年6月25日至6月29日目錄1、課程設(shè)計概述-3 1.1 利用java編寫計算器,使之具備一定的功能:-3 1.2 課程設(shè)計的主要思想-3 1.3 該項目設(shè)計的目的-32、需求分析方案-42.1 功能需求分析-42.2 性能需求分析-43、總體設(shè)計方案-53.1界面設(shè)計-53.2功能介紹-54、 詳細說明、調(diào)試-64.1程序流程圖-6 4.2部分代碼說明-6 4.3程序調(diào)試與結(jié)果示例-85、 個人總結(jié)-106、 附錄(代碼)-116.1登陸界面代碼 -116.2計算器主界面 -126.3 退出界面代碼 -151.課程設(shè)計概述1.1 利用java編寫計算器,使之具備一定的功能:(1)使用圖形用戶界面:一個文本框;0-9數(shù)字按鈕;加、減、乘、除運算符;“等于”符號;復(fù)位按鈕;(2)完成整數(shù)、實數(shù)的四則運算(加、減、乘、除);(3)通過按鈕點擊實現(xiàn)數(shù)據(jù)的復(fù)位(清零);(4)實數(shù)運算中小數(shù)位的精度一致。1.2 課程設(shè)計的主要思想首先要設(shè)計一個登錄界面,必須輸入密碼并正確才能進入到計算器界面;對于此計算器程序,要設(shè)計其GUI界面,總體界面有一個文本框,18個按鈕,總體界面用BorderLayout布局。文本框放置在最NORTH,然后0到9以及+,-,*,/的按鈕放置到一個面板Panel中,添加到整體布局的CENTER,界面設(shè)計完成。布局設(shè)計好后再添加按鈕事件。對于此程序要考慮到點擊加、減、乘、除按鈕時是否有點擊數(shù)字按鈕,如果是第一次點擊數(shù)字按鈕或者是點擊數(shù)字按鈕前點擊了加、減、乘、除按鈕則直接把數(shù)字按鈕的數(shù)值設(shè)置到文本框中,否則則應(yīng)把文本框中的內(nèi)容加上你所點擊按鈕的數(shù)值設(shè)置到文本框中。在進行加、減、乘、除計算時要把點擊加、減、乘、除按鈕之前的數(shù)值保存下來,運算時是這個被保存下來的數(shù)值和文本框中的數(shù)值加、減、乘、除。最后還需要一個退出界面。重要的是必須把三個界面的代碼放在同一個包里。1.3 該項目設(shè)計的目的(1)理解并掌握J(rèn)ava中的類、對象、繼承、方法等概念,以及Applet的基本框架和事件處理的方法。(2)學(xué)會一些按鈕,標(biāo)簽,主件,文本框的使用;(3)學(xué)會使用JDK編寫、調(diào)試和運行Java Applet應(yīng)用程序。(4)利用awt組件編寫一個計算器,實現(xiàn)基本的四則運算。2.需求分析2.1 功能需求分析在日常生活中經(jīng)常需要用到計算器,比如科學(xué)計算、數(shù)值計算、會計業(yè)務(wù)等,在Applet中實現(xiàn)一個精巧實用的計算器,可以讓用戶在使用網(wǎng)站服務(wù)的同時,可以很方便地進行數(shù)據(jù)運算,可增加頁面的實用性,同時讓用戶的操作也更方便與快捷。本項目需要實現(xiàn)一個用Java中的類、對象、繼承、方法等概念以及awt主鍵和 Applet的基本框架和事件處理的方法。簡單的四則運算的計算器,擁有加、減、乘、除功能,除此之外要三個界面即:登錄面,計算器主界面,退出界面,要劇本的功能就是點擊登錄界面可以前往計算器主界面,退出可以到達退出界面。2.2性能需求分析實用性:在實現(xiàn)此過程中,我們要考慮到,計算的實用性,能過用于哪些方面。準(zhǔn)確性:在實現(xiàn)此過程中,我們要考慮到,怎樣使計算器界面更簡單,讓人更容易明白它怎樣去用。連貫性:在此項目中,要讓登陸界面,計算器主界面,退出界面能連起;即:運行登陸界面,密碼正確時能登陸到計算器主界面,點主界面退出時能到達退出界面,給人以提示。3總體設(shè)計3.1界面設(shè)計界面設(shè)計要求用GUI,界面設(shè)計中有用到swing組件的TextField、Button,和JLable用到awt中的BorderLayout和GridLayout布局管理方式,其圖形界面如下:登陸界面 計算器主界面退出提示界面3.2功能介紹(1)本項目分為三個界面,登錄,計算器,退出三個界面,點擊登錄輸入密碼正確就可以登錄到計算器界面,退出計算器界面還可以再次登錄。(2)這是計算器中的一種:簡單計算器,本項目用到了Java中的GUI界面和swing組件以及awt布局,所以簡單易用,它能完成如下的幾個小功能:點擊按鈕中的數(shù)字鍵和運算符鍵就能進行簡單的加、乘、乘、除求模四則運算 ;還能通過用戶自己在文本框中輸入數(shù)字,進行簡單運算 ;如果輸入有誤時可以點“清除”撤銷后重新輸入新數(shù)據(jù) .4.詳細設(shè)計說明、調(diào)試4.1程序流程圖:開始登錄界面計算器界面運算器數(shù)據(jù)運算符號功能模塊輸出結(jié)果退出界面繼續(xù)退出再次登錄4.2部分代碼說明段代碼主要是對程序的主框架進行相應(yīng)的設(shè)置。Frame f=new Frame(計算器小程序); f.setBackground(Color.lightGray); f.setForeground(Color.blue)/數(shù)字顏色 f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.CENTER); f.add(p3,BorderLayout.SOUTH); f.setSize(350,300);/設(shè)置面板大小 f.setVisible(true);/設(shè)置為可見添加相應(yīng)的按鈕B0.addActionListener(this); /7 B1.addActionListener(this); /8 B2.addActionListener(this); /9 B3.addActionListener(this); /除號 B4.addActionListener(this); /4 B5.addActionListener(this); /5 B6.addActionListener(this); /*乘號 B8.addActionListener(this); /1 B9.addActionListener(this); /2 B10.addActionListener(this); /3 B11.addActionListener(this); / -減號 B12.addActionListener(this); /0 B13.addActionListener(this); /.小數(shù)點 B14.addActionListener(this); /=等于號 B15.addActionListener(this); /+加好 b1.addActionListener(this); b2.addActionListener(this); f.addWindowListener(new closeWin();運算設(shè)計代碼:if(command=清除) /清零鍵 按下時返回初始狀態(tài) y=0; tf.setText(0.); s1=;s2=;s3=;/記錄輸入值的變量清空 else if(command=退出) System.exit(0);/退出鍵 關(guān)閉應(yīng)用程序 else if(y=0&command!=*&command!=/ &command!=+&command!=- &command!=)/判斷輸入是否為數(shù)字 s1=s1.concat(command); tf.setText(s1); if(command=*|command=/ |command=+|command=-)/判斷是否輸入運算符 y=1; s2=command; if(y=1&command!=*&command!=/ &command!=+&command!=- &command!=) s3=s3.concat(command); tf.setText(s3); if(command=) Double ob1=Double.valueOf(s1); Double ob3=Double.valueOf(s3); d1=ob1.doubleValue(); d3=ob3.doubleValue(); if(s2=+) d4=d1+d3; if(s2=-) d4=d1-d3; if(s2=*) d4=d1*d3; Double ob4=new Double(d4); tf.setText(ob4.toString(); if(s2=/) if(d3=0) tf.setText(除數(shù)不能為零); else d4=d1/d3; ob4=new Double(d4); tf.setText(ob4.toString(); y=0; 4.3程序調(diào)試與結(jié)果示例1.運行登錄界面,輸入密碼,正確和錯誤兩種情況;當(dāng)輸入正確時會彈出計算器界面,如果錯誤也會提示你,點擊“重置”就可以重新輸入密碼 2.當(dāng)除數(shù)為0時,結(jié)果顯示“除數(shù)不能為零” “if(d3=0) tf.setText(除數(shù)為零)” 3預(yù)計“32+3=35”,結(jié)果顯示“35.0”4.預(yù)計“5-7=-2”,實際結(jié)果顯示“-2.0”5. 當(dāng)不需要計算時,點擊“退出”或關(guān)閉窗口時會彈出退出界面,會提示你是否真的退出,如需要重新登錄就點擊“再次登錄”,如不需要登錄就點擊“退出”或關(guān)閉窗口。 5.個人總結(jié) 附錄:(代碼)6.1登錄界面的代碼:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class jiemian extends JFrame implements ActionListenerJButton button1,button2;JTextField text1,text2;JLabel jlb,jlb1,jlb2;public jiemian()super(java小程序登陸窗口);Container con=getContentPane();con.setLayout(null);jlb=new JLabel(您好!歡迎您登陸java小程序計算器);jlb1=new JLabel(請輸入秘密:);/標(biāo)簽button1=new JButton(登陸);/登陸按鈕button1.addActionListener(this); /添加監(jiān)聽者button2=new JButton(重置);/取消按鈕button2.addActionListener(this); /添加監(jiān)聽者text1=new JPasswordField(10);/密碼文本框(JPasswordField) text1).setEchoChar(*);/設(shè)置掩碼text1.addActionListener(this); /添加監(jiān)聽者jlb2=new JLabel(密碼提示:);/標(biāo)簽text2=new JTextField(10);/密碼提示文本框/標(biāo)簽,文本框,按鈕的位置大小jlb.setBounds(70,0,220,100);jlb1.setBounds(90,50,80,50);text1.setBounds(80,90,190,30);button1.setBounds(90,210,60,30); button2.setBounds(170,210,60,30);jlb2.setBounds(90,110,90,50); text2.setBounds(80,150,190,30);con.add(jlb);con.add(jlb1);con.add(jlb2);con.add(text1);con.add(text2); con.add(button1);con.add(button2); setBounds(300,200,350,350);setVisible(true);public static void main(String args)new jiemian();/函數(shù)調(diào)用public void actionPerformed(ActionEvent e)if(text1.getText().equals(ruanjian11312)/判斷密碼text2.setText(密碼正確);new jsq().init();/調(diào)用計算器主界面函數(shù)else if(text1.getText().equals(11312)/判斷密碼text2.setText(密碼正確);new jsq().init();/調(diào)用計算器主界面函數(shù)elsetext2.setText(對不起,密碼錯誤,請重新輸入);if(e.getSource()=button2)text1.setText(null);text2.setText(null);/使文本框1、2反空6.2計算器主界面的代碼:import java.awt.*; import java.awt.event.*;public class jsq implements ActionListener Panel p1=new Panel(); Panel p2=new Panel(); Panel p3=new Panel(); TextField tf=new TextField(30); String a=7,8,9,/,4,5,6,*,1,2,3,-,0,.,=,+,; Button B; Button b1=new Button(清除); Button b2=new Button(退出); String s1=new String(); String s2=new String(); String s3=new String();/s1記錄第一個數(shù);s2記錄運算符;s3記錄第二個數(shù); double d1,d3,d4; int y=0; / y用于控制運算符 public void init() Frame f=new Frame(計算器小程序); f.setBackground(Color.lightGray); f.setForeground(Color.blue);/數(shù)字顏色 p1.add(tf); p3.setLayout(new GridLayout(1,2); p3.add(b1); p3.add(b2); p2.setLayout(new GridLayout(4,4); B=new Buttona.length; for(int i=0;ia.length;i+) Bi=new Button(ai); p2.add(Bi); f.add(p1,BorderLayout.NORTH); f.add(p2,BorderLayout.CENTER); f.add(p3,BorderLayout.SOUTH); f.setSize(350,300);/設(shè)置面板大小 f.setVisible(true);/設(shè)置為可見 B0.addActionListener(this); /7 B1.addActionListener(this); /8 B2.addActionListener(this); /9 B3.addActionListener(this); /除號 B4.addActionListener(this); /4 B5.addActionListener(this); /5 B6.addActionListener(this); /*乘號 B8.addActionListener(this); /1 B9.addActionListener(this); /2 B10.addActionListener(this); /3 B11.addActionListener(this); / -減號 B12.addActionListener(this); /0 B13.addActionListener(this); /.小數(shù)點 B14.addActionListener(this); /=等于號 B15.addActionListener(this); /+加好 b1.addActionListener(this); b2.addActionListener(this); f.addWindowListener(new closeWin(); public void actionPerformed(ActionEvent e) String command = e.getActionCommand(); if(command=清除) /清零鍵 按下時返回初始狀態(tài) y=0; tf.setText(0.); s1=;s2=;s3=;/記錄輸入值的變量清空 else if(command=退出) new tuichu();/調(diào)用退出界面函數(shù) /退出鍵 退出到退出界面 else if(y=0&command!=*&command!=/ &command!=+&command!=- &command!=)/判斷輸入是否為數(shù)字 s1=s1.concat(command); tf.setText(s1); if(command=*|command=/ |command=+|command=-)/判斷是否輸入運算符 y=1; s2=command; if(y=1&command!=*&command!=/ &command!=+&command!=- &command!=) s3=s3.concat(command); tf.setText(s3); if(command=) Double ob1=Double.valueOf(s1); Double ob3=Double.valueOf(s3); d1=ob1.doubleValue(); d3=ob3.doubleValue(); if(s2=+) d4=d1+d3; if(s2=-) d4=d1-d3; if(s2=*) d4=d1*d3; Double ob4=new Double(d4); tf.setText(ob4.toString(); if(s2=/) if(d3=0) tf.setText(除數(shù)不能為零); else d4=d1/d3; ob4=new Double(d4); tf.setText(ob4.toString(); y=0; public static void main(String args) new jsq().init(); /函數(shù)調(diào)用 class closeWin extends WindowAdapter /為關(guān)閉按鈕編寫程序 public void windowClosing(WindowEvent e) new tuichu(); /關(guān)閉調(diào)用退出界面函數(shù) 6.3退出界面的代碼:import
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 定考神針七下數(shù)學(xué)試卷
- 豐城九中小升初數(shù)學(xué)試卷
- 高考刷題數(shù)學(xué)試卷
- 豐臺區(qū)三模數(shù)學(xué)試卷
- 肛瘺護理常規(guī)課件
- 豐臺三上人教數(shù)學(xué)試卷
- 東華考試數(shù)學(xué)試卷
- T43648-2024主要樹種立木生物量模型與碳計量參數(shù)
- 肝功能不全的病因鑒別與處理
- 2025年貴州鐘山區(qū)婦幼保健院招聘編外專業(yè)技術(shù)人員(6人)筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 全員安全生產(chǎn)責(zé)任制度建立
- 2025年拍賣師資格(紙筆作答)高頻題庫新版
- 【高考模擬】山東省春季高考研究聯(lián)合體2024-2025學(xué)年高三上學(xué)期第一次聯(lián)合考試數(shù)學(xué)試題(含解析)
- 體育社會學(xué)(高教版)第十章《社會體育的社會學(xué)分析》
- 2024年河北唐山國控港口管理有限公司招聘筆試真題
- 2025新七年級語文下冊期末字音字形專題復(fù)習(xí)課件
- 妊娠合并貧血護理課件
- 左美馬嗪行業(yè)深度研究分析報告(2024-2030版)
- 旅游景區(qū)船舶管理制度
- 腦機接口硬件優(yōu)化-洞察及研究
-
評論
0/150
提交評論