ü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;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
@ -14,7 +11,7 @@ public class KurztripEmpfehlung {
private Ort heimatort;
public KurztripEmpfehlung(User user) {
this.alleOrte = ladeAlleOrte();
// this.alleOrte = ladeAlleOrte();
this.heimatort = null;
}
@ -112,34 +109,34 @@ public class KurztripEmpfehlung {
private 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;
}
// private 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;
// }
public Ort getHeimatort() {
return heimatort;

View File

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

View File

@ -1,10 +1,9 @@
package fassade;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import domain.Ort;
import domain.Reiseplanung;
import domain.User;
@ -17,15 +16,44 @@ public class ReiseFassade {
private Reiseplanung reiseplanung;
private KurztripEmpfehlung kurztripEmpfehlung;
User user;
private Set<Ort> orte;
List<Ort> alleOrte;
public ReiseFassade(User user) {
orte = new HashSet<>();
alleOrte = ladeAlleOrte();
// 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
// private void orteLaden() throws FileNotFoundException {
@ -49,15 +77,15 @@ private KurztripEmpfehlung kurztripEmpfehlung;
//gibt Trefferliste passend zum Suchbegriff zurück
public String sucheOrt(String suchbegriff) {
Set<Ort> trefferliste = new HashSet<>();
List<Ort> trefferliste = new ArrayList<>();
String ausgabe = " ";
//gibt alle Orte zurück
if(suchbegriff.equals("alle"))
trefferliste = orte;
trefferliste = alleOrte;
else
//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
if(o.getName().contains(suchbegriff) && trefferliste.size()<8)
trefferliste.add(o);
@ -81,7 +109,10 @@ private KurztripEmpfehlung kurztripEmpfehlung;
reiseplanung.berechneCo2Ausstoss();
return reiseplanung;
}*/
public String getReiseplanung(User user, Ort ziel) {
reiseplanung = new Reiseplanung(user, ziel);
return reiseplanung.toString();
}
public void setHeimatortFromUser(User user) {
kurztripEmpfehlung.setHeimatort(user.getHeimatstandort());

View File

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