Marc Otte Geschrieben 7. Januar 2009 Geschrieben 7. Januar 2009 Hallo, wir haben seit ca 2 Tagen c++ im unterricht und haben folgende aufgabe bekommen: In einem Kino gilt folgendes Preissystem: Im Saal 1 kostet ein Logenplatz 7, ein Sperrsitz 5Euro. Im Saal kostet die Loge 6Euro ein Sperrsitz genausoviel wie in Saal1. Hinzu kommt ein Wochenendzuschlag (Tage 5-7) Im Saal 3 gilt ein Einheitspreis von 3EUR. Sie sollen für Ihre Freunde Karten für einen Film besorgen, der in Saal 2 gezeigt wird und zwar logenplätze. Kalkulieren sie den preis für 7 personen alternativ für einen werktag und ein wochenende. Was würde der Kino besuch kosten wenn der Film in Saal 3 gezeigt würde? E(ingabe) Kinosaal-Nr, Platz (Loge=1, Sperrsitz=2), WochentagNr, Anzahl Personen V(erarbeitung) Berechnung des Eintrittspreises A(usgabe) Eintrittspreis in EUR Meine Überlegung: // Kino-Programm Aufgabe 2 // Author Marc Otte #include <iostream> using namespace std; int main() { int saal; int platz; int wochentag; int personen; char tag[12]; int logenkosten = 3; int sperrsitzkosten = 3; int zuschlag=2; int logenk; int sperrsitzk; const unsigned char AE = static_cast<unsigned char>(142); const unsigned char ae = static_cast<unsigned char>(132); const unsigned char OE = static_cast<unsigned char>(153); const unsigned char oe = static_cast<unsigned char>(148); const unsigned char UE = static_cast<unsigned char>(154); const unsigned char ue = static_cast<unsigned char>(129); const unsigned char ss = static_cast<unsigned char>(225); cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; cout << "Welchen Saal m" << oe << "chten Sie nutzen?" << endl; cout << endl; cout << "Ihre Eingabe: "; cin >> saal; system("cls"); cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; cout << "Sie haben gewählt Saal: " << saal << endl; cout << "Wann m" << oe << "chten Sie uns besuchen?" << endl; cout << endl; cout << "Montag <1>" << endl; cout << "Dienstag <2>" << endl; cout << "Mittwoch <3>" << endl; cout << "Donnerstag <4>" << endl; cout << "Freitag <5>" << endl; cout << "Samstag <6>" << endl; cout << "Sonntag <7>" << endl; cout << endl; cout << "Ihre Auswahl: "; cin >> wochentag; system("cls"); cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; switch(wochentag) { case 1: tag = 'montag'; if (saal == 1) { logenk = logenkosten + 4; sperrsitzk = sperrsitzkosten + 2; } else if (saal == 2) { logenk = logenkosten + 3; sperrsitzk = sperrsitzkosten + 2; } else if (saal == 3) { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 2: tag = "dienstag"; if (saal == 1) { logenk = (logenkosten +4); sperrsitzk =(sperrsitzkosten+2); } else if (saal == 2) { logenk = (logenkosten +3); sperrsitzk =(sperrsitzkosten+2); } else if (saal == 3) { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 3: tag = "mittwoch"; if (saal == 1) { logenk = (logenkosten +4); sperrsitzk =(sperrsitzkosten+2); } else if (saal == 2) { logenk = (logenkosten +3); sperrsitzk =(sperrsitzkosten+2); } else if (saal == 3) { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 4: tag = "donnerstag"; if (saal == 1) { logenk = (logenkosten +4); sperrsitzk =(sperrsitzkosten+2); } else if (saal == 2) { logenk = (logenkosten +3); sperrsitzk = (sperrsitzkosten+2); } else if (saal == 3) { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 5: tag = "freitag"; if (saal == 1) { logenk = (logenkosten +4 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == 2) { logenk = (logenkosten +3 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == 3) { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 6: tag = "samstag"; if (saal == 1) { logenk = (logenkosten +4 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == 2) { logenk = (logenkosten +3 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == 3) { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 7: tag = "sonntag"; if (saal == 1) { logenk = (logenkosten +4 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == 2) { logenk = (logenkosten +3 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == 3) { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; default: count "Falsche eingabe" << endl; break; } cout << "Sie haben gewählt Saal: " << saal << "am" << tag << endl; cout << "Wie viele Personen? "; cout << endl; cout << "Ihre Eingabe "; cin >> personen; system("cls"); cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; cout << "Sie haben gewählt Saal: " << saal << "am" << tag << endl; cout << personen << "Personen"; cout << "Wo m" << oe << "chten Sie sitzen?" << endl; cout << "Loge <1>" << endl; cout << "Sperrsitz <2>" << endl; cout << endl; cout << "Ihre Eingabe: "; cin >> platz; system("cls"); cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; cout << "Sie haben gewählt Saal: " << saal << "am" << tag << endl; cout << personen << "Personen haben" << platz << "gewählt" << endl; cout << endl; switch(platz) { case 1: einzelpreis = logenk; break; case 2: einzelpreis = sperrsitzk; break; default: "Fehlerhafte Eingabe" break; } cout << "Kosten pro Person: " << einzelpreis << "EUR" << endl; cout << "Gesamtkosten f" << ue << "r " << personen << " Personen: " << einzelpreis * personen << " EUR" << endl; } und finde den fehlerteufel einfach nicht, vllt hau ich hier auch die synthax durcheinander ... vllt kann mir jmd von euch - aufzeigen wo der fehler ist fehlermeldung als txt angehangenfehler_meldung.txt Zitieren
robotto7831a Geschrieben 7. Januar 2009 Geschrieben 7. Januar 2009 Hallo, die Zeilen stehen doch in der Fehlermeldung. Frank Zitieren
Marc Otte Geschrieben 7. Januar 2009 Autor Geschrieben 7. Januar 2009 (bearbeitet) Hallo Frank, ich kann damit nur leider nichts anfangen - da ich nicht verstehe was er von mir will ^^ Wenn ich das wüsste - müsste ich hier nicht fragen Edit: okay einzelpreis & gesamtpreis hatte ich oben vergessen zu deklarieren habs nachgeholt - dadurch türlich etwas kürzer die fehler liste. was ich nicht verstehe sind z.b. ------ Erstellen gestartet: Projekt: aufgabe2_kino, Konfiguration: Debug Win32 ------ Kompilieren... kino.cpp h:\anwendungsentwicklung\projekte\kino\kino.cpp(63) : error C2015: Zu viele Zeichen in der Konstante h:\anwendungsentwicklung\projekte\kino\kino.cpp(63) : error C2440: '=': 'int' kann nicht in 'char [12]' konvertiert werden Es gibt keine Konvertierungen von Arraytypen, obwohl es Konvertierungen von Verweisen oder Zeigern in Arrays gibt h:\anwendungsentwicklung\projekte\kino\kino.cpp(80) : error C2440: '=': 'const char [9]' kann nicht in 'char [12]' konvertiert werden Es gibt keinen Kontext, in dem diese Konvertierung möglich ist h:\anwendungsentwicklung\projekte\kino\kino.cpp(97) : error C2440: '=': 'const char [9]' kann nicht in 'char [12]' konvertiert werden Es gibt keinen Kontext, in dem diese Konvertierung möglich ist h:\anwendungsentwicklung\projekte\kino\kino.cpp(114) : error C2440: '=': 'const char [11]' kann nicht in 'char [12]' konvertiert werden Es gibt keinen Kontext, in dem diese Konvertierung möglich ist h:\anwendungsentwicklung\projekte\kino\kino.cpp(131) : error C2440: '=': 'const char [8]' kann nicht in 'char [12]' konvertiert werden Es gibt keinen Kontext, in dem diese Konvertierung möglich ist h:\anwendungsentwicklung\projekte\kino\kino.cpp(148) : error C2440: '=': 'const char [8]' kann nicht in 'char [12]' konvertiert werden Es gibt keinen Kontext, in dem diese Konvertierung möglich ist h:\anwendungsentwicklung\projekte\kino\kino.cpp(165) : error C2440: '=': 'const char [8]' kann nicht in 'char [12]' konvertiert werden Es gibt keinen Kontext, in dem diese Konvertierung möglich ist h:\anwendungsentwicklung\projekte\kino\kino.cpp(182) : error C2143: Syntaxfehler: Es fehlt ';' vor 'Zeichenfolge' h:\anwendungsentwicklung\projekte\kino\kino.cpp(182) : error C2563: Listen der formalen Parameter stimmen nicht überein h:\anwendungsentwicklung\projekte\kino\kino.cpp(182) : error C2568: '<<': Auflösung der Funktionsüberladung nicht möglich d:\programme\microsoft visual studio 9.0\vc\include\ostream(974): kann 'std::basic_ostream<_Elem,_Traits> &std::endl(std::basic_ostream<_Elem,_Traits> &)' sein with [ _Elem=wchar_t, _Traits=std::char_traits<wchar_t> ] d:\programme\microsoft visual studio 9.0\vc\include\ostream(966): oder "std::basic_ostream<_Elem,_Traits> &std::endl(std::basic_ostream<_Elem,_Traits> &)" with [ _Elem=char, _Traits=std::char_traits<char> ] d:\programme\microsoft visual studio 9.0\vc\include\ostream(940): oder "std::basic_ostream<_Elem,_Traits> &std::endl(std::basic_ostream<_Elem,_Traits> &)" Das Buildprotokoll wurde unter "file://h:\Anwendungsentwicklung\Projekte\kino\aufgabe2_kino\Debug\BuildLog.htm" gespeichert. aufgabe2_kino - 11 Fehler, 0 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ========== Grüße Bearbeitet 7. Januar 2009 von Marc Otte Zitieren
flashpixx Geschrieben 7. Januar 2009 Geschrieben 7. Januar 2009 Lies doch mal bitte Deine Fehlermeldung: Syntaxfehler: Es fehlt ';' vor 'Zeichenfolge'Listen der formalen Parameter stimmen nicht übereinZu viele Zeichen in der Konstante nur mal so ein kleiner Auszug, solche Fehler kann man schnell selbst beheben. Bei den anderen schau Dir mal Deine Datentypen genauer an, z.B. diese Meldung: 'const char [9]' kann nicht in 'char [12]' konvertiert werden ist eigentlich auch mit ein bisschen Nachdenken erschlagen Phil Zitieren
Marc Otte Geschrieben 7. Januar 2009 Autor Geschrieben 7. Januar 2009 Hätte mir auch das Nachfragen hier sparen können. Sicherlich guck ich mir die Fehlermeldung an ... aber ich kenne C++ erst seit gestern, tut mir unheimlich leid das ich mit diesen Fehlermeldungen nichts anfangen kann und ich mir vllt erhofft habe das jmd mir hier die vllt erläutert. Grüße Zitieren
Klotzkopp Geschrieben 7. Januar 2009 Geschrieben 7. Januar 2009 error C2015: Zu viele Zeichen in der KonstanteMit ' erzeugst du Zeichenliterale, d.h. dazwischen darf nur ein einziges Zeichen stehen. Für Zeichenkettenliterale benutzt man ". h:\anwendungsentwicklung\projekte\kino\kino.cpp(63) : error C2440: '=': 'int' kann nicht in 'char [12]' konvertiert werdenDas ist ein Folgefehler. Aber auch mit doppelten Anführungszeichen kann man Arrays nichts zuweisen. Benutz keine char-Arrays, sondern std::string. Damit dürften die meisten Fehler wegfallen. default: count "Falsche eingabe" << endl;Was hier falsch ist, sollte man eigentlich spätestens auf den zweiten Blick sehen. default: "Fehlerhafte Eingabe"Und dass das kein gültiger Code sein kann, sollte auch klar sein. Ein wenig mehr Sorgfalt bitte Zitieren
Marc Otte Geschrieben 7. Januar 2009 Autor Geschrieben 7. Januar 2009 Hi, so habe nochmal drüber geschaut und einiges geändert: erst mal entschuldigung für die flüchtigkeits fehler bei cout und << / >> ... // Kino-Programm Aufgabe 2 // Author Marc Otte #include <iostream> using namespace std; int main() { int saal; int platz; int wochentag; int personen; int logenkosten = 3; int sperrsitzkosten = 3; int zuschlag = 2; int logenk; int sperrsitzk; int einzelpreis; /* int gesamtpreis; */ /*const unsigned char AE = static_cast<unsigned char>(142); const unsigned char ae = static_cast<unsigned char>(132); const unsigned char OE = static_cast<unsigned char>(153); const unsigned char oe = static_cast<unsigned char>(148); const unsigned char UE = static_cast<unsigned char>(154); const unsigned char ue = static_cast<unsigned char>(129); const unsigned char ss = static_cast<unsigned char>(225); */ cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; cout << "Welchen Saal moechten Sie nutzen?" << endl; cout << endl; cout << "Saal <1>" << endl; cout << "Saal <2>" << endl; cout << "Saal <3>" << endl; cout << endl; cout << "Ihre Eingabe: "; cin >> saal; system("cls"); cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; cout << "Sie haben gewaehlt Saal: " << saal << endl; cout << endl; cout << "Wann moechten Sie uns besuchen?" << endl; cout << endl; cout << "Montag <1>" << endl; cout << "Dienstag <2>" << endl; cout << "Mittwoch <3>" << endl; cout << "Donnerstag <4>" << endl; cout << "Freitag <5>" << endl; cout << "Samstag <6>" << endl; cout << "Sonntag <7>" << endl; cout << endl; cout << "Ihre Auswahl: "; cin >> wochentag; system("cls"); cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; switch(wochentag) { case 1: /* tag = "montag"; */ if (saal == '1') { logenk = logenkosten + 4; sperrsitzk = sperrsitzkosten+2; } else if (saal == '2') { logenk = logenkosten + 3; sperrsitzk = sperrsitzkosten + 2; } else if (saal == '3') { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 2: /* tag = "dienstag"; */ if (saal == '1') { logenk = (logenkosten +4); sperrsitzk =(sperrsitzkosten+2); } else if (saal == '2') { logenk = (logenkosten +3); sperrsitzk =(sperrsitzkosten+2); } else if (saal == '3') { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 3: /* tag = "mittwoch"; */ if (saal == '1') { logenk = (logenkosten +4); sperrsitzk =(sperrsitzkosten+2); } else if (saal == '2') { logenk = (logenkosten +3); sperrsitzk =(sperrsitzkosten+2); } else if (saal == '3') { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 4: /* tag = "donnerstag"; */ if (saal == '1') { logenk = (logenkosten +4); sperrsitzk =(sperrsitzkosten+2); } else if (saal == '2') { logenk = (logenkosten +3); sperrsitzk = (sperrsitzkosten+2); } else if (saal == '3') { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 5: /* tag = "freitag"; */ if (saal == '1') { logenk = (logenkosten +4 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == '2') { logenk = (logenkosten +3 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == '3') { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 6: /* tag = "samstag"; */ if (saal == '1') { logenk = (logenkosten +4 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == '2') { logenk = (logenkosten +3 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == '3') { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; case 7: /* tag = "sonntag"; */ if (saal == '1') { logenk = (logenkosten +4 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == '2') { logenk = (logenkosten +3 + zuschlag); sperrsitzk =(sperrsitzkosten+2 + zuschlag); } else if (saal == '3') { logenk = logenkosten; sperrsitzk = sperrsitzkosten; } break; default: cout << "Falsche eingabe" << endl; break; } cout << "Sie haben gewaehlt Saal: " << saal << endl; cout << "Wie viele Personen? "; cout << endl; cout << "Ihre Eingabe "; cin >> personen; system("cls"); cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; cout << "Sie haben gewaehlt Saal: " << saal << endl; cout << personen << " Personen" << endl; cout << endl; cout << "Wo moechten Sie sitzen?" << endl; cout << endl; cout << "Loge <1>" << endl; cout << "Sperrsitz <2>" << endl; cout << endl; cout << "Ihre Eingabe: "; cin >> platz; system("cls"); cout << "Willkommen im Interaktiven-Kino Automaten" << endl; cout << "-----------------------------------------" << endl; cout << endl; cout << "Sie haben gewaehlt Saal: " << saal << endl; cout << personen << " Personen haben " << platz << " gewaehlt" << endl; cout << endl; switch(platz) { case 1: einzelpreis = logenk; break; case 2: einzelpreis = sperrsitzk; break; default: cout << "Fehlerhafte Eingabe" << endl; break; } cout << "Kosten pro Person: " << einzelpreis << "EUR" << endl; cout << "Gesamtkosten fuer " << personen << " Personen: " << einzelpreis * personen << " EUR" << endl; return 0; } Starten ohne Debuggin funktioniert ohne probleme. Ich gehe folgenden Weg Auswahl 1: Saal1 Auswahl 2: Montag Auswahl 3: 7 Personen Auswahl 4: Loge ..... und jetzt kommt eine Fehlermeldung "Runtime Check Failure #3 - Variable 'logenk' is being used without initialising" ..... ich glaub verstanden zu haben das der wert von logenk im switch(wochentag) gelöscht wird sobald dieser durchlaufen ist (nennt sich glaub ich lokale variabel) und somit meckert am ende ... kannst du mir vllt aufzeigen (bitte für anfänger) wie ich das richtig machen müsste? vielen dank schon mal für deine mühen im voraus grüße marc p.s. hab die ganze sache mit tag = "montag" e.g. ausgeklammert da wir noch nichts mit string gemacht haben und ich es somit (noch) nicht kann Zitieren
Marc Otte Geschrieben 7. Januar 2009 Autor Geschrieben 7. Januar 2009 // Leider den Edit button hier net gefunden! wenn ich oben logenk = 0; setze ... dann meckert er nicht mehr allerdings gibt er dann am ende als preis nur noch 0EUR aus Hat das was mit globaler und lokaler variable zu tun? (in cobolt (auch wenns alt is - isses um vieles einfacher ^^ ) Grüße Marc Zitieren
Marc Otte Geschrieben 8. Januar 2009 Autor Geschrieben 8. Januar 2009 habs anderweitig gelöst trotzdem danke für die bisherige hilfe grüße Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.