//------------------------------------------------------- // PbO Example demonstrating the use of nested and // distributed choices // // Written by: Quinn Hsu // Exposed three discount percentages // Exposed whether discounts should be applied //------------------------------------------------------- #include #include using namespace std; class Item { string name; double value; public: Item(string, double); string getName() { return name; } double getValue() { return value; } }; // constructor Item::Item(string my_name, double my_value) { name = my_name; value = my_value; } int main() { const int TERM_WIDTH=80; const double TAX = 0.12; double DISCOUNT = 0; // first reference to the distributed CHOICE discount ##BEGIN CHOICE discount // we can also nest choices ##BEGIN CHOICE discount_amount=fifty discount=0.5; ##CHOICE discount_amount=thirty discount=0.3; ##CHOICE discount_amount=ten discount=0.1; ##END CHOICE discount_amount ##END CHOICE discount Item item1 = Item("NESTLE Smarties", 2.99); Item item2 = Item("TOBLERONE Milk Rose", 4.99); Item item3 = Item("Peaceable Kingdom Cupcake Valentine Heart Pack", 8.07); Item items[] = {item1, item2, item3}; int i; double subtotal = 0; for(i=0; i<3; i++) { printf("%s%*.2f\n",items[i].getName().c_str(),(int)(TERM_WIDTH-items[i].getName().length()) ,items[i].getValue()); subtotal += items[i].getValue(); } for(i=0; i