Entfernung für KrztripEmpfehlung hinzugefügt

dev
danai 2024-06-17 23:53:27 +02:00
parent 91dcafc607
commit ea03bd0fa4
3 changed files with 27 additions and 8 deletions

View File

@ -43,7 +43,7 @@ public class KurztripEmpfehlung {
return gefilterteOrte; return gefilterteOrte;
} }
return zufallsorteAuswaehlen(gefilterteOrte, Math.min(3, gefilterteOrte.size())); return zufallsorteAuswaehlen(gefilterteOrte, 3);
} }
@ -68,7 +68,7 @@ public class KurztripEmpfehlung {
return gefilterteOrte; return gefilterteOrte;
} }
return zufallsorteAuswaehlen(gefilterteOrte, Math.min(3, gefilterteOrte.size())); return zufallsorteAuswaehlen(gefilterteOrte, 3);
} }
private List<Ort> zufallsorteAuswaehlen(List<Ort> orte, int anzahl) { private List<Ort> zufallsorteAuswaehlen(List<Ort> orte, int anzahl) {

View File

@ -3,6 +3,7 @@ package ui;
import java.util.List; import java.util.List;
import java.util.Scanner; import java.util.Scanner;
import domain.KurztripEmpfehlung;
import domain.Ort; import domain.Ort;
import domain.Reiseplanung; import domain.Reiseplanung;
import domain.User; import domain.User;
@ -173,33 +174,50 @@ public class UserInterface {
System.out.print("Wählen Sie ein Transportmittel (Fahrrad/Auto): "); System.out.print("Wählen Sie ein Transportmittel (Fahrrad/Auto): ");
String transportmittel = scanner.nextLine().trim().toLowerCase(); String transportmittel = scanner.nextLine().trim().toLowerCase();
List<Ort> empfohleneOrte = null;
switch (transportmittel) { switch (transportmittel) {
case "fahrrad": case "fahrrad":
List<Ort> fahrradOrte = reiseFacade.zufallsorteFahrrad(10000); empfohleneOrte = reiseFacade.zufallsorteFahrrad(10000);
if (fahrradOrte.isEmpty()) { //List<Ort> fahrradOrte = reiseFacade.zufallsorteFahrrad(10000);
/*if (fahrradOrte.isEmpty()) {
System.out.println("Keine Orte innerhalb von 100 km gefunden."); System.out.println("Keine Orte innerhalb von 100 km gefunden.");
} else { } else {
System.out.println("Folgende Orte wurden für einen Fahrrad-Kurztrip empfohlen:"); System.out.println("Folgende Orte wurden für einen Fahrrad-Kurztrip empfohlen:");
for (Ort ort : fahrradOrte) { for (Ort ort : fahrradOrte) {
System.out.println("- " + ort.getOrtName() + " (PLZ: " + ort.getPLZ() + ")"); System.out.println("- " + ort.getOrtName() + " (PLZ: " + ort.getPLZ() + ")");
} }
} }*/
break; break;
case "auto": case "auto":
List<Ort> autoOrte = reiseFacade.zufallsortePKW(150); empfohleneOrte = reiseFacade.zufallsortePKW(150);
if (autoOrte.isEmpty()) { //List<Ort> autoOrte = reiseFacade.zufallsortePKW(150);
/*if (autoOrte.isEmpty()) {
System.out.println("Keine Orte mindestens 150 km entfernt gefunden."); System.out.println("Keine Orte mindestens 150 km entfernt gefunden.");
} else { } else {
System.out.println("Folgende Orte wurden für einen Auto-Kurztrip empfohlen:"); System.out.println("Folgende Orte wurden für einen Auto-Kurztrip empfohlen:");
for (Ort ort : autoOrte) { for (Ort ort : autoOrte) {
System.out.println("- " + ort.getOrtName() + " (PLZ: " + ort.getPLZ() + ")"); System.out.println("- " + ort.getOrtName() + " (PLZ: " + ort.getPLZ() + ")");
} }
} }*/
break; break;
default: default:
System.out.println("Ungültige Option. Bitte wählen Sie entweder 'Fahrrad' oder 'Auto'."); System.out.println("Ungültige Option. Bitte wählen Sie entweder 'Fahrrad' oder 'Auto'.");
break; break;
} }
if (!empfohleneOrte.isEmpty()) {
System.out.println("Empfohlene Orte:");
KurztripEmpfehlung kurztripEmpfehlung = new KurztripEmpfehlung();
for (Ort ort : empfohleneOrte) {
double entfernung = kurztripEmpfehlung.berechneEntfernung(user.getHeimatstandort(), ort);
System.out.printf("- %s (PLZ: %d, Entfernung: %.1f km)%n", ort.getOrtName(), ort.getPLZ(), entfernung);
}
} else {
System.out.println("Keine Orte gefunden.");
}
} else { } else {
System.out.println("Bitte zuerst einloggen und Heimatort angeben!"); System.out.println("Bitte zuerst einloggen und Heimatort angeben!");
} }

View File

@ -1,3 +1,4 @@
dana,a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3,67105,Schifferstadt,audi,123.0,60.0,30.0 dana,a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3,67105,Schifferstadt,audi,123.0,60.0,30.0
max,a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3,555,berlin,audi,12.0,23.0,34.0 max,a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3,555,berlin,audi,12.0,23.0,34.0
tina,a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3,1328,Dresden,audi,12.0,34.0,56.0 tina,a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3,1328,Dresden,audi,12.0,34.0,56.0
dan,0ffe1abd1a08215353c233d6e009613e95eec4253832a761af28ff37ac5a150c,76131,Karlsruhe,tesla,23.0,120.0,40.0