Reference no: EM13159794
The local yogurt store would like you to write a program to help them calculate the cost of yogurt purchases.
Specifications:
? All yogurt in the store runs $0.44 per ounce, before toppings. And all purchases will be in whole ounces.
? Single servings of yogurt may be purchased in a plastic cup or waffle cone.
o Plastic cups are free.
o Waffle cones cost an additional $0.57.
? Customers may optionally add toppings to their yogurt at $0.63 per topping.
? Yogurt may be purchased in larger take home amounts for a discount.
o If customer purchases between 16 and 31 ounces, a $0.72 discount is given.
o If customer purchases 32 ounces or more, a $1.58 discount is given.
? Punch cards are given out to customer. Every time the customer gets 5 punches on their card, their next purchase is half price (after discounts are applied).
Implementation Requirements:
Data Storage:
? The program must use constants for ALL fixed values (therefore, there should be no hardcoded numbers in your program).
? The program shall use descriptive names for all constants and variables, and follow the naming conventions in the Coding Standards.
? The program shall use double type constants and variables for all floating point values (instead of float).
Required User-Defined Function:
? Create separate a user-defined function to calculate the discount.
? The function will take one input parameter: the number of ounces of yogurt
? The function will return the correct discount to give (or 0, if no discount is applicable).
The program should read all inputs, then perform all calculations, then display all outputs.
The user will enter the following input:
? The number of ounces of yogurt purchased
? Whether the customer wants a plastic cup or a waffle cone
o Read the answer from the user ('p'/'P' for plastic cup, 'w'/'W' for waffle cone, in either upper or lowercase) and store it in a character variable.
o Use a pre-defined function from the cctype library to convert the stored character to uppercase, for use later when deciding what to charge and what to display.
NOTE: If the customer orders too many ounces to fit in the waffle cone, and the customer wants a waffle cone, the waffle cone will be placed on top of the yogurt.
? Whether the customer wants to add toppings
o Read the answer from the user ('t'/'T' for toppings, 'n'/'N' for no toppings, in either upper or lowercase) and store it in a character variable.
o After reading the input character, the program shall assign a value to a Boolean variable called wantsToppings(true for a customer who wants toppings, false for a customer who does not). This time, the program must use alogical operator to test for either upper or lowercase when deciding what value to assign to the Boolean variable (not the cctype library function)
o If the customer wants toppings, also read the number of toppings to add
? Whether the customer has 5 punches on the card
o Read the answer from the user as a string: "yes" or "no"
o The prompt should indicate that the string must be entered in all lowercase letters.
NOTE: No error checking of the user input is required. You may assume that the user entered a valid answer for each question, and assume also valid input for test cases.