JAVA課程設(shè)計(jì)-計(jì)算器小程序報(bào)告.doc_第1頁(yè)
JAVA課程設(shè)計(jì)-計(jì)算器小程序報(bào)告.doc_第2頁(yè)
JAVA課程設(shè)計(jì)-計(jì)算器小程序報(bào)告.doc_第3頁(yè)
JAVA課程設(shè)計(jì)-計(jì)算器小程序報(bào)告.doc_第4頁(yè)
JAVA課程設(shè)計(jì)-計(jì)算器小程序報(bào)告.doc_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

#學(xué)院JAVA語(yǔ)言課程設(shè)計(jì)報(bào)告小程序計(jì)算器系統(tǒng)管理班 級(jí):#姓 名:#指導(dǎo)老師:#時(shí)間:2012年6月25日至6月29日目錄1、課程設(shè)計(jì)概述-3 1.1 利用java編寫(xiě)計(jì)算器,使之具備一定的功能:-3 1.2 課程設(shè)計(jì)的主要思想-3 1.3 該項(xiàng)目設(shè)計(jì)的目的-32、需求分析方案-42.1 功能需求分析-42.2 性能需求分析-43、總體設(shè)計(jì)方案-53.1界面設(shè)計(jì)-53.2功能介紹-54、 詳細(xì)說(shuō)明、調(diào)試-64.1程序流程圖-6 4.2部分代碼說(shuō)明-6 4.3程序調(diào)試與結(jié)果示例-85、 個(gè)人總結(jié)-106、 附錄(代碼)-116.1登陸界面代碼 -116.2計(jì)算器主界面 -126.3 退出界面代碼 -151.課程設(shè)計(jì)概述1.1 利用java編寫(xiě)計(jì)算器,使之具備一定的功能:(1)使用圖形用戶(hù)界面:一個(gè)文本框;0-9數(shù)字按鈕;加、減、乘、除運(yùn)算符;“等于”符號(hào);復(fù)位按鈕;(2)完成整數(shù)、實(shí)數(shù)的四則運(yùn)算(加、減、乘、除);(3)通過(guò)按鈕點(diǎn)擊實(shí)現(xiàn)數(shù)據(jù)的復(fù)位(清零);(4)實(shí)數(shù)運(yùn)算中小數(shù)位的精度一致。1.2 課程設(shè)計(jì)的主要思想首先要設(shè)計(jì)一個(gè)登錄界面,必須輸入密碼并正確才能進(jìn)入到計(jì)算器界面;對(duì)于此計(jì)算器程序,要設(shè)計(jì)其GUI界面,總體界面有一個(gè)文本框,18個(gè)按鈕,總體界面用BorderLayout布局。文本框放置在最NORTH,然后0到9以及+,-,*,/的按鈕放置到一個(gè)面板Panel中,添加到整體布局的CENTER,界面設(shè)計(jì)完成。布局設(shè)計(jì)好后再添加按鈕事件。對(duì)于此程序要考慮到點(diǎn)擊加、減、乘、除按鈕時(shí)是否有點(diǎn)擊數(shù)字按鈕,如果是第一次點(diǎn)擊數(shù)字按鈕或者是點(diǎn)擊數(shù)字按鈕前點(diǎn)擊了加、減、乘、除按鈕則直接把數(shù)字按鈕的數(shù)值設(shè)置到文本框中,否則則應(yīng)把文本框中的內(nèi)容加上你所點(diǎn)擊按鈕的數(shù)值設(shè)置到文本框中。在進(jìn)行加、減、乘、除計(jì)算時(shí)要把點(diǎn)擊加、減、乘、除按鈕之前的數(shù)值保存下來(lái),運(yùn)算時(shí)是這個(gè)被保存下來(lái)的數(shù)值和文本框中的數(shù)值加、減、乘、除。最后還需要一個(gè)退出界面。重要的是必須把三個(gè)界面的代碼放在同一個(gè)包里。1.3 該項(xiàng)目設(shè)計(jì)的目的(1)理解并掌握J(rèn)ava中的類(lèi)、對(duì)象、繼承、方法等概念,以及Applet的基本框架和事件處理的方法。(2)學(xué)會(huì)一些按鈕,標(biāo)簽,主件,文本框的使用;(3)學(xué)會(huì)使用JDK編寫(xiě)、調(diào)試和運(yùn)行Java Applet應(yīng)用程序。(4)利用awt組件編寫(xiě)一個(gè)計(jì)算器,實(shí)現(xiàn)基本的四則運(yùn)算。2.需求分析2.1 功能需求分析在日常生活中經(jīng)常需要用到計(jì)算器,比如科學(xué)計(jì)算、數(shù)值計(jì)算、會(huì)計(jì)業(yè)務(wù)等,在Applet中實(shí)現(xiàn)一個(gè)精巧實(shí)用的計(jì)算器,可以讓用戶(hù)在使用網(wǎng)站服務(wù)的同時(shí),可以很方便地進(jìn)行數(shù)據(jù)運(yùn)算,可增加頁(yè)面的實(shí)用性,同時(shí)讓用戶(hù)的操作也更方便與快捷。本項(xiàng)目需要實(shí)現(xiàn)一個(gè)用Java中的類(lèi)、對(duì)象、繼承、方法等概念以及awt主鍵和 Applet的基本框架和事件處理的方法。簡(jiǎn)單的四則運(yùn)算的計(jì)算器,擁有加、減、乘、除功能,除此之外要三個(gè)界面即:登錄面,計(jì)算器主界面,退出界面,要?jiǎng)”镜墓δ芫褪屈c(diǎn)擊登錄界面可以前往計(jì)算器主界面,退出可以到達(dá)退出界面。2.2性能需求分析實(shí)用性:在實(shí)現(xiàn)此過(guò)程中,我們要考慮到,計(jì)算的實(shí)用性,能過(guò)用于哪些方面。準(zhǔn)確性:在實(shí)現(xiàn)此過(guò)程中,我們要考慮到,怎樣使計(jì)算器界面更簡(jiǎn)單,讓人更容易明白它怎樣去用。連貫性:在此項(xiàng)目中,要讓登陸界面,計(jì)算器主界面,退出界面能連起;即:運(yùn)行登陸界面,密碼正確時(shí)能登陸到計(jì)算器主界面,點(diǎn)主界面退出時(shí)能到達(dá)退出界面,給人以提示。3總體設(shè)計(jì)3.1界面設(shè)計(jì)界面設(shè)計(jì)要求用GUI,界面設(shè)計(jì)中有用到swing組件的TextField、Button,和JLable用到awt中的BorderLayout和GridLayout布局管理方式,其圖形界面如下:登陸界面 計(jì)算器主界面退出提示界面3.2功能介紹(1)本項(xiàng)目分為三個(gè)界面,登錄,計(jì)算器,退出三個(gè)界面,點(diǎn)擊登錄輸入密碼正確就可以登錄到計(jì)算器界面,退出計(jì)算器界面還可以再次登錄。(2)這是計(jì)算器中的一種:簡(jiǎn)單計(jì)算器,本項(xiàng)目用到了Java中的GUI界面和swing組件以及awt布局,所以簡(jiǎn)單易用,它能完成如下的幾個(gè)小功能:點(diǎn)擊按鈕中的數(shù)字鍵和運(yùn)算符鍵就能進(jìn)行簡(jiǎn)單的加、乘、乘、除求模四則運(yùn)算 ;還能通過(guò)用戶(hù)自己在文本框中輸入數(shù)字,進(jìn)行簡(jiǎn)單運(yùn)算 ;如果輸入有誤時(shí)可以點(diǎn)“清除”撤銷(xiāo)后重新輸入新數(shù)據(jù) .4.詳細(xì)設(shè)計(jì)說(shuō)明、調(diào)試4.1程序流程圖:開(kāi)始登錄界面計(jì)算器界面運(yùn)算器數(shù)據(jù)運(yùn)算符號(hào)功能模塊輸出結(jié)果退出界面繼續(xù)退出再次登錄4.2部分代碼說(shuō)明段代碼主要是對(duì)程序的主框架進(jìn)行相應(yīng)的設(shè)置。Frame f=new Frame(計(jì)算器小程序); 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è)置為可見(jiàn)添加相應(yīng)的按鈕B0.addActionListener(this); /7 B1.addActionListener(this); /8 B2.addActionListener(this); /9 B3.addActionListener(this); /除號(hào) B4.addActionListener(this); /4 B5.addActionListener(this); /5 B6.addActionListener(this); /*乘號(hào) B8.addActionListener(this); /1 B9.addActionListener(this); /2 B10.addActionListener(this); /3 B11.addActionListener(this); / -減號(hào) B12.addActionListener(this); /0 B13.addActionListener(this); /.小數(shù)點(diǎn) B14.addActionListener(this); /=等于號(hào) B15.addActionListener(this); /+加好 b1.addActionListener(this); b2.addActionListener(this); f.addWindowListener(new closeWin();運(yùn)算設(shè)計(jì)代碼:if(command=清除) /清零鍵 按下時(shí)返回初始狀態(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ùn)算符 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.運(yùn)行登錄界面,輸入密碼,正確和錯(cuò)誤兩種情況;當(dāng)輸入正確時(shí)會(huì)彈出計(jì)算器界面,如果錯(cuò)誤也會(huì)提示你,點(diǎn)擊“重置”就可以重新輸入密碼 2.當(dāng)除數(shù)為0時(shí),結(jié)果顯示“除數(shù)不能為零” “if(d3=0) tf.setText(除數(shù)為零)” 3預(yù)計(jì)“32+3=35”,結(jié)果顯示“35.0”4.預(yù)計(jì)“5-7=-2”,實(shí)際結(jié)果顯示“-2.0”5. 當(dāng)不需要計(jì)算時(shí),點(diǎn)擊“退出”或關(guān)閉窗口時(shí)會(huì)彈出退出界面,會(huì)提示你是否真的退出,如需要重新登錄就點(diǎn)擊“再次登錄”,如不需要登錄就點(diǎn)擊“退出”或關(guān)閉窗口。 5.個(gè)人總結(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小程序計(jì)算器);jlb1=new JLabel(請(qǐng)輸入秘密:);/標(biāo)簽button1=new JButton(登陸);/登陸按鈕button1.addActionListener(this); /添加監(jiān)聽(tīng)者button2=new JButton(重置);/取消按鈕button2.addActionListener(this); /添加監(jiān)聽(tīng)者text1=new JPasswordField(10);/密碼文本框(JPasswordField) text1).setEchoChar(*);/設(shè)置掩碼text1.addActionListener(this); /添加監(jiān)聽(tīng)者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)用計(jì)算器主界面函數(shù)else if(text1.getText().equals(11312)/判斷密碼text2.setText(密碼正確);new jsq().init();/調(diào)用計(jì)算器主界面函數(shù)elsetext2.setText(對(duì)不起,密碼錯(cuò)誤,請(qǐng)重新輸入);if(e.getSource()=button2)text1.setText(null);text2.setText(null);/使文本框1、2反空6.2計(jì)算器主界面的代碼: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記錄第一個(gè)數(shù);s2記錄運(yùn)算符;s3記錄第二個(gè)數(shù); double d1,d3,d4; int y=0; / y用于控制運(yùn)算符 public void init() Frame f=new Frame(計(jì)算器小程序); 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è)置為可見(jiàn) B0.addActionListener(this); /7 B1.addActionListener(this); /8 B2.addActionListener(this); /9 B3.addActionListener(this); /除號(hào) B4.addActionListener(this); /4 B5.addActionListener(this); /5 B6.addActionListener(this); /*乘號(hào) B8.addActionListener(this); /1 B9.addActionListener(this); /2 B10.addActionListener(this); /3 B11.addActionListener(this); / -減號(hào) B12.addActionListener(this); /0 B13.addActionListener(this); /.小數(shù)點(diǎn) B14.addActionListener(this); /=等于號(hào) B15.addActionListener(this); /+加好 b1.addActionListener(this); b2.addActionListener(this); f.addWindowListener(new closeWin(); public void actionPerformed(ActionEvent e) String command = e.getActionCommand(); if(command=清除) /清零鍵 按下時(shí)返回初始狀態(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ùn)算符 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)閉按鈕編寫(xiě)程序 public void windowClosing(WindowEvent e) new tuichu(); /關(guān)閉調(diào)用退出界面函數(shù) 6.3退出界面的代碼:import

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論