English Trainer für die Schule
-
Mein Auftrag war von der Lehrerin ein Prog. zu Schreiben, was beim Vokabeln lernen hilft.
TForm1 *Form1; int Nr; const int Max = 9; const String DateiName1 = "English.txt"; const String DateiName2 = "German.txt"; String Eingabe; String richtig; int Hallo; const int kp = 2; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { randomize(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Nr=random (Max) ; Hallo=random (kp) ; TStringList *list = new TStringList(); list->LoadFromFile(DateiName1); TStringList *list2 = new TStringList(); list2->LoadFromFile(DateiName2); if (Hallo==0) Edit1->Text = list->Strings[Nr]; richtig = list2->Strings[Nr]; if (Hallo==1) Edit2->Text = list2->Strings[Nr]; richtig = list->Strings[Nr]; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { if (Hallo==0) Eingabe = String (Edit2->Text); if (Hallo==1) Eingabe = String (Edit1->Text); if ((Hallo==0) && (richtig==Eingabe)) Edit2->Text ="Right!"; if ((Hallo==0) && (richtig!=Eingabe)) Edit2->Text ="Wrong!"; if ((Hallo==1) && (Eingabe==richtig)) Edit1->Text ="Right!"; if ((Hallo==1) && (Eingabe!=richtig)) Edit1->Text ="Wrong!"; }Das ist mein Gesammter Quellcode. Bitte kurz überfliegen. Weil nämlich jetzt kommt mein Problem. Habe 2 Datein gemacht einmal English.txt und German.txt. Die dateien werden in eine Stringlist geladen. Per zufall wird entschieden welche Vokabel angezeigt wird. Per zufall wird auch entschieden ob nach der Deutschen oder Eglischen übersetzung gefragt wird. Nun das Problem: Wenn nach der Englischen übersetzung für das angezeigte Deutsche Wort gefragt wird funktioniert es. Anderrum aber nicht so ganz.
Zum Beispiel:
In edit2 wird Helo angezeigt. Dann tippe ich in Edit1 Hallo ein. Dann ´gibt mir das Programm right aus, schreibe ich halo oder hans dann zeigt er wrong. Das funktioniert also.
Aber wenn in Edit1 Hallo steht und ich dann helo in edit2 eingeben will zeigt er wrong an. Nur wenn ich in edit2 ebenfalls Hallo eingebe zeigt er right an.Ich hoffe man konnte mir Folgen. Bitte brauche dringend Hilfe... Meine English Zensur könnte leiden :´-(
Schonmal vielen Dank im Vor raus
-
Du hast bei deinen if die Klammern vergessen.
if (Hallo==0) { Edit1->Text = list->Strings[Nr]; richtig = list2->Strings[Nr]; } else { Edit2->Text = list2->Strings[Nr]; richtig = list->Strings[Nr]; }Du solltest die Stringlisten nach Gebrauch löschen. Deine Vergleichsfunktion ist auch etwas umständlich. Bei Stringvergleichen ist die Reihenfolge egal. Es reicht also hier der Vergleich richtig==Eingabe.
void __fastcall TForm1::Button3Click(TObject *Sender) { if (Hallo==0) Eingabe = Edit2->Text; else Eingabe = Edit1->Text; if (richtig==Eingabe) Edit2->Text ="Right!"; else Edit2->Text ="Wrong!"; }Ich habe jetzt nicht genau drüber geschaut. Da ist bestimmt noch mehr.
Achso, Hallo heißt auf Englisch Hello (doppel l) und nicht helo.
-
Das mit richtig und eingabe war nur ein Verzfeifelter Versuch

Man merk ich bin kein Englisch genie :D... also danke... werd ich mal ausprobieren
-
Ein Tipp noch, verwende am besten gar keine globalen Variablen, diese sollten viel eher in der Klasse (hier vielleicht eine eigene Klasse) oder in TForm1 deklariert werden. Am besten auch gleich als private und Zugriffsfunktionen schreiben, such mal im Forum nach "public Variablen sind böse...". Wenn du nicht weißt was das heißt (Klassen...)(ich will dir nichts unterstellen), dann solltest du vielleicht für den weitern Umgang dir Objektorientierung anschauen, das ist nämlich fast unumgänglich.
-
Muss ehrlich sagen hab nicht wirklich ahnung von C++ habe nur so ein Buch mit dem Titel C++ Für Kids :D... der titel dürfte alles verraten :D... aber nochmal danke jetzt funktioniert endtlich alles, thx