#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' ); }
4 g 34
Tage: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: km: