• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Szukam pomocy w Javie

Object Storage Arubacloud
–1 głos
144 wizyt
pytanie zadane 27 maja 2018 w Java przez james30k Bywalec (2,260 p.)
zamknięte 27 maja 2018 przez james30k

Witam!

Czy ktoś mógłby mi poprawić kod tak, aby był on w wersji okienkowej? 

Z góry dziękuję.

 

import java.util.Scanner;
 
public class Main 
{
 
    public static void main(String[] args) {
 
        Kasa kasa = new Kasa();
 
        while(true) {
            initMenu(kasa);
        }
 
    }
 
    public static void initMenu(Kasa kasa) {
        Scanner choice = new Scanner(System.in);
 
        System.out.println("Wpisz 1 aby wpłacić do Bankomatu");
        System.out.println("Wpisz 2 aby wypłacić z Bankomatu");
        System.out.println(sum(kasa));
 
        int userInput = choice.nextInt();
 
        if(userInput == 1) {
            contribution(kasa);
        }
        else if(userInput == 2) {
            withdraw(kasa);
        }
        else {
            System.out.println("Niepoprawny wybór");
        }
      
    }
 
    public static void contribution(Kasa kasa) {
 
        System.out.println("Jeśli chcesz wpłacić banknoty 500zł, to wpisz 1");
        System.out.println("Jeśli chcesz wpłacić banknoty 200zł, to wpisz 2");
        System.out.println("Jeśli chcesz wpłacić banknoty 100zł, to wpisz 3");
        System.out.println("Jeśli chcesz wpłacić banknoty 50zł, to wpisz 4");
        System.out.println("Jeśli chcesz wpłacić banknoty 20zł, to wpisz 5");
        System.out.println("Jeśli chcesz wpłacić banknoty 10zł, to wpisz 6");
        System.out.println("Jeśli chcesz wpłacić monety 5zł, to wpisz 7");
        System.out.println("Jeśli chcesz wpłacić monety 2zł, to wpisz 8");
        System.out.println("Jeśli chcesz wpłacić monety 1zł, to wpisz 9");
        System.out.println("Jeśli chcesz wpłacić monety 50gr, to wpisz 10");
        System.out.println("Jeśli chcesz wpłacić monety 20gr, to wpisz 11");
        System.out.println("Jeśli chcesz wpłacić monety 10gr, to wpisz 12");
        System.out.println("Jeśli chcesz wpłacić monety 5gr, to wpisz 13");
        System.out.println("Jeśli chcesz wpłacić monety 2gr, to wpisz 14");
        System.out.println("Jeśli chcesz wpłacić monety 1gr, to wpisz 15");
 
        Scanner choice = new Scanner(System.in);
        int userInput = choice.nextInt();
 
        System.out.println("Ile monet/banknotów chcesz wpłacić?");
        Scanner quantity = new Scanner(System.in);
        int quant = quantity.nextInt();
 
        switch(userInput) {
            case 1:
                kasa.banknot50000 += quant;
                break;
 
            case 2:
                kasa.banknot20000 += quant;
                break;
 
            case 3:
                kasa.banknot10000 += quant;
                break;
 
            case 4:
                kasa.banknot5000 += quant;
                break;
 
            case 5:
                kasa.banknot2000 += quant;
                break;
 
            case 6:
                kasa.banknot1000 += quant;
                break;
 
            case 7:
                kasa.moneta500 += quant;
                break;
 
            case 8:
                kasa.moneta200 += quant;
                break;
 
            case 9:
                kasa.moneta100 += quant;
                break;
 
            case 10:
                kasa.moneta50 += quant;
                break;
 
            case 11:
                kasa.moneta20 += quant;
                break;
 
            case 12:
                kasa.moneta10 += quant;
                break;
 
            case 13:
                kasa.moneta5 += quant;
                break;
 
            case 14:
                kasa.moneta2 += quant;
                break;
 
            case 15:
                kasa.moneta1 += quant;
                break;
 
            default:
                System.out.println("Niepoprawna wartość");
               
        }
        
    }
 
    public static String sum(Kasa kasa) {
        double suma = ((kasa.banknot50000 * 50000) + (kasa.banknot10000 * 10000) + (kasa.banknot5000 * 5000) +
                (kasa.banknot2000 * 2000) + (kasa.banknot1000 * 1000) + (kasa.moneta500 * 500) + (kasa.moneta200 * 200)
                + (kasa.moneta100 * 100) + (kasa.moneta50 * 50) + (kasa.moneta20 * 20) + (kasa.moneta10 * 10) + (kasa.moneta5 * 5)
                + (kasa.moneta2 * 2) + (kasa.moneta1))/100;
        return "W kasie znajduje się: " + suma + "zł";
    }
 
    public static void withdraw(Kasa kasa) {
        System.out.println("Ile chcesz wypłacić?");
        Scanner howMuch = new Scanner(System.in);
        double sum = howMuch.nextDouble();
 
        sum *= 100;
 
        while(sum > 0) {
            if(sum >= 50000) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 50000)) / 50000) + " banknot/ów 500zł");
                kasa.banknot50000 -= (int)((sum - (sum % 50000)) / 50000);
                sum -= (sum - (sum % 50000));
            }
 
            else if(sum >= 20000) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 20000)) / 20000) + " banknot/ów 200zł");
                kasa.banknot20000 -= (int)((sum - (sum % 20000)) / 20000);
                sum -= (sum - (sum % 20000));
            }
 
            else if(sum >= 10000) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 10000)) / 10000) + " banknot/ów 100zł");
                kasa.banknot10000 -= (int)((sum - (sum % 10000)) / 10000);
                sum -= (sum - (sum % 10000));
            }
 
            else if(sum >= 5000) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 5000)) / 5000) + " banknot/ów 50zł");
                kasa.banknot5000 -= (int)((sum - (sum % 5000)) / 5000);
                sum -= (sum - (sum % 5000));
            }
 
            else if(sum >= 2000) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 2000)) / 2000) + " banknot/ów 20zł");
                kasa.banknot2000 -= (int)((sum - (sum % 2000)) / 2000);
                sum -= (sum - (sum % 2000));
            }
 
            else if(sum >= 1000) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 1000)) / 1000) + " banknot/ów 10zł");
                kasa.banknot1000 -= (int)((sum - (sum % 1000)) / 1000);
                sum -= (sum - (sum % 1000));
            }
 
            else if(sum >= 500) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 500)) / 500) + " monetę/monet 5zł");
                kasa.moneta500 -= (int)((sum - (sum % 500)) / 500);
                sum -= (sum - (sum % 500));
            }
 
            else if(sum >= 200) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 200)) / 200) + " monetę/monet 2zł");
                kasa.moneta200 -= (int)((sum - (sum % 200)) / 200);
                sum -= (sum - (sum % 200));
            }
 
            else if(sum >= 100) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 100)) / 100) + " monetę/monet 1zł");
                kasa.moneta100 -= (int)((sum - (sum % 100)) / 100);
                sum -= (sum - (sum % 100));
            }
 
            else if(sum >= 50) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 50)) / 50) + " monetę/monet 50gr");
                kasa.moneta50 -= (int)((sum - (sum % 50)) / 50);
                sum -= (sum - (sum % 50));
            }
 
            else if(sum >= 20) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 20)) / 20) + " monetę/monet 20gr");
                kasa.moneta20 -= (int)((sum - (sum % 20)) / 20);
                sum -= (sum - (sum % 20));
            }
 
            else if(sum >= 10) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 10)) / 10) + " monetę/monet 10gr");
                kasa.moneta10 -= (int)((sum - (sum % 10)) / 10);
                sum -= (sum - (sum % 10));
            }
 
            else if(sum >= 5) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 5)) / 5) + " monetę/monet 5gr");
                kasa.moneta5 -= (int)((sum - (sum % 5)) / 5);
                sum -= (sum - (sum % 5));
            }
 
            else if(sum >= 2) {
                System.out.println("Wypłacono " + (int)((sum - (sum % 2)) / 2) + " monetę/monet 2gr");
                kasa.moneta2 -= (int)((sum - (sum % 2)) / 2);
                sum -= (sum - (sum % 2));
            }
 
            else if(sum >= 1) {
                System.out.println("Wypłacono " + sum + " monetę/monet 1gr");
                kasa.moneta1 -= sum;
                sum = 0;
            }
        }
 
    }
 
}
 
class Kasa {
    double banknot50000 = 0;
    double banknot20000 = 0;
    double banknot10000 = 0;
    double banknot5000 = 0;
    double banknot2000 = 0;
    double banknot1000 = 0;
    double moneta500 = 0;
    double moneta200 = 0;
    double moneta100 = 0;
    double moneta50 = 0;
    double moneta20 = 0;
    double moneta10 = 0;
    double moneta5 = 0;
    double moneta2 = 0;
    double moneta1 = 0;
}

 

komentarz zamknięcia: https://forum.pasja-informatyki.pl/293818/blad-z-java-dalej-nie-dziala-moze-jakas-propozycja-prosze-jak-najszybciej?show=293818#q293818
komentarz 27 maja 2018 przez Aisekai Nałogowiec (42,190 p.)
Ale czego Ty oczekujesz? Oczekujesz, że ktoś Ci napisze to za Ciebie? Jeśli tak, to ile za to zapłacisz? Bo chyba nie myślisz, że ktoś Ci to za darmo zrobi.

Forum jest od pomagania, w rozwiązywaniu problemów, czy pomocy w szukaniu rozwiązania, a nie od robienia wszystkiego za Ciebie.

Edit: Na dodatek sam nie napisałeś tego kodu, tylko ktoś "zrobił Ci przysługę" (a tak naprawdę zaszkodził Ci) i napisał go za Ciebie.

1 odpowiedź

–2 głosów
odpowiedź 27 maja 2018 przez niezalogowany
przywrócone 28 maja 2018
Miło zobaczyć swój kod, poczytaj o bibliotece Swing albo JavaFX.
komentarz 28 maja 2018 przez Wiciorny Ekspert (270,150 p.)
no ja bym się nie przyznawał do takiego kodu :D
komentarz 28 maja 2018 przez niezalogowany
A z ciekawości czemu :D?
komentarz 29 maja 2018 przez Wiciorny Ekspert (270,150 p.)
Jest makabrycznie bezużyteczny, źle napisany ... pełen błędów- z brakiem optymalizacji, nadmiarowościa etc etc. no po prostu widać, że pisze go początkujący.

- nie tworzymy klasy na same pola składowe...

- pętla while z "else if" to jest  straszne marnowanie pamięci "Switch case" były lepszy albo filtrowanie strumienia - Java8 STREAM się kłania

- tworzenie lokalnej zmiennej w statycznej metodzie tylko po to żeby zwrócić jej wynik.... po co ?

- za długie metody, wydzieliłbym je na osobne "dla czytelności i unikania powtórek w kodzie"

- zbyt długa jedna klasa funkcjonalna itd.
komentarz 29 maja 2018 przez niezalogowany
Masz jakieś sprawdzone źródło nt. dobrych praktyk etc.?
komentarz 29 maja 2018 przez Wiciorny Ekspert (270,150 p.)
dokumentacja Javy... nie wiem czytać i studiować kody refaktorowane w projektach otwartych np googla/ czy jakiś poważnych koncernów....

Podobne pytania

0 głosów
0 odpowiedzi 90 wizyt
pytanie zadane 13 listopada 2018 w Java przez SmokeWheel Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 102 wizyt
pytanie zadane 24 sierpnia 2017 w Java przez Rubeus024 Obywatel (1,680 p.)
+1 głos
1 odpowiedź 136 wizyt
pytanie zadane 2 maja 2016 w Java przez Daniel Koczorowski Nowicjusz (160 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...