Hallo Zusammen
Ich sitze hier schon ziemlich lange, um meine Fehler in diesem Quellcode zu finden. Es funktioniert alles schon in etwa, wie es sollte, bis auf ein paar Macken.
Also es geht um die Methode list() ab Zeile 97.
Also, ich habe folgenden Quellcode
mit folgender Ausgabe auf der
Die Ausgabe sollte aber folgendermassen aussehen
Bei "Start in:" wird die Zahl angegeben, dort sollte aber der Name stehen
Dann sollte anstatt "Von Aachen nach Aachen" "Von Erfurt nach Flensburg"
550km angezeigt werden.
Danach funktioniert alles bestens.
Bis nach Ausgabe der Gesamtstrecke wieder nach der nächsten Stadt gefragt wird, es sollte eigentlich beendet werden.
Könnte mir viellicht jemand erklären, wie es dazu kommt?
Vielen Dank
Sophie
Ich sitze hier schon ziemlich lange, um meine Fehler in diesem Quellcode zu finden. Es funktioniert alles schon in etwa, wie es sollte, bis auf ein paar Macken.
Also es geht um die Methode list() ab Zeile 97.
Also, ich habe folgenden Quellcode
Java:
public class Route {
// (0)AAchen, (1)Berlin, (2)Chemnitz, (3)Dresden, (4)Erfurt, (5)Flensburg, (6)Garmisch, (7)Hamburg
int[][] entfernung = {
{000, 640, 580, 650, 440, 649, 735, 490}, //(0)Aachen
{640, 000, 260, 190, 300, 450, 671, 290}, //(1)Berlin
{580, 260, 000, 70, 150, 670, 480, 520}, //(2)Chemnitz
{650, 190, 70, 000, 220, 650, 610, 502}, //(3)Dresden
{440, 300, 150, 220, 000, 550, 490, 400}, //(4)Erfurt
{649, 450, 670, 650, 550, 000, 1020, 160}, //(5)Flensburg
{735, 671, 480, 610, 490, 1020, 000, 869}, //(6)Garmisch
{490, 290, 520, 502, 400, 160, 869, 000} //(7)Hamburg
};
/*Methode anbieten
* der Benutzer kann wählen, ob er die Standartroute,
* oder die vorgegebene Route möchte
*/
public final void anbieten() {
System.out.println("Staedte: Aachen, Berlin, Chemnitz, Dresden, " //zeigt die verfügbaren Städte an
+ "Erfurt, Flensburg, Garmisch, Hamburg");
// Auswahl der Städteliste mit Hilfe der Konsole
String antwort;
antwort = Konsole. getInputString("Moechten Sie diese Staedteliste nutzen? j/n");
if (antwort.equals("j")){ //Bei Eingabe "j" wird die Standartroute ausgegeben
System.out.println ("Antwort: " + antwort);
alleDaten ();
}
else if (antwort.equals("n")){ //Bei Eingabe "n" wird die Methode "list" ausgeführt
//Der Benutzer kann seine eigene Route zusammenstellen
list ();
}
else { //Wird weder "j" noch "n" eingegeben wird mitgeteilt, dass
System.out.println("Bitte geben Sie j oder n ein"); // Eingabe ungültig ist, eine erneute Eingabe ist möglich
antwort = Konsole. getInputString("Moechten Sie diese Staedteliste nutzen? j/n");
}
}
public int standardroute(){
return summe;
}
int summe = //Berechnung der Kilometeranzahl der Standartroute
(entfernung[1][6]+
entfernung[6][7]+ //Die Felder des Arrays werden nach vorgegebener Reihenfolge summiert
entfernung[7][3]+
entfernung[3][6]+
entfernung[6][0]+
entfernung[0][5]+
entfernung[5][1]);
public void alleDaten(){ // Route wird übersichtlich auf der Konsole ausgegeben
System.out.println("Start: Berlin");
System.out.println("Von Berlin nach Garmisch: " + entfernung[1][6] + "km.");
System.out.println("Von Garmisch nach Hamburg: " + entfernung[6][7] + "km.");
System.out.println("Von Hamburg nach Dresden: " + entfernung[7][3] + "km.");
System.out.println("Von Dresden nach Garmisch: " + entfernung[3][6] + "km.");
System.out.println("Von Garmisch nach Aachen: " + entfernung[6][0] + "km.");
System.out.println("Von Aachen nach Flensburg: " + entfernung[0][5] + "km.");
System.out.println("Von Flensburg nach Berlin: " + entfernung[5][1] + "km.");
System.out.println("Gesamtstrecke: " + standardroute());
}
//Methode zum erstellen einer eigenen Route
public void list() {
//Variablen
int start;
int letzteStadt = 0;
int strecke = 0;
int naechsteStadt = 0;
int j = 0;
//Array in dem die Staede gespeichert sind.
String[] staedte = {
"Aachen", "Berlin", "Chemnitz", "Dresden",
"Erfurt", "Flensburg", "Garmisch", "Hamburg"};
//Der Benutzer wird das Angebot angezeigt und aufgefordert seine Route auszuwählen
int[] citycount = new int[8];
System.out.println("Staedte: 0 Aachen, 1 Berlin, 2 Chemnitz, 3 Dresden, "
+ "4 Erfurt, 5 Flensburg, 6 Garmisch, 7 Hamburg");
start = Konsole.getInputInt("In welcher Stadt möchten Sie starten?");
// letzteStadt = start; //die Route wird mit der 1. Stadt beendet
System.out.println("Start in: " + start);
while (start != naechsteStadt) { // es können so lange Städt eingegeben werden, bis die
// 1. Stadt eingegeben wird
for(int i = 0; i<citycount.length; i++)
{
naechsteStadt = Konsole.getInputInt("Bitte geben Sie die nächste Stadt ein");
citycount[i] = naechsteStadt;
citycount[j] = letzteStadt;
// übersichtliche Ausgabe der Auswahl für den Benutzer auf der Konsole
System.out.println("Von " + staedte[citycount[j]]+" nach "+ staedte[citycount[i]]);
// Entfernung zwischen den beiden Städten wird als Zwischensumme berechnet
// und auf der Konsole ausgegeben
System.out.println(entfernung[citycount[j]][citycount[i]]+" km.");
//Die gesamten Zwischensummen der Entfernungen werden summiert
strecke = strecke + entfernung[i][j];
letzteStadt = naechsteStadt; // es wird immer die zuletzt eingegebene Stadt
// mit der aktuellen Stadt ausgegeben und berechnet
while (start == naechsteStadt) { //wenn der Benutzer die Startstadt eingibt, wird die
System.out.println("Gesamtstrecke: " + strecke); //Eingabe beendet und die Kilometerzahl der gesamten
//Strecke ausgegeben
break;
}
}
}
}
//Die Methoden werden getestet
public static void main(String[] args) {
Route test = new Route();
test.anbieten();
}
}
mit folgender Ausgabe auf der
Java:
Staedte: Aachen, Berlin, Chemnitz, Dresden, Erfurt, Flensburg, Garmisch, Hamburg
Moechten Sie diese Staedteliste nutzen? j/nn
Staedte: 0 Aachen, 1 Berlin, 2 Chemnitz, 3 Dresden, 4 Erfurt, 5 Flensburg, 6 Garmisch, 7 Hamburg
In welcher Stadt möchten Sie starten?5
Start in: 5
Bitte geben Sie die nächste Stadt ein4
Von Aachen nach Aachen
0 km.
Bitte geben Sie die nächste Stadt ein6
Von Erfurt nach Garmisch
490 km.
Bitte geben Sie die nächste Stadt ein1
Von Garmisch nach Berlin
671 km.
Bitte geben Sie die nächste Stadt ein3
Von Berlin nach Dresden
190 km.
Bitte geben Sie die nächste Stadt ein5
Von Dresden nach Flensburg
650 km.
Gesamtstrecke: 2310
Bitte geben Sie die nächste Stadt ein
Die Ausgabe sollte aber folgendermassen aussehen
Java:
Staedte: Aachen, Berlin, Chemnitz, Dresden, Erfurt, Flensburg, Garmisch, Hamburg
Moechten Sie diese Staedteliste nutzen? j/nn
Staedte: 0 Aachen, 1 Berlin, 2 Chemnitz, 3 Dresden, 4 Erfurt, 5 Flensburg, 6 Garmisch, 7 Hamburg
In welcher Stadt möchten Sie starten?5
Start in: Flensburg
Bitte geben Sie die nächste Stadt ein4
Von Aachen nach Aachen
0 km.
Bitte geben Sie die nächste Stadt ein6
Von Erfurt nach Garmisch
490 km.
Bitte geben Sie die nächste Stadt ein1
Von Garmisch nach Berlin
671 km.
Bitte geben Sie die nächste Stadt ein3
Von Berlin nach Dresden
190 km.
Bitte geben Sie die nächste Stadt ein5
Von Dresden nach Flensburg
650 km.
Gesamtstrecke: 2310
Bei "Start in:" wird die Zahl angegeben, dort sollte aber der Name stehen
Dann sollte anstatt "Von Aachen nach Aachen" "Von Erfurt nach Flensburg"
550km angezeigt werden.
Danach funktioniert alles bestens.
Bis nach Ausgabe der Gesamtstrecke wieder nach der nächsten Stadt gefragt wird, es sollte eigentlich beendet werden.
Könnte mir viellicht jemand erklären, wie es dazu kommt?
Vielen Dank
Sophie