Guten Morgen Zusammen
Ich habe folgenden Quellcode geschreiben, der auch gut funktioniert:
Jetzt möchte ich noch ein paar Änderungen vornehmen. Zunächst die Städte so in einem Array abspeichern, dass der Benutzer die Staedtenamen eingibt anstatt einer Zahl.
Ich habe das wie folgt abgeändert. Bekomme dann aber diese Fehlermeldung:
Staedte: Aachen, Berlin, Chemnitz, Dresden, Erfurt, Flensburg, Garmisch, Hamburg
Moechten Sie diese Staedteliste nutzen? j/nn
Bitte geben Sie die Startstadt ein.
Staedte: Aachen, Berlin, Chemnitz, Dresden, Erfurt, Flensburg, Garmisch, Hamburg
In welcher Stadt möchten Sie starten?Berlin
In welcher Stadt möchten Sie starten?Fehler bei der Verarbeitung: For input string:
Weiss vielleicht jemand, woran das liegen könnte?
Danke und Gruss
Sophie
Ich habe folgenden Quellcode geschreiben, der auch gut funktioniert:
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(){
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]);
return summe;
}
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;
int strecke = 0;
int naechsteStadt = 0;
//Array in dem die Staede gespeichert sind.
String[] staedte = new String[] {
"Aachen", "Berlin", "Chemnitz", "Dresden",
"Erfurt", "Flensburg", "Garmisch", "Hamburg"};
//Der Benutzer wird das Angebot angezeigt und aufgefordert seine Route auszuwählen
System.out.println("Bitte geben Sie die Nummer der Startstadt ein.");
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: " + staedte[start]);
while (start != naechsteStadt) { // es können so lange Städt eingegeben werden, bis die
// 1. Stadt eingegeben wird
naechsteStadt = Konsole.getInputInt("Bitte geben Sie die nächste Stadt ein");
// übersichtliche Ausgabe der Auswahl für den Benutzer auf der Konsole
System.out.println("Von " + staedte[letzteStadt] + " nach " + staedte[naechsteStadt]);
// Entfernung zwischen den beiden Städten wird als Zwischensumme berechnet
// und auf der Konsole ausgegeben
System.out.println(entfernung[letzteStadt][naechsteStadt] + " km.");
// Die gesamten Zwischensummen der Entfernungen werden summiert
strecke = strecke + entfernung[letzteStadt][naechsteStadt];
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();
}
}
Jetzt möchte ich noch ein paar Änderungen vornehmen. Zunächst die Städte so in einem Array abspeichern, dass der Benutzer die Staedtenamen eingibt anstatt einer Zahl.
Ich habe das wie folgt abgeändert. Bekomme dann aber diese Fehlermeldung:
Staedte: Aachen, Berlin, Chemnitz, Dresden, Erfurt, Flensburg, Garmisch, Hamburg
Moechten Sie diese Staedteliste nutzen? j/nn
Bitte geben Sie die Startstadt ein.
Staedte: Aachen, Berlin, Chemnitz, Dresden, Erfurt, Flensburg, Garmisch, Hamburg
In welcher Stadt möchten Sie starten?Berlin
In welcher Stadt möchten Sie starten?Fehler bei der Verarbeitung: For input string:
Weiss vielleicht jemand, woran das liegen könnte?
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(){
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]);
return summe;
}
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;
int strecke = 0;
int naechsteStadt = 0;
//Der Benutzer wird das Angebot angezeigt und aufgefordert seine Route auszuwählen
System.out.println("Bitte geben Sie die Startstadt ein.");
System.out.println("Staedte: Aachen, Berlin, Chemnitz, Dresden, "
+ "Erfurt, Flensburg, Garmisch, Hamburg");
start = Konsole.getInputInt("In welcher Stadt möchten Sie starten?");
//Array in dem die Staede gespeichert sind.
String[] stadt = new String[8];
stadt[0] = new String ("Aachen");
stadt[1] = new String ("Berlin");
stadt[2] = new String ("Chemnitz");
stadt[3] = new String ("Dresden");
stadt[4] = new String ("Erfurt");
stadt[6] = new String ("Flensburg");
stadt[7] = new String ("Garmisch");
stadt[8] = new String ("Hamburg");
letzteStadt = start; //die Route wird mit der 1. Stadt beendet
System.out.println("Start in: " + stadt[start]);
for (int wdh = 1; wdh <= stadt.length; wdh++) {
while (start != naechsteStadt) { // es können so lange Städt eingegeben werden, bis die
// 1. Stadt eingegeben wird
naechsteStadt = Konsole.getInputInt("Bitte geben Sie die nächste Stadt ein");
// übersichtliche Ausgabe der Auswahl für den Benutzer auf der Konsole
System.out.println("Von " + stadt[letzteStadt] + " nach " + stadt[naechsteStadt]);
// Entfernung zwischen den beiden Städten wird als Zwischensumme berechnet
// und auf der Konsole ausgegeben
System.out.println(entfernung[letzteStadt][naechsteStadt] + " km.");
// Die gesamten Zwischensummen der Entfernungen werden summiert
strecke = strecke + entfernung[letzteStadt][naechsteStadt];
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();
}
}
Danke und Gruss
Sophie