Details of this Paper

Assignment 9 - A Pizzeria

Description

solution


Question

Assignment 9 - A Pizzeria;Select one option from below. All (both) options are worth the same number of points. The more;advanced option(s) are provided for students who find the basic one too easy and want more of a;challenge. Make sure you have read and understood;both modules A and B this week, and;module 2R - Lab Homework Requirements;before submitting this assignment. Hand in only one program, please.;OPTION A (Basic) A Point of Sale App for a Pizzeria;PizzaOrder Class;Create a class called PizzaOrder that has the following members;toppingsOffered[] - a constant array of Strings representing the choice of low-price;toppings, e.g., { "onions", "bell peppers", "olives", "pepperoni"... }. This member is public and is;a static class member.;toppingsBaseCost - a constant double representing the cost of budget topping on a small;pizza. This member is public and is astatic class member.;basePrice - a constant double representing the cost of a small plain pizza. This member is;public and is a static class member.;size - an int 0 (small), 1 (medium) and 2 (large). This is a private instance member.;toppings[] - an array of Strings representing the toppings in this individual order. This is a;private instance member.;numToppings - an int whose value at any point in time is the number of toppings that have;been added to this PizzaOrderobject so far. It would start at 0 when the object is;constructed and increase each time a topping is added via the method (see;below) addTopping(). This is a private instance member. Do not provide an explicit mutator;for this member since it will be automatically adjusted in addTopping().;Note there is no total price member. You should not add one.;You should supply all of the following public instance methods;Constructors that takes no parameters (default pizza size = small) and one parameter;constructor that takes an int, size.;setSize(int size), getSize() - a mutator/accessor for size. Use int values for these;methods.;addTopping(String topping) - append a topping to the order (multiple toppings of the same;ingredient allowed). This is essentially a mutator that will take the parameter, topping, and;place it into the next available location of the toppings[] array.;addTopping(int n) - an overloaded version of addTopping() that takes an int, n, instead of;the String topping. The intwould represent the position in the toppingsOffered[] array of;the topping that is to be added. You can use whichever of these two addTopping() variants;that you wish in your client, but you must supply both in your class.;getPrice() - returns the price of the pizza. This method must compute the price since there;is no total price stored.;stringizeSize() - returns a String version of the size (0 means "small", 1 means "medium", 2;means "large").;getToppings() - returns a String containing a list of toppings for current order.;displayPizza() - shows the PizzaOrder, with the size, all toppings, and price.;PizzaOrder should be a class distinct from (and not contained within) your main class (which we;call Foothill). However, you can and should defined it as a non-public class so it can reside in the;same file, Foothill.java.;Main Driver;From your main() inside Foothill test your class by doing the following;OUTER LOOP: Provide an outer loop that asks: "Size of pizza (small, medium, large) or quit".;Get this as a string, not char or letter. As usual, let the use type in any word and only take;the first char. Also, allow both upper and lower case to match the target letters.;INNER LOOP: If the response isn't quit, put up a menu of items (and, optionally, the price of;each item). This initiates a second,inner loop that acquires pizza toppings from the user.;Here is an approximation of the screen during this inner loop;Current Pizza: small;Select an item by number (0 when done);1. Onions;2. Bell Pepper;3. Pepperoni;etc...;Selection? 2;Current Pizza: small + Bell Pepper;Select an item by number (0 when done);1. Onions;2. Bell Pepper;3. Pepperoni;etc...;Selection?;Notice that you must show the current pizza value (with or without price) after each choice.;TRANSITION FROM INNER TO OUTER LOOP: When the user selects 0, the inner;loop says thank you, displays the order and price, then ends, thus naturally bringing control;back to the outer loop. The main outer loop then resumes asking for another order ("size of;next pizza or quit?").;Assume that the total price of a pizza (including toppings) increases beyond that of a small by 15%;for a medium and 25% for alarge.;Make sure all mutators, constructors and other methods that affect private data adequately test for;illegal values and, if possible, return a boolean that reports the results of this test.;Static Helpers for main();Use the following from main() to keep some of the I/O micromanagement off its back;static void displayMainMenu();static char getSizeFromUser();Option A Sample Run;/* ------------------ Output of Above ------------------------------;Size of pizza ('s', 'm', 'l') or 'q' to quit: e;Size of pizza ('s', 'm', 'l') or 'q' to quit: 9;Size of pizza ('s', 'm', 'l') or 'q' to quit: jump;Size of pizza ('s', 'm', 'l') or 'q' to quit: M;Current Pizza: medium;Select an item by number (0 when done);1. onions;2. bell peppers;3. olives;4. pepperoni;Selection: 2;Current Pizza: medium + bell peppers;Select an item by number (0 when done);1. onions;2. bell peppers;3. olives;4. pepperoni;Selection: 2;Current Pizza: medium + bell peppers + bell peppers;Select an item by number (0 when done);1. onions;2. bell peppers;3. olives;4. pepperoni;Selection: 4;Current Pizza: medium + bell peppers + bell peppers + pepperoni;Select an item by number (0 when done);1. onions;2. bell peppers;3. olives;4. pepperoni;Selection: 0;medium + bell peppers + bell peppers + pepperoni;Total Price: $23.52;Size of pizza ('s', 'm', 'l') or 'q' to quit: l;Current Pizza: large;Select an item by number (0 when done);1. onions;2. bell peppers;3. olives;4. pepperoni;Selection: 1;Current Pizza: large + onions;Select an item by number (0 when done);1. onions;2. bell peppers;3. olives;4. pepperoni;Selection: 2;etc...;------------------------------------------------------------------- */

 

Paper#67153 | Written in 18-Jul-2015

Price : $22
SiteLock