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

📄 calculator.java

📁 一个Java写的计算器程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                           st[1]=String.valueOf(num[1]); 
                           t.setText(st[1]);
                       }else 
                           Toolkit.getDefaultToolkit().beep(); 
                   } else { 
                       if(st[0]==""){ 
                           Toolkit.getDefaultToolkit().beep(); 
               }else{ 
                   isE=true; 
                   if(num[0]!=0){ 
                       num[0]=1/num[0]; 
                       st[0]=String.valueOf(num[0]); 
                       t.setText(st[0]); 
                   } else 
                       Toolkit.getDefaultToolkit().beep(); 
                   }
               } 
           } 
          if(a==4){ 
              JOptionPane.showMessageDialog(null,"这按钮不知用来干什么,系统计算器的结果老是0");    
          } 
      } 
  } 
  class menuAction implements ActionListener{ 
      double nn[][]={{3.141592653589793238,2.718281828459045235,1.618033988749894848},{299792458.0,1.60217653e-19,376.730313461},{6.6260693e-34},{1.3806505e-23,1.66053886e-27,8.314472,602214150000000000000000.0},{6.6742e-11,9.80665}}; 
      public void actionPerformed(ActionEvent e){ 
          if(e.getSource()==m1) 
              System.exit(0); 
          else if(e.getSource()==m2[0]){ 
              if(isDot==false){ 
                  t.setSelectionStart(1); 
                  t.setSelectionEnd(t.getText().length()); 
              }else 
                  t.selectAll(); 
                  t.copy(); 
                  t.setSelectionStart(1); 
              } 
          else if(e.getSource()==m2[1]){ 
              if(isE==true) 
              reset(); 
              t.setText(""); 
              t.paste(); 
              st[flag]=t.getText(); 
              try{ 
                  num[flag]=Double.parseDouble(st[flag]); 
                  st[flag]=t.getText();
              }catch(Exception k){return; } 
           } 
           else for(int i=0;i<5;i++) 
           for(int j=0;j<5;j++){ 
               try{ 
                   if(e.getSource()==mi3[i][j]){ 
                       if(isE==true) 
                           reset(); 
                       st[flag]=String.valueOf(nn[i][j]); 
                       num[flag]=Double.parseDouble(st[flag]); 
                       t.setText(st[flag]); 
                       isDot=true; 
                   } 
               }catch(Exception k){return;} 
           } 
       } 
   }
  class keyhandle extends KeyAdapter{ 
   
      public void keyReleased(KeyEvent e){ 
          int ke=e.getKeyCode(); 
          if(ke==110){ 
              dot(); 
          }else 
              if(ke>=96&&ke<=105){ 
                  addStr(ke-96); 
              }else 
          if(ke==107||ke==106||ke==109||ke==111||ke==10){ 
              p1.requestFocus(); 
              flag=1; 
              isDot=false; 
              if(st[0]==""){ 
                  Toolkit.getDefaultToolkit().beep(); 
              }else{ 
                  if(st[1]!=""&&ke!=10){ 
                      calculation(state); 
                  }   
                  if(ke==107){ 
                      state=0; 
                      isE=false; 
                  } 
                  if(ke==109){ 
                      state=1; 
                      isE=false; 
                  } 
                  if(ke==106){ 
                      state=2; 
                      isE=false; 
                  } 
                  if(ke==111){ 
                      state=3; 
                      isE=false; 
                  } 
                  if(ke==10){ 
                      calculation(state); 
                      isE=true; 
                  } 
              } 
          }else 
              if(ke==8){ 
                  backspace(); 
              }else 
                  Toolkit.getDefaultToolkit().beep(); 
              } 
          } 
  public void addStr(int a){ 
   if(isE){ 
    reset(); 
    st[flag]=st[flag]+a; 
    setdot(); 
    } 
   else{ 
    st[flag]=st[flag]+a; 
   setdot(); 
   if(st[flag].charAt(0)=='0'&&st[flag].length()==2&&st[flag].charAt(1)!='.'){ 
    st[flag]=a+""; 
    } 
   setdot(); 
   //toDouble(st[flag]); 
   } 
   } 
  public void calculation(int s){ 
     
    switch(s){ 
    case 0: 
    num[0]=num[0]+num[1]; 
    clean(); 
    break; 
    case 1: 
    num[0]=num[0]-num[1]; 
    clean(); 
    break; 
    case 2: 
    num[0]=num[0]*num[1]; 
    clean(); 
    break; 
    case 3: 
    num[0]=num[0]/num[1]; 
    clean(); 
    break; 
   } 
    } 
  public void reset(){ 
  isDot=false; 
  st[0]=""; 
  st[0]=""; 
  num[0]=0; 
  num[1]=0; 
  flag=0; 
  state=-1; 
  t.setText(".0"); 
  isE=false; 
   } 
  public  double toDouble(String s){ 
   double sum1=0,sum2=0; 
   String s1="",s2=""; 
 int i=0,j=0,k=0; 
 int f=0,l=s.length(); 
 for(i=0;i<l-1;i++){ 
  if(s.charAt(i)=='.') 
  break; 
  } 
if(++i!=l){ 
 s1=s.substring(0,i-1); 
 s2=s.substring(i); 
 for(j=s2.length();j>0;j--){ 
 f=(int)s2.charAt(k)-48; 
 sum2=sum2+f*(int)Math.pow(10,j-1); 
 k++; 
  } 
   
  sum2=sum2/Math.pow(10,s2.length()); 
 }else s1=s; 
k=0;f=0; 
for(j=s1.length();j>0;j--){ 
 f=(int)s1.charAt(k)-48; 
 sum2=sum2+f*(int)Math.pow(10,j-1); 
 k++; 
 } 
 return sum1+sum2; 
   } 
  public void backspace(){ 
  if(st[flag].length()==1) 
  {st[flag]=""; 
   t.setText(".0"); 
   } 
  if(st[flag]=="") 
  Toolkit.getDefaultToolkit().beep(); 
  else{ 
   st[flag]=st[flag].substring(0,st[flag].length()-1); 
   num[flag]=Double.parseDouble(st[flag]); 
   if(st[flag].charAt(st[flag].length()-1)=='.'){ 
  t.setText('.'+st[flag].substring(0,st[flag].length()-1)); 
  isDot=false; 
  } 
   else 
   t.setText('.'+st[flag]); 
   } 
   } 
  public void dot(){ 
   if(isDot){ 
    Toolkit.getDefaultToolkit().beep(); 
    } 
    else{ 
     if(st[flag]==""){ 
      isDot=!isDot; 
      st[flag]="0."; 
      t.setText('.'+st[flag].substring(0,st[flag].length()-1)); 
      } 
      else{ 
     isDot=!isDot; 
     st[flag]=st[flag]+'.'; 
    t.setText('.'+st[flag].substring(0,st[flag].length()-1));} 
     } 
   } 
  public void setdot(){ 
    if(isDot) 
     t.setText(st[flag]); 
     else 
     t.setText("."+st[flag]); 
     num[flag]=Double.parseDouble(st[flag]); 
   } 
  private void clean(){ 
    st[0]=String.valueOf(num[0]); 
    st[1]=""; 
    t.setText(st[0]); 
    } 
     public static void main(String args[]){ 
    Calculator  e=new Calculator(); 
    e.go(); 
    } 
 }  
 

⌨️ 快捷键说明

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