java科學(xué)計(jì)算器(進(jìn)制轉(zhuǎn)換)_第1頁
java科學(xué)計(jì)算器(進(jìn)制轉(zhuǎn)換)_第2頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

8/8java科學(xué)計(jì)算器(進(jìn)制轉(zhuǎn)換)JAVA綜合程序設(shè)計(jì)與分析

一、題目:

用java語言編寫科學(xué)計(jì)算器,要求完成加、減、乘、除以及基本函數(shù)處理還有數(shù)的進(jìn)制轉(zhuǎn)換。

二、

四、詳細(xì)設(shè)計(jì)

package計(jì)算器;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassCalculatorextendsFrameimplementsActionListener,WindowListener

privateContainercontainer;

privat(yī)eGridBagLayoutlayout;

?privateGridBagConstraintsconstraints;

privat(yī)eJTextFielddisplayField;//計(jì)算結(jié)果顯示區(qū)

?privat(yī)eStringlastCommand;//保存+,-,*,/,=命令0privatedoubleresult;//保存計(jì)算結(jié)果

privatebooleanstart;//判斷是否為數(shù)字的開始

privateJMenuBarmenubar;

?privat(yī)eJMenuItemm_exit,m2_ejz,m2_bjz;

?privateDialogdialog;

privateLabellabel_dialog;

?privateJButtonbutton_sqrt,button_plusminus,button_CE,button_cancel,button_1,button_2,

??button_3,button_4,button_5,b

utton_6,button_7,button_8,button_9,button_0,

button_plus,button_minus,button_multiply,button_divide,button_point,

button_equal,button_log,button_tan,button_cos,but

ton_sin,button_exp;

publicCalculat(yī)or()//構(gòu)造方法設(shè)置布局、為按鈕注冊事件監(jiān)聽器?{

super("Calculator");

?this.setLocation(240,200);

?this.setSize(350,300);

??this.setResizable(true);

this.setLayout(newGridLayout(7,1));

?this.addmyMenu();//調(diào)用成員方法添加菜單?displayField=newJTextField(30);

??this.add(displayField);

??displayField.setEditable(true);

start=true;

??result=0;

??lastCommand="=";

JPanelpanel0=newJPanel();

?panel0.setLayout(newGridLayout(1,4,4,4));?

?JPanelpanel1=newJPanel();

??panel1.setLayout(newGridLayout(1,5,4,4));

?this.add(panel1);

button_sqrt=newJButton("sqrt");

?button_plusminus=newJButton("+/-");

?button_exp=newJButton("exp");

button_CE=newJButton("退格");

??button_cancel=newJButton("C");

??JPanelpanel2=newJPanel();

?panel2.setLayout(newGridLayout(1,5,4,4));??this.a(chǎn)dd(panel2);

?button_7=newJButton("7");

??button_8=newJButton("8");

?button_9=newJButton("9");

button_log=newJButton("log");

button_divide=newJButton("/");

JPanelpanel3=newJPanel();

?panel3.setLayout(newGridLayout(1,5,4,4));?this.add(panel3);

??button_4=newJButton("4");

??button_5=newJButton("5");

?button_6=newJButton("6");

??button_tan=newJButton("tan");

?button_multiply=newJButton("*");

JPanelpanel4=newJPanel();

?panel4.setLayout(newGridLayout(1,5,4,4));?this.add(panel4);

button_1=newJButton("1");

?button_2=newJButton("2");

button_3=newJButton("3");

?button_cos=newJButton("cos");

button_minus=newJButton("-");

JPanelpanel5=newJPanel();

panel5.setLayout(newGridLayout(1,5,4,4));

?this.add(panel5);

button_0=newJButton("0");

??button_point=newJButton(".");

??button_equal=newJButton("=");

?button_sin=newJButton("sin");

??button_plus=newJButton("+");

?panel1.add(button_sqrt);

?panel1.a(chǎn)dd(button_plusminus);

panel1.add(button_exp);

??panel1.add(button_CE);

?panel1.add(button_cancel);

panel2.add(button_7);

?panel2.add(button_8);

?panel2.add(button_9);

?panel2.add(button_log);

panel2.add(button_divide);

panel3.add(button_4);

?panel3.a(chǎn)dd(button_5);

?panel3.add(button_6);

?panel3.a(chǎn)dd(button_tan);

?panel3.add(button_multiply);

?panel4.add(button_1);

panel4.a(chǎn)dd(button_2);

panel4.a(chǎn)dd(button_3);

??panel4.add(button_cos);

panel4.add(button_minus);

panel5.add(button_0);

panel5.add(button_point);

panel5.add(button_equal);

?panel5.a(chǎn)dd(button_sin);

panel5.add(button_plus);

?button_sqrt.a(chǎn)ddActionListener(this);

button_plusminus.addActionListener(this);

??button_exp.addActionListener(this);

?button_CE.addActionListener(this);

??button_cancel.addActionListener(this);

??button_7.addActionListener(this);

?button_8.addActionListener(this);

?button_9.a(chǎn)ddActionListener(this);

??button_log.a(chǎn)ddActionListener(this);

button_divide.a(chǎn)ddActionListener(this);

?button_4.addActionListener(this);

?button_5.addActionListener(this);

?button_6.addActionListener(this);

?button_tan.addActionListener(this);

?button_multiply.addActionListener(this);

??button_1.addActionListener(this);

?button_2.a(chǎn)ddActionListener(this);

?button_3.addActionListener(this);

??button_cos.addActionListener(this);

button_minus.a(chǎn)ddActionListener(this);

button_0.addActionListener(this);

??button_point.addActionListener(this);

?button_equal.addActionListener(this);

?button_sin.addActionListener(this);

button_plus.addActionListener(this);

??

?this.addWindowListener(newWinClose());//注冊窗口監(jiān)聽器

??this.setVisible(true);

}

?

privatevoidaddmyMenu()//菜單的添加

{?

JMenuBarmenubar=newJMenuBar();

this.add(menubar);

?JMenum1=newJMenu("選項(xiàng)");

??JMenum2=newJMenu("進(jìn)制轉(zhuǎn)換");

JMenuItemm1_exit=newJMenuItem("退出");

?m1_exit.addActionListener(this);

JMenuItemm2_ejz=newJMenuItem("二進(jìn)制");

?m2_ejz.addActionListener(this);

?JMenuItemm2_bjz=newJMenuItem("八進(jìn)制");

?m2_bjz.addActionListener(this);

?JMenum3=newJMenu("幫助");

?JMenuItemm3_Help=newJMenuItem("用法");

?m3_Help.addActionListener(this);

??dialog=newDialog(this,"提示",true);//模式窗口

dialog.setSize(240,80);

label_dialog=newLabel("",Label.CENTER);//標(biāo)簽的字符串為空,居中對齊

dialog.add(label_dialog);

dialog.addWindowListener(this);//為對話框注冊窗口事件監(jiān)聽器

?

?m1.add(m1_exit);

?menubar.add(m1);

??m2.add(m2_ejz);

?m2.a(chǎn)dd(m2_bjz);

?menubar.add(m2);

?m3.a(chǎn)dd(m3_Help);

menubar.add(m3);?}

?publicvoidactionPerformed(ActionEvente)//按鈕的單擊事件處理方法

{

??if(e.getSource().equals(button_1)||e.getSource().equals(button_2)||

e.getSource().equals(button_3)||e.getSource().equals(button_4)||

e.getSource().equals(button_5)||e.getSource().equals(button_6)||

e.getSource().equals(button_7)||e.getSource().equals(b

utton_8)||

e.getSource().equals(button_9)||e.getSource().equals(button_0)||

e.getSource().equals(button_point)||e.getSource().equals(button_plusminus)||?

e.getSource().equals(button_cancel)||e.getSource().equals(button_CE))

{//非運(yùn)算符的處理方法

?Stringinput=e.getActionCommand();

?if(start)

{

displayField.setText("");

?start=false;

??if(input.equals("+/-"))

???displayField.setText(displayField.getText()+"-");

?}

??if(!input.equals("+/-"))

??Stringstr=displayField.getText();

??if(input.equals("退格"))//退格鍵的實(shí)現(xiàn)方法

??{?

????if(str.length()>0)

???displayField.setText(str.substring(0,str.length()-1));

??}

???elseif(input.equals("C"))//清零鍵的實(shí)現(xiàn)方法

??{

?displayField.setText("0");

????start=true;

???}

??else

???displayField.setText(displayField.getText()+input);

?}

}

?elseif(e.getActionCommand()=="二進(jìn)制")//二進(jìn)制的轉(zhuǎn)換

?{

??intn=Integer.parseInt(displayField.getText());

?displayField.setText(Integer.toBinaryString(n));?}

elseif(e.getActionCommand()=="八進(jìn)制")//八進(jìn)制的轉(zhuǎn)換

??{

intn=Integer.parseInt(displayField.getText());

?displayField.setText(Integer.toOctalString(n));

?}

??elseif(e.getActionCommand()=="退出")//選項(xiàng)中退出的處理方法

?{

??System.exit(0);

?elseif(e.getActionCommand()=="用法")//按下'幫助'菜單欄中用法的處理方法

??{?

??label_dialog.setText("sqrt,exp等鍵是先輸運(yùn)算符再輸數(shù)字\n");

dialog.setLocat(yī)ion(400,250);

dialog.setVisible(true);

??}

?else//各運(yùn)算符的識別

{

???Stringcommand=e.getActionCommand();

??if(start)

???{

???lastCommand=command;

??}

??else

???{

?calculate(Double.parseDouble(displayField.get

Text()));

??lastCommand=command;

???start=true;

???}

?}

}

?

publicvoidcalculate(doublex)//各運(yùn)算符的具體運(yùn)算方法

{

?doubled=0;

?if(lastCommand.equals("+"))

??result+=x;

?elseif(lastCommand.equals("-"))

??result-=x;

elseif(lastCommand.equals("*"))

??result*=x;

??elseif(lastCommand.equals("/"))

???result/=x;

?elseif(lastCommand.equals("="))

??result=x;

elseif(lastCommand.equals("sqrt"))

??{

??d=Math.sqrt(x);

??result=d;

?}

?elseif(lastCommand.equals("exp"))

?{

???d=Mat(yī)h.exp(x);

??result=d;

?}

?elseif(lastCommand.equals("log"))

{

??d=Math.log(x);

?result=d;

}

?elseif(lastCommand.equals("tan"))

?{

?d=Mat(yī)h.tan(x);

?result=d;

}

?elseif(lastCommand.equals("cos"))

d=Math.cos(x);

??result=d;

}

?elseif(lastCommand.equals("sin"))

??{

?d=Math.sin(x);

??result=d;

}

displayField.setText(""+result);

}?

publicvoidwindowClosing(WindowEvente)

if(e.getSource

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論