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

📄 memoryeng.java.bak

📁 本“计算器”可以完成任意的通常借助手持计算器来完成的标准运算。“计算器”可用于基本的算术运算
💻 BAK
字号:
///////    MemoryEng.java    ///////
    
    
public class MemoryEng extends CalcEng
{   
    public void operate(char c)
    {  if ( pre_oper(c) ) return;
       super.operate(c);
       post_oper(c);
    }
    
    public boolean isError()
    {   return statusFlag.equals(ERROR) ||
               statusFlag.equals(MEMORY_ERROR);
    }
    public double getMemory()
    {  return m;  }

    public String keys() { return super.keys()+ MKS; }

    protected void allClear()
    {  super.allClear();
       m = 0.0; 
    }

    protected void clear()     // memory or entry
    {   if ( statusFlag.equals(MEMORY_ERROR) )
            statusFlag= MEMORY; 
        else
            super.clear();
    }
    
    protected boolean pre_oper(char c)
    {  switch( c )
       {    case 'R': // MR
                  setOperand(m);  return true;
            case '%': // percent
                  if (argcnt == 1 ) return true;
                  if (op == '*' || op == '/')
                  {   arg *= 0.01;
                      super.operate('=');
                      return true;
                  }
            case 's': // sqrt
                  op = '=';
                  if (argcnt == 2) { ans = arg; argcnt--; }
                  if ( ans < 0.0 ) statusFlag = ERROR;
                  else ans = Math.sqrt(ans);
                  return true;
       }
       return false;
    }
    
    protected void post_oper(char c)
    {  switch( c )
       {    case 'M': // M+
                  tmp = m + ans;
                  if ( isError(tmp) ) statusFlag = MEMORY_ERROR; 
                  else 
                  {   m = tmp; op = '=';
                      statusFlag = MEMORY;
                  }
                  break;
            case 'm': // M-
                  tmp = m - ans;
                  if ( isError(tmp) ) statusFlag = MEMORY_ERROR; 
                  else 
                  {   m = tmp; op = '=';
                      statusFlag = MEMORY;
                  }
                  break;
       } 
    }

    protected final String MKS = "MmRs%";
    protected final String MEMORY = "M";
    protected final String MEMORY_ERROR = "ME";
    protected double m = 0.0;      // memory register
    protected double tmp;
}

⌨️ 快捷键说明

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