diff --git a/src/main/java/org/example/Main.java b/src/main/java/org/example/Main.java index a18d30e..2f1c2d5 100644 --- a/src/main/java/org/example/Main.java +++ b/src/main/java/org/example/Main.java @@ -8,6 +8,7 @@ import java.util.ArrayList; import java.util.Random; import java.util.Scanner; +import static org.example.domain.*; import static org.example.optionen.ausfahren.rausfahren; import static org.example.optionen.bezahlen.ticketbezahlen; import static org.example.optionen.einfahren.farzeugfährtein; @@ -15,13 +16,7 @@ import static org.example.optionen.informationen.invouberlale; public class Main { - //sachen die ich brauche - public static final Scanner scanner = new Scanner(System.in); - - public static final Random rand = new Random(); - public static final SimpleDateFormat timeformat = new SimpleDateFormat("dd.MM.yyyy, HH:mm"); - public static ArrayList tiketliste=new ArrayList<>(); - public static ArrayList unbezahlteticketliste=new ArrayList<>(); + //sachen die ich brauch public static void main(String[] args) throws ParseException { @@ -29,24 +24,14 @@ public class Main { while (true){ //auswahl System.out.println(" Willkommen im Parkhaus"); - System.out.println(" 1: Einfahren ("+(180-tiketliste.size())+" Freie Plätze)"); + System.out.println(" 1: Einfahren ("+(180-getTiketliste().size())+" Freie Plätze)"); System.out.println(" 2: Parkgebühren Bezahlen"); System.out.println(" 3: Ausfahren"); System.out.println(" 4: Informationen"); System.out.println(" B: Beenden"); - String input=scanner.nextLine(); - switch (input){ - case "1" -> farzeugfährtein(); - case "2" -> ticketbezahlen(); - case "3" -> rausfahren(); - case "4" -> invouberlale(); - case "B" -> { - System.out.println("Hoffe es wahren keine weiteren tickets offen"); - return; - } - default -> System.out.println("Falsche eingabe"); - } + String input=getScanner().nextLine(); + domainn(input); } diff --git a/src/main/java/org/example/domain.java b/src/main/java/org/example/domain.java new file mode 100644 index 0000000..1b40d7c --- /dev/null +++ b/src/main/java/org/example/domain.java @@ -0,0 +1,61 @@ +package org.example; + +import org.example.ticketobjekt.parkticket; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Random; +import java.util.Scanner; + +import static org.example.optionen.ausfahren.rausfahren; +import static org.example.optionen.bezahlen.ticketbezahlen; +import static org.example.optionen.einfahren.farzeugfährtein; +import static org.example.optionen.informationen.invouberlale; + +public class domain { + + private static final Scanner scanner = new Scanner(System.in); + + private static final Random rand = new Random(); + private static final SimpleDateFormat timeformat = new SimpleDateFormat("dd.MM.yyyy, HH:mm"); + private static ArrayList tiketliste=new ArrayList<>(); + private static ArrayList unbezahlteticketliste=new ArrayList<>(); + + public static void domainn(String input) throws ParseException { + switch (input){ + case "1" -> farzeugfährtein(); + case "2" -> ticketbezahlen(); + case "3" -> rausfahren(); + case "4" -> invouberlale(); + case "B" -> { + System.out.println("Hoffe es wahren keine weiteren tickets offen"); + return; + } + default -> System.out.println("Falsche eingabe"); + } + + + + } + + public static ArrayList getTiketliste() { + return tiketliste; + } + + public static ArrayList getUnbezahlteticketliste() { + return unbezahlteticketliste; + } + + public static Random getRand() { + return rand; + } + + public static Scanner getScanner() { + return scanner; + } + + public static SimpleDateFormat getTimeformat() { + return timeformat; + } +} diff --git a/src/main/java/org/example/optionen/ausfahren.java b/src/main/java/org/example/optionen/ausfahren.java index 61ed5f3..78d2c78 100644 --- a/src/main/java/org/example/optionen/ausfahren.java +++ b/src/main/java/org/example/optionen/ausfahren.java @@ -1,31 +1,23 @@ package org.example.optionen; +import org.example.domain; import org.example.ticketobjekt.parkticket; import static org.example.Main.*; +import static org.example.domain.*; public class ausfahren { public static void rausfahren(){ System.out.println("Bitte wählen sie ihr kenzeichen:"); - for (parkticket p : tiketliste) System.out.println((tiketliste.indexOf(p)+1)+": "+p.getNummerschild()); - int ticket=scanner.nextInt()-1; - parkticket p = tiketliste.get(ticket); + for (parkticket p : getTiketliste()) System.out.println((getTiketliste().indexOf(p)+1)+": "+p.getNummerschild()); + int ticket=getScanner().nextInt()-1; + parkticket p = getTiketliste().get(ticket); - System.out.println("Sind sie sicher das sie jetzt rausfahren wollen? Wenn sie ihr tiket nicht bezahlen wird das Konsequenesn habnen (y/n)"); - String yn=scanner.nextLine(); - - switch (yn){ - case "y": - System.out.println("Schande über sie, wenn sie zurückkommen wird das teuer!"); - tiketliste.remove(p); - unbezahlteticketliste.add(p); - break; - default: - System.out.println("Gute entscheidung"); - break; - } + System.out.println("Schande über sie, wenn sie zurückkommen wird das teuer!"); + getTiketliste().remove(p); + getUnbezahlteticketliste().add(p); } } diff --git a/src/main/java/org/example/optionen/bezahlen.java b/src/main/java/org/example/optionen/bezahlen.java index 18892dc..d6db700 100644 --- a/src/main/java/org/example/optionen/bezahlen.java +++ b/src/main/java/org/example/optionen/bezahlen.java @@ -6,21 +6,23 @@ import java.sql.Time; import java.text.ParseException; import java.util.Calendar; import java.util.Date; +import java.util.Scanner; import static org.example.Main.*; +import static org.example.domain.*; public class bezahlen { public static void ticketbezahlen() throws ParseException { System.out.println("Bitte wählen sie ihr kenzeichen:"); - for (parkticket p : tiketliste) System.out.println((tiketliste.indexOf(p)+1)+": "+p.getNummerschild()); - int ticket=scanner.nextInt()-1; - parkticket p = tiketliste.get(ticket); + for (parkticket p : getTiketliste()) System.out.println((getTiketliste().indexOf(p)+1)+": "+p.getNummerschild()); + int ticket=getScanner().nextInt()-1; + parkticket p = getTiketliste().get(ticket); System.out.println("Sie haben "+p.getNummerschild()+" ausgewählt, bitte geben sie die ausfahrzeit ein (lehr für jetzt) (dd.MM.yyyy, HH:mm)"); - String zeitstempelEingabe=scanner.nextLine(); - Date ausfartzeit = zeitstempelEingabe.isEmpty() ? new Date() : timeformat.parse(zeitstempelEingabe); + String zeitstempelEingabe=new Scanner(System.in).nextLine(); + Date ausfartzeit = zeitstempelEingabe.isEmpty() ? new Date() : getTimeformat().parse(zeitstempelEingabe); double gebuhren=gebühren(p.getEinfahtzeit(),ausfartzeit); //nachgabe @@ -29,17 +31,17 @@ public class bezahlen { //gratis if(gebuhren<1){ System.out.println("Sie dürfen gratis rausfahren, viel spaß!"); - tiketliste.remove(p); + getTiketliste().remove(p); return; } System.out.println("Parkgebühren: " + gebuhren + " Euro"); System.out.print("Kreditkartennummer (16-stellige VISA): "); - String kreditkarte = scanner.nextLine(); + String kreditkarte = new Scanner(System.in).nextLine(); if (kreditkarte.matches("\\d{16}") && istVisaGueltig(kreditkarte)) { System.out.println("Zahlung erfolgreich, sie dürfen rausfahren, viel spaß!"); - tiketliste.remove(p); + getTiketliste().remove(p); } else { System.out.println("Ungültige Kreditkarte. Zahlung fehlgeschlagen."); } diff --git a/src/main/java/org/example/optionen/einfahren.java b/src/main/java/org/example/optionen/einfahren.java index ec61ec2..fa48587 100644 --- a/src/main/java/org/example/optionen/einfahren.java +++ b/src/main/java/org/example/optionen/einfahren.java @@ -6,6 +6,7 @@ import java.text.ParseException; import java.util.Date; import static org.example.Main.*; +import static org.example.domain.*; public class einfahren { @@ -13,32 +14,32 @@ public class einfahren { public static void farzeugfährtein() throws ParseException { //wenn voll dann voll - if(tiketliste.size()>180)return; + if(getTiketliste().size()>180)return; //get kennzeichen System.out.println("Bitte geben sie ihr kenzeichen ein (leer für zufälliges Kenzeichen)"); - String kenzeichen=scanner.nextLine(); + String kenzeichen=getScanner().nextLine(); String kennzeichen = kenzeichen.isEmpty() - ? rand.nextBoolean() - ? randombuchstabe()+randombuchstabe() + "-" + randombuchstabe()+randombuchstabe() + " " + (rand.nextInt(9000) + 1000)+"E" - : randombuchstabe()+randombuchstabe() + "-" + randombuchstabe()+randombuchstabe() + " " + (rand.nextInt(9000) + 1000) + ? getRand().nextBoolean() + ? randombuchstabe()+randombuchstabe() + "-" + randombuchstabe()+randombuchstabe() + " " + (getRand().nextInt(9000) + 1000)+"E" + : randombuchstabe()+randombuchstabe() + "-" + randombuchstabe()+randombuchstabe() + " " + (getRand().nextInt(9000) + 1000) : kenzeichen; - for (parkticket p : unbezahlteticketliste)if(kenzeichen.equals(p.getNummerschild())){ + for (parkticket p : getUnbezahlteticketliste())if(kenzeichen.equals(p.getNummerschild())){ System.out.println("Wuste ichs doch das du wieder kommst, das wird tuer!"); - tiketliste.add(p); - unbezahlteticketliste.remove(p); + getTiketliste().add(p); + getUnbezahlteticketliste().remove(p); System.out.println("Auto: "+p.getNummerschild()); System.out.println("Einfahtszeit: "+p.getEinfahtzeit()); return; } System.out.print("Bitte geben sie die einfahtszeit ein (dd.MM.yyyy, HH:mm) (leer für aktuelle Zeit): "); - String zeitstempelEingabe = scanner.nextLine(); - Date einfahrZeit = zeitstempelEingabe.isEmpty() ? new Date() : timeformat.parse(zeitstempelEingabe); + String zeitstempelEingabe = getScanner().nextLine(); + Date einfahrZeit = zeitstempelEingabe.isEmpty() ? new Date() : getTimeformat().parse(zeitstempelEingabe); - tiketliste.add(new parkticket(kennzeichen,einfahrZeit)); + getTiketliste().add(new parkticket(kennzeichen,einfahrZeit)); System.out.println("Auto: "+kennzeichen); System.out.println("Einfahtszeit: "+einfahrZeit); @@ -47,7 +48,7 @@ public class einfahren { public static String randombuchstabe(){ String buchstabe=""; - buchstabe= String.valueOf((char) (rand.nextInt(26) + 'A')); + buchstabe= String.valueOf((char) (getRand().nextInt(26) + 'A')); return buchstabe; } diff --git a/src/main/java/org/example/optionen/informationen.java b/src/main/java/org/example/optionen/informationen.java index 9b244e0..20500fc 100644 --- a/src/main/java/org/example/optionen/informationen.java +++ b/src/main/java/org/example/optionen/informationen.java @@ -2,17 +2,17 @@ package org.example.optionen; import org.example.ticketobjekt.parkticket; -import static org.example.Main.tiketliste; -import static org.example.Main.unbezahlteticketliste; +import static org.example.domain.getTiketliste; +import static org.example.domain.getUnbezahlteticketliste; public class informationen { public static void invouberlale(){ //just list them all - for (parkticket p : tiketliste) System.out.println("Auto: "+p.getNummerschild()+" Einfahtzeit: "+p.getEinfahtzeit()); - if(!unbezahlteticketliste.isEmpty()) System.out.println("Unbezahlte Ticketes: "); - for (parkticket p : unbezahlteticketliste) System.out.println("Auto: "+p.getNummerschild()+" Einfahtzeit: "+p.getEinfahtzeit()); + for (parkticket p : getTiketliste()) System.out.println("Auto: "+p.getNummerschild()+" Einfahtzeit: "+p.getEinfahtzeit()); + if(!getUnbezahlteticketliste().isEmpty()) System.out.println("Unbezahlte Ticketes: "); + for (parkticket p : getUnbezahlteticketliste()) System.out.println("Auto: "+p.getNummerschild()+" Einfahtzeit: "+p.getEinfahtzeit()); } }