Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package LAB6bun;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.time.LocalDate;
- import java.util.Vector;
- import java.util.stream.Collectors;
- import java.util.stream.Stream;
- public class Main {
- public static void main(String[] args) throws NumberFormatException, IOException {
- int optiune;
- BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
- Vector<Banca> banci=new Vector<Banca>();
- String denumire;
- do {
- System.out.println("0");
- System.out.println("1");
- System.out.println("2");
- System.out.println("3");
- System.out.println("4");
- System.out.println("5");
- System.out.println("6");
- System.out.println("7");
- System.out.println("8");
- System.out.println("9");
- System.out.println("10");
- System.out.println("11");
- System.out.println("Optiunea dvs. este:");
- optiune=Integer.parseInt(buf.readLine());
- switch(optiune)
- {
- case 0:System.exit(0);
- break;
- case 1:
- System.out.println("Dati denumireae bancii:");
- denumire=buf.readLine();
- Banca banca=new Banca(denumire);
- banci.add(banca);
- break;
- case 2:
- System.out.println("nume:");
- String nume;
- nume=buf.readLine();
- System.out.println("adresa:");
- String adresa=buf.readLine();
- System.out.println("Banca:");
- String ba=buf.readLine();
- Client client=new Client(nume,adresa);
- for(Banca b: banci)
- {
- if(b.getDenumire_banca().equals(ba))
- {
- b.getClienti().add(client);
- }
- }
- break;
- case 3:
- System.out.println("numar:");
- String numar=buf.readLine();
- System.out.println("Suma:");
- float suma=Float.parseFloat(buf.readLine());
- System.out.println("Moneda");
- Moneda m=Moneda.valueOf(buf.readLine());
- System.out.println("Data deschiderii");
- LocalDate d1=LocalDate.parse(buf.readLine());
- System.out.println("Data ultimei operatiuni:");
- LocalDate d2=LocalDate.parse(buf.readLine());
- System.out.println("Client:");
- String clientul=buf.readLine();
- System.out.println("Banca");
- String b2=buf.readLine();
- ContBancar cont=new ContBancar(numar,suma,m,d1,d2);
- for(Banca b:banci)
- {
- if(b.getDenumire_banca().equals(b2))
- {
- for(Client c:b.getClienti())
- {
- if(c.getNume().equals(clientul))
- {
- c.getConturi().add(cont);
- }
- }
- }
- }
- break;
- case 4:
- banci.forEach(System.out::println);
- break;
- case 5:
- banci
- .stream()
- .flatMap(e->Stream.of(e.getDenumire_banca(),e.getClienti().size()))
- .forEach(System.out::println);
- break;
- case 6:
- System.out.println("Banca:");
- String b3=buf.readLine();
- banci
- .stream()
- .filter(a->(a.getDenumire_banca().equals(b3)))
- .map(Banca::getClienti)
- .forEach(System.out::println);
- break;
- case 7:
- System.out.println("Banca:");
- String b4=buf.readLine();
- System.out.println("Client:");
- String c2=buf.readLine();
- banci
- .stream()
- .filter(a->(a.getDenumire_banca().equals(b4)))
- .flatMap(b->b.getClienti()
- .stream()
- .filter(c->(c.getNume().equals(c2)))
- .map(c->c.getConturi()))
- .forEach(System.out::println);
- break;
- case 8:
- System.out.println("Nume:");
- String n=buf.readLine();
- banci
- .stream()
- .flatMap(b->b.getClienti()
- .stream()
- .filter(c->(c.getNume().equals(n)))
- .map(c->c.getConturi()))
- .forEach(System.out::println);
- break;
- case 9:
- System.out.println("Banca:");
- b4=buf.readLine();
- System.out.println("Client:");
- c2=buf.readLine();
- System.out.println("Cont:");
- String con=buf.readLine();
- System.out.println("Suma:");
- float s=Float.parseFloat(buf.readLine());
- for(Banca b:banci)
- {
- if(b.getDenumire_banca().equals(b4))
- {
- for(Client c:b.getClienti())
- {
- if(c.getNume().equals(c2))
- {
- for(ContBancar cb : c.getConturi())
- {
- if(cb.getNumarCont().equals(con))
- {
- cb.depunere(s);
- }
- }
- }
- }
- }
- }
- break;
- case 10:
- System.out.println("Banca:");
- b4=buf.readLine();
- System.out.println("Client:");
- c2=buf.readLine();
- System.out.println("Cont:");
- con=buf.readLine();
- System.out.println("Suma:");
- s=Float.parseFloat(buf.readLine());
- for(Banca b:banci)
- {
- if(b.getDenumire_banca().equals(b4))
- {
- for(Client c:b.getClienti())
- {
- if(c.getNume().equals(c2))
- {
- for(ContBancar cb : c.getConturi())
- {
- if(cb.getNumarCont().equals(con))
- {
- cb.extragere(s);
- }
- }
- }
- }
- }
- }
- break;
- case 11:
- System.out.println("Datele contului din care se extrag bani");
- System.out.println("Banca:");
- b4=buf.readLine();
- System.out.println("Client:");
- c2=buf.readLine();
- System.out.println("Cont:");
- con=buf.readLine();
- System.out.println("Suma:");
- s=Float.parseFloat(buf.readLine());
- System.out.println("Datele contului in care se trimit bani");
- System.out.println("Banca:");
- String b5=buf.readLine();
- System.out.println("Client:");
- String c3=buf.readLine();
- System.out.println("Cont:");
- String con2=buf.readLine();
- for(Banca b:banci)
- {
- if(b.getDenumire_banca().equals(b4))
- {
- for(Client c:b.getClienti())
- {
- if(c.getNume().equals(c2))
- {
- for(ContBancar cb : c.getConturi())
- {
- if(cb.getNumarCont().equals(con))
- {
- cb.extragere(s);
- }
- }
- }
- }
- }
- }
- for(Banca b:banci)
- {
- if(b.getDenumire_banca().equals(b5))
- {
- for(Client c:b.getClienti())
- {
- if(c.getNume().equals(c3))
- {
- for(ContBancar cb : c.getConturi())
- {
- if(cb.getNumarCont().equals(con2))
- {
- cb.depunere(s);
- }
- }
- }
- }
- }
- }
- break;
- default:System.out.println("Optiune gresita!!!!");
- }
- }while(optiune!=0);
- }
- }
- package LAB6bun;
- import java.time.LocalDate;
- import java.time.temporal.ChronoUnit;
- public class ContBancar implements Operatiuni {
- private String numarCont;
- private float suma;
- private Moneda moneda;
- private LocalDate data_deschiderii;
- private LocalDate data_ultimei_operatiuni;
- public ContBancar(String numarCont, float suma, Moneda moneda, LocalDate data_deschiderii,
- LocalDate data_ultimei_operatiuni) {
- super();
- this.numarCont = numarCont;
- this.suma = suma;
- this.moneda = moneda;
- this.data_deschiderii = data_deschiderii;
- this.data_ultimei_operatiuni = data_ultimei_operatiuni;
- }
- public String getNumarCont() {
- return numarCont;
- }
- public void setNumarCont(String numarCont) {
- this.numarCont = numarCont;
- }
- public float getSuma() {
- return suma;
- }
- public void setSuma(float suma) {
- this.suma = suma;
- }
- public Moneda getMoneda() {
- return moneda;
- }
- public void setMoneda(Moneda moneda) {
- this.moneda = moneda;
- }
- public LocalDate getData_deschiderii() {
- return data_deschiderii;
- }
- public void setData_deschiderii(LocalDate data_deschiderii) {
- this.data_deschiderii = data_deschiderii;
- }
- public LocalDate getData_ultimei_operatiuni() {
- return data_ultimei_operatiuni;
- }
- public void setData_ultimei_operatiuni(LocalDate data_ultimei_operatiuni) {
- this.data_ultimei_operatiuni = data_ultimei_operatiuni;
- }
- @Override
- public String toString() {
- return "[numarCont=" + numarCont + ", suma=" + suma + ", moneda=" + moneda + ", data_deschiderii="
- + data_deschiderii + ", data_ultimei_operatiuni=" + data_ultimei_operatiuni + "]";
- }
- @Override
- public float calculeaza_dobanda() {
- float dobanda=0;
- if(this.moneda==Moneda.RON)
- {
- if(this.suma<500)
- {
- dobanda=(float) (0.3*(ChronoUnit.DAYS.between(this.data_ultimei_operatiuni, LocalDate.now())));
- }
- else
- {dobanda=(float) (0.8*(ChronoUnit.DAYS.between(this.data_ultimei_operatiuni, LocalDate.now())));
- }
- }
- else
- {
- dobanda=(float) (0.1*(ChronoUnit.DAYS.between(this.data_ultimei_operatiuni, LocalDate.now())));
- }
- return dobanda;
- }
- @Override
- public float actualizare_suma() {
- this.suma+=calculeaza_dobanda();
- this.data_ultimei_operatiuni=LocalDate.now();
- return this.suma;
- }
- @Override
- public void depunere(float suma) {
- actualizare_suma();
- this.data_ultimei_operatiuni=LocalDate.now();
- this.suma+=suma;
- }
- @Override
- public void extragere(float suma) {
- actualizare_suma();
- this.data_ultimei_operatiuni=LocalDate.now();
- this.suma-=suma;
- }
- }
- package LAB6bun;
- public enum Moneda {
- RON,
- EURO;
- }
- package LAB6bun;
- public interface Operatiuni {
- public float calculeaza_dobanda();
- public float actualizare_suma();
- public void depunere(float suma);
- public void extragere(float suma);
- }
- package LAB6bun;
- import java.util.HashSet;
- import java.util.Set;
- public class Client {
- private String nume;
- private String adresa;
- private Set<ContBancar> conturi=new HashSet<ContBancar>();
- public Client(String nume, String adresa) {
- super();
- this.nume = nume;
- this.adresa = adresa;
- }
- public String getNume() {
- return nume;
- }
- public void setNume(String nume) {
- this.nume = nume;
- }
- public String getAdresa() {
- return adresa;
- }
- public void setAdresa(String adresa) {
- this.adresa = adresa;
- }
- public Set<ContBancar> getConturi() {
- return conturi;
- }
- public void setConturi(Set<ContBancar> conturi) {
- this.conturi = conturi;
- }
- public Client(String nume, String adresa, Set<ContBancar> conturi) {
- super();
- this.nume = nume;
- this.adresa = adresa;
- this.conturi =conturi;
- }
- @Override
- public String toString() {
- return "[nume=" + nume + ", adresa=" + adresa + ", conturi=" + conturi + "]";
- }
- }
- package LAB6bun;
- import java.util.ArrayList;
- import java.util.List;
- public class Banca {
- private String denumire_banca;
- private List<Client> clienti=new ArrayList<Client>();
- public Banca(String denumire_banca, List<Client> clienti) {
- super();
- this.denumire_banca = denumire_banca;
- this.clienti = clienti;
- }
- public Banca(String denumire_banca) {
- super();
- this.denumire_banca = denumire_banca;
- }
- public String getDenumire_banca() {
- return denumire_banca;
- }
- public void setDenumire_banca(String denumire_banca) {
- this.denumire_banca = denumire_banca;
- }
- public List<Client> getClienti() {
- return clienti;
- }
- public void setClienti(List<Client> clienti) {
- this.clienti = clienti;
- }
- @Override
- public String toString() {
- return "Banca [denumire_banca=" + denumire_banca + ", clienti=" + clienti + "]";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment