D
Destiny1985
Gast
Ich habe einen kleinen, einfachen Terminkalender geschrieben:
er lässt sich wunderbar ausführe und so...aber wenn ich mir eingetragene Termine anzeigen lasse, bekomme ich noch die Meldung:
ok, irgendein feld läuft quasi über...aber wo ? ich find den fehler nicht :<
das programm wird bei euch wohl nicht laufen, da ich die Klasse IOTools nutze um Eingaben zu vereinfachen...die findet ihr im Paket Prog1Tools auf der Seite www.grundkurs-java.de...
mfg
Code:
/**
* Ein Terminkalender
* Funktioniert für ein ganzes Jahr
*
* @author Christopher Koch
* @date 2005-01-14
* @version 1.3
*/
import Prog1Tools.IOTools;
public class Terminkalender3
{
public static void main (String args[])
{
String[][][] termine;
termine = new String[12][][];
termine[0] = new String[31][24];
termine[1] = new String[28][24];
termine[2] = new String[31][24];
termine[3] = new String[30][24];
termine[4] = new String[31][24];
termine[5] = new String[30][24];
termine[6] = new String[31][24];
termine[7] = new String[31][24];
termine[8] = new String[30][24];
termine[9] = new String[31][24];
termine[10] = new String[30][24];
termine[11] = new String[31][24];
for (int i = 0; i < termine.length; i++)
for (int j = 0; j < termine[i].length; j++)
for (int k = 0; k < termine[i][j].length; k++)
termine[i][j][k] = "";
boolean fertig = false;
while (!fertig)
{
System.out.println("\n1 - Neuer Eintrag");
System.out.println("2 - Termine anzeigen");
System.out.println("3 - Programm beenden");
int auswahl = IOTools.readInteger("\nIhre Wahl: ");
switch (auswahl)
{
case 1:
{
int monat = IOTools.readInteger("\nMonat: ");
if (monat < 1 || monat > 12)
{
System.out.println("\nEingabefehler!");
break;
}
int tag = IOTools.readInteger("\nTag: ");
if (tag < 1 || tag > 31)
{
System.out.println("\nEingabefehler!");
break;
}
int zeit = IOTools.readInteger("\nUhrzeit: ");
if (zeit < 0 || zeit > 23)
{
System.out.println("\nEingabefehler");
break;
}
String eingabe = IOTools.readLine("\nTermin: ");
termine[monat-1][tag-1][zeit] = eingabe;
break;
}
case 2:
{
int m = IOTools.readInteger("\nMonat: ");
if (m < 1 || m > 12)
{
System.out.println("\nEingabefehler");
break;
}
int t = IOTools.readInteger("\nTag: ");
if (t < 1 || t > 31)
{
System.out.println("\nEingabefehler");
break;
}
for (int i = 0; i < termine[m-1].length; i++)
for (int j = 0; j < termine[m-1][t-1].length; j++)
{
System.out.println(i + " Uhr: " + termine[m-1][t-1][i]);
break;
}
}
case 3:
{
fertig = true;
break;
}
default:
{
System.out.println("Eingabefehler");
}
}
}
}
}
er lässt sich wunderbar ausführe und so...aber wenn ich mir eingetragene Termine anzeigen lasse, bekomme ich noch die Meldung:
Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 24
at Terminkalender3.main(Terminkalender3.java:90)
ok, irgendein feld läuft quasi über...aber wo ? ich find den fehler nicht :<
das programm wird bei euch wohl nicht laufen, da ich die Klasse IOTools nutze um Eingaben zu vereinfachen...die findet ihr im Paket Prog1Tools auf der Seite www.grundkurs-java.de...
mfg