Verbesserungen an code Und die Methode berechneParkgebuehren
implementiert mit einem junit Testmain
parent
9cc877e0e9
commit
8be136b83a
|
@ -39,3 +39,69 @@ Frage 2:
|
||||||
Math.ceil(2.1); // Ausgabe: 3.0
|
Math.ceil(2.1); // Ausgabe: 3.0
|
||||||
Math.ceil(3.7); // Ausgabe: 4.0
|
Math.ceil(3.7); // Ausgabe: 4.0
|
||||||
Math.ceil(1.01); // Ausgabe: 2.0
|
Math.ceil(1.01); // Ausgabe: 2.0
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------------------------------------
|
||||||
|
Frage 3:
|
||||||
|
Ich : die Methode getTime gibt die Zeit in stunden und Minuten??
|
||||||
|
ChatGPT:
|
||||||
|
Die Methode getTime() in Java gibt nicht direkt die Stunden und Minuten aus. Stattdessen gibt sie die Zeit als Anzahl der Millisekunden seit dem 1. Januar 1970, 00:00:00 UTC zurück (Unix-Zeit). Du kannst diese Millisekunden dann verwenden, um die Differenz zwischen zwei Date-Objekten zu berechnen, wie in deinem Fall geschehen.
|
||||||
|
|
||||||
|
Um explizit die Stunden und Minuten aus einem Date-Objekt zu bekommen, kannst du entweder die Calendar-Klasse oder die SimpleDateFormat-Klasse verwenden. Hier sind zwei Möglichkeiten:
|
||||||
|
|
||||||
|
1. Mit Calendar
|
||||||
|
java
|
||||||
|
Code kopieren
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.setTime(deinDateObjekt);
|
||||||
|
int stunden = cal.get(Calendar.HOUR_OF_DAY); // Stunden im 24-Stunden-Format
|
||||||
|
int minuten = cal.get(Calendar.MINUTE); // Minuten
|
||||||
|
2. Mit SimpleDateFormat
|
||||||
|
Falls du die Stunden und Minuten als String brauchst, kannst du SimpleDateFormat benutzen:
|
||||||
|
|
||||||
|
java
|
||||||
|
Code kopieren
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
|
||||||
|
String zeit = sdf.format(deinDateObjekt); // Zeit als String "HH:mm"
|
||||||
|
Zusammengefasst:
|
||||||
|
getTime() gibt die Millisekunden seit 1970 zurück, nicht direkt Stunden und Minuten.
|
||||||
|
Um Stunden und Minuten zu extrahieren, musst du entweder Calendar verwenden oder die Ausgabe mit SimpleDateFormat formatieren.
|
||||||
|
In deinem Fall, wenn du die Stunden und Minuten für Ein- und Ausfahrt benötigst, würde ich dir empfehlen, entweder Calendar zu verwenden oder mit SimpleDateFormat die Zeit zu formatieren, um Klarheit zu schaffen.
|
||||||
|
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
Frage 4:
|
||||||
|
Ich: var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
Date d1 = sdf.parse("01.10.2024, 14:00");
|
||||||
|
Date d2 = sdf.parse("01.10.2024, 15:30");
|
||||||
|
|
||||||
|
System.out.println( d1.getHours());
|
||||||
|
warum wurde die Methode .getHours() durchgestrichen ??
|
||||||
|
|
||||||
|
cahtGPT: Die Methode getHours() der Klasse Date ist durchgestrichen, weil sie als veraltet (deprecated) gilt. Java hat entschieden, diese Methode zu entwerten, weil die Date-Klasse in ihrer ursprünglichen Form als unflexibel und fehleranfällig angesehen wurde. Stattdessen empfiehlt Java, modernere Klassen wie Calendar oder die Klassen aus dem java.time-Paket (z. B. LocalDateTime, ZonedDateTime) zu verwenden.
|
||||||
|
|
||||||
|
Die veralteten Methoden wie getHours(), getMinutes(), und getSeconds() wurden durch leistungsfähigere und flexiblere APIs ersetzt, die besser mit Zeitzonen und Internationalisierung umgehen können.
|
||||||
|
|
||||||
|
Alternative Lösung:
|
||||||
|
Anstatt getHours() zu verwenden, solltest du Calendar oder die neuen Zeit-API-Klassen verwenden. Hier ist eine Möglichkeit, die Stunde mithilfe von Calendar zu bekommen:
|
||||||
|
|
||||||
|
Mit Calendar:
|
||||||
|
java
|
||||||
|
Code kopieren
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
Date d1 = sdf.parse("01.10.2024, 14:00");
|
||||||
|
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.setTime(d1);
|
||||||
|
int hours = cal.get(Calendar.HOUR_OF_DAY); // Stunden im 24-Stunden-Format
|
||||||
|
|
||||||
|
System.out.println(hours); // Ausgabe: 14
|
||||||
|
Mit java.time.LocalDateTime (empfohlene Methode ab Java 8):
|
||||||
|
Java 8 und höher bietet das java.time-Paket, das viel leistungsfähiger ist und besser mit Datum und Zeit umgeht.
|
||||||
|
|
||||||
|
java
|
||||||
|
Code kopieren
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy, HH:mm");
|
||||||
|
LocalDateTime dateTime = LocalDateTime.parse("01.10.2024, 14:00", formatter);
|
||||||
|
|
||||||
|
int hours = dateTime.getHour();
|
||||||
|
System.out.println(hours); // Ausgabe: 14
|
||||||
|
Fazit:
|
||||||
|
Vermeide die Verwendung der veralteten getHours()-Methode und nutze entweder Calendar oder, noch besser, die java.time-API, die in Java 8
|
|
@ -14,7 +14,7 @@ import java.util.Date;
|
||||||
public class Fahrzeug {
|
public class Fahrzeug {
|
||||||
|
|
||||||
private final String kennzeichen;
|
private final String kennzeichen;
|
||||||
private final Date einfahrt;
|
private Date einfahrt;
|
||||||
private Date ausfahrt;
|
private Date ausfahrt;
|
||||||
private boolean bezahlt;
|
private boolean bezahlt;
|
||||||
private int betrag;
|
private int betrag;
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
package Parkhaus;
|
|
||||||
|
|
||||||
public class Gebuehrenberechnen {
|
|
||||||
|
|
||||||
// Hier werde ich die Parkgebühren behandlen
|
|
||||||
|
|
||||||
}
|
|
|
@ -15,7 +15,7 @@ class JTest_Einfahren {
|
||||||
@Test
|
@Test
|
||||||
public void testEinfahrenOhneEingabe() throws ParseException {
|
public void testEinfahrenOhneEingabe() throws ParseException {
|
||||||
|
|
||||||
parkhaus.einfahrenextern("", "");
|
parkhaus.einfahren("", "");
|
||||||
assertEquals(179, parkhaus.getMaxPlaetze());
|
assertEquals(179, parkhaus.getMaxPlaetze());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,8 +23,7 @@ class JTest_Einfahren {
|
||||||
public void testEinfahrenMitEingabe() throws ParseException {
|
public void testEinfahrenMitEingabe() throws ParseException {
|
||||||
String kennzeichen = "MA-SH 4077";
|
String kennzeichen = "MA-SH 4077";
|
||||||
String einfahrtzeit = "01.10.2024, 14:30";
|
String einfahrtzeit = "01.10.2024, 14:30";
|
||||||
|
String test = parkhaus.einfahren(kennzeichen, einfahrtzeit);
|
||||||
String test = parkhaus.einfahrenextern(kennzeichen, einfahrtzeit);
|
|
||||||
assertTrue(test.contains(kennzeichen));
|
assertTrue(test.contains(kennzeichen));
|
||||||
assertTrue(test.contains(einfahrtzeit));
|
assertTrue(test.contains(einfahrtzeit));
|
||||||
assertEquals(179, parkhaus.getMaxPlaetze());
|
assertEquals(179, parkhaus.getMaxPlaetze());
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
package Parkhaus;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
class JTest_berechneParkgebuehren {
|
||||||
|
|
||||||
|
private Parkhaus parkhaus;
|
||||||
|
private SimpleDateFormat sdf;
|
||||||
|
@BeforeEach
|
||||||
|
void start() throws ParseException {
|
||||||
|
parkhaus = new Parkhaus();
|
||||||
|
sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_berechneParkgebuehren() throws ParseException, AutoNichtGefundenException {
|
||||||
|
String kennzeichen = "MA-SH 4077";
|
||||||
|
String einfahrt = "01.10.2024, 14:30";
|
||||||
|
String ausfahrt = "01.10.2024, 14:45";
|
||||||
|
parkhaus.einfahren(kennzeichen, einfahrt);
|
||||||
|
|
||||||
|
// 15 Minuten => True
|
||||||
|
assertEquals(0,parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt));
|
||||||
|
|
||||||
|
// 16 Minuten => True
|
||||||
|
einfahrt = "01.10.2024, 14:30";
|
||||||
|
ausfahrt = "01.10.2024, 14:46";
|
||||||
|
assertEquals(1,parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt));
|
||||||
|
|
||||||
|
// 1 Stunde => True
|
||||||
|
einfahrt = "01.10.2024, 14:30";
|
||||||
|
ausfahrt = "01.10.2024, 15:30";
|
||||||
|
assertEquals(1, parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 2 Stunden => True
|
||||||
|
einfahrt = "01.10.2024, 14:00";
|
||||||
|
ausfahrt = "01.10.2024, 16:00";
|
||||||
|
assertEquals(2, parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt));
|
||||||
|
|
||||||
|
// Zwischen 20 bis 6 Uhr => True
|
||||||
|
einfahrt = "01.10.2024, 22:00";
|
||||||
|
ausfahrt = "02.10.2024, 04:00";
|
||||||
|
assertEquals(5, parkhaus.berechneParkgebuehren(kennzeichen, ausfahrt));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -1,11 +1,18 @@
|
||||||
package Parkhaus;
|
package Parkhaus;
|
||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
public class Main {
|
public class Main {
|
||||||
|
|
||||||
public static void main(String[] args) throws ParseException {
|
public static void main(String[] args) throws ParseException, AutoNichtGefundenException {
|
||||||
new TextUI();
|
|
||||||
|
var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
Date d1 = sdf.parse("01.10.2024, 14:00");
|
||||||
|
Date d2 = sdf.parse("01.10.2024, 15:30");
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println( d1.getHours());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package Parkhaus;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/* Parkhaus klasse
|
/* Parkhaus klasse
|
||||||
|
@ -23,7 +24,7 @@ public class Parkhaus {
|
||||||
sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
}
|
}
|
||||||
|
|
||||||
private String einfahrenIntern(String kennzeichen, String einfahrtzeit) throws ParseException {
|
public String einfahren(String kennzeichen, String einfahrtzeit) throws ParseException {
|
||||||
Date einfahrt;
|
Date einfahrt;
|
||||||
Fahrzeug fahrzeug;
|
Fahrzeug fahrzeug;
|
||||||
if (kennzeichen.isEmpty() && einfahrtzeit.isEmpty())
|
if (kennzeichen.isEmpty() && einfahrtzeit.isEmpty())
|
||||||
|
@ -42,55 +43,77 @@ public class Parkhaus {
|
||||||
+ fahrzeug.getEinfahrtFormatted() + " im Parkhaus eingefahren.";
|
+ fahrzeug.getEinfahrtFormatted() + " im Parkhaus eingefahren.";
|
||||||
}
|
}
|
||||||
|
|
||||||
public String einfahrenextern(String kennzeichen, String einfahrtzeit) throws ParseException {
|
|
||||||
|
|
||||||
return einfahrenIntern(kennzeichen, einfahrtzeit);
|
|
||||||
|
public int berechneParkgebuehren(String kennzeichen, String ausfahrtzeit) throws AutoNichtGefundenException, ParseException {
|
||||||
|
if (kennzeichen.isEmpty()) {
|
||||||
|
throw new AutoNichtGefundenException("Sie müssen bitte das Kennzeichen Ihres Autos eingeben.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private int berechneParkgebuehrenIntern(String kennzeichen, String ausfahrtzeit)throws AutoNichtGefundenException, ParseException {
|
|
||||||
Fahrzeug fahrzeug = findeFahrzeug(kennzeichen);
|
Fahrzeug fahrzeug = findeFahrzeug(kennzeichen);
|
||||||
Date ausfahrt = sdf.parse(ausfahrtzeit);
|
|
||||||
Date einfahrt = fahrzeug.getEinfahrt();
|
Date einfahrt = fahrzeug.getEinfahrt();
|
||||||
|
Date ausfahrt;
|
||||||
|
|
||||||
long inMinuten = ((ausfahrt.getTime() - einfahrt.getTime()) / 1000 / 60);
|
if (ausfahrtzeit.isEmpty()) {
|
||||||
int inStunden = (int) Math.ceil(inMinuten / 60); // Z.b = 6 Stunden
|
String aktuelleZeitString = sdf.format(new Date());
|
||||||
|
ausfahrt = sdf.parse(aktuelleZeitString);
|
||||||
|
} else {
|
||||||
|
ausfahrt = sdf.parse(ausfahrtzeit);
|
||||||
|
}
|
||||||
|
|
||||||
|
double inMinuten = (ausfahrt.getTime() - einfahrt.getTime()) / 1000.0 / 60.0;
|
||||||
|
int inStunden = (int) Math.ceil(inMinuten / 60.0);
|
||||||
int maxNachtBetrag = 5;
|
int maxNachtBetrag = 5;
|
||||||
int maxTagBetrag = 15;
|
int maxTagBetrag = 15;
|
||||||
int betrag;
|
int betrag = 0;
|
||||||
|
|
||||||
|
// Erstellung von Calendar-Objekten für Einfahrt und Ausfahrt
|
||||||
|
Calendar calEinfahrt = Calendar.getInstance();
|
||||||
|
calEinfahrt.setTime(einfahrt);
|
||||||
|
|
||||||
|
Calendar calAusfahrt = Calendar.getInstance();
|
||||||
|
calAusfahrt.setTime(ausfahrt);
|
||||||
|
|
||||||
|
int einfahrtStunde = calEinfahrt.get(Calendar.HOUR_OF_DAY);
|
||||||
|
int ausfahrtStunde = calAusfahrt.get(Calendar.HOUR_OF_DAY);
|
||||||
|
|
||||||
if (inMinuten <= 15)
|
if (inMinuten <= 15)
|
||||||
betrag = 0;
|
betrag = 0;
|
||||||
|
|
||||||
|
else if ((einfahrtStunde < 6 || einfahrtStunde >= 20) || (ausfahrtStunde < 6 || ausfahrtStunde >= 20)) {
|
||||||
|
betrag = (inStunden <= maxNachtBetrag) ? inStunden : maxNachtBetrag;
|
||||||
|
System.out.println(betrag);
|
||||||
|
}
|
||||||
|
|
||||||
// zwische 20 Uhr und 6 Uhr max 5€
|
|
||||||
else if (einfahrt.getHours() >= 20 || einfahrt.getHours() < 6 || ausfahrt.getHours() >= 20|| ausfahrt.getHours() < 6)
|
|
||||||
betrag = Math.min(inStunden, maxNachtBetrag);
|
|
||||||
|
|
||||||
else {
|
else {
|
||||||
betrag = inStunden;
|
betrag = inStunden;
|
||||||
|
if (betrag > maxTagBetrag) {
|
||||||
if (betrag > maxTagBetrag)
|
|
||||||
betrag = maxTagBetrag;
|
betrag = maxTagBetrag;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fahrzeug.setBetrag(betrag);
|
fahrzeug.setBetrag(betrag);
|
||||||
return fahrzeug.getBetrag();
|
return fahrzeug.getBetrag();
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public int berechneParkgebuehrenExtern(String kennzeichen, String ausfahrtzeit) throws AutoNichtGefundenException, ParseException {
|
|
||||||
int betrag = berechneParkgebuehrenIntern(kennzeichen, ausfahrtzeit);
|
|
||||||
return betrag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private Fahrzeug findeFahrzeug(String kennzeichen) throws AutoNichtGefundenException {
|
||||||
|
|
||||||
|
for (Fahrzeug auto : fahrzeuge)
|
||||||
|
if (auto.getKennzeichen().equals(kennzeichen))
|
||||||
|
return auto;
|
||||||
|
|
||||||
|
throw new AutoNichtGefundenException("Ihr Auto wurde nicht gefunden. Bitte wenden Sie sich an den Support");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean checkParkplatze() {
|
public boolean checkParkplatze() {
|
||||||
return maxPlaetze > 0;
|
return maxPlaetze > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkSchulden(String kennzeichen) {
|
public boolean checkSchulden(String kennzeichen) {
|
||||||
for (Fahrzeug sc : fahrzeugeMitSchulden)
|
for (Fahrzeug sc : fahrzeugeMitSchulden)
|
||||||
if (sc.getKennzeichen().equals(kennzeichen))
|
if (sc.getKennzeichen().equals(kennzeichen))
|
||||||
return true;
|
return true;
|
||||||
|
@ -98,20 +121,6 @@ public class Parkhaus {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean checkSchuldenExtern(String kennzeichen) {
|
|
||||||
return checkSchulden(kennzeichen);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Fahrzeug findeFahrzeug(String kennzeichen) throws AutoNichtGefundenException {
|
|
||||||
|
|
||||||
for (Fahrzeug auto : fahrzeuge)
|
|
||||||
if (auto.getKennzeichen().equals(kennzeichen))
|
|
||||||
return auto;
|
|
||||||
|
|
||||||
throw new AutoNichtGefundenException("Ihre Auto wurde nicht gefunden \n melden Sie sich bitte an die Support");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getter methoden:
|
// Getter methoden:
|
||||||
public ArrayList<Fahrzeug> getFahrzeuge() {
|
public ArrayList<Fahrzeug> getFahrzeuge() {
|
||||||
return fahrzeuge;
|
return fahrzeuge;
|
||||||
|
|
|
@ -5,16 +5,14 @@ import java.util.Scanner;
|
||||||
|
|
||||||
public class TextUI {
|
public class TextUI {
|
||||||
private Parkhaus system;
|
private Parkhaus system;
|
||||||
private Scanner eingabe;
|
|
||||||
|
|
||||||
|
TextUI() throws ParseException, AutoNichtGefundenException{
|
||||||
TextUI() throws ParseException{
|
|
||||||
system = new Parkhaus();
|
system = new Parkhaus();
|
||||||
startprogramm();
|
startprogramm();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startprogramm() throws ParseException {
|
private void startprogramm() throws ParseException, AutoNichtGefundenException {
|
||||||
eingabe = new Scanner(System.in);
|
Scanner eingabe = new Scanner(System.in);
|
||||||
boolean aktiv = true;
|
boolean aktiv = true;
|
||||||
|
|
||||||
System.out.println("<<Willkommen im parkhaus 'kiss and ride'>> ");
|
System.out.println("<<Willkommen im parkhaus 'kiss and ride'>> ");
|
||||||
|
@ -22,15 +20,16 @@ public class TextUI {
|
||||||
System.out.println();
|
System.out.println();
|
||||||
System.out.println("Bitte Wählen Sie ein Option ein: ");
|
System.out.println("Bitte Wählen Sie ein Option ein: ");
|
||||||
System.out.println("1.Einfahren");
|
System.out.println("1.Einfahren");
|
||||||
System.out.println("2.Ausfahren");
|
System.out.println("2. Parkgebühren berechnen lassen");
|
||||||
System.out.println("3. Parkgebühren berechnen und (bezahlen Oder Schulden lassen)");
|
System.out.println("3. Parkgebühren bezahlen");
|
||||||
System.out.println("4. Beenden");
|
System.out.println("4.Ausfahren");
|
||||||
|
System.out.println("5. Beenden");
|
||||||
|
|
||||||
System.out.print("> ");
|
System.out.print("> ");
|
||||||
String auswhal = eingabe.nextLine();
|
String auswhal = eingabe.nextLine();
|
||||||
String kennzeichen;
|
String kennzeichen;
|
||||||
String einfahrtzeit;
|
String einfahrtzeit;
|
||||||
|
String ausfahrtzeit;
|
||||||
switch (auswhal) {
|
switch (auswhal) {
|
||||||
case "1": // Einfahren
|
case "1": // Einfahren
|
||||||
if (!system.checkParkplatze())
|
if (!system.checkParkplatze())
|
||||||
|
@ -38,22 +37,30 @@ public class TextUI {
|
||||||
else {
|
else {
|
||||||
System.out.println("geben Sie bitte das Kennzeichen Ihres Autos ein (optional): ");
|
System.out.println("geben Sie bitte das Kennzeichen Ihres Autos ein (optional): ");
|
||||||
kennzeichen = eingabe.nextLine();
|
kennzeichen = eingabe.nextLine();
|
||||||
if (system.checkSchuldenExtern(kennzeichen))
|
if (system.checkSchulden(kennzeichen))
|
||||||
System.out.println("Das Auto mit dem Kennzeichen: " + kennzeichen + " ist im Parkhaus mit Schulden eingefahren!" );
|
System.out.println("Das Auto mit dem Kennzeichen: " + kennzeichen + " ist im Parkhaus mit Schulden eingefahren!" );
|
||||||
System.out.println("geben Sie nun bitte die Einfahrtszeit ein (Optional):");
|
System.out.println("geben Sie nun bitte die Einfahrtszeit ein (oder lassen Sie das für das System):");
|
||||||
einfahrtzeit = eingabe.nextLine();
|
einfahrtzeit = eingabe.nextLine();
|
||||||
System.out.println(system.einfahrenextern(kennzeichen, einfahrtzeit));
|
System.out.println(system.einfahren(kennzeichen, einfahrtzeit));
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "2":
|
case "2":
|
||||||
// TODO
|
System.out.println("Geben Sie erneut das Kennzeichnes Ihres Autos an");
|
||||||
|
kennzeichen = eingabe.nextLine();
|
||||||
|
System.out.println("Geben Sie bitte die Ausfahrtzeit ein (oder lassen Sie das für das System)");
|
||||||
|
ausfahrtzeit = eingabe.nextLine();
|
||||||
|
system.berechneParkgebuehren(kennzeichen, ausfahrtzeit);
|
||||||
|
break;
|
||||||
case "3":
|
case "3":
|
||||||
// TODO
|
// TODO
|
||||||
|
break;
|
||||||
case "4":
|
case "4":
|
||||||
// TODO
|
// TODO
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "5":
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
System.out.println("Das war leider keine gültige Eingabe");
|
System.out.println("Das war leider keine gültige Eingabe");
|
||||||
|
|
|
@ -1,16 +1,20 @@
|
||||||
package Parkhaus;
|
package Parkhaus;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/*kennzeichenzufaelliggenerieren:
|
/*kennzeichenzufaelliggenerieren:
|
||||||
*
|
*
|
||||||
* - Diese Klasse hat nur die Aufgabe, zufällige Kennzeichen zu generieren
|
* - Diese Klasse hat nur die Aufgabe, zufällige Kennzeichen zu generieren
|
||||||
* - immer wenn diese Klasse ein zufälliges Kennzeichen generiert,
|
* - immer wenn diese Klasse ein zufälliges Kennzeichen generiert,
|
||||||
* - speichere ich das,damit es nicht für mehrere Autos dasselbe Kennzeichen generiert.
|
* - Hashset verwenden, damit das System nicht für mehrere Autos dasselbe Kennzeichen generiert
|
||||||
|
|
||||||
*/
|
*/
|
||||||
public class kennzeichenzufaelliggenerieren {
|
public class kennzeichenzufaelliggenerieren {
|
||||||
private static final ArrayList<String> speichereEindutigeNummern = new ArrayList<>();
|
// Keine Duplikate
|
||||||
|
private static Set<String> speichereEindutigeNummern = new HashSet<>();
|
||||||
private static final String[] ersteZweiZeichen = { "MA", "HD", "KA", "FF", "ROK", "BW", "HH", "B", "D" };
|
private static final String[] ersteZweiZeichen = { "MA", "HD", "KA", "FF", "ROK", "BW", "HH", "B", "D" };
|
||||||
private static final String[] zweiteZweizeichen = { "ME", "SH", "DF", "KC", "FT", "GH", "OM", "KL", "CV" };
|
private static final String[] zweiteZweizeichen = { "ME", "SH", "DF", "KC", "FT", "GH", "OM", "KL", "CV" };
|
||||||
private static String eindutigeZahlen = "";
|
private static String eindutigeZahlen = "";
|
||||||
|
@ -22,18 +26,14 @@ public class kennzeichenzufaelliggenerieren {
|
||||||
zufaelligeKennzeichen = ersteZweiZeichen[random.nextInt(ersteZweiZeichen.length)];
|
zufaelligeKennzeichen = ersteZweiZeichen[random.nextInt(ersteZweiZeichen.length)];
|
||||||
zufaelligeKennzeichen += "-" + zweiteZweizeichen[random.nextInt(zweiteZweizeichen.length)] + " ";
|
zufaelligeKennzeichen += "-" + zweiteZweizeichen[random.nextInt(zweiteZweizeichen.length)] + " ";
|
||||||
|
|
||||||
while (true) {
|
do {
|
||||||
eindutigeZahlen = "";
|
eindutigeZahlen = "";
|
||||||
for (int i = 1; i <= 4; i++)
|
for (int i = 1; i <= 4; i++)
|
||||||
eindutigeZahlen += random.nextInt(10);
|
eindutigeZahlen += random.nextInt(10);
|
||||||
|
|
||||||
if (!checkEindutigeZeichen())
|
} while (speichereEindutigeNummern.contains(eindutigeZahlen));
|
||||||
continue;
|
|
||||||
|
|
||||||
speichereEindutigeNummern.add(eindutigeZahlen);
|
speichereEindutigeNummern.add(eindutigeZahlen);
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
zufaelligeKennzeichen += eindutigeZahlen;
|
zufaelligeKennzeichen += eindutigeZahlen;
|
||||||
|
|
||||||
if (random.nextBoolean())
|
if (random.nextBoolean())
|
||||||
|
@ -43,12 +43,4 @@ public class kennzeichenzufaelliggenerieren {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean checkEindutigeZeichen() {
|
|
||||||
for (String s : speichereEindutigeNummern)
|
|
||||||
if (s.equals(eindutigeZahlen))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue