#include #include #include #include using namespace std; class tax { private: string name; public: tax(const string& initial_name): name {initial_name} {} const string& get_name() const {return name;} double amount(double x) const { if (name == "income") { return 0.3 * x; } else if (name == "capital gains") { return 0.4 * x; } else if (name == "regressive") { return x + 1000000.00; } else if (name == "progressive") { return x * x; } else if (name == "property") { return x + 100.00; } else { return 0.00; } } }; int main() { //Do not use scientific notation. //Output money with 2 digits to the right of the decimal point. cout << fixed << setprecision(2); //People like to see words left-justified, numbers right-justified. const tax federal("income"); cout << left << setw(13) << federal.get_name() << " " << right << setw(10) << federal.amount(100.00) << "\n"; const tax rich("capital gains"); cout << left << setw(13) << rich.get_name() << " " << right << setw(10) << rich.amount(100.00) << "\n"; const tax oklahoma("regressive"); cout << left << setw(13) << oklahoma.get_name() << " " << right << setw(10) << oklahoma.amount(100.00) << "\n"; const tax newyork("progressive"); cout << left << setw(13) << newyork.get_name() << " " << right << setw(10) << newyork.amount(100.00) << "\n"; const tax yonkers("property"); cout << left << setw(13) << yonkers.get_name() << " " << right << setw(10) << yonkers.amount(100.00) << "\n"; return EXIT_SUCCESS; }