überarbeiteter merge, UI erweitert
parent
1dcecea263
commit
d7a46eef78
|
@ -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;
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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: " +
|
||||||
|
|
Loading…
Reference in New Issue