java计算器编程
❶ java科学计算器代码如何编
import java.awt.*; 
import java.awt.event.*; 
import java.lang.*; 
import javax.swing.*; 
public class Counter extends Frame 
{ 
//声明三个面板的布局 
GridLayout gl1,gl2,gl3; 
Panel p0,p1,p2,p3; 
JTextField tf1; 
TextField tf2; 
Button b0,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; 
StringBuffer str;//显示屏所显示的字符串 
double x,y;//x和y都是运算数 
int z;//Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/" 
static double m;//记忆的数字 
public Counter() 
{ 
gl1=new GridLayout(1,4,10,0);//实例化三个面板的布局 
gl2=new GridLayout(4,1,0,15); 
gl3=new GridLayout(4,5,10,15); 
tf1=new JTextField(27);//显示屏 
tf1.setHorizontalAlignment(JTextField.RIGHT); 
tf1.setEnabled(false); 
tf1.setText("0"); 
tf2=new TextField(10);//显示记忆的索引值 
tf2.setEditable(false); 
//实例化所有按钮、设置其前景色并注册监听器 
b0=new Button("Backspace"); 
b0.setForeground(Color.red); 
b0.addActionListener(new Bt()); 
b1=new Button("CE"); 
b1.setForeground(Color.red); 
b1.addActionListener(new Bt()); 
b2=new Button("C"); 
b2.setForeground(Color.red); 
b2.addActionListener(new Bt()); 
b3=new Button("MC"); 
b3.setForeground(Color.red); 
b3.addActionListener(new Bt()); 
b4=new Button("MR"); 
b4.setForeground(Color.red); 
b4.addActionListener(new Bt()); 
b5=new Button("MS"); 
b5.setForeground(Color.red); 
b5.addActionListener(new Bt()); 
b6=new Button("M+"); 
b6.setForeground(Color.red); 
b6.addActionListener(new Bt()); 
b7=new Button("7"); 
b7.setForeground(Color.blue); 
b7.addActionListener(new Bt()); 
b8=new Button("8"); 
b8.setForeground(Color.blue); 
b8.addActionListener(new Bt()); 
b9=new Button("9"); 
b9.setForeground(Color.blue); 
b9.addActionListener(new Bt()); 
b10=new Button("/"); 
b10.setForeground(Color.red); 
b10.addActionListener(new Bt()); 
b11=new Button("sqrt"); 
b11.setForeground(Color.blue); 
b11.addActionListener(new Bt()); 
b12=new Button("4"); 
b12.setForeground(Color.blue); 
b12.addActionListener(new Bt()); 
b13=new Button("5"); 
b13.setForeground(Color.blue); 
b13.addActionListener(new Bt()); 
b14=new Button("6"); 
b14.setForeground(Color.blue); 
b14.addActionListener(new Bt()); 
b15=new Button("*"); 
b15.setForeground(Color.red); 
b15.addActionListener(new Bt()); 
b16=new Button("%"); 
b16.setForeground(Color.blue); 
b16.addActionListener(new Bt()); 
b17=new Button("1"); 
b17.setForeground(Color.blue); 
b17.addActionListener(new Bt()); 
b18=new Button("2"); 
b18.setForeground(Color.blue); 
b18.addActionListener(new Bt()); 
b19=new Button("3"); 
b19.setForeground(Color.blue); 
b19.addActionListener(new Bt()); 
b20=new Button("-"); 
b20.setForeground(Color.red); 
b20.addActionListener(new Bt()); 
b21=new Button("1/X"); 
b21.setForeground(Color.blue); 
b21.addActionListener(new Bt()); 
b22=new Button("0"); 
b22.setForeground(Color.blue); 
b22.addActionListener(new Bt()); 
b23=new Button("+/-"); 
b23.setForeground(Color.blue); 
b23.addActionListener(new Bt()); 
b24=new Button("."); 
b24.setForeground(Color.blue); 
b24.addActionListener(new Bt()); 
b25=new Button("+"); 
b25.setForeground(Color.red); 
b25.addActionListener(new Bt()); 
b26=new Button("="); 
b26.setForeground(Color.red); 
b26.addActionListener(new Bt()); 
//实例化四个面板 
p0=new Panel(); 
p1=new Panel(); 
p2=new Panel(); 
p3=new Panel(); 
//创建一个空字符串缓冲区 
str=new StringBuffer(); 
//添加面板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(new WindowAdapter(){ 
public void windowClosing(WindowEvent e1) 
{ 
System.exit(0); 
} 
}); 
setBackground(Color.lightGray); 
setBounds(100,100,320,280); 
setVisible(true); 
} 
//构造监听器 
class Bt implements ActionListener 
{ 
public void actionPerformed(ActionEvent e2) 
{ 
try{ 
if(e2.getSource()==b1)//选择"CE"清零 
{ 
tf1.setText("0");//把显示屏清零 
str.setLength(0);//清空字符串缓冲区以准备接收新的输入运算数 
} 
else if(e2.getSource()==b2)//选择"C"清零 
{ 
tf1.setText("0");//把显示屏清零 
str.setLength(0); 
} 
else if(e2.getSource()==b23)//单击"+/-"选择输入的运算数是正数还是负数 
{ 
x=Double.parseDouble(tf1.getText().trim()); 
tf1.setText(""+(-x)); 
} 
else if(e2.getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值 
{ 
x=Double.parseDouble(tf1.getText().trim()); 
str.setLength(0);//清空缓冲区以便接收新的另一个运算数 
y=0d; 
z=0; 
} 
else if(e2.getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值 
{ 
x=Double.parseDouble(tf1.getText().trim()); 
str.setLength(0); 
y=0d; 
z=1; 
} 
else if(e2.getSource()==b15)//单击乘号按钮获得x的值和z的值并清空y的值 
{ 
x=Double.parseDouble(tf1.getText().trim()); 
str.setLength(0); 
y=0d; 
z=2; 
} 
else if(e2.getSource()==b10)//单击除号按钮获得x的值和z的值并空y的值 
{ 
x=Double.parseDouble(tf1.getText().trim()); 
str.setLength(0); 
y=0d; 
z=3; 
} 
else if(e2.getSource()==b26)//单击等号按钮输出计算结果 
{ 
str.setLength(0); 
switch(z) 
{ 
case 0 : tf1.setText(""+(x+y));break; 
case 1 : tf1.setText(""+(x-y));break; 
case 2 : tf1.setText(""+(x*y));break; 
case 3 : tf1.setText(""+(x/y));break; 
} 
} 
else if(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()); 
} 
else if(tf1.getText().trim().equals(""))//如果初时显示为空则不做任何操作 
{ 
} 
else 
{ 
tf1.setText(str.append(e2.getActionCommand()).toString()); 
} 
} 
y=0d; 
} 
else if(e2.getSource()==b11)//求平方根 
{ 
x=Double.parseDouble(tf1.getText().trim()); 
tf1.setText("数字格式异常"); 
if(x<0) 
tf1.setText("负数没有平方根"); 
else 
tf1.setText(""+Math.sqrt(x)); 
str.setLength(0); 
y=0d; 
} 
else if(e2.getSource()==b16)//单击了"%"按钮 
{ 
x=Double.parseDouble(tf1.getText().trim()); 
tf1.setText(""+(0.01*x)); 
str.setLength(0); 
y=0d; 
} 
else if(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; 
} 
else if(e2.getSource()==b3)//MC为清除内存 
{ 
m=0d; 
tf2.setText(""); 
str.setLength(0); 
} 
else if(e2.getSource()==b4)//MR为重新调用存储的数据 
{ 
if(tf2.getText().trim()!="")//有记忆数字 
{ 
tf1.setText(""+m); 
} 
} 
else if(e2.getSource()==b5)//MS为存储显示的数据 
{ 
m=Double.parseDouble(tf1.getText().trim()); 
tf2.setText("M"); 
tf1.setText("0"); 
str.setLength(0); 
} 
else if(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()); 
} 
} 
else if(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(NumberFormatException e){ 
tf1.setText("数字格式异常"); 
} 
catch( e){ 
tf1.setText("字符串索引越界"); 
} 
} 
} 
public static void main(String args[]) 
{ 
new Counter(); 
} 
}
❷ JAVA 编写计算器 要代码最简单的
学java的时候自己编的,很简单,能够连续输入计算式后进行计算
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.NumberFormat;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**简易计算器,能够进行简单的计算
 * 
 * @see 2008.12.9
*/
public class CalculatorA 
  implements ActionListener{
 
  private JFrame frame;
  private JTextField field;
  private JButton[] allButtons;
  private JButton clearButton;
//  private JButton backButton;
  String result="";//保存结果
  StringBuilder sb = new StringBuilder();//保存要进行的计算式
  int x = 0;   //用来判断上一次的事件类型 
  String str = "123+456-789*0.=/";
  ArrayList<String> arrayList = new ArrayList<String>();//保存计算式,通过方法进行运算
  
  public CalculatorA(){
   
   frame = new JFrame("我的计算器v1.1");
   frame.setLocation(300,300);
   
   field = new JTextField(25);
   
   allButtons = new JButton[16];
   for(int i=0;i<allButtons.length;i++){
     allButtons[i]= new JButton(str.substring(i,i+1));
   }
   clearButton = new JButton("CLEAR");
//   backButton = new JButton("<——");
   
   init();
   setFondAndColor();
   addEventHander();
  }
  
  public void init(){
   frame.setLayout(new BorderLayout());
   
   JPanel northPanel = new JPanel();
   JPanel centerPanel = new JPanel();
   JPanel southPanel = new JPanel();
   
   northPanel.setLayout(new FlowLayout());
   centerPanel.setLayout(new GridLayout(4,4));
   southPanel.setLayout(new FlowLayout());
   
   northPanel.add(field);
   for(int i=0;i<allButtons.length;i++){
    centerPanel.add(allButtons[i]);
   }
   southPanel.add(clearButton);
   //southPanel.add(backButton);
   
   frame.add(northPanel,BorderLayout.NORTH);
   frame.add(centerPanel,BorderLayout.CENTER);
   frame.add(southPanel,BorderLayout.SOUTH);
  }
  //设置输入字体
  public void setFondAndColor(){
    field.setFont(new Font("宋体",Font.BOLD,24));
    field.setBackground(new Color(100,200,200));
    field.setForeground(Color.RED);
    //设置字体从右起始
    field.setHorizontalAlignment(JTextField.RIGHT);
  }
  
  public void showMi(){
   frame.pack();
   frame.setResizable(false);
   frame.setVisible(true);
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
  public void addEventHander(){
   for(int i=0;i<allButtons.length;i++){
    allButtons[i].addActionListener(this);  
   }
   clearButton.addActionListener(this);
//   backButton.addActionListener(this);
  }
  @Override
  public void actionPerformed(ActionEvent e) {
    String str = e.getActionCommand();//取得当前事件返回的值
    if("0123456789.".indexOf(str)!=-1){
        if(x == 0){ //当x为0时表示还没有进行输入
        result=str;
        sb.append(str);
        field.setText(str);
        x = 1;
       }
       else if(x == 1){
        result = result +str;
        sb.append(str);
        field.setText(result);
        x = 1;
       }
       else if(x == 2){
        sb.delete(0,sb.length());
        result = result+str;
        sb.append(str);
        field.setText(result);
        x = 1;
       }
       else if(x == 3){
        result = str;
        sb.delete(0,sb.length());
        arrayList.clear();
        field.setText(str);
        sb.append(str);
        field.setText(str);
        x = 1;
       }
       else if(x == 4){
        result ="";
        sb.delete(0,sb.length());
        arrayList.clear();
        result = str;
        sb.append(str);
        field.setText(str);
        x = 1;
       }
       else{
        result = result +str;
        sb.append(str);
        field.setText(result);
        x = 1;
       }
    }
    else if("+*-/".indexOf(str)!=-1){
      if(x == 0){
        field.setText("");
        x = 2;
       }
      else if(x == 1){
       result = result + str;
       arrayList.add(sb.toString());
       arrayList.add(str);
       sb.append(str);
       field.setText(result);
       x = 2;
      }
      else if(x == 2){
       x = 2;
      }
      else if(x == 3){
       field.setText(result+str);
       arrayList.add(result);
       arrayList.add(str);
       result = result+str;
       x = 2;
      }
      else if(x == 4){
       result ="";
       sb.delete(0,sb.length());
       arrayList.clear();
       x = 2;
      }
      else{
       field.setText(result+str);
       arrayList.add(result);
       arrayList.add(str);
       result = result+str;
       x = 2;
      }
    }
    else if("=".equals(str)){
       if(x == 0){
        field.setText("0");
        arrayList.clear();
        result = "0";
        x = 3;
       }
       else if(x == 1){
        try{
         arrayList.add(sb.toString());
         arrayList = getResult(arrayList);
         result = arrayList.get(0);
         field.setText(result);
         arrayList.clear();
         x = 3;
       }catch(Exception e1){
        field.setText("数据格式异常");
        x = 0;
       }
       }
       else if(x == 2){
        field.setText("数据格式错误.....");
        arrayList.clear();
        x = 0;
       }
       else if(x == 3){
        field.setText(result);
        x = 3;
       }
       else if(x == 4){
        result ="";
        sb.delete(0,sb.length());
        arrayList.clear();
        x = 3;
       }
       else {
        try{
          arrayList.add(sb.toString());
          arrayList = getResult(arrayList);
          result = arrayList.get(0);
          field.setText(result);
          arrayList.clear();
          x = 3;
        }catch(Exception e1){
         field.setText("数据格式异常");
         x = 0;
        }
       }
    }
    else if("CLEAR".equals(str)){
     arrayList.clear();
     field.setText("0");
     arrayList.add("0");
     x = 4;
    }
    else{
     if(result.length()>1){
      result = result.substring(0,result.length()-1);
      if(sb.length()>0){
       sb.delete(sb.length()-1,sb.length());
      }
      else {
       sb.delete(0,1);
      }
      field.setText(result);
      x = 5;
     }
     else{
      result = "";
      sb.delete(0,sb.length());
      arrayList.clear();
      field.setText("0");
      x = 0;
     }
    }
  }
  public static ArrayList<String> getResult(ArrayList<String> list){
   String res = null;
   String[] s = {"/","*","-","+"};
   int i=0;
   if(list.size()>1){
    for(;i<s.length;){
     if(s[i].equals("/")){
      for(int j=0;j<list.size();j++){
       if(list.get(j).equals(s[i])){
        res = Double.toString(Double.parseDouble(list.get(j-1))/Double.parseDouble(list.get(j+1)));
        //本地的数据格式
        NumberFormat nf = NumberFormat.getInstance();
        res = nf.format(Double.parseDouble(res));
        res = getChange(res);
        list.set(j-1,res);
        list.remove(j);
        list.remove(j);
        getResult(list);
       }
      }
      i++;
     }
     else if(s[i].equals("*")){
      for(int j=0;j<list.size();j++){
       if(list.get(j).equals(s[i])){
        res = Double.toString(Double.parseDouble(list.get(j-1))*Double.parseDouble(list.get(j+1)));
        NumberFormat nf = NumberFormat.getInstance();
        res = nf.format(Double.parseDouble(res));
        res = getChange(res);
        list.set(j-1,res);
        list.remove(j);
        list.remove(j);
        getResult(list);
       }
      }
      i++;
     }
     else if(s[i].equals("-")){
      for(int j=0;j<list.size();j++){
       if(list.get(j).equals(s[i])){
        res = Double.toString(Double.parseDouble(list.get(j-1))-Double.parseDouble(list.get(j+1)));
        NumberFormat nf = NumberFormat.getNumberInstance();
        res = nf.format(Double.parseDouble(res));
        res = getChange(res);
        list.set(j-1,res);
        list.remove(j);
        list.remove(j);
        getResult(list);
       }
      }
      i++;
     }
     else {
      for(int j=0;j<list.size();j++){
       if(list.get(j).equals(s[i])){
        res = Double.toString(Double.parseDouble(list.get(j-1))+Double.parseDouble(list.get(j+1)));
        NumberFormat nf = NumberFormat.getInstance();
        res = nf.format(Double.parseDouble(res));
        res = getChange(res);
        list.set(j-1,res);
        list.remove(j);
        list.remove(j);
        getResult(list);
       }
      }
      i++;
     }
    }
   }
   return list;
  }
  //对数字字符串进行排除不必要符号
  public static String getChange(String res){
   String s_temp = "";
   char[] c = new char[res.length()];
   for(int k=0;k<c.length;k++){
     c[k] = res.charAt(k);
   }
   for(int k=0;k<c.length;k++){
    if((c[k]>= '0' && c[k]<= '9')|| c[k] == '.'){
     s_temp += c[k];
    }
   }
   return s_temp;
  }
  public static void main(String[] args){
   new CalculatorA().showMi();
  }
}
❸ 帮我用最简单的java代码写个计算器! 代码越少越好
import java.awt.*;
import java.awt.event.*;
public class jisuanqi extends WindowAdapter {
 Panel p1 = new Panel();
 Panel p2 = new Panel();
 Panel p3 = new Panel();
 TextField txt;
 private Button[] b = new Button[17];
 private String ss[] = { "7", "8", "9", "+", "4", "5", "6", "-", "1", "2",
   "3", "*", "清空", "0", "=", "/", "关闭" };
 static double a;
 static String s, str;//定义变量 创建对像
 public static void main(String args[]) {
  (new jisuanqi()).frame();
 }
 public void frame() {
  Frame fm = new Frame("简单计算器");
  for (int i = 0; i <= 16; i++) {
   b[i] = new Button(ss[i]);
  }                              
  for (int i = 0; i <= 15; i++) {
   p2.add(b[i]);
  }                               //创建按钮 并添加到P2
  b[16].setBackground(Color.yellow);
  txt = new TextField(15);
  txt.setEditable(false);
  for (int i = 0; i <= 16; i++) {
   b[i].addActionListener(new buttonlistener());//添加监听器
  }
  b[16].addActionListener(new close());
  fm.addWindowListener(this);
  fm.setBackground(Color.red);
  p1.setLayout(new BorderLayout());
  p1.add(txt, "North");
  p2.setLayout(new GridLayout(4, 4));
  p3.setLayout(new BorderLayout());
  p3.add(b[16]);
  fm.add(p1, "North");
  fm.add(p2, "Center");
  fm.add(p3, "South");
  fm.pack();
  fm.setVisible(true);//都是些窗中设置 添加相关组件和监听器
 }
 public void windowClosing(WindowEvent e) {
  System.exit(0);//退出系统
 }
 class buttonlistener implements ActionListener {//编写监听器事件 通过按键得出给果
  public void actionPerformed(ActionEvent e) {
   Button btn = (Button) e.getSource();
   if (btn.getLabel() == "=") {
    jisuan();
    str = String.valueOf(a);
    txt.setText(str);
    s = "";
   } else if (btn.getLabel() == "+") {
    jisuan();
    txt.setText("");
    s = "+";
   } else if (btn.getLabel() == "-") {
    jisuan();
    txt.setText("");
    s = "-";
   } else if (btn.getLabel() == "/") {
    jisuan();
    txt.setText("");
    s = "/";
   } else if (btn.getLabel() == "*") {
    jisuan();
    txt.setText("");
    s = "*";
   } else {
    txt.setText(txt.getText() + btn.getLabel());
    if (btn.getLabel() == "清空")
     txt.setText("");
   }
  }
❹ 用JAVA编写的科学计算器源代码
以下是一个简单的用Java编写的科学计算器的源代码示例:
java
import java.util.Scanner;
public class ScientificCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Welcome to the Scientific Calculator!");
System.out.println("Enter 'add', 'subtract', 'multiply', 'divide', 'sin', 'cos', 'tan', 'log', 'exp', 'sqrt', or 'quit' to exit.");
while (true) {
System.out.print("Enter operation (e.g., add 2 3): ");
String operation = scanner.nextLine();
if (operation.equalsIgnoreCase("quit")) {
break;
}
String[] parts = operation.split(" ");
double num1 = Double.parseDouble(parts[1]);
double num2 = Double.parseDouble(parts[2]);
switch (parts[0].toLowerCase()) {
case "add":
System.out.println(num1 + " + " + num2 + " = " + (num1 + num2));
break;
case "subtract":
System.out.println(num1 + " - " + num2 + " = " + (num1 - num2));
break;
case "multiply":
System.out.println(num1 + " * " + num2 + " = " + (num1 * num2));
break;
case "divide":
if (num2 != 0) {
System.out.println(num1 + " / " + num2 + " = " + (num1 / num2));
} else {
System.out.println("Error: Division by zero is not allowed.");
}
break;
case "sin":
System.out.println("sin(" + num1 + ") = " + Math.sin(Math.toRadians(num1)));
break;
case "cos":
System.out.println("cos(" + num1 + ") = " + Math.cos(Math.toRadians(num1)));
break;
case "tan":
System.out.println("tan(" + num1 + ") = " + Math.tan(Math.toRadians(num1)));
break;
case "log":
System.out.println("log(" + num1 + ") = " + Math.log10(num1));
break;
case "exp":
System.out.println("exp(" + num1 + ") = " + Math.exp(num1));
break;
case "sqrt":
if (num1 >= 0) {
System.out.println("sqrt(" + num1 + ") = " + Math.sqrt(num1));
} else {
System.out.println("Error: Cannot calculate the square root of a negative number.");
}
break;
default:
System.out.println("Error: Invalid operation.");
break;
}
}
scanner.close();
System.out.println("Goodbye!");
}
}
这个科学计算器支持基本的四则运算(加、减、乘、除)以及一些科学运算(正弦、余弦、正切、对数、指数和平方根)。用户可以通过输入相应的操作和两个数字来执行计算。例如,输入“add 2 3”将计算2加3的结果。
代码首先导入了`Scanner`类,用于从用户处获取输入。然后,在`main`方法中,创建了一个`Scanner`对象,用于读取用户的输入。程序通过一个无限循环来持续接收用户的输入,直到用户输入“quit”为止。
在循环中,程序首先提示用户输入一个操作,然后读取用户的输入并将其分割为多个部分。接着,程序将第二个和第三个部分转换为`double`类型的数字,并根据第一个部分(即操作)执行相应的计算。
程序使用`switch`语句来根据用户输入的操作执行相应的计算。对于基本的四则运算,程序直接执行相应的计算并输出结果。对于科学运算,程序使用了Java的`Math`类中的相应方法。例如,对于正弦运算,程序使用了`Math.sin`方法,并将角度转换为弧度作为参数传递给它。
如果用户输入了无效的操作或无效
