C++ Wiederholung der Anweisung bis TRUE! Aber wie?

bgnr

Grünschnabel
Hallo Leute,

ich würde gerne mir KNOW HOW in C++ aneignen.
Bald steht die Abschlussprüfung als Elektriker bei uns im Betrieb bevor und ich wollte für die Jungs (Arbeitskollegen) ein kleines Programm schreiben, welches die alten Prüfungsfragen abfragt. Als Vorbereitung so zusagen.

COUT und CIN kriege ich ja noch hin, jedoch war das auch schon alles! :-(

Wäre super nett, wenn jemand mir in der Hinsich etwas unter die Arme greift.

Meine Fragen:

1. Welchen Befehl gebe ich ein, um eine Frage immerwieder zu wiederholen, bis die richte Antwort kommt?

2. Nach der richtigen Antwort, sollte logischerweise die nächste folgen: Wie mache ich das?

Ich weiß, dass es nervig ist, einem Beginner Schritt für Schritt etwas Neues beizubringen... Ich hoffe, dass es doch jemanden gibt, der sich die Mühe macht und mir die Anwendung des C++ näher beibringt.

Im Voraus, danke für die Geduld und Mühen!
Sorry wegen den Schreibfehlern.

BGNR
 
Das hier ist ein Forum bei Fragen... ewnn du 1sek bei google gesucht hättest oder wenigstens ein Tutorial durchgearbeitet!
Wer zu faul ist sollte es einfach lassen!
 
Guck dir mal Schleifen an. Mein Vorredner hat absolut Recht, habt ihr so viel Zeit ?
Bei so simplen Fragen bietet die Suche doch unzählbar viele Treffer...
 
@Skid: Wenn Du ueber C++ redest ist es meiner Meinung nach wenig sinnvoll zu einem OpenBook ueber C# zu verlinken. ;)
Das sind ja immerhin zwei verschiedene Paar Schuhe, auch wenn ja nicht nur der Name gewisse Aehnlichkeiten aufweist. ;)
 
@Skid: Wenn Du ueber C++ redest ist es meiner Meinung nach wenig sinnvoll zu einem OpenBook ueber C# zu verlinken. ;)
Das sind ja immerhin zwei verschiedene Paar Schuhe, auch wenn ja nicht nur der Name gewisse Aehnlichkeiten aufweist. ;)

Argh, sorry, mein Fehler.
Das kommt von Copy&Paste ;)

Danke für die Aufmerksamkeit, habs angepasst :-)
Nach 0Uhr sollte man wohl nicht mehr posten *GG*

Liebe Grüße,
SkiD.
 
Alles klar!

Trotzdem danke euch Jungs!

Vor allem danke ich euch für die zahlreichen links!

Ich hoffe, ich darf mich melden, wenn ich etwas net verstanden habe!
 
Jetzt hast du es auf den Punkt gebracht. Dafür ist das Forum da, jemandem zu helfen bei einem Verständnisproblem. Das setzt vorraus das man sich mit der thematik zumindest etwas beschäftigt hat ;)

mfg
 
Da ich weiss, dass es oft schwer ist, ein sauberes Konzept für ein Programm zu finden, gerade wenn man frisch beginnt, zeige ich dir hier ein kleines Beispiel, wie du die Sache angehen könntest:
Code:
#include <time.h>
#include <iostream>

struct question
{
         char* frage, *antwort;
};

static question questions[25]; // Angenommen, wir möchten 25 Fragen zur Verfügung stellen

// Fragen in die Platzhalter einfügen
void InitQuestions()
{
	questions[0].frage = "bla";
	questions[0].antwort = "blu";
	...
}

int main()
{
	InitQuestions(); // Fragen laden
	srand(time(NULL)); // Zufallsgenerator initialisieren
	char* antw = new char[255]; // Platzhalter für Antwort
	while(true)
	{
		system("cls");
		question qst = questions[rand() % 25]; // Zufällige Frage auswählen
		while(true)
		{
			printf("%s\n", qst.frage); // Frage ausgeben
			std::cin >> antw; // Auf Antwort warten
			if(!strcmp(antw, qst.antwort)) // 0 = Die beiden werte sind gleich
				break; // Frrage richtig beantwortet --> weiter
			system("cls");
		}
	}
	return 0;
}

Das ist natürlich nur ein Prototyp. Da gehörte noch eine Abbruchmöglichkeit hin, ausserdem könntest du vielleicht noch eine geeignetere Initialisierung wählen, etc, aber das ganze soll dir als Denkanstoss bzw als Konzept dienen.

Gruss
Cromon

PS: Bitte übernimm es nicht einfach nur via Kopieren, sondern überlege dir selbst, ob du wirklich alles verstanden hast und verwende es nur dann!
 
Da ich weiss, dass es oft schwer ist, ein sauberes Konzept für ein Programm zu finden, gerade wenn man frisch beginnt, zeige ich dir hier ein kleines Beispiel, wie du die Sache angehen könntest: [...]
Du vermischt hier munter C- und C++-Stil, daher würde ich diese Vorlage einem Anfänger nicht als Lektüre empfehlen. Eine Lösung mit C++-Mitteln könnte beispielsweise so aussehen:
C++:
#include <iostream>
#include <string>
#include <vector>

using std::cout;
using std::cin;
using std::endl;

struct aufgabe { // Datentyp für eine Aufgabe
  std::string frage, antwort;
  aufgabe(const std::string &frage, const std::string &antwort) : frage(frage), antwort(antwort) {}
};

static std::vector<aufgabe> aufgaben; // Vektor mit allen Aufgaben

// Vektor mit Aufgaben füllen
void LadeAufgaben() {
  aufgaben.push_back(aufgabe("1+2", "3"));
  aufgaben.push_back(aufgabe("3+4", "7"));
  aufgaben.push_back(aufgabe("5+6", "11"));
  // ...
}

int main() {
  LadeAufgaben(); // Aufgaben laden
  std::string antwort;
  std::vector<aufgabe>::const_iterator it = aufgaben.begin();
  while (it != aufgaben.end()) { // Über alle Aufgaben laufen
    cout << "Frage: " << it->frage << endl; // Frage stellen
    cout << "Antwort: ";
    cin >> antwort; // Antwort abfragen
    if (antwort == it->antwort) { // Gegebene Antwort mit richtiger vergleichen
      cout << "Richtig!" << endl;
      it++; // Zur nächsten Aufgabe fortschreiten      
    } else {
      cout << "Falsch!" << endl;
      // Kein Fortschreiten, Frage wird nochmal gestellt
    }
  }
  return 0;
}
 
Zurück