Quelltext in Informatik?

...komplette Frage anzeigen

3 Antworten

Ich hab dir hier mal ein funktionierendes Beispiel geschreiben (schaus dir besser in Pastebin an link ist unten):


import java.util.ArrayList;
import java.util.Scanner;

public class Main {

private ArrayList hausaufgaben = new ArrayList();

Scanner input = new Scanner(System.in);

public Main() {

System.out.println("Hausaufgabenplaner 1.0");

while(true) {
System.out.print("\\\\nHauptmenü\\\\n1. Neue Hausaufgabe anlegen\\\\n2. Hausaufgaben anzeigen\\\\n8. Beenden\\\\nBitte wählen: ");

int auswahl = 8;
auswahl = Integer.parseInt(input.nextLine());

switch(auswahl) {
case 1:
anlegen();
break;
case 2:
anzeigen();
break;
case 8:
System.exit(0);
break;
default :
System.out.println(auswahl + " steht nicht zur Verfügung bitte wählen Sie erneut!");
}
}
}

private void anlegen() {
System.out.println("Geben Sie die Aufgabenstellung ein: ");
String exercise = input.nextLine();

String[] date;
do {
System.out.println("Geben Sie das Abgabedatum ein (TT-MM-JJJJ)");
date = input.nextLine().split("-"); // Achtung keine Überprüfung auf Falscheingabe [grad kein Bock drauf^^ kannst du machen]
if(date.length != 3) {
System.out.println("Die Eingabe kann nicht stimmen, bitte wiederholen");
}
} while(date.length != 3);

System.out.println("Geben Sie das Fach ein");
String subject = input.nextLine();

System.out.println("Hier können Sie noch eine Notiz hinzufügen");
String note = input.nextLine();

Hausaufgabe ha = new Hausaufgabe(exercise, Integer.parseInt(date[0]), Integer.parseInt(date[1]), Integer.parseInt(date[2]), subject, note);
hausaufgaben.add(ha);
}

private void anzeigen() {
System.out.println("\\\\n\\\\nIch liste nun alle deine Hausaufgaben auf:\\\\n");

for(Hausaufgabe ha : hausaufgaben) {
System.out.println("Hausaufgabe " + hausaufgaben.indexOf(ha));
System.out.println("\\\\t" + ha.aufgabenstellung);
System.out.println("\\\\t" + ha.abgabeTag + "." + ha.abgabeMonat + "." + ha.abgabeJahr);
System.out.println("\\\\t" + ha.fach);
System.out.println("\\\\t" + ha.notiz);
}

System.out.println("\\\\nDas war alles");
}

public static void main(String[] args) {
new Main();
}
}

hier noch der Link in Pastebin: http://pastebin.com/GWSqrBkW

Antwort bewerten Vielen Dank für Deine Bewertung

Beim mir wird dein Quellcode nicht komplett angezeigt. Lade den mal bei Github oder Pastebin hoch. Für so etwas ist gutefragen echt schrecklich.

Bei dem was da jetzt steht würde ich nur mal den Hausaufgaben Array mit 99 Elementen durch eine dynamische ArrayList ersetzen. Dann fehlt dir noch eine Überprüfung der Eingabe falls jemand etwas falsches eingibt, sollte er wenigstens eine Fehlermeldung bekommen. Ich würde auch das Programm aus der main rausnehmen und den Code in den Konstruktor der Klasse main (Klassennamen schreibt man übrigens immer groß also Main) dann brauchst du die Funktionen anlegen() und anzeigen() nicht static machen. Noch besser wäre dann auch nicht public sondern private. Das für den Tag,Monat,Jahr könntest du auch ein Datumsobjekt verwenden.

Antwort bewerten Vielen Dank für Deine Bewertung

Kannst du nochmal den kompletten Code bei Pastebin o.ä. hochladen?
Bisher ist mir kein offensichtlicher Fehler aufgefallen, außer das du statt while(1==1) auch nur while (1) oder while (true) machen kannst.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von MrKix01
09.02.2017, 22:42

Öhhm ^^ Pastebin hab ich nie genutzt, da ich noch nie einen Quelltext irgentwo hochgeladen habe.

Das Problem ist einfach, dass das Programm zu schnell runter rattert und bei dem mS.hasNextLine wird das wohl irgentwie vom Scanner falsch eingelesen weswegen keine Abfrage erfolgt, jedoch weiß selbst mein Informatiklehrer nicht weiter und kann mir den Fehler nicht nennen

0

Was möchtest Du wissen?