Prosty kalkulator - zapamiętywanie aktualnego wyniku

2015-01-20 22:29
0

Witam, jestem osobą która niedawno zaczęła się uczyć programowania w Javie, postawiłem sobie za cel napisanie kalkulatora, mam w planach zmieniać ciągle jego kod zależnie od tego w jakim stopniu będę umiał programować, na razie ustałem przy takim kodzie bo chcę zrobić taki myk w którym wynik użytkownika będzie się zapisywał i będzie mógł ciągle do zaistniałego wyniku robić działania. Możecie mnie jakoś nakierować? nie chodzi mi o to żeby napisać dla mnie od razu kod tylko powiedzieć tak z grubsza co mógłbym wykorzystać żeby to działało, rozkminiałem już [if,while] ale jeszcze nie potrafię w niektórych momentach poprawnie zapisać komendy, nie znam jeszcze tak wielu sposobów :(. Proszę o odp!

package kalkulator;
import java.util.Scanner;   
import static java.lang.Math.*;
import java.math.BigInteger.*;
import java.util.regex.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Kalkulator {
    public static void main(String[] args) {
                     Scanner odczyt = new Scanner(System.in);
                     int a;
                     int b;
                     int zmienna;    
                     System.out.println("Podaj 2 liczby");
                     a = odczyt.nextInt(); 
                     b = odczyt.nextInt();
                     System.out.println("1 dodawanie, 2 odejmowanie, 3 mnozenie , 4 dzielenie");
                     zmienna = odczyt.nextInt();

                     switch(zmienna){
                         case 1:
                             System.out.println("Wynik to: " +(a+b));  
                             break;
                         case 2:
                             System.out.println("Wynik to: "+(a-b));
                             break;
                         case 3:
                             System.out.println("Wynik to: "+ (a*b));
                             break;
                         case 4:
                             System.out.println("Wynik to: "+ (a/b));
                             break;
                     }
    }
}
edytowany 1x, ostatnio: Tavi, 2015-01-20 22:29
Tytuł wątku powinien w sposób sensowny i w miarę wyczerpujący opisywać Twój problem; Pamiętaj, że wątki z nic nie mówiącymi tytułami z reguły lądują w koszu; Jeżeli nie wiesz jak poprawnie tytułować wątki, zobacz do tego artykułu: Jak tytułować wątki na forum? - furious programming 2015-01-20 22:36

Pozostało 580 znaków

2015-01-20 22:39

Wynik musisz mieć gdzieś przechowany, żeby go nie utracić; Po każdej udanej operacji (dodawanie, mnożenie itd.) modyfikujesz wartość zachowanego wyniku i wyświetlasz na ekranie;

Czyli kluczem jest dodatkowa zmienna, która cały czas będzie trzymać aktualny wynik; Kodu Ci nie podam, bo nie programuję w Javie, jednak zasada jest uniwersalna i można z niej skorzystać praktycznie w kazdym języku.


Pozostało 580 znaków

2015-01-20 22:45
0

Okej dzięki :) a jeżeli chodzi o powtarzaniem obliczeń (bo nad tym najwięcej myślałem) , jak to zrobić? nie potrafię tego zapisać, nachodziło mi na myśl żeby zrobić jakąś pętle for przed switchem (nie wiem czy tak można, próbowałem ale nie wychodziło za dobrze), lub if i while po switchu tylko, że wtedy musiałbym postawić warunek czy użytkownik chce dalej obliczać a wolałbym to pominać

edytowany 1x, ostatnio: Tavi, 2015-01-20 22:45

Pozostało 580 znaków

2015-01-20 22:50
0

No dobrze, ale w jaki sposób miałoby się to odbywać? Tak samo jak np. w systemowym kalkulatorze?


Pozostało 580 znaków

2015-01-20 22:55
0

Tak z tym wyjątkiem, że podaje dwie liczby a potem dopiero znak tak jak jest w tym programie bo jeszcze nie potrafię tworzyć kodu który by analizował to co napisał użytkownik np: "5+5", wiem tylko tyle, że używa się do tego regex.

Nie do końca. Używa się analizatorów leksykalnych, a regexpy tylko wydłubują odpowiednie tokeny. - hauleth 2015-01-20 22:59

Pozostało 580 znaków

2015-01-20 22:57
0

jak chcesz iść dalej to poczytaj w o enumach i podziale na klasy. Wydziel sobie np. klasy KalkulatorUI i KalkulatorSilnik i np. enuma RodzajDzialania.

furious programming napisał(a):

bo nie programuję w Javie

czemu?


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
To nie jest dyskusja na temat opanowanych języków przeze mnie, więc nie róbmy off-topu ;) - furious programming 2015-01-20 22:58
w komentarzach można. java jest chyba prostsza od delphi. 2 dni i byś nie musiał pisać bo nie programuję w Javie ;] - karolinaa 2015-01-20 23:02
Od Delphi już odszedłem, bodaj rok temu i przesiadłem się na Free Pascala; Ja wiem, że nauczyć się nie problem, jednak ta technologia mnie nie pociąga; Poza tym za dużo czasu pochłaniają projekty w FP, żeby uczyć się dodatkowego języka; A tak w ogóle do Java i C-podobne składniowo języki skutecznie mnie odstraszają - wolę czytelną (i nadmiarową) składnię Pascala czy VB - takie jakieś zboczenie mam ;) - furious programming 2015-01-20 23:11

Pozostało 580 znaków

2015-01-20 23:32
0

karolinaa enum CHYBA współgra tylko z literami czy się mylę? I szczerze nie widzę wykorzystania dla tej komendy w kalkulatorze

edytowany 1x, ostatnio: Tavi, 2015-01-20 23:36

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0