Bonjour,
Je voudrais une aide pour ce code. mon probleme est o niveau des metodes
plus, minus, mult et div. Lorsque j entre le premier chiffre et l operateur, le second vient en concat:
1 + 4 --> 14
/*******************************************************************************
* Třída MujKalkulator ...
*
* @author jméno autora
* @version 0.00.000, 0.0.2006
*/
import java.util.*;
public class MujKalkulator implements Kalkulator
{
//== Datové atributy (statické i instancí)======================================
private boolean tvorbaHodnoty = false;
private boolean maLevyOperand = false;
private boolean chybaDeleni = false;
private int hodnotaKZobrazeni;
private int cislo = 0;
//private int konec = 0;
private String operator;
private String autor;
private String verze;
//##############################################################################
//== Konstruktory a tovární metody =============================================
/***************************************************************************
*
*/
public MujKalkulator()
{
vymaz();
//this.hodnotaKZobrazeni = hodnotaKZobrazeni;
// this.cislo = cislo;
}
//== Nesoukromé metody (instancí i třídy) ===============================================
/** Vraceni hodoty na obrazovce
*
*/
public int getHodnotaKZobrazeni() {
return hodnotaKZobrazeni;
}
/** metoda tvori spravne cislo, ktere ma se zobrazovat
*
*/
public void cislice(int hodnota) {
if (tvorbaHodnoty) {
this.hodnotaKZobrazeni = hodnotaKZobrazeni * 10 + hodnota;
}
else {
hodnotaKZobrazeni = hodnota;
tvorbaHodnoty = true;
}
}
/** metoda se zavola pri stiknuti tlacitka "+"
*
*/
public void plus() {
operator = "+";
hodnotaKZobrazeni += cislo;
maLevyOperand = true;
}
/** metoda se zavola pri stiknuti tlacitka "-"
*
*/
public void minus() {
operator = "-";
hodnotaKZobrazeni -= cislo;
maLevyOperand = true;
}
/** metoda vraci vysledek operace
*
*/
public void rovnaSe() {
if (operator.equals("=")){
if (operator.equals("+")) hodnotaKZobrazeni += cislo;
else if (operator.equals("-")) hodnotaKZobrazeni -= cislo;
else if (operator.equals("*")) hodnotaKZobrazeni *= cislo;
else if (operator.equals("/")) hodnotaKZobrazeni /= cislo;
}
}
/**metoda se zavola pri stiknuti tlacitka "C", vymaze celou obrazovku a vrati "0"
*
*/
public void vymaz() {
operator = "C";
hodnotaKZobrazeni = cislo = 0;
maLevyOperand = false;
tvorbaHodnoty = false;
}
/** metoda se zavola pri stiknuti tlacitka "/"
*
*/
public void deleni() {
operator = "/";
if (cislo != 0) {
hodnotaKZobrazeni /= cislo;
maLevyOperand = true;
}
else {
System.out.println("Pokus deleni nulou !");
chybaDeleni = true;
}
}
/** metoda se zavola pri stiknuti tlacitka "*"
*
*/
public void nasobeni() {
operator = "*";
hodnotaKZobrazeni *= cislo;
maLevyOperand = true;
}
/** metoda pridava znamenko "+ ci -" pred cislem
*
*/
public void znamenko() {
operator = "+/-";
hodnotaKZobrazeni = (-1) * hodnotaKZobrazeni;
maLevyOperand = false;
}
/** metoda umocnuje na druhe zadane cislo
*
*/
public void mocnina() {
operator = "x^2";
hodnotaKZobrazeni = hodnotaKZobrazeni * hodnotaKZobrazeni;
maLevyOperand = false;
}
/** metoda umocnuje na treti zadane cislo
*
*/
public void tretiMocnina() {
operator = "x^3";
hodnotaKZobrazeni = hodnotaKZobrazeni * hodnotaKZobrazeni * hodnotaKZobrazeni;
maLevyOperand = false;
}
/** metoda se volá při stisknutí tlačítka ? */
public String getAutor() {
this.autor = "SAKHO M. FILY";
return autor;
}
/** metoda se volá při stisknutí tlačítka ? */
public String getVerze() {
this.verze = "0.0.1";
return verze;
}
}
//== Soukromé metody (instancí i třídy) ===========================================