Zum Inhalt springen

hilfe beim c++ programm (kino preissystem)


Marc Otte

Empfohlene Beiträge

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 angehangen

fehler_meldung.txt

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 von Marc Otte
Link zu diesem Kommentar
Auf anderen Seiten teilen

Lies doch mal bitte Deine Fehlermeldung:

  • Syntaxfehler: Es fehlt ';' vor 'Zeichenfolge'
  • Listen der formalen Parameter stimmen nicht überein
  • Zu 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

error C2015: Zu viele Zeichen in der Konstante
Mit ' 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 werden
Das 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 ;)
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

// 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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...