#include <iostream>
using namespace std;
int main()
{
cout << "Geben Sie einen Fahrzeugtyp ein. (Fahrraeder = 1,PKWs mit Anhaenger = 2,PKWs ohne Anhaenger = 3, LKWs = 4, alles andere = 5): " << endl;
int typ; // Variablen/Objekte am besten erst dann anlegen wenn sie benötigt werden
cin >> typ;
cout << endl << endl;
unsigned int fahrzeugkosten;
switch (typ)
{
case 1:
fahrzeugkosten = 2;
break;
case 2:
fahrzeugkosten = 5;
break;
case 3:
fahrzeugkosten = 7;
break;
case 4:
fahrzeugkosten = 10;
break;
default:
fahrzeugkosten = 15;
break;
}
size_t anzahl_personen; //Verwendung von size_t da hier eine Größe gemeint ist. Kann nur Positiv sein.
cout << "Wie viele Personen sind Sie in Ihrem Fahrzeug?" << endl;
cin >> anzahl_personen;
cout << endl << endl;
const double rabatt = 0.2;
const unsigned int preis_pro_person = 2;
unsigned int personenkosten = anzahl_personen * preis_pro_person;
double fälliger_betrag = fahrzeugkosten + personenkosten; //Ausgangswert ist Preis ohne Rabatt
if(anzahl_personen > 9) //Abfrage entspricht >=10, ist aber schneller.(Falls Kompilier es nicht selber optimieren sollte)
{
fälliger_betrag *= rabatt;
}
else
{
double preis_fuer_zehn = (fahrzeugkosten + 10 * preis_pro_person) * rabatt; //Berechnung wird nur ausgeführt wenn nötig.
if(preis_ohne_rabatt > preis_fuer_zehn)
{
fälliger_betrag = preis_fuer_zehn;
}
}
cout << "Ihre Ueberfahrt kostet: " << fälliger_betrag << " EUR"; //Durch meinen Code nur noch eine Ausgabe des Betrags nötig.
return 0; //wenn ein aktueller Compiler mit C++11 unterstützung verwendet wird, dann kann das "return 0" in der main() Funktion auch weggelassen werden
}