Vokabel trainer in java


R3LLiK

Grünschnabel
#1
Hallo wollte mich mal an einem vokabeltrainer wagen nur weiss ich nicht wie ich das programmieren soll. Es soll ein vokabeltrainer sein wo man von mir vorgegebene vokabeln lernen muss man kann keine eigenen eingeben. und die sollen nach ner zeit abgefragt werden#. wie speicher ich die vokabeln in einem array oder variable??

Wenn einer bock hat kann er mir gerne dabei helfen, den fertig zu machen.
 

R3LLiK

Grünschnabel
#2
Die Frage ist wie bekomme ich das eine vokabel also deutsches wort zu einem englishen wort gehört brauche ich für jedes paar ein array??
 

melmager

Erfahrenes Mitglied
#3
Kann man mit Array machen.
Sinnvoller währe sogar eine classe pro vokabel.
Als Grundstruktur würde ich das Zettelkasten Prinzip programmieren.

Zettelkasten: Eine Box mit mehreren Fächern - neue Vokabeln kommen in das vorderste Fach und wenn die Vokabel mehrmals richtig beantwortet wurde kommt die Vokabel ein Fach nach hinten.
Irgendwann fliegt die Vokabel aus der Box raus.(wenn im letzen fach und mehrmals auch dort richtig beantwortet wurde)
Bei falschantwort ein Fach nach vorne :)

Um das im Programm umzusetzen werden Zähler (fach nummer / zähler richtig) benötigt, die man auch in der classe unterbringen kann.

Die Vokabelclasse selber kann man in ein ArrayList speichern.

Die abzufragenen Vokabel wird mittels Zufall ermittelt.

die richtung.
 
Zuletzt bearbeitet:

R3LLiK

Grünschnabel
#4
Hab ich das richtig verstanden vokabel paar also deutsch und english in einer klasse bei 10 vokabeln macht das dann ja 10 klassen usw. oder meinst du das ich es in einer klasse mache und dann halt mehrere objekte erstelle??
 

vfl_freak

Premium-User
#5
Moin,
Hab ich das richtig verstanden vokabel paar also deutsch und english in einer klasse bei 10 vokabeln macht das dann ja 10 klassen usw. oder meinst du das ich es in einer klasse mache und dann halt mehrere objekte erstelle??
Nutze bitte das schöne Instrument der Kommasetzung!
Muss man ja dreimal lesen, ehe man es verstanden hat ;)

Und wieso 10 Klassen??
Gemeint sind doch wohl eher nur zwei!! "Deutsche Vokabel" + "Englische Vokabel" ...

VG Klaus
 

melmager

Erfahrenes Mitglied
#6
jepp pro vokabel eine classe - macht bei 100 vokabeln 100 classen.

Das ist aber kein problem da die classen in ein einem ArrayList gespeichet werden.

Nicht durch die Masse an classen verunsichern lassen :) die variante ist sogar einfacher zu programmieren.

Code:
class Vokabel {

public String fremd; //englisches wort
public String mutter; // deutsches wort
public int count;

public String getEnglisch() {
}

public boolean testTranslate(String eingabe) {
}

}
eine von vielen möglichen versionen

Code:
ArrayList<Vokabel> lerne  = ArrayList<>();
und so z.B speichern
 

R3LLiK

Grünschnabel
#8
also für vokabel 1 public class Vokabel und für vokabel 2 public class Vokabel 2 und so weiter findest du nicht das ich später 1000 Klassen habe wird doch unübersichtlich
 

melmager

Erfahrenes Mitglied
#9
Wie schon von @Bratkatoffel erwähnt:

du hast nur eine classe Vokabel - und die wird mehrfach angelegt = viele Instanzen
und die werden in einer ArrayList gespeichert.
Und nur da.
Zugriff geht dann über ein Index.

Code:
// erstelle ein instanz

Vokabel vokabelvar = new Vokabel();
vokabelvar.fremd = "Dog";
vokabelvar.mutter = "Hund";

// speichern

lerne.add(vokabelvar);

// das x beliebig mal

//und wenn man die 50 von den 100 gespeicheten Instanzen (vokabeln) haben will:

vokabelvar = lerne.get(50);
du hast also nur eine Variable vokabelvar und entweder bekommt die eine neue instanz (mit neuen werten) oder eine gespeicherte aus der ArrayList.
 

R3LLiK

Grünschnabel
#10
aso ok ich kenne das unter objekt anlegen also heisst das instanz gut zu wissen danke ich schreibe mal was und zeig das hier wieder bis dann.
 

Yaslaw

n/a
Moderator
#11
aso ok ich kenne das unter objekt anlegen also heisst das instanz gut zu wissen danke ich schreibe mal was und zeig das hier wieder bis dann.
Nutze bitte das schöne Instrument der Kommasetzung!
Muss man ja dreimal lesen, ehe man es verstanden hat ;)
ich schreibe jetzt so das du es auch verstehst du scheinst da lernresistent zu sein was an sich kein problem ist es passiert dann halt das kann man nicht vermeiden dass nicht jeder alles und alle jeden verstehen da die tastatur nicht rein zum spass satzzeichen kennt du solltest das mal probieren denn die satzzeichentasten und auch die shifttasten werden dir auch bei mehrfacher verwendung keine schmerzen zufügen ein schönen nebeneffekt neben dem das man dein text besser versteht ist auch dass andere user mehr gewillt sind dir zu helfen also gib dir deinen antworten zu liebe ein wenig mühe das ist nicht nur hier im forum so sondern überall wo du einen text schreibst denn je besser man ihn versteht desto freundlicher sind normalerweise die antworten bla und sowieso nimmt es mich hatschi wundern ob du bis hierhin gelesen oder war das doch berechtigterweise zu anstregend hast
 

takidoso

Erfahrenes Mitglied
#13
Bei Übersetzungen von Vokabeln sollte ein guter Vokabeltrainer für die Worte zwischen der einen und der anderen Sprache den Aspekt von Homonymen und Synonymen berücksichtigen.
Was ist darunter zu verstehen?
Synonym: Gleiche Wortbedeutung unterschiedliches Wort innerhalb einer Sprache.
Homonym: gleiches Wort aber unterschiedliche Bedeutung innerhalb einer Sprache.

Wie wäre das nun vom Datenmodel möglichst sinnvoll zu modelieren?
Ein Wort der Sprache 1 hat ein oder mehrere Übersetzungen der Sprache 2
und ebenso genau auch umgekehrt.

Was bedeutet das für unser Datenmodel für den Vokabeltrainer?
Da es eine "n zu m-Beziehung" ist, sollte man im Wesentlichen hier relational gesehen 2 Entitäten
bzw. objektorientiert gesehen zwei Klassen in Betracht ziehen.
Konkret: eine Klasse die generell ein Wort repräsentiert, also ihre instantiierten Objekte schlichtweg Wörter sind (oder nenne es einfach auch Vokabel).
Eine solche Vokabel-Klasse hätte dann zumindest die Attribute Sprache und Wort (optional vielleicht auch eine ID).
Die zweite Klasse wäre eine Beziehungs-Klasse. Das kann eine Map sein, wobei Schlüssel die jeweilige Vokabel der einen und Wert die dazu passende Vokabel der anderen Sprache wäre.
Wenn man dann anstelle von deutschen Vokabeln ins Englische übersetzend genau andersherum von Englisch nach Deutsch abfragen möchte, wird man die Schlüssel und Werte einfach nur herumdrehen müssen; - was vorher Schlüssel war wird Wert, und was Wert war wird Schlüssel.

Auf diese Weise wären automatisch Synonyme bzw. Homonyme möglich. Der Vokabeltrainer könnte dann entweder nur eine mögliche Übersetzung der abgefragten Vokabel oder auch mehr als eine oder gar alle möglichen Übersetzungen abverlangen.

Hoffe die Idee hilft weiter

Beste Grüße

Takidoso
 
Zuletzt bearbeitet:

Neue Beiträge