überarbeiteter merge, UI erweitert

testmerge
Caro 2024-06-17 22:43:43 +02:00
parent 1dcecea263
commit d7a46eef78
4 changed files with 83 additions and 54 deletions

View File

@ -1,8 +1,5 @@
package domain; package domain;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
@ -14,7 +11,7 @@ public class KurztripEmpfehlung {
private Ort heimatort; private Ort heimatort;
public KurztripEmpfehlung(User user) { public KurztripEmpfehlung(User user) {
this.alleOrte = ladeAlleOrte(); // this.alleOrte = ladeAlleOrte();
this.heimatort = null; this.heimatort = null;
} }
@ -112,34 +109,34 @@ public class KurztripEmpfehlung {
private List<Ort> ladeAlleOrte() { // private List<Ort> ladeAlleOrte() {
List<Ort> alleOrte = new ArrayList<>(); // List<Ort> alleOrte = new ArrayList<>();
//
String csvFile = "src/main/resources/PLZ.csv"; // String csvFile = "src/main/resources/PLZ.csv";
String line; // String line;
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { // try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
while ((line = br.readLine()) != null) { // while ((line = br.readLine()) != null) {
line = line.replaceAll("\\s+", ""); // line = line.replaceAll("\\s+", "");
String[] data = line.split(";"); // String[] data = line.split(";");
int plz = Integer.parseInt(data[0].replaceAll("\"", "")); // int plz = Integer.parseInt(data[0].replaceAll("\"", ""));
String ortName = data[1].replaceAll("\"", ""); // String ortName = data[1].replaceAll("\"", "");
double breitengrad = Double.parseDouble(data[2].replaceAll("\"", "")); // double breitengrad = Double.parseDouble(data[2].replaceAll("\"", ""));
double laengengrad = Double.parseDouble(data[3].replaceAll("\"", "")); // double laengengrad = Double.parseDouble(data[3].replaceAll("\"", ""));
Ort ort = new Ort(plz, ortName); // Ort ort = new Ort(plz, ortName);
ort.breitengrad = breitengrad; // ort.breitengrad = breitengrad;
ort.längengrad = laengengrad; // ort.längengrad = laengengrad;
alleOrte.add(ort); // alleOrte.add(ort);
} // }
} catch (IOException e) { // } catch (IOException e) {
System.err.println("Fehler beim Lesen der Datei: " + e.getMessage()); // System.err.println("Fehler beim Lesen der Datei: " + e.getMessage());
e.printStackTrace(); // e.printStackTrace();
} catch (NumberFormatException | ArrayIndexOutOfBoundsException e) { // } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) {
System.err.println("Fehlerhaftes Datenformat in der CSV-Datei: " + e.getMessage()); // System.err.println("Fehlerhaftes Datenformat in der CSV-Datei: " + e.getMessage());
e.printStackTrace(); // e.printStackTrace();
} // }
//
return alleOrte; // return alleOrte;
} // }
public Ort getHeimatort() { public Ort getHeimatort() {
return heimatort; return heimatort;

View File

@ -7,14 +7,14 @@ public class Ort {
private int plz; private int plz;
private String name; private String name;
double breitengrad; public double breitengrad;
double längengrad; public double längengrad;
public Ort(int plz, String name) { public Ort(int plz, String name) {
this.plz = plz; this.plz = plz;
this.name = name; this.name = name;
this.breitengrad = breitengrad; // this.breitengrad = breitengrad;
this.längengrad = längengrad; // this.längengrad = längengrad;
} }
public String getAktuellesWetter() { public String getAktuellesWetter() {

View File

@ -1,10 +1,9 @@
package fassade; package fassade;
import java.io.File; import java.io.BufferedReader;
import java.io.FileNotFoundException; import java.io.FileReader;
import java.util.HashSet; import java.io.IOException;
import java.util.Scanner; import java.util.ArrayList;
import java.util.Set;
import domain.Ort; import domain.Ort;
import domain.Reiseplanung; import domain.Reiseplanung;
import domain.User; import domain.User;
@ -17,15 +16,44 @@ public class ReiseFassade {
private Reiseplanung reiseplanung; private Reiseplanung reiseplanung;
private KurztripEmpfehlung kurztripEmpfehlung; private KurztripEmpfehlung kurztripEmpfehlung;
User user; User user;
private Set<Ort> orte; List<Ort> alleOrte;
public ReiseFassade(User user) { public ReiseFassade(User user) {
orte = new HashSet<>();
alleOrte = ladeAlleOrte();
// this.kurztripEmpfehlung = new KurztripEmpfehlung(); // this.kurztripEmpfehlung = new KurztripEmpfehlung();
} }
public List<Ort> ladeAlleOrte() {
List<Ort> alleOrte = new ArrayList<>();
String csvFile = "src/main/resources/PLZ.csv";
String line;
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
while ((line = br.readLine()) != null) {
line = line.replaceAll("\\s+", "");
String[] data = line.split(";");
int plz = Integer.parseInt(data[0].replaceAll("\"", ""));
String ortName = data[1].replaceAll("\"", "");
double breitengrad = Double.parseDouble(data[2].replaceAll("\"", ""));
double laengengrad = Double.parseDouble(data[3].replaceAll("\"", ""));
Ort ort = new Ort(plz, ortName);
ort.breitengrad = breitengrad;
ort.längengrad = laengengrad;
alleOrte.add(ort);
}
} catch (IOException e) {
System.err.println("Fehler beim Lesen der Datei: " + e.getMessage());
e.printStackTrace();
} catch (NumberFormatException | ArrayIndexOutOfBoundsException e) {
System.err.println("Fehlerhaftes Datenformat in der CSV-Datei: " + e.getMessage());
e.printStackTrace();
}
return alleOrte;
}
// //lädt Datei aus rescources ein und speichert Orte in HashSet ab // //lädt Datei aus rescources ein und speichert Orte in HashSet ab
// private void orteLaden() throws FileNotFoundException { // private void orteLaden() throws FileNotFoundException {
@ -49,15 +77,15 @@ private KurztripEmpfehlung kurztripEmpfehlung;
//gibt Trefferliste passend zum Suchbegriff zurück //gibt Trefferliste passend zum Suchbegriff zurück
public String sucheOrt(String suchbegriff) { public String sucheOrt(String suchbegriff) {
Set<Ort> trefferliste = new HashSet<>(); List<Ort> trefferliste = new ArrayList<>();
String ausgabe = " "; String ausgabe = " ";
//gibt alle Orte zurück //gibt alle Orte zurück
if(suchbegriff.equals("alle")) if(suchbegriff.equals("alle"))
trefferliste = orte; trefferliste = alleOrte;
else else
//läuft über set orte //läuft über set orte
for(Ort o : orte) { for(Ort o : alleOrte) {
//fügt ort zur Trefferliste hinzu wenn der Suchbegriff im Namen ist und weniger als 8 Orte bereits drauf stehen //fügt ort zur Trefferliste hinzu wenn der Suchbegriff im Namen ist und weniger als 8 Orte bereits drauf stehen
if(o.getName().contains(suchbegriff) && trefferliste.size()<8) if(o.getName().contains(suchbegriff) && trefferliste.size()<8)
trefferliste.add(o); trefferliste.add(o);
@ -81,7 +109,10 @@ private KurztripEmpfehlung kurztripEmpfehlung;
reiseplanung.berechneCo2Ausstoss(); reiseplanung.berechneCo2Ausstoss();
return reiseplanung; return reiseplanung;
}*/ }*/
public String getReiseplanung(User user, Ort ziel) {
reiseplanung = new Reiseplanung(user, ziel);
return reiseplanung.toString();
}
public void setHeimatortFromUser(User user) { public void setHeimatortFromUser(User user) {
kurztripEmpfehlung.setHeimatort(user.getHeimatstandort()); kurztripEmpfehlung.setHeimatort(user.getHeimatstandort());

View File

@ -4,7 +4,6 @@ import java.util.List;
import java.util.Scanner; import java.util.Scanner;
import domain.Ort; import domain.Ort;
import domain.Reiseplanung;
import domain.User; import domain.User;
import fassade.ReiseFassade; import fassade.ReiseFassade;
import fassade.UserFassade; import fassade.UserFassade;
@ -131,6 +130,7 @@ public class UserInterface {
private void sucheOrt() { private void sucheOrt() {
System.out.print("Geben Sie den Namen des Ortes ein: "); System.out.print("Geben Sie den Namen des Ortes ein: ");
String ortName = scanner.nextLine(); String ortName = scanner.nextLine();
System.out.println(reiseFacade.sucheOrt(ortName));
/* /*
* List<Ort> treffer = reiseFacade.sucheOrt(ortName); if (treffer.isEmpty()) { * List<Ort> treffer = reiseFacade.sucheOrt(ortName); if (treffer.isEmpty()) {
* System.out.println("Keine Treffer gefunden."); } else { * System.out.println("Keine Treffer gefunden."); } else {
@ -143,17 +143,18 @@ public class UserInterface {
} }
private void planeReise() { private void planeReise() {
System.out.print("Geben Sie Ihre Start-PLZ ein: "); // System.out.print("Geben Sie Ihre Start-PLZ ein: ");
int startPlz = Integer.parseInt(scanner.nextLine()); // int startPlz = Integer.parseInt(scanner.nextLine());
System.out.print("Geben Sie Ihren Startort ein: "); // System.out.print("Geben Sie Ihren Startort ein: ");
String startOrtName = scanner.nextLine(); // String startOrtName = scanner.nextLine();
Ort startort = new Ort(startPlz, startOrtName); // Ort startort = new Ort(startPlz, startOrtName);
System.out.print("Geben Sie die Ziel-PLZ ein: "); System.out.print("Geben Sie die Ziel-PLZ ein: ");
int zielPlz = Integer.parseInt(scanner.nextLine()); int zielPlz = Integer.parseInt(scanner.nextLine());
System.out.print("Geben Sie den Zielort ein: "); System.out.print("Geben Sie den Zielort ein: ");
String zielOrtName = scanner.nextLine(); String zielOrtName = scanner.nextLine();
Ort zielort = new Ort(zielPlz, zielOrtName); Ort zielort = new Ort(zielPlz, zielOrtName);
System.out.println(reiseFacade.getReiseplanung(user, zielort));
/* /*
* Reiseplanung reise = reiseFacade.planeReise(startort, zielort); * Reiseplanung reise = reiseFacade.planeReise(startort, zielort);
* System.out.println("Reiseplanung:"); System.out.println("Entfernung: " + * System.out.println("Reiseplanung:"); System.out.println("Entfernung: " +