Rättningssystem i C++ windows form
Hej mitt namn är Karl och jobbar med ett projekt som ska fungera som en sorts glosmaskin.
Jag är nästan klar med projektet och behöver bara få till rättningssystemet av orden att fungerar.
Jag använder mig av en lista. där användaren får skriva in det svenska ordet och ett engelska ord.
Det som inte fungerar är rättningen med "nästa ord knappen" och att få listen att slumpa fram orden i textlådan med det svenska ordet.
// "lägg till" knappen btn_add, lägger till både de svenska och engelska ordet.
private: System::Void btn_add_Click(System::Object^ sender, System::EventArgs^ e) {
if (tbx_addSv->Text == "" || tbx_addEng->Text == ""){
btn_add->Enabled=false;
}
else{
String^ Svensktord = tbx_addSv->Text;
glosa->Add(Svensktord);
tbx_addSv->Text = "";
String^ Engelsktord = tbx_addEng->Text;
glosa->Add(Engelsktord);
tbx_addEng->Text = "";
if (txtResultat->Text==""){
txtResultat->Text="Tillagda glosor: " + "\n" + Svensktord;
}
else{
txtResultat->Text=txtResultat->Text + "\n" + Svensktord;
}
}
}
private: System::Void tbx_addSv_TextChanged(System::Object^ sender, System::EventArgs^ e) {
if (tbx_addSv->Text->Length != 0)
{
tbxSvInmatad = true;
if(tbxEngInmatad == true && tbxSvInmatad == true)
{
btn_add->Enabled=true;
}
}
}
private: System::Void tbx_addEng_TextChanged(System::Object^ sender, System::EventArgs^ e) {
if (tbx_addEng->Text->Length != 0)
{
tbxEngInmatad = true;
} if(tbxEngInmatad == true && tbxSvInmatad == true)
{
btn_add->Enabled=true;
}
}
private: System::Void txtResultat_TextChanged(System::Object^ sender, System::EventArgs^ e) {
}
// Svara Glossi, användaren får svara på den svenska inmatningen i engelska.
private: System::Void btn_Svara_Click(System::Object^ sender, System::EventArgs^ e) {
if (tbx_SvarEng->Text == glosa[i+1]) {
txtResultat->Text ="Rätt svar!" + "\n" + glosa[i] + " = " + glosa[i+1] ;
//glosa->RemoveAt(i);
}
else{
MessageBox::Show("Fel svar försök igen!");
}
}
// Starta Glossi minst 20 glosor (I detta fall 2 för att förenkla testerna)
private: System::Void btn_Start_Click(System::Object^ sender, System::EventArgs^ e) {
if(glosa->Count >= 4 ){
txtResultat->Text = "";
gtbtest->Enabled=true;
btn_New->Enabled=true;
srand (time(0));
do{
i = rand()% glosa->Count;
}while( i%2==1 && i==1 );
tbx_SvarSv->AppendText(glosa[i]);
}
else{
MessageBox::Show("Mata in minst 20 glosor!");
}
}
// Återställer programmet och nollställer allt.
private: System::Void btn_New_Click(System::Object^ sender, System::EventArgs^ e) {
if (glosa->Count >= 2 ){
txtResultat->Text = "";
glosa->Clear();
gtbtest->Enabled=false;
tbx_SvarSv->Text = "";
tbx_SvarEng->Text = "";
}
}
// Nästa ord, här ska nästa ord starta och visas när du har svarat på det första angivna ordet.
private: System::Void btn_Next_Click(System::Object^ sender, System::EventArgs^ e) {
tbx_SvarSv->Text = "";
tbx_SvarEng->Text = "";
i = rand()% glosa->Count;
tbx_SvarSv->AppendText(glosa[i]);
}
// Ifall tbx_SvarEng är tom är "Nästa" inaktiverad
private: System::Void tbx_SvarEng_TextChanged(System::Object^ sender, System::EventArgs^ e) {
if (tbx_SvarEng->Text == ""){
btn_Next->Enabled=false;
}
else
btn_Next->Enabled=true;
}
Tackar för all hjälp!