Erweiterung der Klassen um weitere Methoden und Attributen
parent
adfe0e333a
commit
ba09391490
|
@ -1,4 +1,30 @@
|
|||
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;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Random;
|
||||
|
||||
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;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
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