Projectos Java Calculadora

Projectos de desenvolvimento linguagens de programação

 

Calculadora versão 2.0


Quarta fase do projecto

Vamos acrescentar à nossa calculadora os restantes dez botões e uma caixa de texto (MemoryField) para apresentar o resultado dos valores guardados em memória. Daremos uma explicação do código Java a adicionar em cada um deles. Primeiramente vamos criar as seguintes variáveis gerais:

double memory=0;
double currentSqrt=0;

Calculadora Fig.5

Os dez botões em falta estão identificados a vermelho na figura:

1) C-ButtonClear
2) CE-ButtonClearE
3) MC-ButtonMemoryC
4) BACK-ButtonBack
5) MR-ButtonMemoryR
6) %-ButtonPercent
7) M-MemoryMinus
8) 1/x–ButtonInvertx
9) M+ - ButtonMemoryPlus
10) sqrt – ButtonSquar

 

1) C-ButtonClear

Este botão serve para limpar o display e o resultado corrente, ou seja, colocar o resultado igual a zero. Assim, o código é bastante fácil:

String dispFieldText=displayField.getText(); // obtém o valor do display
if (!"".equals(dispFieldText)){ // testa se é diferente de vazio
   displayField.setText(""); // se é diferente põe o display vazio
}
currentResult=0; // coloca o resultado em zero

2) CE-ButtonClearE

Este botão CE ou CA (como às vezes também aparece nalgumas calculadoras) limpa o display, o resultado e o displayValue, o código é igual ao anterior sendo apenas necessário acrescentar a seguinte linha de código:

displayValue=0;

3) MC-ButtonMemoryC

Este botão tem por finalidade efectuar a limpeza da memória e do display da memória, assim o código será:

memory=0;
MemoryField.setText("Memory= ");

4) BACK-ButtonBack

Este botão tem a finalidade de apagar o último algarismo digitado (funciona como a tecla de backspace do PC), o código será:

String BackFieldText=displayField.getText();
if (!"".equals(BackFieldText)){
   String SubStr = BackFieldText.substring(0,BackFieldText.length()-1);
   displayField.setText(""+SubStr);
}

A string completa seria do índex 0 até ao final do seu comprimento length(), como fazemos SubStr igual à string BackFieldText do índex 0 até ao comprimento -1 (length()-1), tomamos a string toda com excepção do último algarismo digitado, que é o índex do comprimento da string (length()).

Para ficar mais explicito, imagine que digitou os números 3428 e pressionou BACK, a string completa é BackFieldText.substring (0,BackFieldText.length()); ou seja, 3428. Se o código for BackFieldText.substring (0,BackFieldText.length()-1); a substring retorna apenas 342, desprezando o último número digitado. Se fosse ...length()-2); apenas retornava 34.


5) MR-ButtonMemoryR (Memory Recall)

Ao premir o botão MR, coloca o resultado da memória no display da calculadora, para efectuar outros cálculos. Assim basta colocar o resultado que se encontra na variável memory em displayField.

if (memory!=0){
   displayField.setText(""+memory);
}

6) %-ButtonPercent

Este botão permite efectuar operações com percentagens, sendo em tudo semelhante ao botão de igual, mas, com a diferença que divide a última parcela por 100. Como referimos o código é o mesmo para o sinal de igual apenas fazendo displayValue/100 (dividir por 100).


7) M-MemoryMinus

Ao pressionar este botão subtrai ao valor acumulado na memória, o valor do display. O código a utilizar é o seguinte:

String dispFieldText=displayField.getText();
if (!"".equals(dispFieldText)){
   displayValue= Double.parseDouble(dispFieldText);
}
memory-=displayValue; // subtrai ao valor da memória o valor do display
MemoryField.setText("Memory= "+memory); // coloca na memória o novo valor
displayField.setText(""); // limpa o valor do display

8) 1/x – ButtonInvertx

Este botão divide 1 pelo valor introduzido no display, assim pensamos que o código seguinte dispensa grandes explicações:

String dispFieldText=displayField.getText();
if (!"".equals(dispFieldText)){
   displayValue= Double.parseDouble(dispFieldText);
   double invertValue= 1/displayValue;
   displayField.setText(""+invertValue);
}

9) M+ - ButtonMemoryPlus

Ao pressionar este botão adiciona ao valor acumulado na memória, o valor do display. O código a utilizar é o mesmo que no botão M-MemoryMinus com excepção do seguinte:

...
memory+=displayValue; // em vez de memory-=displayValue;

10) sqrt – ButtonSquar

Ao pressionar este botão calcula a raiz quadrada do número. Apenas salientamos a função Java Math.sqrt() que calcula a raiz quadrada, o resto do código praticamente é idêntico ao anteriormente utilizado.

String dispFieldText=displayField.getText();
if (!"".equals(dispFieldText)){
   displayValue= Double.parseDouble(dispFieldText);
   currentResult=displayValue;
   currentResult= Math.sqrt(currentResult); // função raiz quadrada
   displayField.setText(""+currentResult);
}

Terminámos, agora temos a nossa calculadora pronta a trabalhar, se encontrou alguma dificuldade em construir a sua calculadora através do NetBeans, mesmo com a ajuda destas notas explicativas, não hesite, entre em contacto connosco, teremos muito gosto em apoiá-lo no que for necessário.

Página anterior