正文

计算器(四则运算完全成立并且能连续符号运算没完成)排错没做2006-05-09 10:54:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sword2008/13763.html

分享到:

//摸版没搞,大概只有本人能读!!

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.Math;

public class test extends JFrame{
 static int count=0,all=0,but;
 static String fuhao,output="";
 private JLabel promptLabel;
 protected static JTextField inputField;
 private JTextArea outputArea;
 private JButton j0,j1,j2,j3,j4,j5,j6,j7,j8,j9,x1,x2,y1,y2,s1,s2;
 static int cont[]=new int[9];
 static int paixu[]=new int[50];
 private String fuhaoString[]=new String[50];
 
 
 
 
  public test(){
   super("ceshi StringTokenizer");
   Container container=getContentPane();
   container.setLayout(new FlowLayout());
  
   promptLabel=new JLabel("计算器");
   container.add(promptLabel);
   inputField=new JTextField(20);
  
  
  
  
   inputField.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     StringTokenizer tokens=new StringTokenizer(event.getActionCommand());
    
     outputArea.setText("Number of elements"+tokens.countTokens()+"\nThe tokens are:\n");
    
     while(tokens.hasMoreTokens())
     outputArea.append(tokens.nextToken()+"\n");
    }
   });
  
   container.add(inputField);
  
   j1=new JButton("1");
   j2=new JButton("2");
   j3=new JButton("3");
  
   x1=new JButton("*");
   x2=new JButton("/");
  
   j4=new JButton("4");
   j5=new JButton("5");
   j6=new JButton("6");
  
   y1=new JButton("+");
   y2=new JButton("-");
   j7=new JButton("7");
   j8=new JButton("8");
   j9=new JButton("9");
   s1=new JButton("=");
   j0=new JButton("0");
 //1-------------- 
   j1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
    
     count++;
     paixu(1);
     output+=paixu[count];
     inputField.setText(output);
  
    
    
    }
   });
 //2-------------- 
   j2.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(2);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
 //3-------------- 
   j3.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(3);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
//4-----------  
   j4.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(4);
      output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
 //5--------------
 j5.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(5);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
  
   //6---------------------
   j6.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(6);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
  
   //7----------------------
   j7.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(7);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
  
   //8------------
   j8.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(8);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
  
   //9-------------------
   j9.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(9);
     output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
  
   //0-----------------------
   j0.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
     count++;
     paixu(0);
    output+=paixu[count];
     inputField.setText(output);
   }
   }
   );
  
 //+-----------  but第二个数组的记录
   y1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
    fuhaoduizhan("+");
     cont[but]=Integer.parseInt(output.trim());//去掉空格,并存进CONT第一个值里面
    count=0;//输入数堆盏清零
    but++;//标识第几个数输入
    output="";//output清空
   
        
    }
   });
//- ---------------  
   y2.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
 
    fuhao="-";
    cont[but]=Integer.parseInt(output.trim());//去掉空格
    count=0;
    but++;
    output="";
        
    }
   });
  
// *---------------  
   x1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
 
    fuhao="*";
    cont[but]=Integer.parseInt(output.trim());//去掉空格
    count=0;
    but++;
    output="";
        
    }
   });
  
// / ---------------  
   x2.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
 
    fuhao="/";
    cont[but]=Integer.parseInt(output.trim());//去掉空格
    count=0;
    but++;
    output="";
        
    }
   });     

//= --------------------  
   s1.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent event){
/*     cont[but]=Integer.parseInt(output.trim());//but控制的第二个输入数
   
     if(fuhao=="+")//+
  {   cont[but]=cont[but-1]+cont[but];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All; //第N次运算保留
     } 
      
    else    if(fuhao=="-")//-
  {   cont[but]=cont[but-1]-cont[but];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All;
    
    
     } 
  else   if(fuhao=="*")//*
  {   cont[1]=cont[0]*cont[1];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All;
     }   
  else   if(fuhao=="/")// /
  {   cont[1]=cont[0]/cont[1];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All;
     }  
 //清零   
     count=0;
     but-=1;  */
//     output="";

  fuhaodigui();
   }
   });

  
   container.add(j9);
   container.add(j8);
   container.add(j7);
  
   container.add(x1);
   container.add(x2);
  
   container.add(j6);
   container.add(j5);
   container.add(j4);
  
   container.add(y1);
   container.add(y2);
  
   container.add(j3);
   container.add(j2);
   container.add(j1);
   container.add(j0);
  
   container.add(s1);
  
  math(); //sin等涵数的类
  
  
  
  
   outputArea=new JTextArea(10,18);
   outputArea.setEditable(false);
  
   container.add(new JScrollPane(outputArea));
  
  
  
   setSize(275,500);
   setVisible(true);
  
  }
   public static void main(String args[]){
   test application=new test();
   application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
 
   //堆栈-------------------------
  private void paixu(int button){
  
   paixu[count]=button;
  
  }
 
  //符号堆盏----------------------
  private void fuhaoduizhan(String fuhao){
   fuhaoString[but]=fuhao;
   
  }
 
  //第归运算----------------------
  private void fuhaodigui(){
    cont[but]=Integer.parseInt(output.trim());//but控制的第二个输入数
   
     if(fuhaoString[but]=="+")//+
  {   cont[but]=cont[but-1]+cont[but];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All; //第N次运算保留
     } 
      
    else    if(fuhaoString[but]=="-")//-
  {   cont[but]=cont[but-1]-cont[but];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All;
    
    
     } 
  else   if(fuhaoString[but]=="*")//*
  {   cont[1]=cont[0]*cont[1];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All;
     }   
  else   if(fuhaoString[but]=="/")// /
  {   cont[1]=cont[0]/cont[1];
      String All="";
      All+=cont[1];
     inputField.setText(All);
     output=All;
     }  
 //清零   
     count=0;
     but-=1; 
   
  }
 
  //Math涵数按钮引入
  private void math(){
   //加入涵数按钮
   Mathhanshu hanshu=new Mathhanshu();
    Container container=getContentPane();
   container.add(hanshu.sin1);
   container.add(hanshu.cos1);
   container.add(hanshu.tan1);
   container.add(hanshu.tozero);
  
  }
}

//Math涵数按钮
class Mathhanshu {
 protected JButton sin1,cos1,tan1,tozero;
 public  Mathhanshu(){
  sin1=new JButton("sin");
  cos1=new JButton("cos");
  tan1=new JButton("tan");
  tozero=new JButton("清零");
 
   ActionListener listener= new TT();
 
  sin1.addActionListener(listener);
  cos1.addActionListener(listener);
  tan1.addActionListener(listener);
  tozero.addActionListener(listener);
 }
 
  class TT implements ActionListener{
  
    public void actionPerformed(ActionEvent event){
    
     if(sin1==event.getSource())
      {  test.cont[test.but]=Integer.parseInt(test.output.trim()); //cont为最初的值
      test.output=""+Math.sin(test.cont[test.but]);
       test.inputField.setText(test.output);
      
       }
        
         if(cos1==event.getSource())
         {  test.cont[test.but]=Integer.parseInt(test.output.trim());
      test.output=""+Math.cos(test.cont[test.but]);
       test.inputField.setText(test.output);
       }
        
         if(tan1==event.getSource())
         {  test.cont[test.but]=Integer.parseInt(test.output.trim());
      test.output=""+Math.tan(test.cont[test.but]);
       test.inputField.setText(test.output);
       }
        
         if(tozero==event.getSource())//未完成
         { 
       test.inputField.setText("");
       test.but=0;
       test.count=0;
       test.output="";
       }
        
        
    }
   }
   }

阅读(662) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册