Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package problema1;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.PrintStream;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashSet;
- import java.util.Set;
- import java.util.Vector;
- import problema1.ContBancar.Moneda;
- public class ClientiiBancilor {
- public static void main(String[] args) throws NumberFormatException, ParseException, IOException {
- Vector<Banca> banci = new Vector<>();
- int opt = 0;
- BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
- do {
- System.out.println("0. Iesire");
- System.out.println("1. Adaugare Banca/ Client/ conturi tastatura");
- System.out.println("2. Afisare date in clientibancilor.txt ");
- System.out.println("3. Citire din fiser");
- System.out.println("4. Salveaza datele actuale in fiser");
- System.out.println("5. Administreaza cont");
- System.out.print("Optiunea aleasa este: ");
- opt = Integer.parseInt(read.readLine().trim());
- switch (opt) {
- case 0:
- return;
- case 1:
- adaugaEditBanca(banci, read);
- break;
- case 2:
- PrintStream outputFile = new PrintStream("src\\problema1\\clientibancilor.txt");
- outputFile.print(banci);
- outputFile.close();
- break;
- case 3:
- citireFiser(banci);
- break;
- case 4:
- Banca.seralizare(banci, "src\\problema1\\clientiBanci.bin");
- break;
- case 5:
- meniuSecundar(banci, read);
- break;
- default:
- throw new IllegalArgumentException("Unexpected value: " + opt);
- }
- } while (opt != 0);
- }
- static private void meniuSecundar(Vector<Banca> banci, BufferedReader read)
- throws NumberFormatException, IOException {
- Client c = null;
- c = getClient(banci, read);
- if(c == null) return;
- if(c.getConturi().isEmpty()) return;
- ContBancar cont = getCont(read, c);
- int opt;
- do {
- System.out.println("0. Revenire la meniul anterior");
- System.out.println("1. Afisare cont");
- System.out.println("2. Depunere o suma de bani");
- System.out.println("3. Extragerea o sumă de bani ");
- System.out.println("4. Transferă bani în alt cont ");
- System.out.print("Optiunea aleasa este: ");
- opt = Integer.parseInt(read.readLine().trim());
- switch (opt) {
- case 0:
- return;
- case 1:
- System.out.println(cont);
- break;
- case 2:
- System.out.print("Suma care va fi depusa: ");
- cont.depunere(Float.parseFloat(read.readLine().trim()));
- System.out.println("Contul dupa depunere\n" + cont);
- break;
- case 3:
- System.out.print("Suma care va fi extrasa: ");
- cont.extragere(Float.parseFloat(read.readLine().trim()));
- System.out.println("Contul dupa extragere\n" + cont);
- break;
- case 4:
- if (c.getConturi().size() < 2) {
- System.out.print("Clientul trebuie sa aiba ce-l ptuin doua conturi de aceasi valuta!");
- break;
- }
- float suma = 0.f;
- do {
- System.out.print("Suma ce va fi extrasa: ");
- suma = Float.parseFloat(read.readLine().trim());
- if (cont.getSuma() < suma)
- System.out.println("Suma extrasa trebuie sa fie mai mica sau egala cu " + cont.getSuma());
- } while (cont.getSuma() < suma);
- System.out.print("Suma va fi adaugata in: ");
- getCont(read, c).depunere(suma);
- cont.extragere(suma);
- break;
- default:
- break;
- }
- } while (true);
- }
- private static ContBancar getCont(BufferedReader read, Client c) throws IOException {
- String numarCont = null;
- if (c.getConturi().size() == 1) {
- System.out.print("Cont: ");
- for (ContBancar cont : c.getConturi()) {
- System.out.println(cont);
- return cont;
- }
- }
- do {
- System.out.print("Conturile sunt: ");
- System.out.println(c);
- System.out.print("Numar Cont: ");
- numarCont = read.readLine().trim();
- for (ContBancar cont : c.getConturi()) {
- if (cont.getNumarCont().equals(numarCont))
- return cont;
- }
- } while (true);
- }
- private static Client getClient(Vector<Banca> banci, BufferedReader read) throws IOException {
- String numeBanca;
- String numeClient;
- Boolean isBanca = false;
- Client c = null;
- if (banci.isEmpty()) {
- System.out.println("Nu se afla nicio banca in baza de date");
- return null;
- }
- if (banci.size() == 1) {
- numeBanca = banci.get(0).getDenumire_banca();
- System.out.println("Banca: " + numeBanca);
- } else {
- for (Banca b : banci)
- System.out.print(b.getDenumire_banca() + ", ");
- System.out.print("\nNume banca dorita: ");
- numeBanca = read.readLine().trim();
- }
- for (Banca b : banci) {
- if (b.getDenumire_banca().equals(numeBanca)) {
- isBanca = true;
- if (b.getClienti().size() == 1) {
- System.out.println("Cont: " + b.getClienti().get(0).getNume());
- return b.getClienti().get(0);
- } else {
- System.out.print("Clienti: ");
- for (Client client : b.getClienti())
- System.out.print(client.getNume() + ", ");
- System.out.print("\nNume Client cautat: ");
- numeClient = read.readLine().trim();
- }
- for (Client client : b.getClienti())
- if (client.getNume().equals(numeClient))
- c = client;
- }
- }
- if (isBanca == false)
- System.out.println("Banca introdusa nu a fost gasita");
- else if (c == null)
- System.out.println("Clientul introdusa nu a fost gasita");
- return c;
- }
- private static void citireFiser(Vector<Banca> banci) {
- Banca b;
- Vector<?> banc = (Vector<?>) Banca.deSeralizare("src\\problema1\\clientiBanci.bin");
- if (banc != null)
- for (var ban : banc) {
- b = (Banca) ban;
- if (banci.indexOf(b) == -1)
- banci.add(b);
- else
- for (Client client : b.getClienti())
- b.adaugaClient(client);
- }
- else
- System.out.println("Nu exista fiserul clientiBanci.bin");
- }
- private static void adaugaEditBanca(Vector<Banca> banci, BufferedReader read) {
- String numeClient;
- String adresaClient = "";
- Banca b;
- Client c;
- int i;
- try {
- if (!banci.isEmpty()) {
- System.out.print("Banci existente: ");
- for (Banca banc : banci)
- System.out.print(banc.getDenumire_banca() + ", ");
- System.out.println();
- }
- System.out.print("Nume banca: ");
- b = new Banca(read.readLine().trim(), null);
- System.out.print("Numar de clienti: ");
- int j = Integer.parseInt(read.readLine().trim()), index = banci.indexOf(b);
- while (j != 0) {
- if (index != -1 && !banci.get(index).getClienti().isEmpty()) {
- System.out.print("Clienti existenti: ");
- for (Client client : banci.get(index).getClienti())
- System.out.print(client.getNume() + ", ");
- System.out.println();
- }
- System.out.print("Nume client: ");
- numeClient = read.readLine();
- c = new Client(numeClient, " ", null);
- if (index == -1 || (banci.get(index).getClienti().indexOf(c) == -1)) {
- System.out.print("Adresa client: ");
- adresaClient = read.readLine().trim();
- }
- System.out.print("Numar de conturi: ");
- i = Integer.parseInt(read.readLine().trim());
- Set<ContBancar> conturi = new HashSet<>();
- while (i != 0) {
- System.out.println(
- "Numar cont / suma/ Moneda(ron/eur) / data deschdieri(dd mm yyyy) / data ultimei operatiuni(dd mm yyyy)");
- conturi.add(new ContBancar(read.readLine().trim(), Float.parseFloat(read.readLine().trim()),
- Moneda.valueOf(read.readLine().trim().toUpperCase()), getCalendar(read.readLine().trim()),
- getCalendar(read.readLine().trim())));
- --i;
- }
- c = new Client(numeClient, adresaClient, conturi);
- index = banci.indexOf(b);
- if (index != -1)
- banci.get(index).adaugaClient(c);
- else
- b.adaugaClient(c);
- --j;
- }
- if (banci.indexOf(b) == -1)
- banci.add(b);
- } catch (Exception e) {
- System.out.println("A aparut o eroare la adaugare!");
- }
- }
- static Calendar getCalendar(String data) throws ParseException {
- SimpleDateFormat format1;
- format1 = new SimpleDateFormat("dd MM yyyy");
- Calendar cal = Calendar.getInstance();
- cal.setTime((Date) format1.parse(data));
- return cal;
- }
- }
Add Comment
Please, Sign In to add comment