Patey

Untitled

Nov 7th, 2022
962
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 11.01 KB | None | 0 0
  1. package LAB6bun;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.time.LocalDate;
  7. import java.util.Vector;
  8. import java.util.stream.Collectors;
  9. import java.util.stream.Stream;
  10.  
  11. public class Main {
  12.  
  13.     public static void main(String[] args) throws NumberFormatException, IOException {
  14.  
  15.         int optiune;
  16.         BufferedReader buf= new BufferedReader(new InputStreamReader(System.in));
  17.         Vector<Banca> banci=new Vector<Banca>();
  18.         String denumire;
  19.  
  20.  
  21.         do {
  22.             System.out.println("0");
  23.             System.out.println("1");
  24.             System.out.println("2");
  25.             System.out.println("3");
  26.             System.out.println("4");
  27.             System.out.println("5");
  28.             System.out.println("6");
  29.             System.out.println("7");
  30.             System.out.println("8");
  31.             System.out.println("9");
  32.             System.out.println("10");
  33.             System.out.println("11");
  34.             System.out.println("Optiunea dvs. este:");
  35.             optiune=Integer.parseInt(buf.readLine());
  36.  
  37.             switch(optiune)
  38.             {
  39.             case 0:System.exit(0);
  40.             break;
  41.             case 1:
  42.                 System.out.println("Dati denumireae bancii:");
  43.                 denumire=buf.readLine();
  44.                 Banca banca=new Banca(denumire);
  45.                 banci.add(banca);
  46.                 break;
  47.             case 2:
  48.                 System.out.println("nume:");
  49.                 String nume;
  50.                 nume=buf.readLine();
  51.                 System.out.println("adresa:");
  52.                 String adresa=buf.readLine();
  53.                 System.out.println("Banca:");
  54.                 String ba=buf.readLine();
  55.                 Client client=new Client(nume,adresa);
  56.                 for(Banca b: banci)
  57.                 {
  58.                     if(b.getDenumire_banca().equals(ba))
  59.                     {
  60.                         b.getClienti().add(client);
  61.                     }
  62.                 }
  63.                 break;
  64.             case 3:
  65.                 System.out.println("numar:");
  66.                 String numar=buf.readLine();
  67.                 System.out.println("Suma:");
  68.                 float suma=Float.parseFloat(buf.readLine());
  69.                 System.out.println("Moneda");
  70.                 Moneda m=Moneda.valueOf(buf.readLine());
  71.                 System.out.println("Data deschiderii");
  72.                 LocalDate d1=LocalDate.parse(buf.readLine());
  73.                 System.out.println("Data ultimei operatiuni:");
  74.                 LocalDate d2=LocalDate.parse(buf.readLine());
  75.                 System.out.println("Client:");
  76.                 String clientul=buf.readLine();
  77.                 System.out.println("Banca");
  78.                 String b2=buf.readLine();
  79.  
  80.                 ContBancar cont=new ContBancar(numar,suma,m,d1,d2);
  81.  
  82.                 for(Banca b:banci)
  83.                 {
  84.                     if(b.getDenumire_banca().equals(b2))
  85.                     {
  86.                         for(Client c:b.getClienti())
  87.                         {
  88.                             if(c.getNume().equals(clientul))
  89.                             {
  90.                                 c.getConturi().add(cont);
  91.                             }
  92.  
  93.                         }
  94.                     }
  95.                 }
  96.                 break;
  97.             case 4:
  98.                 banci.forEach(System.out::println);
  99.                 break;
  100.             case 5:
  101.                 banci
  102.                 .stream()
  103.                 .flatMap(e->Stream.of(e.getDenumire_banca(),e.getClienti().size()))
  104.                 .forEach(System.out::println);
  105.                 break;
  106.             case 6:
  107.                 System.out.println("Banca:");
  108.                 String b3=buf.readLine();
  109.  
  110.                 banci
  111.                 .stream()
  112.                 .filter(a->(a.getDenumire_banca().equals(b3)))
  113.                 .map(Banca::getClienti)
  114.                 .forEach(System.out::println);
  115.                 break;
  116.             case 7:
  117.                 System.out.println("Banca:");
  118.                 String b4=buf.readLine();
  119.                 System.out.println("Client:");
  120.                 String c2=buf.readLine();
  121.  
  122.                 banci
  123.                 .stream()
  124.                 .filter(a->(a.getDenumire_banca().equals(b4)))
  125.                 .flatMap(b->b.getClienti()
  126.                         .stream()
  127.                         .filter(c->(c.getNume().equals(c2)))
  128.                         .map(c->c.getConturi()))
  129.                 .forEach(System.out::println);
  130.                 break;
  131.             case 8:
  132.                 System.out.println("Nume:");
  133.                 String n=buf.readLine();
  134.                 banci
  135.                 .stream()
  136.                 .flatMap(b->b.getClienti()
  137.                         .stream()
  138.                         .filter(c->(c.getNume().equals(n)))
  139.                         .map(c->c.getConturi()))
  140.                 .forEach(System.out::println);
  141.                 break;
  142.             case 9:
  143.  
  144.                 System.out.println("Banca:");
  145.                 b4=buf.readLine();
  146.                 System.out.println("Client:");
  147.                 c2=buf.readLine();
  148.                 System.out.println("Cont:");
  149.                 String con=buf.readLine();
  150.                 System.out.println("Suma:");
  151.                 float s=Float.parseFloat(buf.readLine());
  152.  
  153.                 for(Banca b:banci)
  154.                 {
  155.                     if(b.getDenumire_banca().equals(b4))
  156.                     {
  157.                         for(Client c:b.getClienti())
  158.                         {
  159.                             if(c.getNume().equals(c2))
  160.                             {
  161.                                 for(ContBancar cb : c.getConturi())
  162.                                 {
  163.                                     if(cb.getNumarCont().equals(con))
  164.                                     {
  165.                                         cb.depunere(s);
  166.                                     }
  167.                                 }
  168.                             }
  169.                         }
  170.                     }
  171.                 }
  172.  
  173.                 break;
  174.             case 10:
  175.                 System.out.println("Banca:");
  176.                 b4=buf.readLine();
  177.                 System.out.println("Client:");
  178.                 c2=buf.readLine();
  179.                 System.out.println("Cont:");
  180.                 con=buf.readLine();
  181.                 System.out.println("Suma:");
  182.                 s=Float.parseFloat(buf.readLine());
  183.  
  184.                 for(Banca b:banci)
  185.                 {
  186.                     if(b.getDenumire_banca().equals(b4))
  187.                     {
  188.                         for(Client c:b.getClienti())
  189.                         {
  190.                             if(c.getNume().equals(c2))
  191.                             {
  192.                                 for(ContBancar cb : c.getConturi())
  193.                                 {
  194.                                     if(cb.getNumarCont().equals(con))
  195.                                     {
  196.                                         cb.extragere(s);
  197.                                     }
  198.                                 }
  199.                             }
  200.                         }
  201.                     }
  202.                 }
  203.                 break;
  204.             case 11:
  205.                 System.out.println("Datele contului din care se extrag bani");
  206.                 System.out.println("Banca:");
  207.                 b4=buf.readLine();
  208.                 System.out.println("Client:");
  209.                 c2=buf.readLine();
  210.                 System.out.println("Cont:");
  211.                 con=buf.readLine();
  212.                 System.out.println("Suma:");
  213.                 s=Float.parseFloat(buf.readLine());
  214.                 System.out.println("Datele contului in care se trimit bani");
  215.                 System.out.println("Banca:");
  216.                 String b5=buf.readLine();
  217.                 System.out.println("Client:");
  218.                 String c3=buf.readLine();
  219.                 System.out.println("Cont:");
  220.                 String con2=buf.readLine();
  221.                 for(Banca b:banci)
  222.                 {
  223.                     if(b.getDenumire_banca().equals(b4))
  224.                     {
  225.                         for(Client c:b.getClienti())
  226.                         {
  227.                             if(c.getNume().equals(c2))
  228.                             {
  229.                                 for(ContBancar cb : c.getConturi())
  230.                                 {
  231.                                     if(cb.getNumarCont().equals(con))
  232.                                     {
  233.                                         cb.extragere(s);
  234.                                     }
  235.                                 }
  236.                             }
  237.                         }
  238.                     }
  239.                 }
  240.                
  241.                 for(Banca b:banci)
  242.                 {
  243.                     if(b.getDenumire_banca().equals(b5))
  244.                     {
  245.                         for(Client c:b.getClienti())
  246.                         {
  247.                             if(c.getNume().equals(c3))
  248.                             {
  249.                                 for(ContBancar cb : c.getConturi())
  250.                                 {
  251.                                     if(cb.getNumarCont().equals(con2))
  252.                                     {
  253.                                         cb.depunere(s);
  254.                                     }
  255.                                 }
  256.                             }
  257.                         }
  258.                     }
  259.                 }
  260.                
  261.                 break;
  262.             default:System.out.println("Optiune gresita!!!!");
  263.             }
  264.  
  265.  
  266.         }while(optiune!=0);
  267.  
  268.     }
  269.  
  270. }
  271.  
  272.  
  273.  
  274. package LAB6bun;
  275.  
  276. import java.time.LocalDate;
  277. import java.time.temporal.ChronoUnit;
  278.  
  279.  
  280.  
  281. public class ContBancar implements Operatiuni {
  282.  
  283.     private String numarCont;
  284.     private float suma;
  285.     private Moneda moneda;
  286.     private LocalDate data_deschiderii;
  287.     private LocalDate data_ultimei_operatiuni;
  288.  
  289.     public ContBancar(String numarCont, float suma, Moneda moneda, LocalDate data_deschiderii,
  290.             LocalDate data_ultimei_operatiuni) {
  291.         super();
  292.         this.numarCont = numarCont;
  293.         this.suma = suma;
  294.         this.moneda = moneda;
  295.         this.data_deschiderii = data_deschiderii;
  296.         this.data_ultimei_operatiuni = data_ultimei_operatiuni;
  297.     }
  298.  
  299.     public String getNumarCont() {
  300.         return numarCont;
  301.     }
  302.  
  303.     public void setNumarCont(String numarCont) {
  304.         this.numarCont = numarCont;
  305.     }
  306.  
  307.     public float getSuma() {
  308.         return suma;
  309.     }
  310.  
  311.     public void setSuma(float suma) {
  312.         this.suma = suma;
  313.     }
  314.  
  315.     public Moneda getMoneda() {
  316.         return moneda;
  317.     }
  318.  
  319.     public void setMoneda(Moneda moneda) {
  320.         this.moneda = moneda;
  321.     }
  322.  
  323.     public LocalDate getData_deschiderii() {
  324.         return data_deschiderii;
  325.     }
  326.  
  327.     public void setData_deschiderii(LocalDate data_deschiderii) {
  328.         this.data_deschiderii = data_deschiderii;
  329.     }
  330.  
  331.     public LocalDate getData_ultimei_operatiuni() {
  332.         return data_ultimei_operatiuni;
  333.     }
  334.  
  335.     public void setData_ultimei_operatiuni(LocalDate data_ultimei_operatiuni) {
  336.         this.data_ultimei_operatiuni = data_ultimei_operatiuni;
  337.     }
  338.  
  339.     @Override
  340.     public String toString() {
  341.         return "[numarCont=" + numarCont + ", suma=" + suma + ", moneda=" + moneda + ", data_deschiderii="
  342.                 + data_deschiderii + ", data_ultimei_operatiuni=" + data_ultimei_operatiuni + "]";
  343.     }
  344.  
  345.     @Override
  346.     public float calculeaza_dobanda() {
  347.         float dobanda=0;
  348.         if(this.moneda==Moneda.RON)
  349.         {
  350.             if(this.suma<500)
  351.             {
  352.                 dobanda=(float) (0.3*(ChronoUnit.DAYS.between(this.data_ultimei_operatiuni, LocalDate.now())));
  353.             }
  354.             else
  355.             {dobanda=(float) (0.8*(ChronoUnit.DAYS.between(this.data_ultimei_operatiuni, LocalDate.now())));
  356.  
  357.             }
  358.  
  359.         }
  360.         else
  361.         {
  362.             dobanda=(float) (0.1*(ChronoUnit.DAYS.between(this.data_ultimei_operatiuni, LocalDate.now())));
  363.         }
  364.         return dobanda;
  365.     }
  366.  
  367.     @Override
  368.     public float actualizare_suma() {
  369.        
  370.         this.suma+=calculeaza_dobanda();
  371.         this.data_ultimei_operatiuni=LocalDate.now();
  372.         return this.suma;
  373.     }
  374.  
  375.     @Override
  376.     public void depunere(float suma) {
  377.         actualizare_suma();
  378.         this.data_ultimei_operatiuni=LocalDate.now();
  379.         this.suma+=suma;
  380.  
  381.     }
  382.  
  383.     @Override
  384.     public void extragere(float suma) {
  385.         actualizare_suma();
  386.         this.data_ultimei_operatiuni=LocalDate.now();
  387.         this.suma-=suma;
  388.  
  389.     }
  390.  
  391.  
  392.  
  393. }
  394.  
  395.  
  396.  
  397. package LAB6bun;
  398.  
  399. public enum Moneda {
  400.     RON,
  401.     EURO;
  402.  
  403. }
  404.  
  405.  
  406. package LAB6bun;
  407.  
  408. public interface Operatiuni {
  409.    
  410.     public float calculeaza_dobanda();
  411.     public float actualizare_suma();
  412.     public void depunere(float suma);
  413.     public void extragere(float suma);
  414.  
  415. }
  416.  
  417.  
  418. package LAB6bun;
  419.  
  420. import java.util.HashSet;
  421. import java.util.Set;
  422.  
  423. public class Client {
  424.     private String nume;
  425.     private String adresa;
  426.     private Set<ContBancar> conturi=new HashSet<ContBancar>();
  427.  
  428.  
  429.     public Client(String nume, String adresa) {
  430.         super();
  431.         this.nume = nume;
  432.         this.adresa = adresa;
  433.     }
  434.  
  435.     public String getNume() {
  436.         return nume;
  437.     }
  438.     public void setNume(String nume) {
  439.         this.nume = nume;
  440.     }
  441.     public String getAdresa() {
  442.         return adresa;
  443.     }
  444.     public void setAdresa(String adresa) {
  445.         this.adresa = adresa;
  446.     }
  447.     public Set<ContBancar> getConturi() {
  448.         return conturi;
  449.     }
  450.     public void setConturi(Set<ContBancar> conturi) {
  451.         this.conturi = conturi;
  452.     }
  453.  
  454.     public Client(String nume, String adresa, Set<ContBancar> conturi) {
  455.         super();
  456.         this.nume = nume;
  457.         this.adresa = adresa;
  458.         this.conturi =conturi;
  459.     }
  460.  
  461.     @Override
  462.     public String toString() {
  463.         return "[nume=" + nume + ", adresa=" + adresa + ", conturi=" + conturi + "]";
  464.     }
  465.  
  466.  
  467.  
  468. }
  469.  
  470.  
  471. package LAB6bun;
  472.  
  473. import java.util.ArrayList;
  474. import java.util.List;
  475.  
  476. public class Banca {
  477.    
  478.     private String denumire_banca;
  479.     private List<Client> clienti=new ArrayList<Client>();
  480.    
  481.     public Banca(String denumire_banca, List<Client> clienti) {
  482.         super();
  483.         this.denumire_banca = denumire_banca;
  484.         this.clienti = clienti;
  485.     }
  486.    
  487.  
  488.     public Banca(String denumire_banca) {
  489.         super();
  490.         this.denumire_banca = denumire_banca;
  491.     }
  492.  
  493.  
  494.     public String getDenumire_banca() {
  495.         return denumire_banca;
  496.     }
  497.  
  498.     public void setDenumire_banca(String denumire_banca) {
  499.         this.denumire_banca = denumire_banca;
  500.     }
  501.  
  502.     public List<Client> getClienti() {
  503.         return clienti;
  504.     }
  505.  
  506.     public void setClienti(List<Client> clienti) {
  507.         this.clienti = clienti;
  508.     }
  509.  
  510.     @Override
  511.     public String toString() {
  512.         return "Banca [denumire_banca=" + denumire_banca + ", clienti=" + clienti + "]";
  513.     }
  514.    
  515.    
  516.    
  517.  
  518. }
  519.  
Advertisement
Add Comment
Please, Sign In to add comment