⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winner.java

📁 这些是自己写的
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

public class Computer extends Frame implements ActionListener{
	    double  x1=0,x2=0,total=0,i=0,j=0,a=1,b=0,c=0;
	    //Label la1=new Label("");
	    String str=new String();
	   	Button bt0=new Button("0");
	   	Button bt1=new Button("1");
	   	Button bt2=new Button("2");
	   	Button bt3=new Button("3");
	   	Button bt4=new Button("4");
	   	Button bt5=new Button("5");
	   	Button bt6=new Button("6");
	   	Button bt7=new Button("7");
	   	Button bt8=new Button("8");
	   	Button bt9=new Button("9");
	   	Button bt10=new Button("CE");
	   	Button point=new Button(".");
	    TextField tf=new TextField("0");
	    Button jia=new Button("+");
	    Button jian=new Button("-");
	    Button cheng=new Button("*");
	    Button chu=new Button("/");
	    Button deng=new Button("=");
	    Button sqrt=new Button("sqrt");
	    Button reset=new Button("C"); 
	    Button fu=new Button("+/-"); 
	    static Frame f=new Frame();/*创建按钮0-9,小数点,加减乘除,清0按扭,文本框,*/
	   
	    
	MenuBar mb=new MenuBar();//生成菜单组件对象
	Menu m1=new Menu("编辑");
	MenuItem copy=new MenuItem("复制");
	MenuItem cut=new MenuItem("剪切");
	MenuItem paste=new MenuItem("粘贴");
	
	
	Menu m2=new Menu("帮助");
	MenuItem about=new MenuItem("关于");
	MenuItem exit=new MenuItem("退出");
		
   Computer(){
		super("计算机器");
		setLayout(new FlowLayout());
		addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});                           
		setLayout(null);
		setSize(250,250);
		add(tf);tf.setEditable(true);tf.setBounds(10,50,215,25);
		add(bt0);bt0.setBounds(10,185,35,28);
		add(bt1);bt1.setBounds(10,150,35,28);
		add(bt2);bt2.setBounds(55,150,35,28);
		add(bt3);bt3.setBounds(100,150,35,28);
		add(bt4);bt4.setBounds(10,115,35,28);
		add(bt5);bt5.setBounds(55,115,35,28);
		add(bt6);bt6.setBounds(100,115,35,28);
		add(bt7);bt7.setBounds(10,80,35,28);
		add(bt8);bt8.setBounds(55,80,35,28);
		add(bt9);bt9.setBounds(100,80,35,28);
		add(bt10);bt10.setBounds(190,150,35,28);
		add(point);point.setBounds(100,185,35,28);
		add(deng);deng.setBounds(190,185,35,28);
		add(sqrt);sqrt.setBounds(190,80,35,28);
		add(fu);fu.setBounds(55,185,35,28);
		add(jia);jia.setBounds(145,185,35,28);
		add(jian);jian.setBounds(145,150,35,28);
		add(cheng);cheng.setBounds(145,115,35,28);
		add(chu);chu.setBounds(145,80,35,28);
		//add(la1);la1.setBounds(10,200,250,20);/*手工布局*/
		add(reset);reset.setBounds(190,115,35,28); /*添加组件*/
		
		m1.add(copy);
		m1.add(cut);
		m1.add(paste);
		mb.add(m1);
		
		
		m2.add(about);
		m2.add(exit);
		exit.addActionListener(this);
		mb.add(m2);
		
		
		setMenuBar(mb);
		
		bt0.addActionListener(this);
		bt1.addActionListener(this);	
		bt2.addActionListener(this);	
		bt3.addActionListener(this);	
		bt4.addActionListener(this);	
		bt5.addActionListener(this);	
		bt6.addActionListener(this);	
		bt7.addActionListener(this);	
	    bt8.addActionListener(this);	
	    bt9.addActionListener(this);
	    point.addActionListener(this);
		jia.addActionListener(this);	
		jian.addActionListener(this);
		cheng.addActionListener(this);
		chu.addActionListener(this);
		deng.addActionListener(this);
		sqrt.addActionListener(this);
		reset.addActionListener(this);
		fu.addActionListener(this);  /*添加监听*/		
		show();
         }	

  public static void main(String args[]){
  	new Computer();	
               }
               
       public void jisuan()       //在这里进行运算处理
           {x2=Float.parseFloat(tf.getText());
             if(str=="+"&&a==1)   {total=x2+total;a=0;}
              if(str=="-"&&a==1)  { total=total-x2;a=0;}
              if(str=="*"&&a==1)   {total=x2*total;a=0;}
              if(str=="/"&&a==1)  
                    {if(x2==0)	
                      {	tf.setText(" 除数不能为0");
                       JOptionPane.showMessageDialog(f,"除数不能为0");
                      }
                     else
                       total=total/x2;
                       a=0;}   //a为0说明已经按过运算符
           
            //tf.setText(Double.toString(total));j=2;
            
            
            }
               	
      public void actionPerformed(ActionEvent e){  
       
      if(e.getSource()==bt0)
         {  a=1;
            if(tf.getText().indexOf('0')==0)   //为避免输入00000之类的数
             tf.setText("0");
              else
               {  if(j==1)
                 tf.setText(tf.getText()+"0");
                    else
                     { tf.setText("");
                      tf.setText(tf.getText()+"0");j=1;}
                    }
           }
           
           
           
        if(e.getSource()==bt1)
        {  a=1;
           if(j==1)
             tf.setText(tf.getText()+"1");
             else
            { tf.setText("");
             tf.setText(tf.getText()+"1");j=1;}
          }
          
       if(e.getSource()==bt2)
           {  a=1;
           if(j==1)
             tf.setText(tf.getText()+"2");
             else
            { tf.setText("");
             tf.setText(tf.getText()+"2");j=1;}
          }
          
      if(e.getSource()==bt3)
           {  a=1;
           if(j==1)
             tf.setText(tf.getText()+"3");
             else
            { tf.setText("");
             tf.setText(tf.getText()+"3");j=1;}
          }
          
       if(e.getSource()==bt4)
          {  a=1;
          if(j==1)
             tf.setText(tf.getText()+"4");
             else
            { tf.setText("");
             tf.setText(tf.getText()+"4");j=1;}
          }
          
      if(e.getSource()==bt5)
           {  a=1;
           if(j==1)
             tf.setText(tf.getText()+"5");
             else
            { tf.setText("");
             tf.setText(tf.getText()+"5");j=1;}
           }
      
      if(e.getSource()==bt6)
           {  a=1;
           if(j==1)
             tf.setText(tf.getText()+"6");
             else
            { tf.setText("");
             tf.setText(tf.getText()+"6");j=1;}
          }
          
       if(e.getSource()==bt7)
          {  a=1;
          if(j==1)
             tf.setText(tf.getText()+"7");
             else
            { tf.setText("");
             tf.setText(tf.getText()+"7");j=1;}
          }
          
      if(e.getSource()==bt8)
          {  if(j==1)
             tf.setText(tf.getText()+"8");
             else
            { tf.setText("");
             tf.setText(tf.getText()+"8");j=1;}
          }
          
       if(e.getSource()==bt9)
           { a=1;
            if(j==1)
             tf.setText(tf.getText()+"9");
             else
            { tf.setText("");
             tf.setText(tf.getText()+"9");j=1;}
          }
          
          if(e.getSource()==point)   
            {  if(b==0) 
                { if(j==1)
                 {tf.setText(tf.getText()+".");b=1;}//b用来判断是否存在小数点,b为0说明没小点数,反之则有
                    else
                   { tf.setText("");
                     tf.setText(tf.getText()+".");j=1;b=1;}
                  }
                     
         }
         
         if(e.getSource()==fu)    //正负判断
            { 
             total=Double.parseDouble(tf.getText());
              { if(total>0)   
                 {tf.setText("-"+tf.getText());}
                 else
                 if(total<0)
                 { tf.setText(tf.getText().substring(1));}
            }
         }
         
          
      
      if(e.getSource()==jia)  //a 用于判断输入数据是否是 "数字" "运算符""数字" 这种形式,如果是连续的"运算符"先不计算
           {  i++;b=0;c=0;
              if(i==1)
               {x1=Double.parseDouble(tf.getText());total=x1;j=2;str="+";a=0;}
               
             else
              { jisuan();str="+";}
            }        
               
               
         if(e.getSource()==jian)
           {  i++;b=0;c=0;
              if(i==1)
               {x1=Double.parseDouble(tf.getText());total=x1;j=2;str="-";a=0;}
             else
              { jisuan();str="-";}
            } 
            
           if(e.getSource()==cheng)
           {  i++;b=0;c=0;
              if(i==1)
               {x1=Double.parseDouble(tf.getText());total=x1;j=2;str="*";a=0;}
             else
              {jisuan(); str="*";}
            }      
               
          if(e.getSource()==chu)
           {  i++;b=0;c=0;
              if(i==1)
               {x1=Double.parseDouble(tf.getText());total=x1;j=2;str="/";a=0;}
             else
              {jisuan();str="/";}
            }      
               
           
           if(e.getSource()==deng)
            { 
             if(c==0)     //变量c 是为了解决 2*3*3*3*3....这种连乘所出现的问题
               {x2=Double.parseDouble(tf.getText());c++;}
             if(str=="+")   {total=x2+total;i=0;tf.setText(Double.toString(total)); j=2;}
              if(str=="-")   {total=total-x2;i=0;tf.setText(Double.toString(total)); j=2;}
              if(str=="*")   {total=x2*total;i=0;tf.setText(Double.toString(total)); j=2;}
              if(str=="/")   
                   {if(x2==0)	
                      {	tf.setText("~o~ 除数不能为0");
                       JOptionPane.showMessageDialog(f,"除数不能为0");
                      }
                     else
                       total=total/x2;  //比以上多出部分是处理除数为0情况
                       i=0;tf.setText(Double.toString(total));j=2;}
            }         
               
         if(e.getSource()==sqrt)
          {  i++;b=0;c=0;
             total=Double.parseDouble(tf.getText());
             total=Math.sqrt(total);
             tf.setText(Double.toString(total));
              if(i==1)
               {x1=Double.parseDouble(tf.getText());total=x1;j=2;str="-";a=0;}
             else
              { jisuan();str="sqrt";}
            } 
         
               
           if(e.getSource()==reset)
            {i=0;j=2;total=0;x2=0;x1=0;b=0;c=0;tf.setText("0");str=null;}  
            //初如化变量.....使程序恢复刚启动的状态  
                 
          }
         }
         
        /*
        一、变理j的赋值是为了向文本框输入多位数,而不出错。原理:当按下运算符号,j赋值为2。
         当j=2时。说明第一次输值完毕,文本框可清空。当按下数字键时,就判断j是1还是2,
         是2就清空文本框,同时j赋为1,为输多位数准备。j的作用就是判断输入是否完毕
        
        二、字符串str是完成数字连续运算的关键. 
        三、i是判断是否是第一次按运算符钮。 
         
         */
		
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -