Verbesserungen, Code anpassung sowie erstes Gerüst zur implementierung der Schulden, des ausfahrens ohne zu zahlen und der bezahl option

main
Leon Maximilian Löhle 2024-10-03 11:15:40 +02:00
parent 4c19b4c848
commit 428a16efde
3 changed files with 141 additions and 27 deletions

View File

@ -5,13 +5,16 @@ public class Auto {
private String kennzeichen; private String kennzeichen;
private Date einfahrtZeit; private Date einfahrtZeit;
private Date ausfahrtZeit; private Date ausfahrtZeit;
private Date bezahlZeit;
private boolean eAuto; private boolean eAuto;
private double schulden;
public Auto(String kennzeichen, Date einfahrtZeit) { public Auto(String kennzeichen, Date einfahrtZeit) {
this.kennzeichen = kennzeichen; this.kennzeichen = kennzeichen;
this.einfahrtZeit = einfahrtZeit; this.einfahrtZeit = einfahrtZeit;
this.ausfahrtZeit = ausfahrtZeit; this.ausfahrtZeit = ausfahrtZeit;
this.eAuto = eAuto; this.eAuto = iseAuto();
this.schulden = 0;
} }
public String getKennzeichen() { public String getKennzeichen() {
@ -22,6 +25,10 @@ public class Auto {
return einfahrtZeit; return einfahrtZeit;
} }
public Date getBezahlZeit() {
return bezahlZeit;
}
public Date getAusfahrtZeit() { public Date getAusfahrtZeit() {
return ausfahrtZeit; return ausfahrtZeit;
} }
@ -30,6 +37,10 @@ public class Auto {
return eAuto; return eAuto;
} }
public double getSchulden() {
return schulden;
}
public void setKennzeichen(String kennzeichen) { public void setKennzeichen(String kennzeichen) {
this.kennzeichen = kennzeichen; this.kennzeichen = kennzeichen;
} }
@ -42,10 +53,21 @@ public class Auto {
this.ausfahrtZeit = ausfahrtZeit; this.ausfahrtZeit = ausfahrtZeit;
} }
public void setBezahlZeit(Date bezahlZeit) {
this.bezahlZeit = bezahlZeit;
}
public void setEAuto(boolean eAuto) { public void setEAuto(boolean eAuto) {
this.eAuto = eAuto; this.eAuto = eAuto;
} }
public void setSchulden(double schulden) {
this.schulden = schulden;
}
public void addSchulden(double betrag) {
this.schulden += betrag;
}
private boolean iseAuto() { private boolean iseAuto() {
String letztesSymbol = kennzeichen.charAt(kennzeichen.length() - 1) + ""; String letztesSymbol = kennzeichen.charAt(kennzeichen.length() - 1) + "";

View File

@ -9,24 +9,73 @@ public class Main {
Scanner sc = new Scanner(System.in); Scanner sc = new Scanner(System.in);
Parkhaus parkhaus = new Parkhaus(1.0); Parkhaus parkhaus = new Parkhaus(1.0);
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm"); SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy HH:mm");
System.out.println("Willkommen im Parkhaus der Hochschule Mannheim");
System.out.println("Bitte geben Sie ihr Kennzeichen ein:");
String kennzeichenEinfahrt = sc.nextLine();
System.out.println("Wann sind Sie in das Parkhaus eingefahren. Bitte im Format TT.MM.JJJJ SS:MM");
String einfahrtEingabe = sc.nextLine();
Date einfahrtZeit = sdf.parse(einfahrtEingabe);
Auto auto = new Auto(kennzeichenEinfahrt, einfahrtZeit);
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("");
System.out.println("Bitte geben Sie das Kennzeichen des Fahrzeugs ein, welches ausfahren soll :"); while (true) {
String kennzeichenAusfahrt = sc.nextLine();
System.out.println(parkhaus.berechneParkKosten(auto)); System.out.println("Willkommen im Parkhaus der Hochschule Mannheim");
System.out.println("Wollen Sie ");
System.out.println("1. Ins Parkhaus einfahren");
System.out.println("2. Aus dem Parkhaus ausfahren");
System.out.println("3. Bezahlen und ausfahren");
System.out.println("4. Beenden");
int auswahl = sc.nextInt();
if (auswahl == 4) {
System.out.println("Das Programm wird nun beendet.");
System.out.println("Wir wünschen Ihnen noch einen schönen Tag");
}
switch (auswahl) {
case 1:
System.out.println("Bitte geben Sie ihr Kennzeichen ein:");
String kennzeichenEinfahrt = sc.nextLine();
System.out.println("Wann sind Sie in das Parkhaus eingefahren. Bitte im Format TT.MM.JJJJ SS:MM");
String einfahrtEingabe = sc.nextLine();
Date einfahrtZeit = sdf.parse(einfahrtEingabe);
Auto auto = new Auto(kennzeichenEinfahrt, einfahrtZeit);
parkhaus.addAuto(auto);
break;
case 2:
System.out.println("Bitte geben Sie das Kennzeichen des Fahrzeugs ein, welches ausfahren soll :");
String kennzeichenAusfahrt = sc.nextLine();
auto = parkhaus.autoFinden(kennzeichenAusfahrt);
if(auto == null ){
System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden.");
}
else {
System.out.println("Zu welcher Uhrzeit wurde ausgefahren? :");
String ausfahrtEingabe = sc.nextLine();
Date ausfahrtZeit = sdf.parse(ausfahrtEingabe);
parkhaus.berechneParkKosten(auto);
parkhaus.ausfahrt(auto , ausfahrtZeit);
}
break;
case 3:
System.out.println("Für welches Kennzeichen sollen die Parkgebühren bezahlt werden");
String kennzeichenBezahlt = sc.nextLine();
auto = parkhaus.autoFinden(kennzeichenBezahlt);
if(auto == null ){
System.out.println("Keine Auto gefunden mit diesem Kennzeichen gefunden.");
}
else {
System.out.println("Was ist die aktuelle Uhrzeit zu der Sie bezahlen");
String bezahltEingabe = sc.nextLine();
Date bezahltZeit = sdf.parse(bezahltEingabe);
System.out.println(parkhaus.berechneParkKosten(auto));
parkhaus.ausfahrt(auto , bezahltZeit);
}
break;
default:
System.out.println("Falsche Eingabe bitte nur 1,2 oder 3 eingeben");
break;
}
}
} }
} }

View File

@ -6,26 +6,24 @@ public class Parkhaus {
private double maxNachtPreis; private double maxNachtPreis;
private double preis; private double preis;
private double maxTagesPreis; private double maxTagesPreis;
private int maxPlatz;
private int platz;
private List<Auto> autos; private List<Auto> autos;
public double getMaxNachtPreis() { public double getMaxNachtPreis() {
return maxNachtPreis; return maxNachtPreis;
} }
public int getPlatz() {
return platz;
}
public double getMaxTagesPreis() { public double getMaxTagesPreis() {
return maxTagesPreis; return maxTagesPreis;
} }
public int getMaxPlatz() {
public Parkhaus(double preis) { return maxPlatz;
this.preis = 1.0;
this.maxNachtPreis = 5;
this.maxTagesPreis = 15;
this.autos = new ArrayList<Auto>();
}
public void addAuto(Auto auto) {
autos.add(auto);
} }
public double getPreis() { public double getPreis() {
@ -36,6 +34,51 @@ public class Parkhaus {
this.preis = preis; this.preis = preis;
} }
public void setMaxPlatz(int maxPlatz) {
this.maxPlatz = maxPlatz;
}
public void setPlatz(int platz) {
this.platz = platz;
}
public Parkhaus(double preis) {
this.preis = 1.0;
this.maxPlatz = 180;
this.platz = maxPlatz;
this.maxNachtPreis = 5;
this.maxTagesPreis = 15;
this.autos = new ArrayList<Auto>();
}
public void addAuto(Auto auto) {
autos.add(auto);
platz -= 1;
}
public Auto autoFinden(String kennzeichen) {
for (Auto auto : autos) {
if (auto.getKennzeichen().equals(kennzeichen)) {
return auto;
}
}
return null;
}
public void ausfahrt(String kennzeichen, Date ausfahrtZeit) {
Auto auto = autoFinden(kennzeichen);
if (auto == null) {
System.out.println("Das Auto mit dem eingegebenen Kennzeichen " + kennzeichen + " wurde nicht gefunden!");
return;
}
auto.setAusfahrtZeit(ausfahrtZeit);
double kosten = berechneParkKosten(auto);
System.out.println("Die Koste für das Fahrzeug mit dem eingegebenen Kennzeichen " + kennzeichen + "betragen:");
System.out.println(kosten);
autos.remove(auto);
platz += 1;
}
public double berechneParkKosten(Auto auto) { public double berechneParkKosten(Auto auto) {
Date einfahrtZeit = auto.getEinfahrtZeit(); Date einfahrtZeit = auto.getEinfahrtZeit();
Date ausfahrtZeit = auto.getAusfahrtZeit(); Date ausfahrtZeit = auto.getAusfahrtZeit();