Witam.
Za cel postawiłem sobie tworzyć inteligenty kalkulator. Chodzi o to że użytkownik wpisuje wartości, a kalkulator sam wie co może z nich obliczyć i to oblicza.
Rozwiązałem ten problem, na zasadzie sprawdzania które pola mają wpisaną wartość. Lecz pojawia się kolejny problem, gdy już wszystko jest obliczone i użytkownik zmieni jakąś wartość to system głupieje bo wszystkie pole mają wartość i wykonuje wszystkie obliczenia.
Wykorzystałem ten system w mojej aplikacji https://play.google.com/store/apps/details?id=com.stasbar.kalkulatorspalania
A tutaj kod:
if (!averageFuelConsumption.equals("")&&!distance.equals("")){
averageFuelConsumption = Double.parseDouble(averageFuelConsumption);
distance = Double.parseDouble(distance);
valueUnits = averageFuelConsumption*distance/100;
view.update(4,valueUnits);
} else if (!valueUnits.equals("")&&!distance.equals("")){
distance = Double.parseDouble(distance);
valueUnits = Double.parseDouble(valueUnits);
averageFuelConsumption=valueUnits*100/distance;
view.update(2,averageFuelConsumption);
} else if (!valueUnits.equals("")&&!averageFuelConsumption.equals("")){
averageFuelConsumption = Double.parseDouble(averageFuelConsumption);
valueUnits = Double.parseDouble(valueUnits);
distance = valueUnits*100/averageFuelConsumption;
view.update(3,distance);
} if (!valueUnits.equals("")&&!pricePerUnit.equals("")){
pricePerUnit = Double.parseDouble(pricePerUnit);
valueUnits = Double.parseDouble(valueUnits);
expense = pricePerUnit*valueUnits;
view.update(5,expense);
// TA LINIA WYKONUJE SIE ZAWSZE JESLI WSZYSTIE POLA SA WPISANE
} else if (!valueUnits.equals("")&&!expense.equals("")) {
expense = Double.parseDouble(expense);
valueUnits = Double.parseDouble(valueUnits);
pricePerUnit = expense / valueUnits;
view.update(1,pricePerUnit);
} else if (!pricePerUnit.equals("")&&!expense.equals("")) {
pricePerUnit = Double.parseDouble(pricePerUnit);
expense = Double.parseDouble(expense);
valueUnits = expense / pricePerUnit;
view.update(4,valueUnits);
}
Ma ktoś jakiś pomysł jak można rozwiązać taki problem inaczej niż czyszczenie wszystkich pól po obliczeniu ?