📄 cacul.java
字号:
Match(NUM);
return temp;
case SUB:
Match(SUB);
temp=-F();
return temp;
case SIN:
Match(SIN);
t=F();
t=(t/180)*pi;
temp=Math.sin(t);
return temp;
case COS:
Match(COS);
t=F();
t=(t/180)*pi;
temp=Math.cos(t);
return temp;
case TAN:
Match(TAN);
t=F();
if (t == 90)
error = true;
t=(t/180)*pi;
temp=Math.tan(t);
return temp;
case POW:
Match(POW);
temp=Math.pow(F(),2);
return temp;
case LG:
Match(LG);
double ln=F();
System.out.println("F()"+ln);
if (ln > 0)
{
temp = Math.log10(ln) ;
return temp;
}
else {
error = true;
return 0;
}
case LN:
Match(LN);
double lN = F();
if (lN > 0)
{
temp = Math.log(lN);
return temp;
}
else
{
error = true;
return 0;
}
case SQRT:
Match(SQRT);
double st=F();
if(st<0){
System.out.println("负数"+st+"无法开根号!");
error=true;
}
else if(st==0){
System.out.println("sqrt(0)!");
return 0;
}
else temp=Math.sqrt(st);
return temp;
default:
error=true;
System.out.println("False_F()!");
return 0;
}
}
//以上是基本的算法,下面是图形界面的实现
public class Monitor1 implements ActionListener //按钮动作监听
{
public void actionPerformed(ActionEvent e){
String s=e.getActionCommand();
ip=s0.length();
if (s.equals("+/-"))
{
if (i == 0)
{
s0 = s0 + "-";
i++;
} else i--;
} else if (s.equals("E")){
double x = Math.E;
s0 = s0 + x;
}
else if (s.equals("π"))
s0 = s0 + Math.PI;
else if (s.equals("=")) //此时运行上面的算法
{
input = (s0 + "\0").toCharArray();
lookahead = yylex();
double x = E();
if (error == true)
s0 = "Error!";
else s0 = x + "";
input = (s0 + "\0").toCharArray();
pCur = 0; //得出的结果可以继续计算
error = false;
}
else s0 = s0 + s;
jTextField1.setText(s0); //在文本中显示算式和结果
}
}
void dong(){
Monitor1 bh = new Monitor1(); //动作事件监听;
jButton1.addActionListener(bh);
jButton2.addActionListener(bh);
jButton3.addActionListener(bh);
jButton4.addActionListener(bh);
jButton5.addActionListener(bh);
jButton6.addActionListener(bh);
jButton7.addActionListener(bh);
jButton8.addActionListener(bh);
jButton9.addActionListener(bh);
jButton10.addActionListener(bh);
jButton11.addActionListener(bh);
jButton12.addActionListener(bh);
jButton13.addActionListener(bh);
jButton14.addActionListener(bh);
jButton15.addActionListener(bh);
jButton16.addActionListener(bh);
jButton17.addActionListener(bh);
jButton18.addActionListener(bh);
jButton19.addActionListener(bh);
jButton20.addActionListener(bh);
jButton21.addActionListener(bh);
jButton22.addActionListener(bh);
jButton23.addActionListener(bh);
jButton24.addActionListener(bh);
jButton25.addActionListener(bh);
jButton26.addActionListener(bh);
jButton27.addActionListener(bh);
jButton28.addActionListener(bh);
}
class MyThread implements Runnable{
private String time="现在时间: ";
public void run(){
while(true){
time = time + (new Date());
jLabel1.setText(time);
try {
Thread.sleep(1000);
time = "现在时间是: ";
}catch(InterruptedException e){ }
}
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">//GEN-BEGIN:initComponents
private void initComponents() {
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();
jButton6 = new javax.swing.JButton();
jButton7 = new javax.swing.JButton();
jButton8 = new javax.swing.JButton();
jButton9 = new javax.swing.JButton();
jButton10 = new javax.swing.JButton();
jButton11 = new javax.swing.JButton();
jButton12 = new javax.swing.JButton();
jButton13 = new javax.swing.JButton();
jButton14 = new javax.swing.JButton();
jButton15 = new javax.swing.JButton();
jButton16 = new javax.swing.JButton();
jButton17 = new javax.swing.JButton();
jButton18 = new javax.swing.JButton();
jButton19 = new javax.swing.JButton();
jButton20 = new javax.swing.JButton();
jButton21 = new javax.swing.JButton();
jButton22 = new javax.swing.JButton();
jButton23 = new javax.swing.JButton();
jButton24 = new javax.swing.JButton();
jButton25 = new javax.swing.JButton();
jButton26 = new javax.swing.JButton();
jButton27 = new javax.swing.JButton();
jButton28 = new javax.swing.JButton();
jButton29 = new javax.swing.JButton();
jButton30 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
jMenuItem1 = new javax.swing.JMenuItem();
jMenuItem2 = new javax.swing.JMenuItem();
jMenu2 = new javax.swing.JMenu();
jMenuItem3 = new javax.swing.JMenuItem();
jMenuItem4 = new javax.swing.JMenuItem();
jMenu3 = new javax.swing.JMenu();
jMenuItem6 = new javax.swing.JMenuItem();
jMenuItem7 = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("\u79d1\u5b66\u8ba1\u7b97\u56681.0\u6b63\u5f0f\u7248");
setAlwaysOnTop(true);
setBackground(java.awt.SystemColor.window);
setMinimumSize(new java.awt.Dimension(100, 200));
setResizable(false);
jButton1.setText("1");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("3");
jButton3.setText("2");
jButton4.setText("4");
jButton5.setText("5");
jButton6.setText("6");
jButton7.setText("7");
jButton8.setText("8");
jButton9.setText("9");
jButton10.setText("+");
jButton11.setText("-");
jButton12.setText("*");
jButton13.setText("/");
jButton14.setText("=");
jButton15.setText("0");
jButton16.setText(".");
jButton17.setText("(");
jButton18.setText(")");
jButton19.setText("\u5e73\u65b9");
jButton20.setText("sqrt");
jButton21.setText("sin");
jButton22.setText("cos");
jButton23.setText("tan");
jButton24.setText("ln");
jButton25.setText("+/-");
jButton26.setText("lg");
jButton27.setText("E");
jButton28.setText("\u03c0");
jButton29.setText("backspace");
jButton29.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton29ActionPerformed(evt);
}
});
jButton30.setText("CE");
jButton30.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton30ActionPerformed(evt);
}
});
jMenu1.setText("\u9009\u9879");
jMenuItem1.setText("\u91cd\u65b0\u5f00\u59cb");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -