#include <limits>
#include <cctype>
#include <iostream>
#include <iomanip>
 
int main()
{
    double const    kms_included_per_day    = 60.0;
    unsigned const  price_per_additional_km =   40;
    unsigned const  price_per_day           = 6000;
 
    int ch = 0;
 
    do {
        unsigned days = 0;
        double km = 0;
 
        while(  std::cout << "Tage:\t",
                !( std::cin >> days ) )
        {
            std::cerr << "\nFehlerhafte Eingabe. Bitte wiederholen!\n\n";
            std::cin.ignore( std::numeric_limits< std::streamsize >::max(), '\n' );
            std::cin.clear();
        }
 
        while(  std::cout << "km:\t",
                !( std::cin >> km ) )
        {
            std::cerr << "\nFehlerhafte Eingabe. Bitte wiederholen!\n\n";
            std::cin.ignore( std::numeric_limits< std::streamsize >::max(), '\n' );
            std::cin.clear();
        }
 
        double additional_kms = 0;
 
        if( km > days * kms_included_per_day ) {
 
            additional_kms = km - days * kms_included_per_day;
        }
   
        unsigned price = days * price_per_day + additional_kms * price_per_additional_km;
 
        std::cout << "Preis:\t" << std::setw( 5 ) << std::setprecision( 2 ) << std::fixed << price / 100. << "\n\n";
 
        std::cin.ignore( std::numeric_limits< std::streamsize >::max(), '\n' );
 
        while(  std::cout << "Berechnung wiederholen? (j/n)\n",
                ( std::tolower( ch = std::cin.get() ) != 'j' && std::tolower( ch ) != 'n' ) )
        {
            std::cerr << "\nFehlerhafte Eingabe. Bitte wiederholen!\n\n";
            std::cin.ignore( std::numeric_limits< std::streamsize >::max(), '\n' );
            std::cin.clear();
        }
 
        std::cout.put( '\n' );
 
    } while( ch != 'n' && ch != 'N' );
}