Speichern von einem Namen und einer dazugehörigen Kette aus Zahlen



  • Ich habe in der Schule die Aufgabe bekommen, ein kleines Notenverwaltungsprogramm
    zu schreiben, man soll den Schülernamen eingeben können und es soll nachsehen,
    ob der name bereits existiert und dort die Note anhängen bzw. den Namen eintragen
    und dann die Note anhängen.
    Es sollen max 30Schüler sein und 33Noten, sprich die Größen sind bekannt, man
    braucht also keinen dynamischen Faktor, wobei ich so etwas natürlich immer einbauen,
    werde damit man es mal eben schnell durch das ändern von 2Variablen beliebig
    vergrößern kann.

    Nun stellt sich mir die Frage wie ich das am effektivsten löse, unser Lehrer
    meinte wir sollen ein 2D-Stringarray (String[][]) verwenden, aber ich bin mir
    nicht so ganz sicher ob es wirklich nötig ist, sowas komplett neu zu schreiben,
    gibt doch sicher etwas vergleichbares zur map aus C++. Es wäre auch angenehmer,
    wenn ich die Zahlen als double speichern könnte und sie nicht jedes mal umwandeln
    müsste.

    Habe daher nun mehrere Ansätze:
    Klasse die intern mit einem String[][] arbeitet und mir sämtliche Arbeit abnimmt,
    sprich ich erfinde das Rad neu.
    Eine Klasse, welches eine Liste aus Objekten darstellt, welche den Namen und
    beliebig viele (festgelegt, durch oben genannte variable) double- Werte aufnehmen
    kann.
    Aber auch hier müsste ich wieder ziemlich viel schreiben.

    Es gibt doch sicher was fertiges in Java oder?



  • Klar gibt es das. 😃

    Viel programmieren müßte man dafür nicht... nur eher viel lesen, um zu verstehen, wie man es anwendet 🙂

    Map in C++ kenn ich persönlich nicht, aber unter Java gibt es einige verschiedene Maps. Denke mal eine HashMap sollte reichen.

    Dafür müßtest Du Dir in der Doku von Java die Klassen anschauen:
    java.util.HashMap
    java.util.Iterator
    java.lang.Double, Integer oder Float

    HashMap zum speichern der Daten der Form:
    Key - Value
    Key könnte z.B. der Name sein (Keys müßen untereinander immer eindeutig sein) und Value die Note (Inhalt kann öfter vorkommen).

    Iterator brauchst Du um an alle Daten bequem wieder heranzukommen.

    Und Double, etc um die Noten zu speichern, da Maps (bzw. alle Collection Klassen) nur Objekte und keine primitiven Datentypen speichern können.

    Damit wäre dann auch alles dynamisch.
    Aber ich denke, damit wärst Du Deiner gestellten Aufgabe weit über das eigentliche Ziel hinausgeschossen ... ABER, wenn Du das mit der Map verstanden hast, dann kannst Du genauso, bzw. sehr ähnlich mit allen anderen Containern unter Java arbeiten ... nur würde ich zum lernen nicht unbedingt mit einer Map anfangen 😉



  • Danke für deine Hilfe, heute Abend habe ich zwar kein Kopf mehr dazu, aber Morgen
    schaue ich mir das einmal an 🙂
    Ich denke das Grundprinzip wird ähnlich wie bei C++ sein, dort verwendet man auch
    Iteratoren um die einzelnen Elemente durchzugehen, allerdings ist die Map dort
    keine Hashmap, sprich pro Key gibts nur ein Value.


Anmelden zum Antworten