java課程設(shè)計(jì)--計(jì)算器_第1頁
java課程設(shè)計(jì)--計(jì)算器_第2頁
java課程設(shè)計(jì)--計(jì)算器_第3頁
java課程設(shè)計(jì)--計(jì)算器_第4頁
java課程設(shè)計(jì)--計(jì)算器_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Java面向?qū)ο蟪绦蛟O(shè)計(jì)課程報(bào)告 課程設(shè)計(jì)題目:計(jì)算器 學(xué)號(hào):202101051723學(xué)院:信息學(xué)院 班級(jí):軟件11-2 姓名:王佳賀 計(jì)算器一 設(shè)計(jì)的內(nèi)容要求參考Windows附件中的計(jì)算器,使用Java語言設(shè)計(jì)并實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器。(界面使用AWT或SWING)二. 設(shè)計(jì)思想2.1根據(jù)圖形用戶界面設(shè)計(jì)方法設(shè)計(jì)計(jì)算器版面。容器類(窗口-Window類 ,面板-Panel類),框架類-Frame,Button類,Label類,TextField類等類的構(gòu)造方法,菜單(菜單欄、菜單項(xiàng))的建立于應(yīng)用。事件處理機(jī)制:監(jiān)聽器類WinClose(),actionPerformed()。 2.2計(jì)算器計(jì)

2、算功能實(shí)現(xiàn),即按鈕監(jiān)聽器的實(shí)現(xiàn)自定義變量: x,y為操作數(shù),op為操作符。根據(jù)單擊按鈕不同進(jìn)行不同的操作,詳見處理按鈕單擊事件方法actionPerformed(ActionEvent e)(計(jì)算功能算法)流程圖。三. 詳細(xì)設(shè)計(jì)3.1 calculator()函數(shù)(計(jì)算器版面設(shè)計(jì))流程圖:開始新建計(jì)算器窗口f新建菜單創(chuàng)建菜單項(xiàng)并添加至菜單新建并設(shè)置文本行textp新建并設(shè)置緩存區(qū)mcache新建并設(shè)置計(jì)算器上button并注冊(cè)監(jiān)聽器新建面板p0 p1 p2 p3將textp添加至p0,并設(shè)置p0大小將”backspace”CE”C”添加至p1,并設(shè)置p1大小及布局將”MC”MR”MS”M+”添

3、加至p2,并設(shè)置p2大小及布局將其他button添加至p3,并設(shè)置p3大小及布局將面板p0 p1 p2 p3添加至f 設(shè)置窗口f的屬性為f注冊(cè)事件監(jiān)聽器Winclose結(jié)束3.2處理按鈕單擊事件方法actionPerformed(ActionEvent e)(計(jì)算器計(jì)算功能算法)流程圖:開始Textp.setText(“0”Str.setLength(0)YN單擊”CE”單擊”C”Textp.setText(“0”Str.setLength(0)NY單擊”+/-“將textp中數(shù)據(jù)正負(fù)變號(hào)單擊”+”將textp中數(shù)據(jù)賦給x,str.setLength(0)y=0,op=0NYNY單擊”-“將t

4、extp中數(shù)據(jù)賦給x,str.setLength(0)y=0,op=1將textp中數(shù)據(jù)賦給x,str.setLength(0)y=0,op=2單擊”*”NYNYY單擊”%”NNNNYYY將textp中數(shù)據(jù)乘以0.01y=0單擊”1/x”textp中數(shù)據(jù)為0給textp賦”除數(shù)不能為0”將textp中數(shù)據(jù)取倒數(shù)str.setLength(0);y=0單擊”0”textp中數(shù)據(jù)為0NNNYYY在textp中數(shù)據(jù)后加”0”,并賦值給y單擊”backspace”textp中數(shù)據(jù)為0str長(zhǎng)度為1去掉textp數(shù)據(jù)的最后一位,并將str的長(zhǎng)度減1將textp賦0,str.setLength(0)N將t

5、extp中數(shù)據(jù)賦給yNY單擊”1”9”將單擊數(shù)字插入到textp中數(shù)據(jù)后,并將textp中數(shù)據(jù)賦給y將textp賦0,并str.stelength(0);結(jié)束第四部分 運(yùn)行效果圖4.1運(yùn)行初始圖: 4.2 計(jì)算功能測(cè)試圖: -2+21.4 五. 代碼實(shí)現(xiàn) import java.awt.*;import java.awt.event.*;public class Mycounterpublic static void main(String argn)new MyFrame().launchFrame();class MyFrame extends FrameButton btn;Button

6、 btn_add,btn_sub,btn_mul,btn_div,btn_dot,btn_cr,btn_as,btn_eq,btn_sq,btn_bs;TextField tf;Panel p;Boolean isDot,operated,equaled;double storedNumber;char lastOperator;public void launchFrame()btn=new Button10;for(int i=0;i<10;i+)btni=new Button(""+i);isDot=false;operated=false;equaled=fa

7、lse;storedNumber=0;lastOperator='?'btn_add=new Button("+");btn_sub=new Button("-");btn_mul=new Button("*");btn_div=new Button("/");btn_dot=new Button(".");btn_cr=new Button("cr");btn_as=new Button("±");btn_sq=new Butt

8、on("");btn_eq=new Button("=");btn_bs=new Button("");p=new Panel();tf=new TextField(10);this.setLayout(new BorderLayout();this.add(tf,BorderLayout.NORTH);this.add(p,BorderLayout.CENTER);p.setLayout(new GridLayout(5,4,10,10);p.add(btn1);p.add(btn2);p.add(btn3);p.add(btn_a

9、dd);p.add(btn4);p.add(btn5);p.add(btn6);p.add(btn_sub);p.add(btn7);p.add(btn8);p.add(btn9);p.add(btn_mul);p.add(btn_dot);p.add(btn0);p.add(btn_sq);p.add(btn_div);p.add(btn_eq);p.add(btn_as);p.add(btn_cr);p.add(btn_bs);this.setTitle("計(jì)算器");this.setSize(260,260);this.setVisible(true);for(int

10、 i=0;i<10;i+) btni.addActionListener(new Monitor();btn_add.addActionListener(new Monitor();btn_sub.addActionListener(new Monitor();btn_mul.addActionListener(new Monitor();btn_div.addActionListener(new Monitor();btn_dot.addActionListener(new Monitor();btn_sq.addActionListener(new Monitor();btn_eq.

11、addActionListener(new Monitor();btn_as.addActionListener(new Monitor();btn_cr.addActionListener(new Monitor();btn_bs.addActionListener(new Monitor();this.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e) System.exit(0););class Monitor implements ActionListenerpublic void

12、actionPerformed(ActionEvent e)Button bn=(Button)e.getSource();if(bn=btn_cr)tf.setText("0");isDot=false;storedNumber=0;lastOperator='?'else if(bn=btn_eq)operate('=');equaled=true;else if(bn=btn_add)operate('+');equaled=false;else if(bn=btn_sub)operate('-');eq

13、ualed=false;else if(bn=btn_mul)operate('*');equaled=false;else if(bn=btn_div)operate('/');equaled=false;else if(bn=btn_as)operate('a');operate('=');equaled=false;else if(bn=btn_sq)operate('s');operate('=');equaled=true;else if(bn=btn_bs)operate('b&

14、#39;);operate('='); equaled=true;String s=tf.getText();tf.setText("");for(int i=0;i<s.length()-1;i+)char c=s.charAt(i);tf.setText(tf.getText()+c);else if(equaled) storedNumber=0;for(int i=0;i<10;i+)if(bn=btni)if(tf.getText().equals("0")tf.setText(""+i);els

15、e if(!operated)tf.setText(tf.getText()+i);elsetf.setText(""+i);operated=false;if(bn=btn_dot&&!isDot)tf.setText(tf.getText()+".");isDot=true;private void operate(char operator)double currentNumber = Double.valueOf(tf.getText().doubleValue();if (lastOperator = '?')s

16、toredNumber = currentNumber;else if (lastOperator = '+')storedNumber += currentNumber;else if (lastOperator = '-')storedNumber -= currentNumber;else if (lastOperator = '*')storedNumber *= currentNumber;else if (lastOperator = '/')storedNumber /= currentNumber;else if

17、(lastOperator = 'a')storedNumber *= -1;else if(lastOperator='b')storedNumber=currentNumber/10;else if (lastOperator = 's')storedNumber = Math.sqrt(currentNumber);else if (lastOperator = '=' && equaled)storedNumber = currentNumber;tf.setText("" + stor

18、edNumber);operated = true;lastOperator = operator; 六. 心得與體會(huì)6.1 Java是一門實(shí)踐性很強(qiáng)的編程語言,每學(xué)習(xí)到一個(gè)新的知識(shí)點(diǎn)應(yīng)當(dāng)及時(shí)動(dòng)手編寫程序,提高動(dòng)手能力,加深對(duì)語言的理解。6.2 根據(jù)Java圖形用戶界面設(shè)計(jì)方法設(shè)計(jì)計(jì)算器版面有很多種設(shè)計(jì)方法,學(xué)習(xí)過程中應(yīng)靈活變通,使版面的設(shè)計(jì)更簡(jiǎn)單易懂。6.3 本次設(shè)計(jì)的計(jì)算器還有不足之處,首先還沒有實(shí)現(xiàn)科學(xué)型的計(jì)算功能,其次還沒有鍵盤輸入功能,因此還應(yīng)繼續(xù)努力,更加完善計(jì)算器的功能。 公司印章管理制度一、目的 公司印章是公司對(duì)內(nèi)對(duì)外行使權(quán)力的標(biāo)志,也是公司名稱的法律體現(xiàn), 因此,必須對(duì)印章進(jìn)行規(guī)范化、合理化的嚴(yán)格管理,以保證公司各項(xiàng)業(yè)務(wù)的正常運(yùn)作,由公司指定專人負(fù)責(zé)管理。二、印章的種類1、 公章,是按照政府規(guī)定,由主管部門批準(zhǔn)刻制的代表公司權(quán)力的印章。2、 專用章,為方便工作專門刻制的用于某種特定用途的印章,如:合同專用章、財(cái)務(wù)專用章、業(yè)務(wù)專用章、倉(cāng)庫(kù)簽收章等。 3、手章(簽名章),是以公司法人代表名字刻制的用于公務(wù)的印章。三、印章的管理規(guī)定1、 印章指定專人負(fù)責(zé)保管和使用,保管印章的地方(桌、柜等)要牢固加鎖,印章使用后要及時(shí)收存。2、 財(cái)務(wù)專用章

溫馨提示

  • 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. 人人文庫(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)論