commit ff43a6eec8203f3e6f20a960841d7406d24b4654 Author: Marc Michalsky Date: Sun Apr 12 14:39:14 2020 +0200 initial commit diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/description.html b/.idea/description.html new file mode 100644 index 0000000..db5f129 --- /dev/null +++ b/.idea/description.html @@ -0,0 +1 @@ +Simple Java application that includes a class with main() method \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..146ab09 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..68801dd --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..a2c6ede --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/project-template.xml b/.idea/project-template.xml new file mode 100644 index 0000000..1f08b88 --- /dev/null +++ b/.idea/project-template.xml @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d21276b --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# frachtflüge +![Aufgabe](img/frachtfluege_Bild.png) \ No newline at end of file diff --git a/frachtfluege.iml b/frachtfluege.iml new file mode 100644 index 0000000..d5c0743 --- /dev/null +++ b/frachtfluege.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/img/frachtfluege_Bild.png b/img/frachtfluege_Bild.png new file mode 100644 index 0000000..2527456 Binary files /dev/null and b/img/frachtfluege_Bild.png differ diff --git a/out/production/frachtfluege/gfn/marc/Frachtfluege.class b/out/production/frachtfluege/gfn/marc/Frachtfluege.class new file mode 100644 index 0000000..68814d9 Binary files /dev/null and b/out/production/frachtfluege/gfn/marc/Frachtfluege.class differ diff --git a/out/production/frachtfluege/gfn/marc/Ort.class b/out/production/frachtfluege/gfn/marc/Ort.class new file mode 100644 index 0000000..c3a6ac5 Binary files /dev/null and b/out/production/frachtfluege/gfn/marc/Ort.class differ diff --git a/out/production/frachtfluege/gfn/marc/Routen.class b/out/production/frachtfluege/gfn/marc/Routen.class new file mode 100644 index 0000000..8562d9f Binary files /dev/null and b/out/production/frachtfluege/gfn/marc/Routen.class differ diff --git a/src/gfn/marc/Frachtfluege.java b/src/gfn/marc/Frachtfluege.java new file mode 100644 index 0000000..79154e4 --- /dev/null +++ b/src/gfn/marc/Frachtfluege.java @@ -0,0 +1,9 @@ +package gfn.marc; + +public class Frachtfluege { + + public static void main(String[] args) { + + String[][] route = Routen.getRoute("A", "B"); + } +} diff --git a/src/gfn/marc/Routen.java b/src/gfn/marc/Routen.java new file mode 100644 index 0000000..e80d1d2 --- /dev/null +++ b/src/gfn/marc/Routen.java @@ -0,0 +1,90 @@ +package gfn.marc; + +// Hilfsklasse zur Simulation der Aufgabenstellung + +import java.util.*; + +import static java.util.Map.entry; + +public class Routen { + + static Ort a = new Ort("A", 1600, 5.6); + static Ort b = new Ort("B", 1800, 5.2); + static Ort c = new Ort("C", 1300, 5.5); + static Ort d = new Ort("D", 1450, 4.9); + static Ort e = new Ort("E", 1400, 5.1); + + static { + a.setKnoten(b, c, d); + b.setKnoten(a, c, e); + c.setKnoten(a, b); + d.setKnoten(a, e); + e.setKnoten(b, d); + + a.berechneRouten(); + b.berechneRouten(); + c.berechneRouten(); + d.berechneRouten(); + e.berechneRouten(); + } + + public static String[][] getRoute(String SB, String SE) { + for (Ort ort : Ort.orte) { + if (ort.id.matches(SB)) { + return ort.routen.get(SB.concat(SE)); + } + } + return null; + } + +} + +class Ort { + static ArrayList orte = new ArrayList<>(); + String id; + int frachtkapazitaet; + double frachtkosten; // EUR/kg + ArrayList knoten; + HashMap knotenMap; + HashMap routen; + + public Ort(String id, int frachtkapazitaet, double frachtkosten) { + this.id = id; + this.frachtkapazitaet = frachtkapazitaet; + this.frachtkosten = frachtkosten; + Ort.orte.add(this); + } + + public void setKnoten(Ort... knotenArray) { + ArrayList knoten = new ArrayList<>(); + HashMap knotenMap = new HashMap<>(); + for (Ort k : knotenArray) { + knoten.add(k); + knotenMap.put(k.id, k); + } + this.knoten = knoten; + this.knotenMap = knotenMap; + } + + void berechneRouten() { + HashMap routen = new HashMap<>(); + for (Ort o : orte) { + if (!this.id.equals(o.id)) { + routen.put(this.id.concat(o.id), new String[this.knoten.size()][orte.size()]); + + for (int i = 0; i < routen.get(this.id.concat(o.id)).length; i++) { + routen.get(this.id.concat(o.id))[i][0] = this.id; + for (int j = 1; j < routen.get(this.id.concat(o.id))[i].length; j++) { + if (routen.get(this.id.concat(o.id))[i][j].isBlank()) { + + // TODO: Hier weitermachen! + + } + } + } + } + } + } + this.routen = routen; + } +}