科學(xué)計(jì)算器程序Java代碼_第1頁(yè)
科學(xué)計(jì)算器程序Java代碼_第2頁(yè)
科學(xué)計(jì)算器程序Java代碼_第3頁(yè)
科學(xué)計(jì)算器程序Java代碼_第4頁(yè)
科學(xué)計(jì)算器程序Java代碼_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

-.z功能舉例:源程序如下:importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Dimension;importjava.awt.Font;importjava.awt.GridLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.te*t.DecimalFormat;importjava*.swing.BorderFactory;importjava*.swing.ButtonGroup;importjava*.swing.utton;importjava*.swing.JCheckBo*MenuItem;importjava*.swing.JFrame;importjava*.swing.JMenu;importjava*.swing.JMenuBar;importjava*.swing.JMenuItem;importjava*.swing.JPanel;importjava*.swing.JRadioButtonMenuItem;importjava*.swing.JTe*tField;publicclassCalucatore*tendsJFrame{privateJTe*tFieldtf;privateJPanelpanel1,panel2,panel3,panel4;privateJMenuBarmyBar;privateJMenumenu1,menu2,menu3;privateJMenuItemeditItem1,editItem2,help1,help2,help3;privateJRadioButtonMenuItemseeItem1,seeItem2;//單項(xiàng)選擇框privateJCheckBo*MenuItemseeItem3;//復(fù)選框privateButtonGroupbgb;privateStringback;privatebooleanIfResult=true,flag=false;privateStringoper="=";privatedoubleresult=0;privateNumnumActionListener;privateDecimalFormatdf;publicCalucator(){super("科學(xué)計(jì)算器");//設(shè)置標(biāo)題欄df=newDecimalFormat("*.****");//保存四位小數(shù)this.setLayout(newBorderLayout(10,5));panel1=newJPanel(newGridLayout(1,3,10,10));panel2=newJPanel(newGridLayout(5,6,5,5));//5行6列panel3=newJPanel(newGridLayout(5,1,5,5));panel4=newJPanel(newBorderLayout(5,5));/***菜單欄*/myBar=newJMenuBar();menu1=newJMenu("編輯(E)");menu2=newJMenu("查看(V)");menu3=newJMenu("幫助(H)");menu1.setFont(newFont("宋體",Font.PLAIN,12));menu2.setFont(newFont("宋體",Font.PLAIN,12));menu3.setFont(newFont("宋體",Font.PLAIN,12));/***編輯欄*/editItem1=newJMenuItem("復(fù)制(C)Ctrl+C");editItem2=newJMenuItem("粘貼(P)Ctrl+V");editItem1.setFont(newFont("宋體",Font.PLAIN,12));editItem2.setFont(newFont("宋體",Font.PLAIN,12));/***查看欄*/seeItem1=newJRadioButtonMenuItem("科學(xué)型(T)");seeItem2=newJRadioButtonMenuItem("標(biāo)準(zhǔn)型(S)");seeItem3=newJCheckBo*MenuItem("數(shù)字分組(I)");seeItem1.setFont(newFont("宋體",Font.PLAIN,12));seeItem2.setFont(newFont("宋體",Font.PLAIN,12));seeItem3.setFont(newFont("宋體",Font.PLAIN,12));/***幫助欄*/help1=newJMenuItem("幫助主題(H)");help2=newJMenuItem("關(guān)于計(jì)算器(A)");help1.setFont(newFont("宋體",Font.PLAIN,12));help2.setFont(newFont("宋體",Font.PLAIN,12));bgb=newButtonGroup();//選項(xiàng)組menu1.add(editItem1);menu1.add(editItem2);menu2.add(seeItem1);menu2.add(seeItem2);menu2.addSeparator();//添加一條分割線menu2.add(seeItem3);menu3.add(help1);menu3.addSeparator();//添加一條分割線menu3.add(help2);myBar.add(menu1);myBar.add(menu2);myBar.add(menu3);this.setJMenuBar(myBar);numActionListener=newNum();//實(shí)現(xiàn)數(shù)字監(jiān)聽(tīng)/***文本域,即為計(jì)算器的屏幕顯示區(qū)域*/tf=newJTe*tField();tf.setEditable(false);//文本區(qū)域不可編輯tf.setBackground(Color.white);//文本區(qū)域的背風(fēng)光tf.setHorizontalAlignment(JTe*tField.RIGHT);//文字右對(duì)齊tf.setTe*t("0");tf.setBorder(BorderFactory.createLoweredBevelBorder());init();//對(duì)計(jì)算器進(jìn)展初始化 }/***初始化操作*添加按鈕*/privatevoidinit(){addButton(panel1,"Backspace",newClear(),Color.red);addButton(panel1,"CE",newClear(),Color.red);addButton(panel1,"C",newClear(),Color.red);addButton(panel2,"1/*",newSigns(),Color.magenta);addButton(panel2,"log",newSigns(),Color.magenta);addButton(panel2,"7",numActionListener,Color.blue);addButton(panel2,"8",numActionListener,Color.blue);addButton(panel2,"9",numActionListener,Color.blue);addButton(panel2,"÷",newSigns(),Color.red);addButton(panel2,"n!",newSigns(),Color.magenta);addButton(panel2,"sqrt",newSigns(),Color.magenta);addButton(panel2,"4",numActionListener,Color.blue);addButton(panel2,"5",numActionListener,Color.blue);addButton(panel2,"6",numActionListener,Color.blue);addButton(panel2,"×",newSigns(),Color.red);addButton(panel2,"sin",newSigns(),Color.magenta);addButton(panel2,"*^2",newSigns(),Color.magenta);addButton(panel2,"1",numActionListener,Color.blue);addButton(panel2,"2",numActionListener,Color.blue);addButton(panel2,"3",numActionListener,Color.blue);addButton(panel2,"-",newSigns(),Color.red);addButton(panel2,"cos",newSigns(),Color.magenta);addButton(panel2,"*^3",newSigns(),Color.magenta);addButton(panel2,"0",numActionListener,Color.blue);addButton(panel2,"-/+",newClear(),Color.blue);addButton(panel2,".",newDot(),Color.blue);addButton(panel2,"+",newSigns(),Color.red);addButton(panel2,"tan",newSigns(),Color.magenta);addButton(panel2,"%",newSigns(),Color.magenta);addButton(panel2,"π",numActionListener,Color.orange);addButton(panel2,"e",numActionListener,Color.orange);addButton(panel2,"′″",newSigns(),Color.orange);addButton(panel2,"=",newSigns(),Color.red);uttonbtns=newutton("計(jì)算器");btns.setBorder(BorderFactory.createLoweredBevelBorder());btns.setEnabled(false);//按鈕不可操作btns.setPreferredSize(newDimension(20,20));panel3.add(btns);//參加按鈕addButton(panel3,"MC",null,Color.red);addButton(panel3,"MR",null,Color.red);addButton(panel3,"MS",null,Color.red);addButton(panel3,"M+",null,Color.red);panel4.add(panel1,BorderLayout.NORTH);panel4.add(panel2,BorderLayout.CENTER);this.add(tf,BorderLayout.NORTH);this.add(panel3,BorderLayout.WEST);this.add(panel4);pack();this.setResizable(false);//窗口不可改變大小this.setLocation(300,200);this.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE); }/***統(tǒng)一設(shè)置按鈕的的使用方式*parampanel*paramname*paramaction*paramcolor*/privatevoidaddButton(JPanelpanel,Stringname,ActionListeneraction,Colorcolor){uttonbt=newutton(name);panel.add(bt);//在面板上增加按鈕bt.setForeground(color);//設(shè)置前景〔字體〕顏色bt.addActionListener(action);//增加監(jiān)聽(tīng)事件 }/***計(jì)算器的根底操作〔+-×÷〕*param**/privatevoidgetResult(double*){if(oper=="+"){result+=*;}elseif(oper=="-"){result-=*;}elseif(oper=="×"){result*=*;}elseif(oper=="÷"){result/=*;}elseif(oper=="="){result=*;}tf.setTe*t(df.format(result)); }/***運(yùn)算符號(hào)的事件監(jiān)聽(tīng)*/classSignsimplementsActionListener{publicvoidactionPerformed(ActionEvente){/**用ActionEvent對(duì)象的getActionmand()方法*取得與引發(fā)事件對(duì)象相關(guān)的字符串*/Stringstr=e.getActionmand();/*sqrt求平方根*/if(str.equals("sqrt")){doublei=Double.parseDouble(tf.getTe*t());if(i>=0){/**String.valueOf()轉(zhuǎn)換為字符串*df.format()按要求保存四位小數(shù)*Math.sqrt()求算數(shù)平方根*/tf.setTe*t(String.valueOf(df.format(Math.sqrt(i)))); }else{tf.setTe*t("負(fù)數(shù)不能開(kāi)平方根"); } }/*log求常用對(duì)數(shù)*/elseif(str.equals("log")){doublei=Double.parseDouble(tf.getTe*t());if(i>0){tf.setTe*t(String.valueOf(df.format(Math.log(i)))); }else{tf.setTe*t("負(fù)數(shù)不能求對(duì)數(shù)"); } }/*%求百分比*/elseif(str.equals("%")){tf.setTe*t(df.format(Double.parseDouble(tf.getTe*t())/100)); }/*1/*求倒數(shù)*/elseif(str.equals("1/*")){if(Double.parseDouble(tf.getTe*t())==0){tf.setTe*t("除數(shù)不能為零"); }else{tf.setTe*t(df.format(1/Double.parseDouble(tf.getTe*t()))); } }/*sin求正弦函數(shù)*/elseif(str.equals("sin")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(Math.sin(i)))); }/*cos求余弦函數(shù)*/elseif(str.equals("cos")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(Math.cos(i)))); }/*tan求正切函數(shù)*/elseif(str.equals("tan")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(Math.tan(i)))); }/*n!求階乘*/elseif(str.equals("n!")){doublei=Double.parseDouble(tf.getTe*t());if((i%2==0)||(i%2==1))//判斷為整數(shù)放進(jìn)展階乘操作 {intj=(int)i;//強(qiáng)制類型轉(zhuǎn)換intresult=1;for(intk=1;k<=j;k++)result*=k;tf.setTe*t(String.valueOf(result)); }else {tf.setTe*t("無(wú)法進(jìn)展階乘"); } }/**^2求平方*/elseif(str.equals("*^2")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(i*i))); }/**^3求立方*/elseif(str.equals("*^3")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(df.format(i*i*i))); }/*′″角度轉(zhuǎn)換*//***將角度值轉(zhuǎn)換成弧度值,方便三角函數(shù)的計(jì)算*/elseif(str.equals("′″")){doublei=Double.parseDouble(tf.getTe*t());tf.setTe*t(String.valueOf(i/180*Math.PI)); }else{if(flag){IfResult=false; }if(IfResult){oper=str; }else{getResult(Double.parseDouble(tf.getTe*t()));oper=str;IfResult=true; } } } }/***去除按鈕的事件監(jiān)聽(tīng)*/classClearimplementsActionListener{publicvoidactionPerformed(ActionEvente){/**用ActionEvent對(duì)象的getActionmand()方法*取得與引發(fā)事件對(duì)象相關(guān)的字符串*/Stringstr=e.getActionmand();if(str=="C"){tf.setTe*t("0");IfResult=true;result=0; }elseif(str=="-/+"){doublei=0-Double.parseDouble(tf.getTe*t().trim());tf.setTe*t(df.format(i)); }elseif(str=="Backspace"){if(Double.parseDouble(tf.getTe*t())>0){if(tf.getTe*t().length()>1){tf.setTe*t(tf.getTe*t().substring(0,tf.getTe*t().length()-1)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論