Verbesserungen, Code anpassung, erste Testläufe, überarbeitung der Funktionen

main
Leon Maximilian Löhle 2024-10-02 10:51:31 +02:00
parent f311942804
commit 4c19b4c848
3 changed files with 88 additions and 48 deletions

View File

@ -4,23 +4,31 @@ public class Auto {
private String kennzeichen;
private Date einfahrtZeit;
private Date bezahlZeit;
private Date ausfahrtZeit;
private boolean eAuto;
public Auto(String kennzeichen, Date einfahrtZeit, Date bezahlZeit, Date ausfahrtZeit, boolean eAuto) {
public Auto(String kennzeichen, Date einfahrtZeit) {
this.kennzeichen = kennzeichen;
this.einfahrtZeit = einfahrtZeit;
this.bezahlZeit = bezahlZeit;
this.ausfahrtZeit = ausfahrtZeit;
this.eAuto = eAuto;
}
public String getKennzeichen() {return kennzeichen;}
public Date getEinfahrtZeit() {return einfahrtZeit;}
public Date getBezahlZeit() {return bezahlZeit;}
public Date getAusfahrtZeit() {return ausfahrtZeit;}
public boolean getEAuto() {return eAuto;}
public String getKennzeichen() {
return kennzeichen;
}
public Date getEinfahrtZeit() {
return einfahrtZeit;
}
public Date getAusfahrtZeit() {
return ausfahrtZeit;
}
public boolean getEAuto() {
return eAuto;
}
public void setKennzeichen(String kennzeichen) {
this.kennzeichen = kennzeichen;
@ -30,10 +38,6 @@ public class Auto {
this.einfahrtZeit = einfahrtZeit;
}
public void setBezahlZeit(Date bezahlZeit) {
this.bezahlZeit = bezahlZeit;
}
public void setAusfahrtZeit(Date ausfahrtZeit) {
this.ausfahrtZeit = ausfahrtZeit;
}
@ -41,4 +45,10 @@ public class Auto {
public void setEAuto(boolean eAuto) {
this.eAuto = eAuto;
}
private boolean iseAuto() {
String letztesSymbol = kennzeichen.charAt(kennzeichen.length() - 1) + "";
return (letztesSymbol.equals("E") || letztesSymbol.equals("e"));
}
}

View File

@ -1,2 +1,32 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
Parkhaus parkhaus = new Parkhaus(1.0);
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 :");
String kennzeichenAusfahrt = sc.nextLine();
System.out.println(parkhaus.berechneParkKosten(auto));
}
}

View File

@ -1,11 +1,12 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Parkhaus {
private double maxNachtPreis;
private double preis;
private double maxTagesPreis;
private int maxParkPlatz;
private Auto[] parkendeAutos;
private int anzahlParkendeAutos;
private List<Auto> autos;
public double getMaxNachtPreis() {
return maxNachtPreis;
@ -15,55 +16,54 @@ public class Parkhaus {
return maxTagesPreis;
}
public int getMaxParkPlatz() {
return maxParkPlatz;
public Parkhaus(double preis) {
this.preis = 1.0;
this.maxNachtPreis = 5;
this.maxTagesPreis = 15;
this.autos = new ArrayList<Auto>();
}
public Parkhaus(double preis){
this.preis = 1.0;
this.maxNachtPreis = 5;
this.maxTagesPreis = 15;
this.maxParkPlatz = 100;
this.parkendeAutos = new Auto[maxParkPlatz];
this.anzahlParkendeAutos = 0;
public void addAuto(Auto auto) {
autos.add(auto);
}
public double getPreis() {return preis;}
public double getPreis() {
return preis;
}
public void setPreis(double preis) {
this.preis = preis;
}
public double berechneParkKosten (Auto auto){
public double berechneParkKosten(Auto auto) {
Date einfahrtZeit = auto.getEinfahrtZeit();
Date ausfahrtZeit = auto.getAusfahrtZeit();
int einFahrtStunde = auto.getEinfahrtZeit().getHours();
int ausFahrtStunde = auto.getAusfahrtZeit().getHours();
long parkDauerMinuten = (auto.getAusfahrtZeit().getTime() - auto.getEinfahrtZeit().getTime());
double kosten = 0;
double kosten;
long parkDauerMinuten = (auto.getBezahlZeit().getTime()-auto.getEinfahrtZeit().getTime());
if (einFahrtStunde >= 20 && ausFahrtStunde <= 06){
if (einFahrtStunde >= 20 || ausFahrtStunde <= 06) {
if (parkDauerMinuten <= 15) {
return 0;
}
kosten = maxNachtPreis;
}
} else {
if (parkDauerMinuten <= 15) {
return 0;
}
parkDauerMinuten -= 15;
long parkDauerStunden = (parkDauerMinuten / 60) + 1;
kosten = parkDauerStunden * preis;
if (parkDauerMinuten <= 15){
return 0;
if (parkDauerStunden > 24) {
kosten = maxTagesPreis;
}
}
parkDauerMinuten -= 15;
long parkDauerStunden = (parkDauerMinuten/60)+1;
kosten = parkDauerStunden*preis;
if (parkDauerStunden > 24){
kosten = maxTagesPreis*parkDauerStunden/24;
if (auto.getEAuto()) {
kosten *= 0.8;
}
if (auto.getEAuto() == true){
kosten*=0.8;
}
return kosten;
}
}