[Fragen]Quiz

01/20/2008 12:13 bla1447#1
Vorneweg, ich bin ein anfänger, wie man auch an den fragen sehen wird :)
Code:
#include <iostream>
#include <string>

using namespace std;

int main()
{
    cout<<"Willkommen zum  Quiz\n\n";
    cout<<"Achten Sie auf groß- und kleinschreibung!\n\n";
    cout<<"Drücken Sie Enter um das Quiz zu starten!";
    string anfang;
    cin>>anfang;
        cout<<"\n1.Frage: Was ist die Hauptstadt von Deutschland? ";
        string antwort1;
        cin>>antwort1;
        string ergebnis1;
        ergebnis1="Berlin";
            if(antwort1==ergebnis1)
            {
            cout<<"\n"<<ergebnis1<<" ist richtig!";
            }
            else
            {
            cout<<"\n"<<antwort1<<" ist falsch, die richtige Antwort ist "<<ergebnis1<<"!";
            }
        cout<<"\n2.Frage: Was ist die Hauptstadt von Italien? ";
        string antwort2;
        cin>>antwort2;
        string ergebnis2;
        ergebnis2="Rom";
            if(antwort2==ergebnis2)
            {
            cout<<"\n"<<ergebnis2<<" ist richtig!";
            }
            else
            {
            cout<<"\n"<<antwort2<<" ist falsch, die richtige Antwort ist "<<ergebnis2<<"!";
            }
        cout<<"\n3.Frage: Was ist die Hauptstadt von Spanien? ";
        string antwort3;
        cin>>antwort3;
        string ergebnis3;
        ergebnis3="Madrid";
            if(antwort3==ergebnis3)
            {
            cout<<"\n"<<ergebnis3<<" ist richtig!";
            }
            else
            {
            cout<<"\n"<<antwort3<<" ist falsch, die richtige Antwort ist "<<ergebnis3<<"!";
            }
        cout<<"\n4.Frage: Was ist die Hauptstadt von England? ";
        string antwort4;
        cin>>antwort4; 
        string ergebnis4;
        ergebnis4="London";
            if(antwort4==ergebnis4)
            {
            cout<<"\n"<<ergebnis4<<" ist richtig!"; 
            }
            else
            {
            cout<<"\n"<<antwort4<<" ist falsch, die richtige Antwort ist "<<ergebnis4<<"!";
            }  
        cout<<"\n5.Frage: Was ist die Hauptstadt von Russland? ";
        string antwort5;
        cin>>antwort5;
        string ergebnis5;
        ergebnis5="Moskau";
            if(antwort5==ergebnis5)
            {
            cout<<"\n"<<ergebnis5<<" ist richtig!";
            }
            else
            {
            cout<<"\n"<<antwort5<<" ist falsch, die richtige Antwort ist "<<ergebnis5<<"!";
            }
        cout<<"\n6.Frage: Was ist die Hauptstadt von Holland? ";
        string antwort6;
        cin>>antwort6;
        string ergebnis6;
        ergebnis6="Amsterdam";
            if(antwort6==ergebnis6)
            { 
            cout<<"\n"<<ergebnis6<<" ist richtig!";
            }
            else
            {
            cout<<"\n"<<antwort6<<" ist falsch, die richtige Antwort ist "<<ergebnis6<<"!";
            }
if(antwort1==ergebnis1 && antwort2 == ergebnis2 && antwort3 && ergebnis3
&& antwort4==ergebnis4 && antwort5 == ergebnis5 && antwort6==ergebnis6)
{
cout<<"\n\nHerzlichen Glückwunsch du hast alle Fragen richtig beantwortet!\n";
}
else
{
cout"<<\n\nSchade du hast nicht alles richtig beantwortet! Versuche es doch nochmal!\n";
}
system("PAUSE");    
}
Es funktioniert, wenn ich den letzten abschnitt weglasse:
Code:
if(antwort1==ergebnis1 && antwort2 == ergebnis2 && antwort3 && ergebnis3
&& antwort4==ergebnis4 && antwort5 == ergebnis5 && antwort6==ergebnis6)
{
cout<<"\n\nHerzlichen Glückwunsch du hast alle Fragen richtig beantwortet!\n";
}
else
{
cout"<<\n\nSchade du hast nicht alles richtig beantwortet! Versuche es doch nochmal!\n";
}
1) Kann man nur eine Bedingung per if machen? Wenn man hier guckt [Only registered and activated users can see links. Click Here To Register...] (ganz unten..) da sind 2 Bedingungen.

2) Könnte man nicht die richtige ergebnisse zählen und am ende sagen zb: Du hast 6 von 6 antworten richtig beantwortet u.s.w. , also wenn die antwort richtig ist, dann +1 jeweils. (Diese Lösung wär mir lieber als die erste)

3) Wie sieht mein code allgemein aus? Könnte man ihn einfacher schreiben bzw. kürzer? Keine Lösung schreiben sondern nur Tipps!

4) Wie kann man ß,ü,ä,ö u.s.w. richtig anzeigen lassen?

Das wären zunächst einmal meine Fragen, würde mich über antworten freuen :)
01/20/2008 12:52 MeepMoep#2
2. Ich hab dir mal meine Source zu nem Quiz hochgeladen ;D
3.Besser einrücken, in Funktionen auslagern, siehe Source ;D
4.Google nach OEM-Code
01/20/2008 13:04 bla1447#3
sehr nice, werds mir später genauer anschauen da ich jetzt keine Zeit habe
01/20/2008 13:44 Burner999#4
für die anzeige wieviele lösungen man richtig hat musst du einfach nur eine int variable erstellen diese wird bei jeder richtigen lösung +1 gesetzt das geht mit dem befehl
Code:
variable++;
das fügst du einfach immer da ein wo die if bedingung stimmt und lässt dir dann später die variable mit printf() am besten anzeigen meemoep hat für den befehl hier auch nen kleines tut geschrieben.
[Only registered and activated users can see links. Click Here To Register...]