「java科学计算器」Java科学计算器的会遇到的问题和解决方法

博主:adminadmin 2023-01-19 13:54:07 288

本篇文章给大家谈谈java科学计算器,以及Java科学计算器的会遇到的问题和解决方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用JAVA编写的科学计算器源代码

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

class Counter extends WindowAdapter

{

static JFrame f=new JFrame("计算器");

static JTextField text1=new JTextField("0.");

static String source="";

static String cal="";

static String object="";

static boolean flag=false;

static boolean flag1=true;

static boolean flag2=false;

public void init()

{

try

{

Container c=f.getContentPane();

JPanel pan1=new JPanel();

JButton b1=new JButton("1");

JButton b2=new JButton("2");

JButton b3=new JButton("3");

JButton b4=new JButton("4");

JButton b5=new JButton("5");

JButton b6=new JButton("6");

JButton b7=new JButton("7");

JButton b8=new JButton("8");

JButton b9=new JButton("9");

JButton b0=new JButton("0");

JButton b11=new JButton("+");

JButton b12=new JButton("-");

JButton b13=new JButton("*");

JButton b14=new JButton("/");

JButton b15=new JButton(".");

JButton b16=new JButton("=");

JButton bclar=new JButton("清零");

text1.setHorizontalAlignment(JTextField.RIGHT);

c.add(text1,"North");

c.add(pan1);

A aa=new A();

Result re=new Result();

Opertion op=new Opertion();

Clar cl=new Clar();

b1.addActionListener(aa);

b2.addActionListener(aa);

b3.addActionListener(aa);

b4.addActionListener(aa);

b5.addActionListener(aa);

b6.addActionListener(aa);

b7.addActionListener(aa);

b8.addActionListener(aa);

b9.addActionListener(aa);

b0.addActionListener(aa);

b11.addActionListener(op);

b12.addActionListener(op);

b13.addActionListener(op);

b14.addActionListener(op);

b16.addActionListener(re);

b15.addActionListener(aa);

bclar.addActionListener(cl);

pan1.add(b1);

pan1.add(b2);

pan1.add(b3);

pan1.add(b11);

pan1.add(b4);

pan1.add(b5);

pan1.add(b6);

pan1.add(b12);

pan1.add(b7);

pan1.add(b8);

pan1.add(b9);

pan1.add(b13);

pan1.add(b0);

pan1.add(b15);

pan1.add(b16);

pan1.add(b14);

pan1.add(bclar);

f.setSize(200,220);

f.setVisible(true);

}

catch(Exception e)

{

System.out.println(e.getMessage());

}

}

class A implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String a=text1.getText();

String s=e.getActionCommand();

if(a.equals("0.")||a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/"))

text1.setText(s);

else {

if(flag2)

{

text1.setText(s);

flag2=false;

}

else

text1.setText(a+s);

}

}

}

class Opertion implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

cal=e.getActionCommand();

if(flag1==true)

source=text1.getText();

text1.setText(cal);

flag1=false;

flag=true;

}

}

class Result implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

double num1;

num1=Double.parseDouble(source);

object=text1.getText();

double num2;

num2=Double.parseDouble(object);

double result=0;

if(cal.equals("+"))

result=num1+num2;

if(cal.equals("-"))

result=num1-num2;

if(cal.equals("*"))

result=num1*num2;

if(cal.equals("/"))

if(num2==0)

text1.setText("除数不能为0");

else

result=num1/num2;

String s1=Double.toString(result);

text1.setText(s1);

flag1=true;

flag2=true;

}

}

class Clar implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

text1.setText("0.");

}

}

public static void main(String[] args)

{

Counter count=new Counter();

count.init();

}

public void windowClosing(WindowEvent e){

System.exit(1);

}

public void windowOpened(WindowEvent e){}

public void windowIconified(WindowEvent e){}

public void windowDeiconified(WindowEvent e){}

public void windowClosed(WindowEvent e){}

public void windowActivated(WindowEvent e){}

public void windowDeactivated(WindowEvent e){}

}

Java编辑一个科学型计算器跟复合型计算器

Java编辑一个科学型计算器跟复合型计算器:

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import javax.swing.JTextField;

import java.awt.GridLayout;

import javax.swing.JButton;

import java.awt.Color;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import java.util.List; public class CalculaterYYWF extends JFrame {

private JPanel contentPane;

private JTextField textField;

private ListString listSign = new ArrayListString();

private ListDouble listNum = new ArrayListDouble(); public static void main(String[] args) {

new CalculaterYYWF();

} public CalculaterYYWF() {

setResizable(false);

setBackground(new Color(240, 255, 240));

setTitle("有猿无粉牌计算器");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 265, 375);

contentPane = new JPanel();

contentPane.setBackground(new Color(224, 255, 255));

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

textField = new JTextField();

textField.setBounds(10, 10, 237, 44);

contentPane.add(textField);

textField.setColumns(10);

JPanel panel = new JPanel();

panel.setBackground(new Color(224, 255, 255));

panel.setBounds(10, 64, 237, 273);

contentPane.add(panel);

panel.setLayout(new GridLayout(5, 4, 5, 5));

String stmp = "123+456-789*0.%/()";

for (int i = 0; i 18; i++) {

JButton j = new JButton(String.valueOf(stmp.charAt(i)));

j.setActionCommand(j.getText());

panel.add(j);

j.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField.setText(textField.getText().trim()

+ e.getActionCommand());

}

});

}

JButton bt_clear = new JButton("C");

panel.add(bt_clear);

bt_clear.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField.setText("");

}

});

JButton bt_deng = new JButton("=");

panel.add(bt_deng);

bt_deng.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

String expression = textField.getText();

bracketResolve(expression);

}

});

setVisible(true);

} // 逐层消括号并计算

public void bracketResolve(String exp) {

String strjs = convertString(exp);

} }

求JAVA标准计算器与科学计算器转换源代码

importjava.awt.*;importjava.awt.event.*;importjava.lang.*;importjavax.swing.*;publicclassCounterextendsFrame{//声明三个面板的布局GridLayoutgl1,gl2,gl3;Panelp0,p1,p2,p3;JTextFieldtf1;TextFieldtf2;Buttonb0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;StringBufferstr;//显示屏所显示的字符串doublex,y;//x和y都是运算数intz;//Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/"staticdoublem;//记忆的数字publicCounter(){gl1=newGridLayout(1,4,10,0);//实例化三个面板的布局gl2=newGridLayout(4,1,0,15);gl3=newGridLayout(4,5,10,15);tf1=newJTextField(27);//显示屏tf1.setHorizontalAlignment(JTextField.RIGHT);tf1.setEnabled(false);tf1.setText("0");tf2=newTextField(10);//显示记忆的索引值tf2.setEditable(false);//实例化所有按钮、设置其前景色并注册监听器b0=newButton("Backspace");b0.setForeground(Color.red);b0.addActionListener(newBt());b1=newButton("CE");b1.setForeground(Color.red);b1.addActionListener(newBt());b2=newButton("C");b2.setForeground(Color.red);b2.addActionListener(newBt());b3=newButton("MC");b3.setForeground(Color.red);b3.addActionListener(newBt());b4=newButton("MR");b4.setForeground(Color.red);b4.addActionListener(newBt());b5=newButton("MS");b5.setForeground(Color.red);b5.addActionListener(newBt());b6=newButton("M+");b6.setForeground(Color.red);b6.addActionListener(newBt());b7=newButton("7");b7.setForeground(Color.blue);b7.addActionListener(newBt());b8=newButton("8");b8.setForeground(Color.blue);b8.addActionListener(newBt());b9=newButton("9");b9.setForeground(Color.blue);b9.addActionListener(newBt());b10=newButton("/");b10.setForeground(Color.red);b10.addActionListener(newBt());b11=newButton("sqrt");b11.setForeground(Color.blue);b11.addActionListener(newBt());b12=newButton("4");b12.setForeground(Color.blue);b12.addActionListener(newBt());b13=newButton("5");b13.setForeground(Color.blue);b13.addActionListener(newBt());b14=newButton("6");b14.setForeground(Color.blue);b14.addActionListener(newBt());b15=newButton("*");b15.setForeground(Color.red);b15.addActionListener(newBt());b16=newButton("%");b16.setForeground(Color.blue);b16.addActionListener(newBt());b17=newButton("1");b17.setForeground(Color.blue);b17.addActionListener(newBt());b18=newButton("2");b18.setForeground(Color.blue);b18.addActionListener(newBt());b19=newButton("3");b19.setForeground(Color.blue);b19.addActionListener(newBt());b20=newButton("-");b20.setForeground(Color.red);b20.addActionListener(newBt());b21=newButton("1/X");b21.setForeground(Color.blue);b21.addActionListener(newBt());b22=newButton("0");b22.setForeground(Color.blue);b22.addActionListener(newBt());b23=newButton("+/-");b23.setForeground(Color.blue);b23.addActionListener(newBt());b24=newButton(".");b24.setForeground(Color.blue);b24.addActionListener(newBt());b25=newButton("+");b25.setForeground(Color.red);b25.addActionListener(newBt());b26=newButton("=");b26.setForeground(Color.red);b26.addActionListener(newBt());//实例化四个面板p0=newPanel();p1=newPanel();p2=newPanel();p3=newPanel();//创建一个空字符串缓冲区str=newStringBuffer();//添加面板p0中的组件和设置其在框架中的位置和大小p0.add(tf1);p0.setBounds(10,25,300,40);//添加面板p1中的组件和设置其在框架中的位置和大小p1.setLayout(gl1);p1.add(tf2);p1.add(b0);p1.add(b1);p1.add(b2);p1.setBounds(10,65,300,25);//添加面板p2中的组件并设置其的框架中的位置和大小p2.setLayout(gl2);p2.add(b3);p2.add(b4);p2.add(b5);p2.add(b6);p2.setBounds(10,110,40,150);//添加面板p3中的组件并设置其在框架中的位置和大小p3.setLayout(gl3);//设置p3的布局p3.add(b7);p3.add(b8);p3.add(b9);p3.add(b10);p3.add(b11);p3.add(b12);p3.add(b13);p3.add(b14);p3.add(b15);p3.add(b16);p3.add(b17);p3.add(b18);p3.add(b19);p3.add(b20);p3.add(b21);p3.add(b22);p3.add(b23);p3.add(b24);p3.add(b25);p3.add(b26);p3.setBounds(60,110,250,150);//设置框架中的布局为空布局并添加4个面板setLayout(null);add(p0);add(p1);add(p2);add(p3);setResizable(false);//禁止调整框架的大小//匿名类关闭窗口addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente1){System.exit(0);}});setBackground(Color.lightGray);setBounds(100,100,320,280);setVisible(true);}//构造监听器classBtimplementsActionListener{publicvoidactionPerformed(ActionEvente2){try{if(e2.getSource()==b1)//选择"CE"清零{tf1.setText("0");//把显示屏清零str.setLength(0);//清空字符串缓冲区以准备接收新的输入运算数}elseif(e2.getSource()==b2)//选择"C"清零{tf1.setText("0");//把显示屏清零str.setLength(0);}elseif(e2.getSource()==b23)//单击"+/-"选择输入的运算数是正数还是负数{x=Double.parseDouble(tf1.getText().trim());tf1.setText(""+(-x));}elseif(e2.getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);//清空缓冲区以便接收新的另一个运算数y=0d;z=0;}elseif(e2.getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);y=0d;z=1;}elseif(e2.getSource()==b15)//单击乘号按钮获得x的值和z的值并清空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);y=0d;z=2;}elseif(e2.getSource()==b10)//单击除号按钮获得x的值和z的值并空y的值{x=Double.parseDouble(tf1.getText().trim());str.setLength(0);y=0d;z=3;}elseif(e2.getSource()==b26)//单击等号按钮输出计算结果{str.setLength(0);switch(z){case0:tf1.setText(""+(x+y));break;case1:tf1.setText(""+(x-y));break;case2:tf1.setText(""+(x*y));break;case3:tf1.setText(""+(x/y));break;}}elseif(e2.getSource()==b24)//单击"."按钮输入小数{if(tf1.getText().trim().indexOf(′.′)!=-1)//判断字符串中是否已经包含了小数点{}else//如果没数点有小{if(tf1.getText().trim().equals("0"))//如果初时显示为0{str.setLength(0);tf1.setText((str.append("0"+e2.getActionCommand())).toString());}elseif(tf1.getText().trim().equals(""))//如果初时显示为空则不做任何操作{}else{tf1.setText(str.append(e2.getActionCommand()).toString());}}y=0d;}elseif(e2.getSource()==b11)//求平方根{x=Double.parseDouble(tf1.getText().trim());tf1.setText("数字格式异常");if(x0)tf1.setText("负数没有平方根");elsetf1.setText(""+Math.sqrt(x));str.setLength(0);y=0d;}elseif(e2.getSource()==b16)//单击了"%"按钮{x=Double.parseDouble(tf1.getText().trim());tf1.setText(""+(0.01*x));str.setLength(0);y=0d;}elseif(e2.getSource()==b21)//单击了"1/X"按钮{x=Double.parseDouble(tf1.getText().trim());if(x==0){tf1.setText("除数不能为零");}else{tf1.setText(""+(1/x));}str.setLength(0);y=0d;}elseif(e2.getSource()==b3)//MC为清除内存{m=0d;tf2.setText("");str.setLength(0);}elseif(e2.getSource()==b4)//MR为重新调用存储的数据{if(tf2.getText().trim()!="")//有记忆数字{tf1.setText(""+m);}}elseif(e2.getSource()==b5)//MS为存储显示的数据{m=Double.parseDouble(tf1.getText().trim());tf2.setText("M");tf1.setText("0");str.setLength(0);}elseif(e2.getSource()==b6)//M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR{m=m+Double.parseDouble(tf1.getText().trim());}else//选择的是其他的按钮{if(e2.getSource()==b22)//如果选择的是"0"这个数字键{if(tf1.getText().trim().equals("0"))//如果显示屏显示的为零不做操作{}else{tf1.setText(str.append(e2.getActionCommand()).toString());y=Double.parseDouble(tf1.getText().trim());}}elseif(e2.getSource()==b0)//选择的是“BackSpace”按钮{if(!tf1.getText().trim().equals("0"))//如果显示屏显示的不是零{if(str.length()!=1){tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能抛出字符串越界异常}else{tf1.setText("0");str.setLength(0);}}y=Double.parseDouble(tf1.getText().trim());}else//其他的数字键{tf1.setText(str.append(e2.getActionCommand()).toString());y=Double.parseDouble(tf1.getText().trim());}}}catch(NumberFormatExceptione){tf1.setText("数字格式异常");}catch(StringIndexOutOfBoundsExceptione){tf1.setText("字符串索引越界");}}}publicstaticvoidmain(Stringargs[]){newCounter();}}

求一个 JAVA 的 科学计算器 的 源代码最好里面有 sin cos 倒数、平方根、平方、立方高级一点的!

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Calculator implements ActionListener

{

String s="",s1;

double d1,d2;

JFrame jf = new JFrame("小计算器by Graduate") ;

JTextField tf = new JTextField();

public void init()//实现计算器界面

{

Container c=jf.getContentPane();

tf.setHorizontalAlignment(JTextField.RIGHT);//文本框

c.add(tf,"North");

JPanel pn3 = new JPanel(new BorderLayout());

c.add(pn3,"Center");

JPanel pn2 = new JPanel();//功能键界面(清除键和关闭键)

pn2.setLayout(new BorderLayout());

JPanel pn1 = new JPanel();//运算界面

pn1.setLayout(new GridLayout(4,4));

pn3.add(pn2,"North");

pn3.add(pn1);

//设置按钮

JButton b = new JButton("CLEAR");

b.setToolTipText("请按清除键!");//设置清零键

b.setForeground(Color.RED);//设置字体颜色

b.setBackground(Color.YELLOW);//设置背景色

b.addActionListener(this);

pn2.add(b,"Center");

b = new JButton("OFF");

b.setToolTipText("请按退出键!");//设置off键,点击退出应用程序b.addActionListener(this);

b.setForeground(Color.RED);//字体颜色

b.setBackground(Color.ORANGE);//背景色

pn2.add(b,"East");

b = new JButton("1");//add butten 1

b.addActionListener(this);

pn1.add(b);

b = new JButton("2");//add butten 2

b.addActionListener(this);

pn1.add(b);

b = new JButton("3");//add butten 3

b.addActionListener(this);

pn1.add(b);

b = new JButton("+");//add butten +

b.setForeground(Color.BLUE);//设置字体颜色

b.addActionListener(this);

pn1.add(b);

b = new JButton("4");//add butten 4

b.addActionListener(this);

pn1.add(b);

b = new JButton("5");//add butten 5

b.addActionListener(this);

pn1.add(b);

b = new JButton("6");//add button 6

b.addActionListener(this);

pn1.add(b);

b = new JButton("-");//add button -

b.setForeground(Color.BLUE);//设置字体颜色

b.addActionListener(this);

pn1.add(b);

b = new JButton("7");//add button 7

b.addActionListener(this);

pn1.add(b);

b = new JButton("8");//add button 8

b.addActionListener(this);

pn1.add(b);

b = new JButton("9");//add button 9

b.addActionListener(this);

pn1.add(b);

b = new JButton("*");//add button *

b.setForeground(Color.BLUE);//设置字体颜色

b.addActionListener(this);

pn1.add(b);

b = new JButton("0");//add button 0

b.addActionListener(this);

pn1.add(b);

b = new JButton(".");//add button .

b.addActionListener(this);

pn1.add(b);

b = new JButton("=");//add button =

b.setForeground(Color.RED);//设置字体颜色

b.addActionListener(this);

pn1.add(b);

b = new JButton("\\");//add button \

b.setForeground(Color.BLUE);//设置字体颜色

b.addActionListener(this);

pn1.add(b);

jf.setSize(300,300);//设置大小

jf.setVisible(true);//设置为可视

}

//处理按钮按下时的动作,进行相应的处理

public void actionPerformed(ActionEvent e)

{

String command = e.getActionCommand();

tf.setText(tf.getText()+command);

if(command.equals("CLEAR")) //清零键 按下时返回初始状态

{

s1=null;

s="";

tf.setText("");//记录输入值的变量清空

}

else if(command.equals("OFF")) System.exit(0);//off键 关闭应用程序

else if(!command.equals("*")!command.equals("\\")

!command.equals("+")!command.equals("-")

!command.equals("="))//判断输入是否为数字

{

if(s1==null)//判断输入是否为第一个

s1 = command;

else s1+=command;

d1 = new Double(s1).doubleValue();//字符串型转换为双精度型,还原输入数字

try

{

if(s.equals("+")) d1 = d1+d2;//加法运算

else if(s.equals("-")) d1 = d2-d1;//减法运算

else if(s.equals("*")) d1 = d1*d2;//乘法运算

else if(s.equals("\\"))d1 = d2/d1;//除法运算

}

catch(Exception ex)

{

tf.setText("Error");//错误显示"Error"

System.out.println(ex.getMessage());

}

}

else if(!command.equals("=")) //判断输入是否为+ - * \

{

s = command;

s1 = null;

d2 = d1;

}

else//输入=时,显示运算结果

{

tf.setText(tf.getText()+d1);

}

}

public static void main(String [] args)

{

new Calculator().init();

}

}

JAVA编程 模拟科学计算器 要求:界面模拟Windows中的计算器程序。实现基本数学运算、函数等功能:加、减、

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Calculator implements ActionListener{

private double data1=0.0,data2=0.0;

private String t_content;

boolean number=false;

//key用来标示用户所按下的按钮即加减乘除

//key为0标示+,为1表示-,为2表示*,为3表示/

short key=-1;

//pkey的取值为-1~5

//pkey为-1表示第一次按下=按钮,为5说明不是第一次按下=按钮

//pkey为其他值0,1,2,3时分别代表+,-,*,/

short pkey=-1;

Frame frame=new Frame("Calculator");//定义标题为Calculator的窗体

TextField textfield=new TextField(30);//定义计算机

//定义backspace,ce,c0按钮

Button backspace=new Button("Backspace");

Button ce=new Button("CE");

Button c0=new Button("C");

//定义面板,其中backspace,ce,c0按钮和计算机兰textfeild放在面板p1中

//其余按钮放在面板p2中

Panel p1=new Panel();

Panel p2=new Panel();

//定义界面上的按钮数组,即除去backspace,ce,c0按钮的所有按钮

String names[]={"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="};

Button bb[]=new Button[names.length];

public static void main(String[] args){

Calculator cal=new Calculator();

cal.go();

}

public void go(){

frame.setSize(300,200);

frame.setLayout(new BorderLayout());

Font fonts=new Font("楷体_GB2312",Font.PLAIN,12); // 第一页

//设置面板p1的字体和布局管理类型,将textfeild对象添加到面板中

p1.setFont(fonts);

p1.setLayout(new GridLayout(2,1,5,10));

textfield.setFont(fonts);

p1.add(textfield,null);

//backspace,ce,c0按钮注册addActionListener方法

backspace.addActionListener(this);

ce.addActionListener(this);

c0.addActionListener(this);

//将backspace,ce,c0按钮添加到p1面板中

p1.add(backspace,null);

p1.add(ce,null);

p1.add(c0,null);

//设置面板p2的布局管理器类型为GridLayout

p2.setLayout(new GridLayout(4,5,5,5));

//为按钮组中的按钮注册addActionListener方法

for(int i=0;inames.length;i++){

bb[i]=new Button(names[i]);

p2.add(bb[i]);

bb[i].addActionListener(this);

}

//设置面板p1和面板p2在窗体中的位置

//面板p1在窗体的North方向,面板p2在窗体的South方向

frame.add(p1,BorderLayout.NORTH);

frame.add(p2,BorderLayout.SOUTH);

frame.setVisible(true);

//当单击关闭按钮时退出系统

frame.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

}

public void actionPerformed(ActionEvent ae){

String s;

//通过ActionEvent类的getActionCommand()方法,得出动作是由哪个按钮触发的。 //第二页

s=ae.getActionCommand();

//用户单击一次,计算栏里便去掉一个字符

//先将计算栏里的字符清空,再添加除最好一个字符的字符串

if(s.equals("Backspace")number){

t_content=textfield.getText();

textfield.setText("");

for(int i=0;it_content.length()-1;i++){

char c=t_content.charAt(i);

textfield.setText(textfield.getText()+c);

}

}

//用户单击的是CE按钮,计算栏清空

if(s.equals("CE")){

textfield.setText("");

number=false;

}

//用户单击的是C按钮

if(s.equals("C")){

textfield.setText("");

data1=data2=0.0;

number=false;

}

//用户单击的是sqrt按钮,其中负数不能被开方

if(s.equals("sqrt")number){

t_content=textfield.getText();

if(t_content.charAt(0)=='-'){

textfield.setText("负数不能被开方");

number=false;

}else{

textfield.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(t_content))));

}

}

//用户单击的是1/x求倒数按钮,求倒数时分母不能为0

if(s.equals("1/x") number){

t_content=textfield.getText();

if(t_content.equals("0")){ //第三页

textfield.setText("零不能求倒数");

number=false;

}else{

textfield.setText(Double.toString(1/Double.parseDouble(t_content)));

}

}

//用户单击的是%按钮

if(s.equals("%")number){

if(data2==0){

t_content=textfield.getText();

textfield.setText(t_content);

}else{

boolean g=false;

for(int i=0;itextfield.getText().length();i++)

if('.'==textfield.getText().charAt(i)){

g=true;

break;

}

//如果是Double 数,除100

if(g=true){

double dtemp=Double.parseDouble(textfield.getText());

dtemp=dtemp/100.0;

textfield.setText(Double.toString(dtemp));

}

//如果是int数但能被100整除,则去掉末尾两个0

else{

if(Integer.parseInt(textfield.getText())%100==0){

int itemp=Integer.parseInt(textfield.getText());

itemp/=100;

textfield.setText(Integer.toString(itemp));

}

//如果是int数,但不能被100整除,则按Double数处理

else{

double dtemp=Double.parseDouble(textfield.getText());

dtemp=dtemp/100.0;

textfield.setText(Double.toString(dtemp));

}

}

} //第四页

}

//对正负数字的处理

if(s.equals("+/-")){

t_content=textfield.getText();

if(t_content.charAt(0)=='-'){

textfield.setText("");

String content;

for(int i=1;it_content.length();i++){

textfield.setText(textfield.getText()+t_content.charAt(i));

}

}else{

textfield.setText("-"+t_content);

}

}

//所按下的按钮为+按钮

if(s.equals("+")){

switch(pkey){

case 0:

data2+=Double.parseDouble(textfield.getText());

break;

case 1:

data2+=Double.parseDouble(textfield.getText());

break;

case 2:

data2+=Double.parseDouble(textfield.getText());

break;

case 3:

if(textfield.getText().equals("0")){

textfield.setText("除数不能为零");

number=false;

}else{

key=-1;

data2/=data1;

textfield.setText(Double.toString(data2));

break;

}

default:

data2=Double.parseDouble(textfield.getText());

}

pkey=key=0;

textfield.setText("");

}

//第五页

//所按下的按钮为-按钮

if(s.equals("-")){

switch(pkey){

case 0:

data2+=Double.parseDouble(textfield.getText());

break;

case 1:

data2+=Double.parseDouble(textfield.getText());

break;

case 2:

data2+=Double.parseDouble(textfield.getText());

break;

case 3:

if(textfield.getText().equals("0")){

textfield.setText("除数不能为零");

number=false;

}else{

key=-1;

data2/=data1;

textfield.setText(Double.toString(data2));

break;

}

default:

data2=Double.parseDouble(textfield.getText());

}

pkey=key=1;

textfield.setText("");

}

//所按下的按钮为*按钮

if(s.equals("*")){

switch(pkey){

case 0:

data2+=Double.parseDouble(textfield.getText());

break;

case 1:

data2+=Double.parseDouble(textfield.getText());

break;

case 2:

data2+=Double.parseDouble(textfield.getText());

break;

case 3:

if(textfield.getText().equals("0")){ // 第六页

textfield.setText("除数不能为零");

number=false;

}else{

key=-1;

data2/=data1;

textfield.setText(Double.toString(data2));

break;

}

default:

data2=Double.parseDouble(textfield.getText());

}

pkey=key=2;

textfield.setText("");

}

//所按下的按钮为/按钮

if(s.equals("/")){

switch(pkey){

case 0:

data2+=Double.parseDouble(textfield.getText());

break;

case 1:

data2+=Double.parseDouble(textfield.getText());

break;

case 2:

data2+=Double.parseDouble(textfield.getText());

break;

case 3:

if(textfield.getText().equals("0")){

textfield.setText("除数不能为零");

number=false;

}else{

key=-1;

data2/=data1;

textfield.setText(Double.toString(data2));

break;

}

default:

data2=Double.parseDouble(textfield.getText());

}

pkey=key=3;

textfield.setText("");

} //第七页

//所按下的按钮为=,求结果

if(s.equals("=")number){

//如果不是第一次按下=按钮

if(pkey==5){

switch(pkey){

case 0:

data2+=data1;

textfield.setText(Double.toString(data2));

break;

case 1:

data2-=data1;

textfield.setText(Double.toString(data2));

break;

case 2:

data2*=data1;

textfield.setText(Double.toString(data2));

break;

case 3:

if(textfield.getText().equals("0")){

textfield.setText("除数不能为零");

number=false;

}else{

data2/=data1;

textfield.setText(Double.toString(data2));

break;

}

}

}

//如果是第一次按下=按钮

else{

data1=Double.parseDouble(textfield.getText());

switch(key){

case 0:

key=-1;

data2+=Double.parseDouble(textfield.getText());

textfield.setText(Double.toString(data2));

break;

case 1:

key=-1;

data2-=Double.parseDouble(textfield.getText());

textfield.setText(Double.toString(data2)); //第八页

break;

case 2:

key=-1;

data2*=Double.parseDouble(textfield.getText());

textfield.setText(Double.toString(data2));

break;

case 3:

if(textfield.getText().equals("0")){

textfield.setText("除数不能为零");

number=false;

}else{

key=-1;

data2/=Double.parseDouble(textfield.getText());

textfield.setText(Double.toString(data2));

break;

}

}

}

pkey=5;

}

//按下的按钮时数字按钮

else{

switch(s.charAt(0)){

case'0':

case'1':

case'2':

case'3':

case'4':

case'5':

case'6':

case'7':

case'8':

case'9':

number=true;

textfield.setText(textfield.getText()+s);

break;

//对.的处理

case'.':

t_content=textfield.getText();

boolean g=false; //第九页

//对计算机栏中的数据进行检验

//如果其中有小数点,则用户单击该按钮时不在添加小数点

for(int i=0;it_content.length();i++){

if(t_content.charAt(i)=='.'){

g=true;

break;

}

}

//数据中已经有小数点

if(g==true)

break;

// 数据中没有小数点,当用户单击小数点时添加小数点

if(g==false)

textfield.setText(t_content+".");

}

}

}

private String Integer(String string) {

// TODO Auto-generated method stub

return null;

}

}

关于java科学计算器和Java科学计算器的会遇到的问题和解决方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。