Erweiterung der Klassen um weitere Methoden und Attributen
parent
adfe0e333a
commit
ba09391490
|
@ -1,4 +1,30 @@
|
||||||
package QualifierTeil2;
|
package QualifierTeil2;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class Main extends UI {
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) throws ParseException {
|
||||||
|
|
||||||
|
einfahrtPKW();
|
||||||
|
ausfahrtPKW();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// --------------------------------Hilfsmethoden--------------------------------------
|
||||||
|
|
||||||
|
|
||||||
public class Main {
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,54 @@
|
||||||
package QualifierTeil2;
|
package QualifierTeil2;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
public class PKW {
|
public class PKW {
|
||||||
|
String kennzeichen;
|
||||||
|
String einfahrt;
|
||||||
|
String ausfahrt;
|
||||||
|
|
||||||
|
public PKW() {
|
||||||
|
this.kennzeichen = generiereKennzeichen();
|
||||||
|
this.einfahrt = gebeAktuelleZeit();
|
||||||
|
this.ausfahrt = gebeAktuelleZeit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String gebeAktuelleZeit(){
|
||||||
|
var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
return sdf.format(new Date());
|
||||||
|
}
|
||||||
|
|
||||||
|
public String generiereKennzeichen(){
|
||||||
|
Random random = new Random();
|
||||||
|
|
||||||
|
// 2 bis 3 Buchstaben für Stadt/Region
|
||||||
|
String stadtRegion = randomString(random, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", random.nextInt(2) + 2);
|
||||||
|
|
||||||
|
// 1 bis 2 Buchstaben für Fahrzeugklasse
|
||||||
|
String fahrzeugKlasse = randomString(random, "ABCDEFGHIJKLMNOPQRSTUVWXYZ", random.nextInt(2) + 1);
|
||||||
|
|
||||||
|
// 1 bis 4 Ziffern für die Nummer
|
||||||
|
String nummer = randomString(random, "0123456789", random.nextInt(4) + 1);
|
||||||
|
|
||||||
|
// Optional ein "E" für Elektrofahrzeuge
|
||||||
|
String elektro = random.nextBoolean() ? "E" : "";
|
||||||
|
|
||||||
|
// Zusammenfügen des Kennzeichens
|
||||||
|
return stadtRegion + "-" + fahrzeugKlasse + " " + nummer + elektro;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hilfsmethode zur Erzeugung einer zufälligen Zeichenkette
|
||||||
|
private static String randomString(Random random, String zeichen, int laenge) {
|
||||||
|
StringBuilder sb = new StringBuilder(laenge);
|
||||||
|
for (int i = 0; i < laenge; i++) {
|
||||||
|
sb.append(zeichen.charAt(random.nextInt(zeichen.length())));
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,68 @@
|
||||||
package QualifierTeil2;
|
package QualifierTeil2;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
public class Parkhaus {
|
public class Parkhaus {
|
||||||
|
int anzahlParkplätze;
|
||||||
|
long parkdauer;
|
||||||
|
double parkgebühren;
|
||||||
|
|
||||||
|
public Parkhaus() {
|
||||||
|
this.anzahlParkplätze = randomAnzahlParkplätze();
|
||||||
|
this.parkdauer = berechneParkdauer();
|
||||||
|
this.parkgebühren = berechneParkgebuehr();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int randomAnzahlParkplätze(){
|
||||||
|
return (int) (Math.random() * 200) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static long berechneParkdauer(){
|
||||||
|
var sdf = new SimpleDateFormat("dd.MM.yyyy, HH:mm");
|
||||||
|
|
||||||
|
Date d1 = null;
|
||||||
|
try {
|
||||||
|
d1 = sdf.parse("01.10.2024, 9:45");
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
Date d2 = null;
|
||||||
|
try {
|
||||||
|
d2 = sdf.parse("01.10.2024, 11:45");
|
||||||
|
} catch (ParseException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
long minDiff = (d2.getTime() - d1.getTime()) / 60000;
|
||||||
|
|
||||||
|
return minDiff;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int berechneParkgebuehr(){
|
||||||
|
long pd = this.parkdauer;
|
||||||
|
int gebuehr = 0;
|
||||||
|
|
||||||
|
if (pd == 1440){
|
||||||
|
gebuehr = 1500;
|
||||||
|
pd = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Wenn zu zahlenden Parkdauer vorhanden ist, sind die ersten 15 min kostenlos
|
||||||
|
if (pd > 0){
|
||||||
|
pd = pd - 15;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Wenn noch zu zahlenden Parkdauer vorhanden ist, wird der Rest mit 1€ pro 1h angerechnet.
|
||||||
|
if (pd > 0){
|
||||||
|
while (pd > 0) {
|
||||||
|
gebuehr += 100;
|
||||||
|
pd -= 60;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return gebuehr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package QualifierTeil2;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
|
||||||
|
public class UI {
|
||||||
|
static Parkhaus parkhaus1 = new Parkhaus();
|
||||||
|
static PKW pkw1 = new PKW();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void einfahrtPKW() {
|
||||||
|
|
||||||
|
System.out.println("Willkommen im Parkhaus BYE am Hauptbahnhof!");
|
||||||
|
System.out.println("Kennzeichen " + pkw1.kennzeichen + " wurde erfasst.");
|
||||||
|
System.out.println("Einfahrt: " + pkw1.einfahrt);
|
||||||
|
System.out.println("Schranke öffnet sich.");
|
||||||
|
System.out.println("Verfügbare Parkplätze: " + parkhaus1.anzahlParkplätze);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ausfahrtPKW(){
|
||||||
|
System.out.println("Parkdauer in Minuten: " + parkhaus1.parkdauer);
|
||||||
|
System.out.println("Parkgebühren in Cent: " + parkhaus1.parkgebühren);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue