Ein etwas anderes "Hello World" - Wo ist der Fehler?
-
Hallo!
Ich bin ein C++ Anfänger und habe mir als eines meiner ersten Programme dieses Programm programmiert.
Schön sieht der Code zwar nicht aus - und einige Abschnitte sind viel umständlicher programmiert als notwendig - Aber es soll ja auch nicht viel mehr als ein "Hello World" darstellen.Das Problem: Der Compiler akzeptiert meine Variablen an einigen Stellen nicht. Als ich nur die Variable "money" hatte, funktionierte alles prächtig, doch nun wollte ich noch die Variable "punktezahl" integrieren, schon klappt es nicht mehr.
Bitte macht euch keine Gedanken über das Spiel selbst (oder gar das Punktesystem, das auch noch nicht fertig ist, da das Problem auftrat ;)) , sondern über diesen Fehler.
Das wäre sehr nett.#include <iostream> #include <stdlib.h> using namespace std; int main(int argc, char *argv[]) { cout<<""<<endl<<endl; cout<<"AUTOENTWICKLUNG"<<endl<<endl; cout<<"______________________________________________________________________________"<<endl<<endl; cout<<"Ziel dieses Spieles: Gewinnen Sie ein Rennen mit einem selbst entwickelten Auto!"<<endl; system("PAUSE"); cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; float autonummer; cout<<"Geben Sie Ihrem Auto eine Nummer!"<<endl; cin>>autonummer; cout<<"Ihr Auto hat die Nummer: "<<autonummer<<endl<<endl; system("PAUSE"); cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; float money; money=30000; float punktezahl; punktezahl=0; cout<<"Ihr Guthaben, um das Auto zusammenzustellen betraegt (in EUR): " <<money<<endl<<endl; system("PAUSE"); cout<<"______________________________________________________________________________"; int karosserie; cout<<""<<endl<<endl; cout<<"Bitte suchen Sie sich nun eine Karosserie aus (Nur Karosserie, ohne Motor, Bremsen etc.), indem Sie die Zahl eingeben, die hinter dem Namen in Klammern steht!"<<endl<<endl<<endl; cout<<"Die Mini One Karosserie: Hochwertig, klein, guenstig - Aber echten Sportwagen-Anspruechen kann sie nicht gerecht werden. - Der Preis: 8000 Euro (1)"<<endl<<endl<<endl; cout<<"Die Karosserie des BMW 5er: Groesser, auf hohe Fahrleistung ausgelegt - aber teuer. - Der Preis: 20000 Euro (2)"<<endl<<endl; cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; cin>>karosserie; switch(karosserie) { case 1: cout<<"Die Karosserie des Mini One wurde gewaehlt. 8000 EUR werden Ihrem Konto abgebucht."<<endl; money=money-8000; punktezahl=punktezahl+10; cout<<"Ihr Guthaben, um das Auto zusammenzustellen betraegt nun (in EUR): " <<money<<endl<<endl; system("PAUSE"); cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; break; case 2: cout<<"Die Karosserie des BMW 5er wurde gewaehlt. 20000 Euro werden Ihrem Konto abgebucht."<<endl; money=money-20000; punktezahl=punktezahl-5; cout<<"Ihr Guthaben, um das Auto zusammenzustellen betraegt nun (in EUR): " <<money<<endl<<endl; system("PAUSE"); cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; break; } int eingabe2; cout<<"Nun brauchen Sie noch einen Motor! Dieses Mal haben Sie die Wahl zwischen Peugeot und Chrysler!"<<endl<<endl<<endl; cout<<"Dieser Motor des Chrysler 300 C leistet 249 PS und ist ein wahres Kraftpaket. Die Fahrleistungen werden natuerlich auch von der Wahl der Karosserie bestimmt. - Der Preis betraeft: 10000 EUR. (1)"<<endl<<endl<<endl; cout<<"Ein beruehmter Motor, der im Peugeot 206 und 307 Verwendung findet. Er leistet 110 PS. Die Fahrleistungen werden natuerlich auch von der Wahl der Karosserie bestimmt. - Der Preis betraegt 5000 EUR. (2)"<<endl<<endl<<endl; cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; cin>>eingabe2; switch(eingabe2) { case 1: cout<<"Der Motor des Chrysler 300 C wurde gewaehlt. 10000 EUR werden Ihrem Konto abgebucht."<<endl; money=money-10000; cout<<"Ihr Guthaben, um das Auto zusammenzustellen betraegt nun (in EUR): " <<money<<endl<<endl; system("PAUSE"); cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; break; case 2: cout<<"Der Peugeot-Motor wurde gewaehlt. 5000 Euro werden Ihrem Konto abgebucht."<<endl; punktezahl=punktezahl-5 money=money-5000; cout<<"Ihr Guthaben, um das Auto zusammenzustellen betraegt nun (in EUR): " <<money<<endl<<endl; system("PAUSE"); cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; break; } int eingabe3; cout<<"Moechten / koennen Sie von Ihrem Geld jetzt noch Extras kaufen?"<<endl<<endl<<endl; cout<<"Sport-Lederlenkrad - Preis: 200 EUR (1)"<<endl; cout<<"Sportsitze vorne - Preis: 650 EUR (2)"<<endl; cout<<"Nein! (3)"<<endl; cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; cin>>eingabe3; switch(eingabe3) { case 1: cout<<"Sie haben fuer Ihr Auto ein Sport-Lederlenkrad gekauft. 200 EUR werden abgezogen"<<endl; money=money-200; cout<<"Ihr Guthaben, um das Auto zusammenzustellen betraegt nun (in EUR): " <<money<<endl<<endl; system("PAUSE"); if(money<0) cout<<"Sie haben mehr Geld ausgegeben, als Sie durften. Sie sind ausgeschieden."<<endl<<endl; else cout<<""<<endl<<endl<<endl; cout<<"Ihr Auto ist fertiggestellt. Das Rennen beginnt !!"<<endl; cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; break; case 2: cout<<"Sie haben fuer Ihr Auto Sportsitze gekauft. 650 Euro werden Ihrem Konto abgebucht."<<endl; money=money-650; cout<<"Ihr Guthaben, um das Auto zusammenzustellen betraegt nun (in EUR): " <<money<<endl<<endl; system("PAUSE"); if(money<0) cout<<"Sie haben mehr Geld ausgegeben, als Sie durften. Sie sind ausgeschieden."<<endl; else cout<<""<<endl<<endl<<endl; cout<<"Ihr Auto ist fertiggestellt. Das Rennen beginnt !!"<<endl; cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; break; case 3: cout<<"Sie haben keine weiteren Extras fuer Ihr Auto gekauft."<<endl; cout<<"Ihr Guthaben, um das Auto zusammenzustellen betraegt nun (in EUR): " <<money<<endl<<endl; system("PAUSE"); if(money<0) cout<<"Sie haben mehr Geld ausgegeben, als Sie durften. Sie sind ausgeschieden."<<endl; else cout<<"Ihr Auto ist fertiggestellt. Das Rennen beginnt !!"<<endl; cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; } switch(karosserie) { case 1: cout<<"Sie fahren mit der Karosserie des Mini One "<<endl; break; case 2: cout<<"Sie fahren mit der Karosserie des BMW 5er!"<<endl; break; } { const float LIMIT=10; float punktezahl; if(punktezahl>=LIMIT) cout<<"Gewonnen!"<<endl; else cout<<"Verloren!"<<endl; }; system("PAUSE"); return 0; }
P. S.: Das Ausscheiden ist, wie man sehen kann, auch noch nicht ganz ausgeklügelt
. Die langen Striche habe ich nur der Übersichtlichkeit halber integriert.
-
Welche Variablen werden wo nicht akzeptiert?
mfg
v R
-
Eine Fehlermeldung kommt dort:
case 2: cout<<"Der Peugeot-Motor wurde gewaehlt. 5000 Euro werden Ihrem Konto abgebucht."<<endl; punktezahl=punktezahl-5 money=money-5000; //In dieser Zeile kommt eine Fehlermeldung cout<<"Ihr Guthaben, um das Auto zusammenzustellen betraegt nun (in EUR): " <<money<<endl<<endl; system("PAUSE"); cout<<"______________________________________________________________________________"; cout<<""<<endl<<endl; break; }
-
zum einen fehlt ein semikolon hier:
punktezahl=punktezahl-5;und zweiten: bitte mach mal verbünde um die if else verzweigungen, sprich: klammer die verbünde. sonst weiß der compiler nicht, was dazugehören soll, und was nicht.
if (bedingung) {
mach was
} else {
mach was anderes
}
-
Da fehlt ein ';' am Ende der Zeile da drueber.
mfg
v R[edit]
Mensch elise...du bist viel zu schnell. Gibbet zu, du wolltest nur die 5000er
Huerde und mir die Antwort vermiessen
[/edit]
-
Oh! Peinlich! Und ich habe stundenlang über diesem Fehler gebrütet.
Aber damit der Thread nicht sinnlos wird und ich noch mehr lernen kann, könnt ihr jetzt ja mal was zum "Spiel" allgemein sagen.
Was ist falsch programmiert, sinnlos, absurd, in der falschen Schreibweise?
-
so ganz verstehe ich den Sinn des Spieles nicht, aber das kann ja auch an mir liegen (vielleicht habe ich ja zu wenig Vorstellungskraft;-)
hier ein paar kleine Hinweise:
money=money-8000; //schöner: money-=800;
punktezahl=punktezahl+10;//schöner: punktezahl+=10;
system("PAUSE"); //ganz bitter-böse
cout<<"______________________________________________________________________________";
//die Zwischenzeile kannst du auch mit einem string und
//io-Manipulatoren realisieren; dies ist aber zu umständlich
cout<<""<<endl<<endl; //?????was soll <<""?????
-
Neudefinition von float punktezahl, wenn man die (überflüssigen?) Klammern wegnimmt.
Die Logik des Spiels kapiere ich nicht so ganz. Ist wahrscheinlich zu heiß
-
virtuell Realisticer schrieb:
[edit]
Mensch elise...du bist viel zu schnell. Gibbet zu, du wolltest nur die 5000er
Huerde und mir die Antwort vermiessen
[/edit]huch... fängts jetzt wieder bei null an?
-
#include <cstdlib> anstelle #include <stdlib.h>
-
@elise: Gibs doch zu, dass du jetzt in Geheimraum 1 angekommen bist
MfG SideWinder
-
ach deswegen ist die hintergrundfarbe des forums jetzt rosa...
-
Zum Spiel:
Für so eine simples Programm, würde ich mir niemals soviel Zeilen Arbeit machen; zumindest nicht mehr.Liebe Grüße
Real
-
Was mir noch aufgefallen ist: Die Variable >punktzahl< hast du zweimal deklariert.
Hat dein Compiler keine Warnung ausgegeben?
-
Darkfalcon schrieb:
Was mir noch aufgefallen ist: Die Variable >punktzahl< hast du zweimal deklariert.
Hat dein Compiler keine Warnung ausgegeben?Ne, warum sollte er? Die zweite ist in einem eigenen Block.
mfg
v R