testmerge #1

Open
3013009 wants to merge 10 commits from testmerge into dev
8 changed files with 324 additions and 152 deletions

View File

@ -5,6 +5,7 @@ public class Auto {
private String name; private String name;
private double co2AusstossProKm; private double co2AusstossProKm;
public Auto(String name, double co2AusstossProKm) { public Auto(String name, double co2AusstossProKm) {
this.name = name; this.name = name;
this.co2AusstossProKm = co2AusstossProKm; this.co2AusstossProKm = co2AusstossProKm;
@ -25,5 +26,5 @@ public class Auto {
public void setCO2AusstossProKm(double co2AusstossProKm) { public void setCO2AusstossProKm(double co2AusstossProKm) {
this.co2AusstossProKm = co2AusstossProKm; this.co2AusstossProKm = co2AusstossProKm;
} }
} }

View File

@ -1,19 +1,17 @@
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;
public class KurztripEmpfehlung { public class KurztripEmpfehlung {
User user;
private List<Ort> alleOrte; private List<Ort> alleOrte;
private Ort heimatort; private Ort heimatort;
public KurztripEmpfehlung() { public KurztripEmpfehlung(User user) {
this.alleOrte = ladeAlleOrte(); // this.alleOrte = ladeAlleOrte();
this.heimatort = null; this.heimatort = null;
} }
@ -32,7 +30,8 @@ public class KurztripEmpfehlung {
} }
for (Ort ort : alleOrte) { for (Ort ort : alleOrte) {
double entfernung = berechneEntfernung(heimatort, ort); Reiseplanung reise = new Reiseplanung(user, ort);
double entfernung = reise.berechneEntfernung(heimatort, ort);
if (entfernung <= maxEntfernung) { if (entfernung <= maxEntfernung) {
gefilterteOrte.add(ort); gefilterteOrte.add(ort);
} }
@ -57,7 +56,8 @@ public class KurztripEmpfehlung {
} }
for (Ort ort : alleOrte) { for (Ort ort : alleOrte) {
double entfernung = berechneEntfernung(heimatort, ort); Reiseplanung reise = new Reiseplanung(user, ort);
double entfernung = reise.berechneEntfernung(heimatort, ort);
if (entfernung >= minEntfernung) { if (entfernung >= minEntfernung) {
gefilterteOrte.add(ort); gefilterteOrte.add(ort);
} }
@ -90,53 +90,55 @@ public class KurztripEmpfehlung {
return zufallsorte; return zufallsorte;
} }
public double berechneEntfernung(Ort standort, Ort zielort) { // public double berechneEntfernung(Ort standort, Ort zielort) {
double b1 = Math.toRadians(standort.getBreitengrad()); // double b1 = Math.toRadians(standort.getBreitengrad());
double b2 = Math.toRadians(zielort.getBreitengrad()); // double b2 = Math.toRadians(zielort.getBreitengrad());
double l1 = Math.toRadians(standort.getLängengrad()); // double l1 = Math.toRadians(standort.getLängengrad());
double l2 = Math.toRadians(zielort.getLängengrad()); // double l2 = Math.toRadians(zielort.getLängengrad());
//
double deltaL = l2 - l1; // double deltaL = l2 - l1;
double cosDeltaL = Math.cos(deltaL); // double cosDeltaL = Math.cos(deltaL);
double acosArgument = Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * cosDeltaL; // double acosArgument = Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * cosDeltaL;
//
acosArgument = Math.max(-1.0, Math.min(1.0, acosArgument)); // acosArgument = Math.max(-1.0, Math.min(1.0, acosArgument));
//
double entfernung = 6378.388 * Math.acos(acosArgument); // double entfernung = 6378.388 * Math.acos(acosArgument);
//
return entfernung; // return entfernung;
} // }
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 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;
// }
String csvFile = "src/main/resources/PLZ.csv"; public Ort getHeimatort() {
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, breitengrad, 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 Object getHeimatort() {
return heimatort; return heimatort;
} }
} }

View File

@ -1,49 +1,25 @@
package domain; package domain;
import java.io.IOException; import java.io.IOException;
public class Ort { public class Ort {
private int plz; private int plz;
private String ortName; private String name;
private double breitengrad; public double breitengrad;
private 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.ortName = name; this.name = name;
} // this.breitengrad = breitengrad;
// this.längengrad = längengrad;
}
public Ort(int plz, String name, double breitengrad, double längengrad) {
this.plz = plz;
this.ortName = name;
this.breitengrad = breitengrad;
this.längengrad = längengrad;
}
public int getPLZ() {
return plz;
}
public String getOrtName() {
return ortName;
}
public double getBreitengrad() {
return breitengrad;
}
public double getLängengrad() {
return längengrad;
}
public String getAktuellesWetter() { public String getAktuellesWetter() {
try { try {
return WetterService.getAktuellesWetter(ortName); return WetterService.getAktuellesWetter(name);
} catch (IOException | InterruptedException e) { } catch (IOException | InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
return "Fehler beim Abrufen des aktuellen Wetters"; return "Fehler beim Abrufen des aktuellen Wetters";
@ -51,11 +27,30 @@ public class Ort {
} }
public String getWettervorhersage() { public String getWettervorhersage() {
try { try {
return WetterService.getWettervorhersage(ortName); return WetterService.getWettervorhersage(name);
} catch (IOException | InterruptedException e) { } catch (IOException | InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
return "Fehler beim Abrufen der Wettervorhersage"; return "Fehler beim Abrufen der Wettervorhersage";
} }
}
public String getName() {
return name;
}
public int getPLZ() {
return plz;
}
public double getBreitengrad() {
return breitengrad;
}
public double getLängengrad() {
return längengrad;
} }
} }

View File

@ -1,5 +1,6 @@
package domain; package domain;
import java.lang.Math;
public class Reiseplanung { public class Reiseplanung {
private Ort standort; private Ort standort;
@ -7,43 +8,67 @@ public class Reiseplanung {
private double entfernung; private double entfernung;
private double dauerPKW; private double dauerPKW;
private double dauerFahrrad; private double dauerFahrrad;
private double co2AusstoßPKW; private double co2AusstoßPKW;
public Reiseplanung(Ort standort, Ort zielort, double durchschnittsgeschwindigkeitPKW, public Reiseplanung(User user, Ort zielort) {
double durchschnittsgeschwindigkeitFahrrad, double co2AusstossProKmPKW) {
this.standort = standort;
this.zielort = zielort; this.zielort = zielort;
this.entfernung = berechneEntfernung(standort, zielort);
this.dauerPKW = entfernung / durchschnittsgeschwindigkeitPKW; Auto auto = user.getAuto();
this.dauerFahrrad = entfernung / durchschnittsgeschwindigkeitFahrrad; standort = user.getHeimatstandort();
this.co2AusstoßPKW = entfernung * co2AusstossProKmPKW; berechneEntfernung(this.standort, this.zielort);
dauerPKW = berechneDauer(user.getDurchschnittsgeschwindigkeitPKW());
dauerFahrrad = berechneDauer(user.getDurchschnittsgeschwindigkeitFahrrad());
berechneCO2Ausstoß(this.entfernung, auto);
} }
public double berechneEntfernung(Ort standort, Ort zielort) { public double berechneEntfernung(Ort standort, Ort zielort) {
double b1 = Math.toRadians(standort.getBreitengrad()); double b1 = Math.toRadians(standort.getBreitengrad());
double b2 = Math.toRadians(zielort.getBreitengrad()); double b2 = Math.toRadians(zielort.getBreitengrad());
double l1 = Math.toRadians(standort.getLängengrad()); double l1 = Math.toRadians(standort.getLängengrad());
double l2 = Math.toRadians(zielort.getLängengrad()); double l2 = Math.toRadians(zielort.getLängengrad());
return 6378.388 * Math.acos(Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * Math.cos(l2 - l1)); entfernung = (6378.388 * Math.acos(Math.sin(b1) * Math.sin(b2) + Math.cos(b1) * Math.cos(b2) * Math.cos(l2 - l1))) * 1.25;
}
public double getEntfernung() {
return entfernung; return entfernung;
} }
//berechnet die ungefähre Dauer zum gewählten Ort
public double berechneDauer(double geschwindigkeit) {
public String berechneReiseDauer(double durchschnittsgeschwindigkeit) { return entfernung/geschwindigkeit;
double dauer = entfernung / durchschnittsgeschwindigkeit;
return String.format("Die Reise dauert ca. %.2f Stunden.", dauer);
} }
public double berechneCO2Ausstoss() { //berechnet ungefähren CO2 Ausstoß des Autos für eine Strecke
public double berechneCO2Ausstoß(double entfernung, Auto auto) {
co2AusstoßPKW = entfernung * auto.getCO2AusstossProKm();
return co2AusstoßPKW; return co2AusstoßPKW;
} }
public double getEntfernung() {
return entfernung;
}
public String toString() {
return "Von " + standort + " Nach " + zielort + "\nEntfernung: " + entfernung + "\nReisedauer mit dem PKW: " + dauerPKW + "\nReiserdauer mit dem Fahrrad: " + dauerFahrrad + "\nCO2-Ausstoß durch PKW: " + co2AusstoßPKW;
}
// public Reiseplanung(Ort standort, Ort zielort, double durchschnittsgeschwindigkeitPKW,
// double durchschnittsgeschwindigkeitFahrrad, double co2AusstossProKmPKW) {
// this.standort = standort;
// this.zielort = zielort;
// this.entfernung = berechneEntfernung(standort, zielort);
// this.dauerPKW = entfernung / durchschnittsgeschwindigkeitPKW;
// this.dauerFahrrad = entfernung / durchschnittsgeschwindigkeitFahrrad;
// this.co2AusstoßPKW = entfernung * co2AusstossProKmPKW;
// }
// public String berechneReiseDauer(double durchschnittsgeschwindigkeit) {
// double dauer = entfernung / durchschnittsgeschwindigkeit;
// return String.format("Die Reise dauert ca. %.2f Stunden.", dauer);
// }
public double getDauerPKW() { public double getDauerPKW() {
return dauerPKW; return dauerPKW;
@ -53,7 +78,7 @@ public class Reiseplanung {
return dauerFahrrad; return dauerFahrrad;
} }
public double getCO2Ausstoß() {
return co2AusstoßPKW;
}
} }

View File

@ -12,7 +12,7 @@ public class User {
private String username; private String username;
private String hashedPassword; private String hashedPassword;
private Ort heimatstandort; private Ort heimatstandort;
private Auto auto; public Auto auto;
private double durchschnittsgeschwindigkeitPKW; private double durchschnittsgeschwindigkeitPKW;
private double durchschnittsgeschwindigkeitFahrrad; private double durchschnittsgeschwindigkeitFahrrad;
@ -83,7 +83,7 @@ public class User {
try (PrintWriter writer = new PrintWriter(new FileWriter("users.txt", true))) { try (PrintWriter writer = new PrintWriter(new FileWriter("users.txt", true))) {
writer.println(username + "," + hashedPassword + "," + heimatstandort.getPLZ() + "," writer.println(username + "," + hashedPassword + "," + heimatstandort.getPLZ() + ","
+ heimatstandort.getOrtName() + "," + auto.getName() + "," + auto.getCO2AusstossProKm() + "," + heimatstandort.getName() + "," + auto.getName() + "," + auto.getCO2AusstossProKm() + ","
+ durchschnittsgeschwindigkeitPKW + "," + durchschnittsgeschwindigkeitFahrrad); + durchschnittsgeschwindigkeitPKW + "," + durchschnittsgeschwindigkeitFahrrad);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
@ -114,7 +114,7 @@ public class User {
public String zeigeWetterHeimatstandort() { public String zeigeWetterHeimatstandort() {
try { try {
return WetterService.getAktuellesWetter(heimatstandort.getOrtName()); return WetterService.getAktuellesWetter(heimatstandort.getName());
} catch (IOException | InterruptedException e) { } catch (IOException | InterruptedException e) {
return "Fehler beim Abrufen des Wetters: " + e.getMessage(); return "Fehler beim Abrufen des Wetters: " + e.getMessage();
} }
@ -122,7 +122,7 @@ public class User {
public String zeigeWettervorhersageHeimatstandort() { public String zeigeWettervorhersageHeimatstandort() {
try { try {
return WetterService.getWettervorhersage(heimatstandort.getOrtName()); return WetterService.getWettervorhersage(heimatstandort.getName());
} catch (IOException | InterruptedException e) { } catch (IOException | InterruptedException e) {
return "Fehler beim Abrufen der Wettervorhersage: " + e.getMessage(); return "Fehler beim Abrufen der Wettervorhersage: " + e.getMessage();
} }

View File

@ -1,24 +1,118 @@
package fassade; package fassade;
import java.io.BufferedReader;
import java.util.List; import java.io.FileReader;
import java.io.IOException;
import domain.KurztripEmpfehlung; import java.util.ArrayList;
import domain.Ort; import domain.Ort;
import domain.Reiseplanung; import domain.Reiseplanung;
import domain.User; import domain.User;
import java.util.List;
import domain.KurztripEmpfehlung;
public class ReiseFassade { public class ReiseFassade {
private Reiseplanung reiseplanung;
private KurztripEmpfehlung kurztripEmpfehlung;
public ReiseFassade() { private Reiseplanung reiseplanung;
private KurztripEmpfehlung kurztripEmpfehlung;
this.kurztripEmpfehlung = new KurztripEmpfehlung(); User user;
} List<Ort> alleOrte;
public ReiseFassade(User user) {
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 {
//
// //UserInterface.class.getClass().getResourceAsStream("resources/PLZ.csv");
// Scanner sc = new Scanner(new File("resources/PLZ.csv"));
//
// int zähler = 0;
// while (sc.hasNextLine()) {
// String ort = sc.nextLine();
//
// String[] spalten = ort.split(";");
//
// orte.add(new Ort(Integer.parseInt(spalten[0]), spalten[1], Double.parseDouble(spalten[2]), Double.parseDouble(spalten[3])));
//
// zähler++;
// }
//
// System.out.println(zähler + "Orte geladen.");
// }
//gibt Trefferliste passend zum Suchbegriff zurück
public Ort[] sucheOrt(String suchbegriff) {
List<Ort> trefferliste = new ArrayList<>();
// String ausgabe = " ";
//gibt alle Orte zurück
if(suchbegriff.equals("alle"))
trefferliste = alleOrte;
else
//läuft über set 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);
}
//
// for(Ort o : trefferliste) {
// ausgabe = ausgabe + o.getName() + " Entfernung: " + new Reiseplanung(user, o).getEntfernung() + "\n";
// }
return trefferliste.toArray(new Ort[0]);
}
public String anzeigeTrefferliste(Ort[] trefferliste) {
String ausgabe = " ";
int i = 1;
for(Ort o : trefferliste) {
ausgabe = ausgabe + i + o.getName() + " Entfernung: " + new Reiseplanung(user, o).getEntfernung() + "\n";
i++;
}
return ausgabe;
}
public String ortAnzeige(int index, Ort[] trefferliste) {
String anzeige = " ";
anzeige = trefferliste[index-1].getName() + trefferliste[index-1].getPLZ() + trefferliste[index-1].getWettervorhersage();
return anzeige;
}
/*public Reiseplanung planeReise(Ort startort, Ort zielort) { /*public Reiseplanung planeReise(Ort startort, Ort zielort) {
Reiseplanung reiseplanung = new Reiseplanung(startort, zielort); Reiseplanung reiseplanung = new Reiseplanung(startort, zielort);
@ -28,7 +122,10 @@ public class ReiseFassade {
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());
@ -41,18 +138,19 @@ public class ReiseFassade {
} }
public String berechneReiseDauerPKW() { public String berechneReiseDauerPKW() {
return reiseplanung.berechneReiseDauer(reiseplanung.getDauerPKW()); double dauer = reiseplanung.berechneDauer(reiseplanung.getDauerPKW());
return String.format("Die Reise dauert ca. %.2f Stunden.", dauer);
} }
public String berechneReiseDauerFahrrad() { public String berechneReiseDauerFahrrad() {
return reiseplanung.berechneReiseDauer(reiseplanung.getDauerFahrrad()); double dauer = reiseplanung.berechneDauer(reiseplanung.getDauerFahrrad());
return String.format("Die Reise dauert ca. %.2f Stunden.", dauer);
} }
public double berechneCO2AusstossPKW() { public double berechneCO2AusstossPKW() {
return reiseplanung.berechneCO2Ausstoss(); return reiseplanung.getCO2Ausstoß();
} }
public List<Ort> zufallsorteFahrrad(int maxEntfernung) { public List<Ort> zufallsorteFahrrad(int maxEntfernung) {
return kurztripEmpfehlung.zufallsorteFahrrad(maxEntfernung); return kurztripEmpfehlung.zufallsorteFahrrad(maxEntfernung);
@ -61,6 +159,5 @@ public class ReiseFassade {
public List<Ort> zufallsortePKW(int minEntfernung) { public List<Ort> zufallsortePKW(int minEntfernung) {
return kurztripEmpfehlung.zufallsortePKW(minEntfernung); return kurztripEmpfehlung.zufallsortePKW(minEntfernung);
} }
} }

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;
@ -18,7 +17,7 @@ public class UserInterface {
public UserInterface() { public UserInterface() {
this.reiseFacade = new ReiseFassade(); this.reiseFacade = new ReiseFassade(user);
this.userFacade = new UserFassade(); this.userFacade = new UserFassade();
this.scanner = new Scanner(System.in); this.scanner = new Scanner(System.in);
start(); start();
@ -122,7 +121,7 @@ public class UserInterface {
reiseFacade.setHeimatortFromUser(user); reiseFacade.setHeimatortFromUser(user);
System.out.println("\nLogin erfolgreich! Willkommen zurück, " + user.getUsername() + "!"); System.out.println("\nLogin erfolgreich! Willkommen zurück, " + user.getUsername() + "!");
String wetter = user.zeigeWetterHeimatstandort(); String wetter = user.zeigeWetterHeimatstandort();
System.out.println("Aktuelles Wetter in " + user.getHeimatstandort().getOrtName() + ": " + wetter); System.out.println("Aktuelles Wetter in " + user.getHeimatstandort().getName() + ": " + wetter);
} else { } else {
System.out.println("\nBenutzername oder Passwort ist falsch:("); System.out.println("\nBenutzername oder Passwort ist falsch:(");
} }
@ -131,6 +130,18 @@ 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();
// reiseFacade.sucheOrt(ortName);
Ort[] trefferliste = reiseFacade.sucheOrt(ortName);
System.out.println(reiseFacade.anzeigeTrefferliste(trefferliste));
System.out.println("Wählen Sie einen Ort aus: ");
System.out.println("Geben Sie ´beenden` ein, um zu beenden");
String input = scanner.nextLine();
if(input == "beenden") {
return;
}
int eingabe = Integer.parseInt(input);
reiseFacade.ortAnzeige(eingabe, trefferliste);
/* /*
* 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 +154,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: " +
@ -166,7 +178,7 @@ public class UserInterface {
private void kurztripEmpfehlen() { private void kurztripEmpfehlen() {
if (user != null && user.getHeimatstandort() != null) { if (user != null && user.getHeimatstandort() != null) {
System.out.println("Empfehlung basiert auf Heimatort: " + user.getHeimatstandort().getOrtName()); System.out.println("Empfehlung basiert auf Heimatort: " + user.getHeimatstandort().getName());
reiseFacade.setHeimatortFromUser(user); reiseFacade.setHeimatortFromUser(user);
@ -181,7 +193,7 @@ public class UserInterface {
} 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.getName() + " (PLZ: " + ort.getPLZ() + ")");
} }
} }
break; break;
@ -192,7 +204,7 @@ public class UserInterface {
} 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.getName() + " (PLZ: " + ort.getPLZ() + ")");
} }
} }
break; break;

View File

@ -0,0 +1,40 @@
package domain;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class ReiseplanungTest {
Auto auto = new Auto("Brummi", 167.6);
Ort ort = new Ort(1067, "Dresden", 13.7210676148814, 51.0600336463379);
User user = new User("Karl", "hallo", ort, auto, 30, 15);
Ort ziel = new Ort(1705, "Freital", 13.6382950999229, 50.9981963286759);
Reiseplanung reise = new Reiseplanung(user,ziel);
@Test
public void testBerechneEntfernung() {
double result = reise.berechneEntfernung(ort, ziel);
assertEquals(14.2125, result, 0.0);
}
@Test
public void testBerechneDauer() {
double entfernung = 136.5;
double geschwindigkeit = 70;
double result = reise.berechneDauer(entfernung, geschwindigkeit);
assertEquals(1.95, result, 0.0);
}
public void testBerechneCO2Ausstoß() {
double entfernung = 73.8;
double result = reise.berechneCO2Ausstoß(entfernung, auto);
assertEquals(12368.88, result, 0.0);
}
}