首页 Java科学计算器程序代码(1)

Java科学计算器程序代码(1)

举报
开通vip

Java科学计算器程序代码(1)Java科学计算器程序代码————————————————————————————————作者:————————————————————————————————日期:计算器布局显示:功能举例:①1320=33②—7*14=—98:先输入7,再单击—/将其变成负数,然后依次单击×号、14与=③7!=5040④sin30°=0。5:先输入30,然后按下′″按钮转换成角度值,再按下sin即可显示结果⑤sqrt(4)=2:利用鼠标点击4后再点击sqrt按键即可显示结果⑥2*π=6.2832……源程序如下:importjav...

Java科学计算器程序代码(1)
Java科学计算器程序代码————————————————————————————————作者:————————————————————————————————日期:计算器布局显示:功能举例:①1320=33②—7*14=—98:先输入7,再单击—/将其变成负数,然后依次单击×号、14与=③7!=5040④sin30°=0。5:先输入30,然后按下′″按钮转换成角度值,再按下sin即可显示结果⑤sqrt(4)=2:利用鼠标点击4后再点击sqrt按键即可显示结果⑥2*π=6.2832……源程序如下:importjava.awt。BorderLayout;importjava.awt。Color;importjava.awt.Dimension;importjava.awt。Font;importjava.awt。GridLayout;importjava。awt.event。ActionEvent;importjava.awt。event.ActionListener;importjava.text。DecimalFormat;importjavax。swing。BorderFactory;importjavax.swing。ButtonGroup;importjavax.swing。JButton;importjavax。swing.JCheckBoxMenuItem;importjavax。swing。JFrame;importjavax.swing。JMenu;importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;importjavax.swing。JPanel;importjavax。swing。JRadioButtonMenuItem;importjavax.swing。JTextField;publicclassCalucatorextendsJFrame{privateJTextFieldtf;privateJPanelpanel1,panel2,panel3,panel4;privateJMenuBarmyBar;privateJMenumenu1,menu2,menu3;privateJMenuItemeditItem1,editItem2,help1,help2,help3;privateJRadioButtonMenuItemseeItem1,seeItem2;//单选框privateJCheckBoxMenuItemseeItem3;//复选框privateButtonGroupbgb;privateStringback;privatebooleanIfResult=true,flag=false;privateStringoper=”=";privatedoubleresult=0;privateNumnumActionListener;privateDecimalFormatdf;publicCalucator(){super("科学计算器");//设置标题栏df=newDecimalFormat("#。####");//保留四位小数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("复制(C)CtrlC”);editItem2=newJMenuItem("粘贴(P)CtrlV”);editItem1.setFont(newFont("宋体",Font.PLAIN,12));editItem2.setFont(newFont("宋体",Font。PLAIN,12));/***查看栏*/seeItem1=newJRadioButtonMenuItem(”科学型(T)");seeItem2=newJRadioButtonMenuItem(”标准型(S)”);seeItem3=newJCheckBoxMenuItem(”数字分组(I)”);seeItem1。setFont(newFont("宋体",Font.PLAIN,12));seeItem2。setFont(newFont(”宋体",Font.PLAIN,12));seeItem3。setFont(newFont(”宋体",Font。PLAIN,12));/***帮助栏*/help1=newJMenuItem(”帮助主题(H)”);help2=newJMenuItem("关于计算器(A)");help1。setFont(newFont(”宋体”,Font。PLAIN,12));help2。setFont(newFont("宋体”,Font。PLAIN,12));bgb=newButtonGroup();//选项组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();//实现数字监听/***文本域,即为计算器的屏幕显示区域*/tf=newJTextField();tf。setEditable(false);//文本区域不可编辑tf。setBackground(Color.white);//文本区域的背景色tf.setHorizontalAlignment(JTextField。RIGHT);//文字右对齐tf.setText("0");tf.setBorder(BorderFactory.createLoweredBevelBorder());init();//对计算器进行初始化}/***初始化操作*添加按钮*/privatevoidinit(){addButton(panel1,”Backspace",newClear(),Color。red);addButton(panel1,”CE",newClear(),Color。red);addButton(panel1,"C",newClear(),Color。red);addButton(panel2,”1/x",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,”x^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,"x^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);JButtonbtns=newJButton(”计算器");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。EXIT_ON_CLOSE);}/***统一设置按钮的的使用方式*@parampanel*@paramname*@paramaction*@paramcolor*/privatevoidaddButton(JPanelpanel,Stringname,ActionListeneraction,Colorcolor){JButtonbt=newJButton(name);panel.add(bt);//在面板上增加按钮bt.setForeground(color);//设置前景(字体)颜色bt。addActionListener(action);//增加监听事件}/***计算器的基础操作(—×÷)*@paramx*/privatevoidgetResult(doublex){if(oper==””){result=x;}elseif(oper==”—"){result—=x;}elseif(oper=="×”){result*=x;}elseif(oper=="÷"){result/=x;}elseif(oper=="=”){result=x;}tf。setText(df.format(result));}/***运算符号的事件监听*/classSignsimplementsActionListener{publicvoidactionPerformed(ActionEvente){/**用ActionEvent对象的getActionCommand()方法*取得与引发事件对象相关的字符串*/Stringstr=e。getActionCommand();/*sqrt求平方根*/if(str.equals(”sqrt”)){doublei=Double.parseDouble(tf.getText());if(i>=0){/**String.valueOf()转换为字符串*df。format()按要求保留四位小数*Math。sqrt()求算数平方根*/tf。setText(String。valueOf(df.format(Math。sqrt(i))));}else{tf.setText(”负数不能开平方根");}}/*log求常用对数*/elseif(str.equals("log”)){doublei=Double.parseDouble(tf。getText());if(i>0){tf.setText(String.valueOf(df.format(Math。log(i))));}else{tf.setText(”负数不能求对数”);}}/*%求百分比*/elseif(str。equals("%")){tf。setText(df。format(Double.parseDouble(tf.getText())/100));}/*1/x求倒数*/elseif(str.equals("1/x”)){if(Double。parseDouble(tf.getText())==0){tf。setText(”除数不能为零”);}else{tf。setText(df.format(1/Double.parseDouble(tf。getText())));}}/*sin求正弦函数*/elseif(str.equals(”sin”)){doublei=Double。parseDouble(tf。getText());tf.setText(String。valueOf(df.format(Math。sin(i))));}/*cos求余弦函数*/elseif(str。equals(”cos")){doublei=Double。parseDouble(tf.getText());tf.setText(String.valueOf(df。format(Math.cos(i))));}/*tan求正切函数*/elseif(str.equals("tan”)){doublei=Double.parseDouble(tf。getText());tf。setText(String.valueOf(df.format(Math。tan(i))));}/*n!求阶乘*/elseif(str.equals(”n!”)){doublei=Double。parseDouble(tf.getText());if((i%2==0)||(i%2==1))//判断为整数放进行阶乘操作{intj=(int)i;//强制类型转换intresult=1;for(intk=1;k<=j;k)result*=k;tf.setText(String.valueOf(result));}else{tf.setText("无法进行阶乘”);}}/*x^2求平方*/elseif(str。equals(”x^2”)){doublei=Double。parseDouble(tf.getText());tf。setText(String。valueOf(df.format(i*i)));}/*x^3求立方*/elseif(str。equals(”x^3”)){doublei=Double.parseDouble(tf。getText());tf.setText(String.valueOf(df.format(i*i*i)));}/*′″角度转换*//***将角度值转换成弧度值,方便三角函数的计算*/elseif(str.equals("′″”)){doublei=Double.parseDouble(tf.getText());tf。setText(String。valueOf(i/180*Math。PI));}else{if(flag){IfResult=false;}if(IfResult){oper=str;}else{getResult(Double。parseDouble(tf.getText()));oper=str;IfResult=true;}}}}/***清除按钮的事件监听*/classClearimplementsActionListener{publicvoidactionPerformed(ActionEvente){/**用ActionEvent对象的getActionCommand()方法*取得与引发事件对象相关的字符串*/Stringstr=e。getActionCommand();if(str==”C”){tf。setText("0");IfResult=true;result=0;}elseif(str==”—/"){doublei=0-Double。parseDouble(tf。getText()。trim());tf。setText(df.format(i));}elseif(str==”Backspace”){if(Double。parseDouble(tf。getText())〉0){if(tf.getText().length()〉1){tf。setText(tf。getText().substring(0,tf.getText().length()-1));//使用退格删除最后一位字符}else{tf.setText("0”);IfResult=true;}}else{if(tf.getText().length()〉2){tf。setText(tf。getText().substring(0,tf。getText()。length()-1));}else{tf.setText(”0”);IfResult=true;}}}elseif(str=="CE”){tf.setText(”0");IfResult=true;}}}/***数字输入的事件监听*/classNumimplementsActionListener{publicvoidactionPerformed(ActionEvente){Stringstr=e。getActionCommand();if(IfResult){tf.setText(”");IfResult=false;}if(str==”π”){tf.setText(String。valueOf(Math.PI));}elseif(str=="e”){tf.setText(String。valueOf(Math.E));}else{tf.setText(tf.getText().trim()str);if(tf。getText().equals(”0")){tf.setText(”0”);IfResult=true;flag=true;}}}}/***小数点的事件监听*/classDotimplementsActionListener{publicvoidactionPerformed(ActionEvente){IfResult=false;if(tf.getText()。trim().indexOf(”.")==-1){tf.setText(tf.getText()”。");}}}/***main方法*/publicstaticvoidmain(String[]args){newCalucator()。setVisible(true);}} 
本文档为【Java科学计算器程序代码(1)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_686908
暂无简介~
格式:doc
大小:53KB
软件:Word
页数:29
分类:
上传时间:2022-08-04
浏览量:2