Frage zu meinem Code (Berechnungen nicht beeinflussen)



  • cancelled 🤡



  • Warum so einen langen Quelltext 😕

    Es ist doch ein leichtes statt der 50,456 🤡 Staaten nur 3 Staaten zu Darstellung deiner Frage zu zeigen. 😃

    Dann solltest du dir Gedanken machen ob mehr als 100 Zeilen unter der "main" stehen müssen. Teile deinen Quelltext in logische Funktionsgruppen.

    Und mit der Formatierung deines Quelltextes, das geht auch noch übersichtlicher.

    So wird da kaum jemand auf deine Frage antworten.



  • cancelled



  • tipp 1:

    char Europa [400]= {'Andora', 'Austria', 'Belgia'};
    

    das ist falsch.
    tipp 2:
    kategoriepreise und laenderpreise kannst du in arrays packen, dann hast du per index direkten zugriff auf die preise und sparst eine menge if/else zeilen.



  • cancelled



  • Man packt aber in '' nur einzelne Zeichen. Strings packt man in "". Und dann hast Du ein Array von 400 Zeichen, eigentlich willst Du aber doch ein Array von 3 Strings. Also ein Array von drei char-Arrays:

    const char* laender[] = {"Land1", "Land2", "Land3"};
    

    Das mit der Codeformatierung stimmt leider.

    Auch bzgl. der Arrays hat umpf Recht. 🙂

    Und Deine Ausgangsfrage verstehe ich nicht: Inwiefern würde das Zielland Deine Berechnungen denn beeinflussen? Wieso kann die Frage nach dem Zielland, wenn es die Rechnungen beeinflusst, nicht vor diesen geschehen?



  • Wenn du mit char-Arrays in C nicht klarkommst, nimm die string-Klasse von C++
    Schliesslich hast du ja unter C++ gefragt! 🕶



  • wisnia schrieb:

    [cpp]

    cout << "Druecken Sie 1 fuer Deutsch, press 2 for english language, 3 jezik polsik, 4 language francaise " << endl;

    Es heißt "jęzYk polski" 😃 😃 😃



  • Und dann heißt es noch langue française.



  • in zweiter näherung könnte dein programm so aussehen:

    #include <iostream>
    using namespace std;
    
    int main ( void )
    {
        const int anzahl_kategoriepreise = 3;
        const int anzahl_laenderpreise = 3;
    	int kategoriepreis_auswahl[anzahl_kategoriepreise] = { 100, 200, 300 };
    	int laenderpreis_auswahl[anzahl_kategoriepreise] = { 100, 200, 300 };
    
    	int kategoriepreis = 0;
    	int laenderpreis = 0;
    	int auswahl = 0;
    	int kundenkarte = 0;
    	int summe = 0;  
    	int geld = 0;
    
    	/*  Auskommentiert weil bisher ohne Funktion.
    	char Europa [400]= {'Andora', 'Austria', 'Belgia'};
    	cout << "Druecken Sie 1 fuer Deutsch, press 2 for english language, 3 jezik polsik, 4 language francaise " << endl;
        cin >> sprache;
    	*/
    
    	cout << "1 fuer ein EconomicClass: " << endl;
    	cout << "2 fuer ein Businessclass: " << endl;
    	cout << "3 fuer eine FirstClass: " << endl;
     	cin >> auswahl;
    	if ( auswahl >= 1 && auswahl <= anzahl_kategoriepreise )
    		kategoriepreis = kategoriepreis_auswahl[auswahl-1];
    	else
    		return 0;
    
    	cout << "1 fuer Europa: " << endl;
    	cout << "2 fuer Afrika: " << endl;
    	cout << "3 fuer Asien: " << endl;              
     	cin >> auswahl;
    	if ( auswahl >= 1 && auswahl <= anzahl_kategoriepreise )
    		laenderpreis = laenderpreis_auswahl[auswahl-1];
    	else
    		return 0;
    
    	cout << "Haben Sie eine Kundenkarte?" << endl << "1 fuer ja, 2 fuer nein: " << endl;
    	cin >> kundenkarte;
    	summe = kategoriepreis + laenderpreis;
    
    	if ( 1 == kundenkarte ) 
    		summe = summe - 30;
    
    	cout << "Ihr Ticket kostet: " << summe << " Euro." << endl;
    	cout << "Bitte geben Sie Geld ein: ";
    
    	while ( summe > geld )
    	{  
    		int eingegebenes_geld = 0;
    
    		cin >> eingegebenes_geld;
    		geld += eingegebenes_geld;
    
    		if ( summe > geld )
    		{
    			cout << "Es fehlen noch: " << summe - geld << " Euro." << endl;
    			cout << "Bitte geben Sie Geld ein: ";
    		}
    	}                    
    
    	if ( geld > summe )
    		cout << "Vielen Dank! Sie bekommen noch: " << geld - summe << " Euro zurueck." << endl; 
    
    	system ( "Pause" );
    	return 0;
    }
    

    es fehlen noch abfragen, ob auch wirklich zahlen und keine anderen zeichen eingegeben wurden, damit wäre auch

    wisnia schrieb:

    Ich will einfach nur den Kunden auffordern, sein Zielland einzugeben, ohne dass die Berechnungen verändert werden.

    beantwortet.
    und lies dir dringend ein kapitel über codeeinrückung durch!



  • fred++ schrieb:

    und lies dir dringend ein kapitel über codeeinrückung durch!

    Oder besser immer vor dem Posten (unter der Annhame, daß MSVC benutzt wird) mal Strg+A gefolgt von Alt+F8 drücken.



  • geschlossen



  • z.b. eingabe in einen string einlesen und jedes zeichen checken.



  • cancelled



  • andora, austria, belgia sind als zielland schon in ordnung. 🤡
    da du offensichtlich keine lust hast an der qualität deines codes zu arbeiten und immer wieder denselben müll hier reinrotzst, habe ich auch keine lust mehr dir zu helfen. 🙂
    vllt. noch einen letzten tipp meinerseits:
    es wäre besser code zu posten, der sich kompilieren lässt, dann ist die wahrscheinlichkeit größer, dass dir jemand hilft.



  • geschlossen


Anmelden zum Antworten