Quiz Problem
-
Hi,
erstmal vielen dank, aber trotz der änderungen
läuft es immer noch nicht.Ich denke das
es an den Funktionen liegt und diese einfach nicht richtig
aufgerufen werden.
Über eure Hilfe würd ich mich sehr freuen,
vielen dank im vorraus.<da_Max>;
-
Hab das Programm mal ein wenig abgeändert:
#include <iostream> #include <cstdlib> //#include <conio.h> using namespace std; //Funktionsprototypen bool Frage1(); bool Frage2(); bool Frage3(); int main(){ cout << "Das Quiz von Maximilian Fink\n"; if(Frage1()) if(Frage2()) if(Frage3()) { /* auswertung der letzten fragefunktion und Abschlussiegerehrung*/ cout << "Sie haben gewonnen\n"; } return 0; } //Frage1 bool Frage1(){ cout << "Warum koennen Kuehe nicht fliegen\n"; //Antwortmoeglichkeiten cout << "[1]Weil sie kein Redbull saufen\n"; cout << "[2]Sie koennten ja wenn sie nur wollen wuerden\n"; cout << "[3]Weis ich nicht lass mich in Ruhe\n"; //Auswertung int AntwortzuFrage1; cin >> AntwortzuFrage1; switch(AntwortzuFrage1){ case 1 : case 2: return true; break; case 3 : default : cout << "Sind sie heute mim Falschen Bein aufgestanden\n"; return false; break; //ende von Switch } } //Frage 2 bool Frage2(){ cout << "Warum braucht man einen Termin beim Hellseher\n"; //Antwortmoeglichkeiten cout << "[1]Weil das alle Schwindler sind\n"; cout << "[2]Weil der Storch den Kuckuck küsst\n"; cout << "[3]Lass mich weiter pennen\n"; //Auswertung int AntwortzuFrage2; cin >> AntwortzuFrage2; switch(AntwortzuFrage2){ case 1 : case 2 : return true; break; case 3 : default : cout << "Also sie sind an der Pisa Studie schuld\n"; return false; break; //ende von Switch } } //Frage 3 bool Frage3(){ //Hat was mit nem dummen jungen aus meiner Schule zu tuen cout << "Wer ist Strohdumm und klopft jedem auf die Schulter\n"; //Antwortmoeglichkeiten cout << "[1]Bogdan\n"; cout << "[2]Glasklar das ist Daniel Kuebelboeck\n"; cout << "[3]Hmmm, ich denke du\n"; //Auswertung int AntwortzuFrage3; cin >> AntwortzuFrage3; switch(AntwortzuFrage3){ case 1 : case 2 : return true; break; case 3 : default : cout << "Für ihre Dummheit sollte man sie einsperren\n"; return false; //ende von Switch } }
-
Hi,
vielen dankich werd´s gleich mal testen,
blos ich bin halt noob und versteh folgende zeilen nicht.
Ich schreib einfach mal meine Theorie darüber hin.
Ich denke das prüft ob die funktion abgelaufen ist und an main
zurückgegeben hat.if(Frage1()) if(Frage2()) if(Frage3())
Hab ich heraus genommen da es bei mir mit den selben headern einen Fehler anzeigt, ich benutze VC++6.0, ist aber nicht so schlimm.
using namespace std;
Meine ide hat irgendeine falsche einstellung, sie mag es nicht wenn man das
.h für ne header Datei weglässt, ist doch standard?<MfG_Max>;
-
Master_Max schrieb:
Ich denke das prüft ob die funktion abgelaufen ist und an main
zurückgegeben hat.if(Frage1()) if(Frage2()) if(Frage3())
FrageX liefert true zurück, wenn die Frage richtig beantwortet wurde, ansonsten false, d.h. nur bei richtiger Beantwortung von Frage1 wird Frage2 ausgeführt usw.
Master_Max schrieb:
Meine ide hat irgendeine falsche einstellung, sie mag es nicht wenn man das
.h für ne header Datei weglässt, ist doch standard?Anstatt #include<stdlib.h> mußt du #include<cstdlib> schreiben...
-
Ich muss ganz ehrlich sagen, dass mich dein ganzes Programmkonzept nicht überzeugt. Deshalb habe ich dein Programm um geschrieben. Sollte eigentlich funktionieren (falls ich mich nicht vertippt habe :-)).
In Version 1 werden die Fragen solange wiederholt, bis die richtige Antwort genannt wird.
In Version 2 hat man pro Frage nur eine Chance.
Ein Wort zu den Headerdateien. Du solltest dir sowieso angewöhnen das ".h" immer zu schreiben.//Version 1
#include <iostream.h> //Die anderen Headerdateien brauchst du nicht//Funktionen:
int Frage1(void);
int Frage2(void);
int Frage3(void);int main()
{
cout << "Das Quiz von Maximilian Fink" << endl;while (true)
{
if (Frage1(void) == 1)
break;
}while (true)
{
if (Frage2(void) == 1)
break;
}while (true)
{
if (Frage3(void) == 1)
break;
}//Abschlussiegerehrung
cout << "Sie haben gewonnen!" << endl;
return 0;
}//Frage1
int Frage1(void)
{
char Antwort;
cout << "Warum koennen Kuehe nicht fliegen?" << endl;
//Antwortmoeglichkeiten
cout << "[1]Weil sie kein Redbull saufen" << endl;
cout << "[2]Sie koennten ja, wenn sie nur wollten" << endl;
cout << "[3]Weiß ich nicht. Lass mich in Ruhe!" << endl;//Auswertung
cin >> Antwort;
switch(Antwort)
{
case '1' :
return 1;
case '2' :
return 1;
case '3' :
cout << "Sind Sie heute mit dem falschen Bein aufgestanden?" << endl;
return 0;
//ende von Switch
}
return 0;
}//Frage 2
int Frage2(void)
{
cout << "Warum braucht man einen Termin beim Hellseher?" << endl;
//Antwortmoeglichkeiten
cout << "[1]Weil das alles Schwindler sind." << endl;
cout << "[2]Weil der Storch den Kuckuck küsst." << endl;
cout << "[3]Gähn...Lass mich weiter pennen!" << endl;//Auswertung
cin >> Antwort;
switch(Antwort)
{
case '1' :
return 1;
case '2' :
return 1;
case '3' :
cout << "Sie sind also an der PISA Studie Schuld!" << endl;
return 0;
//ende von Switch
}
return 0;
}//Frage 3
int Frage3(void)
{
//Hat etwas mit einem dummen Jungen aus meiner Schule zu tun
cout << "Wer ist strohdumm und klopft jedem auf die Schulter?" << endl;//Antwortmoeglichkeiten
cout << "[1]Bogdan" << endl;
cout << "[2]Hmmm... Ich denke du!" << endl;
cout << "[3]Glasklar, das ist Daniel Kuebelboeck" << endl;
//Auswertung
cin >> Antwort;
switch(Antwort)
{
case '1' :
return 1;
case '2' :
cout << "Für Ihre Dummheit sollte ma Sie einsperren!" << endl;
return 0;
case '3' :
return 1;
//ende von Switch
}
return 0;
}-------------------------------------------------------------------------------
//Version 2
#include <iostream.h> //Die anderen Headerdateien brauchst du nicht//Funktionen:
int Frage1(void);
int Frage2(void);
int Frage3(void);int main()
{
static int Falsch = 0;
cout << "Das Quiz von Maximilian Fink" << endl;if (Frage1(void) == 0)
Falsch += 1; //Du kannst auch Falsch++; schreibenif (Frage2(void) == 0)
Falsch += 1; //Du kannst auch Falsch++; schreibenif (Frage3(void) == 0)
Falsch += 1; //Du kannst auch Falsch++; schreiben//Abschlussiegerehrung
if (Falsch == 0)
cout << "Sie haben gewonnen!" << endl;
else
cout << "Sie haben " << Falsch << " Fehler gemacht! VERLIERER!!!"return 0;
}//Frage1
int Frage1(void)
{
char Antwort;
cout << "Warum koennen Kuehe nicht fliegen?" << endl;
//Antwortmoeglichkeiten
cout << "[1]Weil sie kein Redbull saufen" << endl;
cout << "[2]Sie koennten ja, wenn sie nur wollten" << endl;
cout << "[3]Weiß ich nicht. Lass mich in Ruhe!" << endl;//Auswertung
cin >> Antwort;
switch(Antwort)
{
case '1' :
return 1;
case '2' :
return 1;
case '3' :
cout << "Sind Sie heute mit dem falschen Bein aufgestanden?" << endl;
return 0;
//ende von Switch
}
return 0;
}//Frage 2
int Frage2(void)
{
cout << "Warum braucht man einen Termin beim Hellseher?" << endl;
//Antwortmoeglichkeiten
cout << "[1]Weil das alles Schwindler sind." << endl;
cout << "[2]Weil der Storch den Kuckuck küsst." << endl;
cout << "[3]Gähn...Lass mich weiter pennen!" << endl;//Auswertung
cin >> Antwort;
switch(Antwort)
{
case '1' :
return 1;
case '2' :
return 1;
case '3' :
cout << "Sie sind also an der PISA Studie Schuld!" << endl;
return 0;
//ende von Switch
}
return 0;
}//Frage 3
int Frage3(void)
{
//Hat etwas mit einem dummen Jungen aus meiner Schule zu tun
cout << "Wer ist strohdumm und klopft jedem auf die Schulter?" << endl;//Antwortmoeglichkeiten
cout << "[1]Bogdan" << endl;
cout << "[2]Hmmm... Ich denke du!" << endl;
cout << "[3]Glasklar, das ist Daniel Kuebelboeck" << endl;
//Auswertung
cin >> Antwort;
switch(Antwort)
{
case '1' :
return 1;
case '2' :
cout << "Für Ihre Dummheit sollte ma Sie einsperren!" << endl;
return 0;
case '3' :
return 1;
//ende von Switch
}
return 0;
}
-
Hi,
vielen dank..Mein Code ist leider so
unübersichtlich und verwirrend da ich versucht habe ohne
konzept loszucoden, ging ja schief.Naja, dein code ist zwar programmiertechnisch sehr gut, aber ich werd das ding noch mal
von vorne coden, (mit denken)denn ich verstehe fremde codes meistens
schlechter als eigene.Vielen dank ihr habt mir sehr geholfen.und zu den header dateien, hier im Forum heißt es dauernd schreib
kein .h hin, es kommt aber immer auf die situation und das alter
der Headers an z.B kann ich nur <conio.h> includieren aber#include <iostream>;
Geht manchmal aber manchmal nicht,
ich denke das liegt an der Headerendung die darauf folgt und die
man nicht mischen sollte, also mit .h oder ohne.Deshalb einfach
immer mit .h wie du sagst den dann gehts immer.(denk ich aber ich
hatte vorhin ein prob mit <cstdlib.h>.)<MfG_Max>;
-
@Header
Der aktuelle standard sieht die header wie folgt vor:#include <iostream> #include <cstdlib> // ...
die Endung .h ist demnach veraltet und kann schlimmstenfalls auch veraltete inhalte mit sich bringen.
das
#include <conio>
nicht geht kommt daher, dass die conio.h nicht zum standard gehört. im Borland C++ Builder hat sie ein paar sehr nette sachen, im MS VC++ dagegen is sie im Prinzip abfall.
btw: hinter ne include anweisung kommt kein ";" !@Mad888
mach doch die "Fragenfunktionen" gleich vom Typ Bool und vergiss das If in der schleife:bool Frage1 (); // ... while(!Frage1()){}; // ...
btw: wenn deine Funktion eh nur 0 zurück gibt, egal was passiert kannst se auch gleich vom Typ void machen :p
btw2: Code Tags
-
Hi,
#include <iostream.h>;
ist nur ein gewohnheitstippfehler.
wenn ich#include <iostream>
ohne .h mach , dann findet er die include datei nicht.
Aber einigemale ging es schon, hmmm.
Vielleicht bin ich selber schuld, da ich einfach an
spaß an der freude das DirectX 7 SDK installiert hab und
meine ide darauf angepasst hab, also an den include dateien
rumgespielt hab.Seis drum bei mir geht nur die alte variante
und deshalb werde ich sie weiterhin verwenden.
Vielen dank für eure hilfe und euer verständnis.<Grüße_Max>;
-
#include <iostream> using namespace std;
-
Hi,
wenn ich#include <iostream> using namespace std;
compilier, bekomm ich die warnung das er keinen namespace std
finden kann, manchmal aber auch nicht.Das liegt sicher an den
anderen Headern, aber ich dachte das alles was in den headern
steht, im namespace std steht.Naja vielen dank ich werds nochmal
ausprobieren vielleicht gings auch nicht weil ich immer das .h
hingeschrieben hab.Vielen dank an alle und schöne Ferien an
die die welche haben.<MfG_Max>;