package com.company; import java.time.LocalDate; import java.util.ArrayList; import java.util.List; class Konto { private String rodzajKonta; private String daneWlasciciela; private int dostepneSrodki; private ArrayList transakcje; public Konto(String rodzajKonta, String daneWlasciciela, int dostepneSrodki) { this.rodzajKonta = rodzajKonta; this.daneWlasciciela = daneWlasciciela; this.dostepneSrodki = dostepneSrodki; transakcje = new ArrayList<>(); } public void wplata(int sum) { if( sum > 0) { dostepneSrodki += sum; } } public void wyplata(int sum) { if(dostepneSrodki - sum > 0) { dostepneSrodki -= sum; } else { System.out.println("brak srodkow"); } } public void addTranskacje(Transakcja tra) { transakcje.add(tra); } public void ResetTransakcje() { this.transakcje.clear(); } public void wyswietlTransakcje() { for(Transakcja a: transakcje) { System.out.println(a.toString()); } } public String getRodzajKonta() { return rodzajKonta; } public String getDaneWlasciciela() { return daneWlasciciela; } public String toString() { return "Rodzaj konta: " + rodzajKonta + ", Dane wlasciciela: " + daneWlasciciela + ", Dostepne srodki: " + dostepneSrodki; } } class Transakcja { private LocalDate data; private int wielkoscWplaty; private int wielkoscWyplaty; public Transakcja(LocalDate data, int wielkoscWplaty, int wielkoscWyplaty) { this.data = data; this.wielkoscWplaty = wielkoscWplaty; this.wielkoscWyplaty = wielkoscWyplaty; } public LocalDate getData() { return this.data; } public String toString() { return "Transakcja z dnia: " + data + " , wyplacono:" + wielkoscWyplaty + " zl " + " wpłacono: " + wielkoscWplaty + " zl "; } } public class Bankomat { private Karta karta; // bankomat odszukuje dane konto na podstawie karty jaka zostala do niego wsadzona. Bąku będziesz wiedział? private ArrayList transakcjeBanku; private String lokalizacja; private String jakiBank; public Bankomat(Karta karta, String lokalizacja , String jakiBank) { this.karta = karta; this.lokalizacja = lokalizacja; this.jakiBank = jakiBank; transakcjeBanku = new ArrayList<>(); } public void wplata(int ile, int kod) { if(karta.getBank() != jakiBank ) { ile *= 0.05; } if(karta.wplata(kod, ile)) { transakcjeBanku.add(new Transakcja(LocalDate.now(),ile,12 )); System.out.println("transakcja przebiegla pomyslnie" + ile); } else { System.out.println("zly kod"); } } public void wyplata(int ile, int kod) { if(karta.wyplata(kod, ile)) { if(karta.getBank() != jakiBank ) { ile *= 0.05; } transakcjeBanku.add(new Transakcja(LocalDate.now(),0,ile )); System.out.println("transakcja przebiegla pomyslnie"); } else { System.out.println("zly kod"); } } public void wydrukujTransakcje(LocalDate data) { for(Transakcja tr : transakcjeBanku) { if(tr.getData() == data) { System.out.println(tr); } } } public String toString() { for(Transakcja a : transakcjeBanku) { System.out.println(a); } return "i to juz wszytkie transakcje"; } } ----------------------------------------------- package com.company; import java.time.LocalDate; import java.util.ArrayList; class Karta { private Konto konto; private String sposobDostepu; private int kod; private String bank; public Karta(String wlasciciel, String rodzajKonta, int dostepneSrodki, String sposobDostepu, int kod, String bank) { konto = new Konto(rodzajKonta, wlasciciel, dostepneSrodki); this.sposobDostepu = sposobDostepu; this.bank = bank; this.kod = kod; this.bank = bank; } public void wyswietlTransakcje() { konto.wyswietlTransakcje(); } public String getBank() { return bank; } public void ResetTransakcje(int kod) { if(this.kod == kod) { konto.ResetTransakcje(); } } public boolean wplata(int kod, int suma) { if(this.kod == kod) { konto.wplata(suma); konto.addTranskacje(new Transakcja(LocalDate.now(), suma, 0)); return true; } else { System.out.println("zły kod autoryzacjny"); return false; } } public boolean wyplata(int kod, int suma) { if(this.kod == kod) { konto.wyplata(suma); konto.addTranskacje(new Transakcja(LocalDate.now(), 0, suma)); return true; } else { System.out.println("zły kod autoryzacyjny"); return false; } } } -------------------------------- package com.company; public class Main { public static void main(String[] args) { Karta konto = new Karta("jozef Jak", "oszczednosciowe", 234, "zblzeniowo", 2324, "PKO" ); Bankomat bankomat= new Bankomat(konto, "krakow", "PKO"); System.out.println(bankomat.toString()); bankomat.wplata(2324, 2324); System.out.println((bankomat)); konto.wyswietlTransakcje(); konto.ResetTransakcje(2324); konto.wyswietlTransakcje(); } }