//------------------------------------------------------- // 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 struct item { char* name; double value; }; int main( int args, char** argv) { const int TERM_WIDTH = 80; struct item item1, item2, item3; 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 item1.name = "NESTLE Smarties"; item1.value = 2.99; item2.name = "TOBLERONE Milk Rose"; item2.value = 4.99; item3.name = "Peaceable Kingdom Cupcake Valentine Heart Pack"; item3.value = 8.07; struct item items[] = {item1, item2, item3}; int i; double subtotal = 0; for(i = 0; i < 3; i++) { printf("%s%*.2f\n",items[i].name,(int)(TERM_WIDTH-strlen(items[i].name)) ,items[i].value); subtotal += items[i].value; } for(i=0; i