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

📄 至强计算器.txt

📁 用JAVA编写的计算器
💻 TXT
📖 第 1 页 / 共 3 页
字号:
               
        }
        
        if(s.equals("log")){
        //按下log键后的情况,对于当前输入的数字log还是运算结果log,由以前一次的操作确定
        //public calcSqrt()
            if(equalSignPressIndicate||(numberPressIndicate==false)){
                result=(Math.log(result))/(Math.log(10));
                displayNumber=new Double(result);
                 tf.setText(displayNumber.toString());
            }
            else{
                data1=(Math.log(data1))/(Math.log(10));
                displayNumber=new Double(data1);
                    tf.setText(displayNumber.toString());
              }

        }

                
        if(s.equals("a")){
        }
        if(s.equals("b")){
        }
        if(s.equals("->")){
        }
        
        if(s.equals("exp")){
        //按下exp键后的情况,对于当前输入的数字exp还是运算结果exp,由以前一次的操作确定
        //public calcSqrt()
            if(equalSignPressIndicate||(numberPressIndicate==false)){
                result=Math.exp(result);
                displayNumber=new Double(result);
                 tf.setText(displayNumber.toString());
            }
            else{
                data1=Math.exp(data1);
                displayNumber=new Double(data1);
                    tf.setText(displayNumber.toString());
              }
        }

 
        

        if(s.equals("y^x")){
        
        //按下exp键后的情况,对于当前输入的数字exp还是运算结果exp,由以前一次的操作确定
        //public calcSqrt()
            if(equalSignPressIndicate||(numberPressIndicate==false)){
                result=result;
                displayNumber=new Double(result);
                 tf.setText(displayNumber.toString());
            }
            else{
                result=data1;
                displayNumber=new Double(result);
                    tf.setText(displayNumber.toString());
              }
              
            prec='p';
            radixPointIndicate=false;
                radixPointDepth=1;
                numberPressIndicate=false;
                data1=0;
        }
        
        
        if(s.equals("x^-2")){
        }
        if(s.equals("x^2")){
        }
        if(s.equals("(")){
        }
        if(s.equals(")")){
        }
        if(s.equals("")){
        }
        if(s.equals("")){
        }





        if(s.equals("OFF")){
            System.exit(0);
        }
        
        if(s.equals("C")){
               //以下六条语句为初始化计算器即清零
                result=0;
                data1=0;
                prec='+';
                radixPointDepth=1;
                numberPressIndicate=false;
                radixPointIndicate=false;
                   
                //显示数据
                displayNumber=new Double(data1);
                tf.setText(displayNumber.toString());
        }
        
                
        if(s.equals("CE")){
               //以下六条语句为初始化计算器即清零
                result=0;
                data1=0;
                prec='+';
                radixPointDepth=1;
                numberPressIndicate=false;
                radixPointIndicate=false;
                   
                //显示数据
                displayNumber=new Double(data1);
                tf.setText(displayNumber.toString());
        }
        
                        
        if(s.equals("Backspace")){
        //    if(radixPointIndicate){
          //        radixPointDepth=radixPointDepth*10;
          //      }
          //   else{
          //       data1=(data1/10);
         //   }
        }
        
        
        if(s.equals("MC")){
            memDataIndicate=false;
            memData=0;

        }
        
        if(s.equals("MR")&&memDataIndicate){
             //按下sqrt键后的情况,对于当前输入的数字取开平方还是运算结果取开平方,由以前一次的操作确定

            data1=memData;
            
            equalSignPressIndicate=true;
                radixPointDepth=1;
                radixPointIndicate=false;
                //显示数据
               displayNumber=new Double(data1);
                tf.setText(displayNumber.toString());

        }
        if(s.equals("MS")){
             //按下sqrt键后的情况,对于当前输入的数字取开平方还是运算结果取开平方,由以前一次的操作确定
            if(equalSignPressIndicate||(numberPressIndicate==false)){
                memData=result;
                //displayNumber=new Double(result);
                    //tf.setText(displayNumber.toString());
            }
            else{
                memData=data1;
                //displayNumber=new Double(data1);
                    //tf.setText(displayNumber.toString());
              }
              equalSignPressIndicate=true;
              memDataIndicate=true;
              prec='+';
                radixPointDepth=1;
                radixPointIndicate=false;

        }
        if(s.equals("M+")){
             //按下sqrt键后的情况,对于当前输入的数字取开平方还是运算结果取开平方,由以前一次的操作确定
            if(equalSignPressIndicate||(numberPressIndicate==false)){
                memData=memData+result;
                //displayNumber=new Double(result);
                    //tf.setText(displayNumber.toString());
            }
            else{
                memData=memData+data1;
                //displayNumber=new Double(data1);
                    //tf.setText(displayNumber.toString());
              }
              equalSignPressIndicate=true;
              memDataIndicate=true;
              prec='+';
                radixPointDepth=1;
                radixPointIndicate=false;


        }

        
        
        
        if(s.equals("sqrt")){
             //按下sqrt键后的情况,对于当前输入的数字取开平方还是运算结果取开平方,由以前一次的操作确定
             //public calcSqrt()
            if(equalSignPressIndicate||(numberPressIndicate==false)){
                result=Math.sqrt(result);
                displayNumber=new Double(result);
                    tf.setText(displayNumber.toString());
            }
            else{
                data1=Math.sqrt(data1);
                displayNumber=new Double(data1);
                    tf.setText(displayNumber.toString());
              }

        }
        //由于1键和1/x键的第一个字符都为1,+/-键和+键的第一个字符都为+,所以加此判断在数字和操作单字符输入程序前
        if(s.equals("1/x")||s.equals("+/-")){
            if(s.equals("1/x")){
                //按下1/x键后的情况,对于当前输入的数字取倒数还是运算结果求倒数,由以前一次的操作确定
                if(equalSignPressIndicate||(numberPressIndicate==false)){
                    result=1/result;
                    displayNumber=new Double(result);
                        tf.setText(displayNumber.toString());
                }
                else{
                    data1=1/data1;
                    displayNumber=new Double(data1);
                        tf.setText(displayNumber.toString());
                  }
              }
              if(s.equals("+/-")){
                  //按下+/-键后的情况,对于当前输入的数字取负数还是运算结果取负数,由以前一次的操作确定
                if(equalSignPressIndicate||(numberPressIndicate==false)){
                    result=0-result;
                    displayNumber=new Double(result);
                        tf.setText(displayNumber.toString());
                }
                else{
                    data1=0-data1;
                    displayNumber=new Double(data1);
                        tf.setText(displayNumber.toString());
                  }
              }


          }
        else{
            
            switch(s.charAt(0)){
                //数字输入程序
                case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
                         //按完等号键后,直接按任何数字键,计算器认为应该清零后从新计算
                       if(equalSignPressIndicate){
                            //以下六条语句为初始化计算器即清零
                            result=0;
                            data1=0;
                            prec='+';
                            radixPointDepth=1;
                            numberPressIndicate=false;
                            radixPointIndicate=false;


                        }
                   
                    Integer Int1=new Integer(s); 
                    
                       if(radixPointIndicate){
                           radixPointDepth=radixPointDepth/10;
                           data1=data1+(Int1.intValue())*radixPointDepth;
                       }
                       else{
                            data1=data1*10+(Int1.intValue());
                         }
                         
                       numberPressIndicate=true;
                       equalSignPressIndicate=false;
                  
                       //显示数据
                       displayNumber=new Double(data1);
                         tf.setText(displayNumber.toString());
                  
                         break;
            
                 //在按+ - * / =号后处理程序
                 case '+': case '-':case '*':case '/':case '=':
                         if(s.charAt(0)!='='&&equalSignPressIndicate){
                           prec=s.charAt(0);
                           equalSignPressIndicate=false;
                       }
                         else{
                           switch(prec){
                                   case '+':
                                        result=result+data1;
                                        break;
                                 case '-':
                                      result=result-data1;
                                      break;
                                  case '*':
                                       result=result*data1;
                                       break;
                                   case '/':
                                        result=result/data1;
                                        break;
                                    case 'p':
                                        result=Math.pow(result,data1);
                          
                             }
                         }
                         radixPointIndicate=false;
                         radixPointDepth=1;
                         numberPressIndicate=false;

                    
                       if(s.charAt(0)!='='){
                        data1=0;
                            prec=s.charAt(0);
                         }  
                         else{
                              equalSignPressIndicate=true;
                         }
                    
                         //显示数据
                         displayNumber=new Double(result);
                         tf.setText(displayNumber.toString());
                    
                         break;

                 case '.':
                         radixPointIndicate=true;
                       numberPressIndicate=true;

                         break;
                   
                    
                   case '%':
                       if(equalSignPressIndicate||(numberPressIndicate==false)){
                         result=result*100;
                        displayNumber=new Double(result);
                            tf.setText(displayNumber.toString());

                    }
                    else{
                        data1=data1/100;
                        displayNumber=new Double(data1);
                            tf.setText(displayNumber.toString());
                      }
                    break;
                                 
                   
                   

            }
        }
    }

    public void windowClosing(WindowEvent e){
        System.exit(0);
    }
}  

⌨️ 快捷键说明

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