Trainingsplan erstellen

kantolyo123

Mitglied
Ich möchte mit Java einen Trainingsplan erstellen, bei der in der ersten Standardeingabe der Trainingsinhalt eingegeben wird und bei der zweiten Standardeingabe eine Zeile darunter das Datum. Diese Zeilen sollen abwechselnd zur Eingabe bereitstehen. Als Ausgabe soll eine Tabelle entstehen, bei der in der ersten Spalte der Trainingsinhalt, in der zweiten Spalte das Datum und die dritte Spalte eine Möglichkeit zum abhaken gibt, ob die Trainingseinheit erfolgreich absolviert wurde.
Wie kann ich so ein Programm erstellen? Ich glaube, das mit dem Einlesen der Daten funktioniert noch, aber wie geht die Ausgabe? Hier mal mein bisheriger Versuch:
Java:
public class Trainingsplan {

    public static void main(String[] args) {

        StdOut.print("Trainingsinhalt");
        StdOut.print("Datum");
        StdOut.println("abgehakt");
      
        String[]trainingsinhalt = new String[365];
        int[]tag = new int[31];
        int[]monat = new int[12];
        int[]jahr = new int[100];
        boolean[]abgehakt = new boolean[365];
      
        int count = 0;
        do {
            trainingsinhalt[count] = StdIn.readString();
            tag[count] = StdIn.readInt();
            monat[count] = StdIn.readInt();
            jahr[count] = StdIn.readInt();
            count++;
        }
        while(!StdIn.isEmpty() && count < 100);
      
        StdOut.print("Trainingsinhalt ");
        StdOut.print("Datum ");
        StdOut.print("abgehakt ");
        for(int i = 0; i < count; i++) {
            StdOut.print(trainingsinhalt[i]);
            StdOut.print(tag);
            StdOut.print(monat);
            StdOut.print(jahr);
            StdOut.print(abgehakt);
        }
    }

}
 
Zuletzt bearbeitet von einem Moderator:

DieKeksmaffia

Mitglied
Wie genau willst du die Ausgabe denn haben? In einem Fenster oder einfach in eine .txt Datei? Wenn du wirklich eine Tabelle zum drucken haben willst, würde ich vorschlagen das ganze in einem einfachen JFrame abzubilden, dann von dort zu kopieren und dann zu drucken, weiß aber nicht ob das geht. Anderenfalls würde ich mir eine tabellenartige Struktur die in eine txt Datein pass ausdenken wie : https://www.teialehrbuch.de/Kostenlose-Kurse/Dreamweaver-CS5/images/314.jpg;
 

kantolyo123

Mitglied
Danke für deine Antwort. Ich möchte die Ausgabe im Konsolenfenster bekommen und sie soll mit StdOut.print erfolgen. Hast du dazu eine Idee?
Dein Link funktioniert leider nicht, sonst hätte ich mir deinen Vorschlag gerne angesehen.
 

kantolyo123

Mitglied
Ja, diesmal funktioniert das mit dem Link. Danke dafür ! Nur wie schreibe ich solch eine Tabelle in Java? Hatte ja oben schon einmal einen Ansatz versucht, der aber nicht funktioniert hat. Kannst du mir dazu einen Tipp geben? Oder wie kann ich den Code sonst schreiben? Hast du da eine Idee/ Tipp für mich? Wäre echt klasse!
 

kantolyo123

Mitglied
Könntest du mir das genauer erklären. Ich weiß nicht so recht wie ich das bezogen auf meinen obigen Code umsetzen soll. Was genau soll ich da ändern? Oder muss ich nochmal von ganz vorn anfangen?
 

strußi

Top Contributor
die ausgabe kannst du so machen, dass du die Formatierung so schreiben
System.out.println( String.format( "%15s %4s ...", p1, p2, ...));
der erste Teil in " " stellt die Formatierung dar, der zweite Teil die Parameter, Parameter können auch Verweise auf ArrayFelder sein
 

kantolyo123

Mitglied
Ich schaffe es jetzt zumindest, dass mir die Sachen ausgegeben werden, die ich will. Aber wie schaffe ich es, dass mir die Sachen in einer Tabelle untereinander ausgegeben werden? Also in der ersten Spalte Trainingsinhalt soll dann zum Beispiel Dauerlauf, Sprints, 400m Lauf untereinander stehen und nicht nebeneinander. Wie schaffe ich das?
 

Jardcore

Top Contributor
Java:
System.out.println(String.format("%s | %d | %d | %d | %b", traningsinhalt, tag, monat, jahr, abgeharkt));

Vermutlich müsstest du dann noch ein "\n" hinter jede einzelne Zeile packen, da du nur print statt println benutzt
Java:
StdOut.print(String.format("%s | %d | %d | %d | %b \n", traningsinhalt, tag, monat, jahr, abgeharkt));

Ein objektorientierter Ansatz wäre aber insgesamt besser... Java ist ja nun mal eine OO Sprache.
 

kantolyo123

Mitglied
Danke für deine Antwort! Wenn ich ein \n hinzufüge, bekomme ich bei der Ausführung folgendes:
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '

Du sagst, ein objektorientierter Ansatz wäre besser. Wie würdest du das denn machen? Ich bin im Moment ziemlich ratlos. Vielleicht kannst du mich auf den richten Weg bringen.
 

Jardcore

Top Contributor
Danke für deine Antwort! Wenn ich ein \n hinzufüge, bekomme ich bei der Ausführung folgendes:
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '
Überprüfe vllt nochmal ob du es an der richtigen Stelle eingefügt hast.
Also innerhalb der --> " " <--- Anführungszeichen.

Du sagst, ein objektorientierter Ansatz wäre besser. Wie würdest du das denn machen? Ich bin im Moment ziemlich ratlos. Vielleicht kannst du mich auf den richten Weg bringen.

Du könntest ein Objekt Training anlegen und diesem Attribute verpassen. (Name, Tag, Monat, Jahr, abgeharkt)
Und dann in einer extra Klasse, welche eine Main Methode hat, Objekte von Training erzeugen new Training("Dauerlauf", 4, 1, 2016, false). Diese könnten durch das Überschreiben der toString Methode deine Ausgabe realisieren. Diese Objekte müssten dann noch in eine Liste (Trainingsplan) gespeichert werden

Trainingsplan könnte eine Klasse sein die von ArrayList erbt und würde alle Objekte von Training beinhalten.
Java:
public class Trainingsplan extends ArrayList<Training> {
}

Deine Ausgabe in der Main Methode würde dann vllt so aussehen:
Java:
for(Traning training : trainingsplan) {
    StdOut.print(training);
}

Usw. und sofort :)

Beste Grüße,
Jar

P.S: Du könntest statt Tag Monat und Jahr auch einfach das Objekt Date verwenden
 
Zuletzt bearbeitet:

kantolyo123

Mitglied
Okay, werde das mal versuchen. Mir ist nur noch nicht so ganz klar, wie ich das mit dem Datum in der zweiten Spalte mache. Kann ich ein Datum, zum Beispiel 5.1.2016 als einen String einlesen? Die Ausgabe soll so aussehen, wie in der Datei.
 

Anhänge

  • Trainingsplan.txt
    207 Bytes · Aufrufe: 5

Jardcore

Top Contributor
Im Prinzip kannst du das machen, du musst dann nur Prüfen ob du ein gültiges Datum eingegeben hast. Das geht mit dem https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
Java:
String string ="01.01.2016";
Date date =new SimpleDateFormat("dd.MM.yyyy").parse(string);
Hiermit wird zum Beispiel anhand eines Strings und einens Formats ein Date Objekt erstellt.
Das Objekt kannst du dann benutzten und z.B auch einfach auf der Konsole ausgeben date.toString();
 

kantolyo123

Mitglied
Okay. Jetzt noch eine zumindest vorerst letzte Frage: Ich möchte in der ersten Zeile bei der Eingabe den Trainingsinhalt, in der zweiten Zeile das Datum, in der dritten den Trainingsinhalt und in der vierten wieder das Datum eingeben und immer so weiter. Wie bekomme ich das über die Eingabe hin? Und das ganze soll dann so ausgegeben werden, wie in der Datei Trainingsplan, die ich in meinem letzten Post hinzugefügt habe. Kannst du mir dazu noch einen Tipp geben?
 

Jardcore

Top Contributor
Die Eingabe würde ich einfach innerhalb einer Schleife durchführen. Die Schleife läuft dabei sooft du neue Trainings haben willst.
In der Schleife wird dann der Name Datum usw. abgefragt.

Ich würde das wohl irgendwie so machen:
Code:
...
private static Scanner scanner = new Scanner();
   
    public void createTrainingsplan() {
        for(int i = 0; i < AnzahlTrainings; i++) {
            Trainingsplan.add(new Training(getName(), getDatum()));
        }
    }
   
    public String getName() {
        System.out.print("Bitte geben den Name des Trainings an: ");
        return scanner.next();
    }
   
    public Date getDatum() {
        System.out.print("Bitte geben das Datum des Trainings an: ");
        Date date =new SimpleDateFormat("dd.MM.yyyy").parse(scanner.next(););
        return date;
    }
...


Eingabe und Ausgabe sind immer zwei paar Schuhe, du musst dir einfach ein paar Gedanken machen in welcher Reihenfolge welche Schleife und welche Objekte ausgegeben werden sollen.
 

kantolyo123

Mitglied
Ich habe in der Zwischenzeit eine etwas andere Herangehensweise gewählt und bekomme auch schön meine Tabelle. Aber es wird nur der erste Eintrag des Trainings richtig ausgegeben mit Training, Datum und abgehakt in der ersten Zeile. Die zweite Zeile ist nicht mehr richtig formatiert. Ich stelle erst einmal die Zeilen meines Codes hier rein, die für die Ausgabe zuständig sind, zumal ich hier den Fehler vermute. Falls ihr mehr von meinem Code braucht, um mir zu helfen, sagt mir bitte Bescheid. In der angehängten Datei kann man sehen, wie die Ausgabe aussehen soll:
Code:
 StdOut.printf("Training                       |");
    StdOut.printf("Datum         |");
    StdOut.printf("Abgehakt        \n");

    StdOut.print("------------------------------+---------------+---------------\n");
    for (int i=0; i<count; i++) {

      StdOut.printf("%-"+(maxlen+1)+"s",training[i]);
      StdOut.printf("| "+tag[i]+"."+monat[i]+"."+jahr[i]);
      StdOut.println("    |"+abgehakt[i]);
 

Anhänge

  • Trainingsplan1-3.txt
    210 Bytes · Aufrufe: 1
Ähnliche Java Themen
  Titel Forum Antworten Datum
XWing Int erstellen lassen? Java Basics - Anfänger-Themen 11
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J Packages erstellen Java Basics - Anfänger-Themen 7
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
C Gewinnspiel erstellen mit Algorithmus Java Basics - Anfänger-Themen 3
Ostkreuz Spielfeld Schatz erstellen Java Basics - Anfänger-Themen 5
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
laxla123 Dreieck erstellen Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
A Passwort erstellen Java Basics - Anfänger-Themen 3
S CVS erstellen Java Basics - Anfänger-Themen 1
RashAGhul Java Verwaltungstool Erstellen mit kaum Wissen Java Basics - Anfänger-Themen 9
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
dennis_lnz Klassen Wie kann ich mein Java Textadventure verbessern, um ein Klassendiagramm zu erstellen? Java Basics - Anfänger-Themen 9
dcHost Java Kara Sensor erstellen Java Basics - Anfänger-Themen 1
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
httprt Probleme bei dem erstellen von leveln in meinem Spiel Java Basics - Anfänger-Themen 2
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
B Teilprofil erstellen Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
N 2D Array Summe erstellen Java Basics - Anfänger-Themen 6
T Log Funktion erstellen Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S Programm erstellen Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
T Countdown erstellen Java Basics - Anfänger-Themen 7
I ZIP File erstellen Java Basics - Anfänger-Themen 10
L Ordner in neuen erstellten Ordner erstellen Java Basics - Anfänger-Themen 12
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
B JaxB - Referenzen erstellen? Java Basics - Anfänger-Themen 2
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
E Classpath Datai erstellen Java Basics - Anfänger-Themen 3
B eine methode erstellen Java Basics - Anfänger-Themen 7
I Entity erstellen, die für API gedacht ist Java Basics - Anfänger-Themen 33
M Packages erstellen mit Java-Editor Java Basics - Anfänger-Themen 6
L FinanzApp erstellen Java Basics - Anfänger-Themen 1
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
F GSON file mit einer List erstellen Java Basics - Anfänger-Themen 2
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
J Java Queue mit default Werten erstellen Java Basics - Anfänger-Themen 4
JaVaN0oB Bruchklasse erstellen Java Basics - Anfänger-Themen 9
N Kreismuster auf Bestehendem Kreis erstellen Java Basics - Anfänger-Themen 10
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
F Adjunkte Matrix erstellen Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
C Probleme mit dem Erstellen und Importieren von Packages Java Basics - Anfänger-Themen 6
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
K Objektdiagramm erstellen Java Basics - Anfänger-Themen 3
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
C eigene Methoden erstellen (Instanzmethoden) Java Basics - Anfänger-Themen 7
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
E Filmsammlung erstellen Java Basics - Anfänger-Themen 6
B Eine Methode erstellen Java Basics - Anfänger-Themen 3
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
N String N-Gramme mit Stream erstellen Java Basics - Anfänger-Themen 7
K Quersumme erstellen Java Basics - Anfänger-Themen 7
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
C Erstellen eines Widerstandsnetzwerks Java Basics - Anfänger-Themen 10
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
P Arrays "automatisch" erstellen lassen Java Basics - Anfänger-Themen 12
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
M Regex für bestimmte Wörter bzw. bestimmte Zeichen erstellen Java Basics - Anfänger-Themen 5
D Zusammenhängenden Graphen für Gleisnetz erstellen Java Basics - Anfänger-Themen 13
Y Unterschied zwischen WindowBuilder und herkömmlichen erstellen des GUI´s? Java Basics - Anfänger-Themen 9
M Writer für unterschiedliche Obj/inbt/double erstellen? Java Basics - Anfänger-Themen 1
Kirby.exe Generische Objekt Instanz erstellen Java Basics - Anfänger-Themen 14
P Fractal erstellen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben