#include <iostream> #include <string> using namespace std; class Product { public: /** Constructs a product with zero price and score. */ Product(); /** Reads in this product object. */ void read(); /** Compares two product objects. @param b the object to compare with this object @retur true if this object is better than b */ bool is_better_than(Product b) const; /** Print this product object */ void print() const; private: string name; double price; int score; }; Product::Product() { price = 0; score = 0; } void Product::read() { cout << "Please enter the model name: "; getline(cin, name); cout << "Please enter the price: "; cin >> price; cout << "Please enter the score: "; cin >> score; string remainder; /* read remainder of line */ getline(cin, remainder); } bool Product::is_better_than(Product b) const { if (price == 0) return false; if (b.price == 0) return true; return score / price > b.score / b.price; } void Product::print() const { cout << name << " Price: " << price << " Score: " << score << "\n"; } int main() { Product best; bool more = true; while (more) { Product next; next.read(); if (next.is_better_than(best)) best = next; cout << "More data? (y/n) "; string answer; getline(cin, answer); if (answer != "y") more = false; } cout << "The best value is "; best.print(); return 0; }