
package Calculadoras;


import java.io.*;
import java.lang.*;
import java.util.*;


public class SimplesCalc{
  double PriNum,SegNum,Resultado;
  int NumAcessos;
  String Operacao;
  

  public SimplesCalc(){
    NumAcessos = 0;
    reset();
  }
  

  public void reset(){
    PriNum = 9999;
    SegNum = 9999;
    Operacao = "?";
    Resultado = 9999;
  }
  
  
/******** Mtodos de entrada de dados, por padro tem o prefixo set *********/


  public void setPri_num(String num){
    try {
      if(num != null){
        PriNum = new Double(num).doubleValue();
      }else{
        PriNum = 9999;         
      }
    }catch (Exception e) {
      System.out.println("Erro na busca do primeiro valor");
      e.printStackTrace();
      PriNum = 9999;
    }
  }


  public void setSeg_num(String num){
    try {
      if(num != null){
        SegNum = new Double(num).doubleValue();
      }else{
        SegNum = 9999;         
      }
    }catch (Exception e) {
      System.out.println("Erro na busca do segundo valor");
      e.printStackTrace();
      SegNum = 9999;
    }
  }



  public void setSinal_oper(String oper){
    try{
      if(oper != null){
        Operacao = oper;
      }else{
        Operacao = "?";         
      }
    }catch(Exception e){
      System.out.println("Erro na busca do sinal da operao");
      e.printStackTrace();
       Operacao = "?";
    }
  }


/******** Mtodo para calculo das operaes *********/


  public void Calcular(){
    NumAcessos++;
    Resultado = 9999;
    if((PriNum != 9999) & (SegNum != 9999) & (Operacao != "?")){
      if(Operacao.equalsIgnoreCase("+")){
        Resultado = PriNum + SegNum;
      }else if(Operacao.equalsIgnoreCase("-")){
        Resultado = PriNum - SegNum;        
      }else if(Operacao.equalsIgnoreCase("/")){
        try{
          Resultado = PriNum / SegNum;        
        }catch(Exception e){
          System.out.println("Erro na diviso dos valores");
          e.printStackTrace();
          Resultado = 9999;
        }
      }else if(Operacao.equalsIgnoreCase("*")){
        Resultado = PriNum * SegNum;        
      }else{      
        Resultado = 9999;
      }
    }
  }
  


/******** Mtodos de saida de dados, por padro tem o prefixo get *********/


  public double getPriNum(){
    return PriNum;
  }


  public double getSegNum(){
    return SegNum;
  }


  public String getOperacao(){
      if(Operacao != null){
        return Operacao;
      }else{
        return "?";
      }
  }


  public double getResultado(){
    return Resultado;
  }


  public int getNumAcessos(){
    return NumAcessos;
  }
  
}