Moc jsem se s tím neštval a asi to není to nejlepší řešení z nejlepších, ale mělo by to fungovat
...
Třída Start:
Kód:
public class Start {
public static void main (String [] args){
Pocitadlo pocitadlo = new Pocitadlo();
pocitadlo.pocitej();
}
}
Třída Pocitadlo:
Kód:
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Pocitadlo {
private boolean konec = false;
private boolean zadanoPrvniCislo = false;
private int prvniCislo = 0;
private boolean zadanoDruheCislo = false;
private int druheCislo = 0;
public void pocitej() {
while (!konec) {
if (!zadanoPrvniCislo) {
System.out.print("Zadej 1. číslo: ");
prvniCislo = prectiInt();
zadanoPrvniCislo = true;
}
else if (!zadanoDruheCislo) {
System.out.print("Zadej 2. číslo: ");
druheCislo = prectiInt();
zadanoDruheCislo = true;
}
else {
System.out.println("1 ... sčítaní");
System.out.println("2 ... odčítaní");
System.out.println("3 ... násobení");
System.out.println("4 ... přesné dělení");
System.out.println("5 ... celočíselné dělení");
System.out.println("6 ... zbytek po celočíselném dělení");
System.out.print("Vybraná operace: ");
int cisloOperace = prectiInt();
switch (cisloOperace) {
case 1:
System.out.print(prvniCislo+" + "+druheCislo+" = ");
System.out.print(prvniCislo+druheCislo);
break;
case 2:
System.out.print(prvniCislo+" - "+druheCislo+" = ");
System.out.print(prvniCislo-druheCislo);
break;
case 3:
System.out.print(prvniCislo+" * "+druheCislo+" = ");
System.out.print(prvniCislo*druheCislo);
break;
case 4:
if (druheCislo == 0) {
System.out.println("Není možné dělit nulou.");
}
else {
System.out.print(prvniCislo+" / "+druheCislo+" = ");
System.out.print((double)prvniCislo/druheCislo);
}
break;
case 5:
if (druheCislo == 0) {
System.out.println("Není možné dělit nulou.");
}
else {
System.out.print(prvniCislo+" / "+druheCislo+" = ");
System.out.print(prvniCislo/druheCislo);
}
break;
case 6:
if (druheCislo == 0) {
System.out.println("Není možné dělit nulou.");
}
else {
System.out.print(prvniCislo+" % "+druheCislo+" = ");
System.out.print(prvniCislo%druheCislo);
}
break;
default:
System.out.println("Operace č. "+cisloOperace+" není definována.");
break;
}
konec = true;
}
}
}
private int prectiInt() {
String vstupniRadek = "";
BufferedReader vstup = new BufferedReader(new InputStreamReader(System.in));
try {
vstupniRadek = vstup.readLine();
if (vstupniRadek.equals("konec")) {
konec = true;
return 0;
}
else {
try {
int x = Integer.parseInt(vstupniRadek);
return x;
}
catch(NumberFormatException e) {
System.out.println("Zadaná hodnota není číslo");
konec = true;
return 0;
}
}
}
catch (java.io.IOException e) {
System.out.println("Vyskytla se chyba během čtení příkazu.");
konec = true;
return 0;
}
}
}