logo Use CA10RAM to get 10%* Discount.
Order Nowlogo
(5/5)

Have you ever noticed how difficult it is to organize ordering pizza for a large group?

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Background:

Have you ever noticed how difficult it is to organize ordering pizza for a large group?

Just to be clear: the answer is ‘yes’. Doesn’t matter if it makes sense; we’re going with ‘yes’

Shelly likes a classic pepperoni and cheese on red sauce. Marshall likes olives and artichokes on white. Gary just likes red and white sauce with nothing else on. We… don’t invite Marshall to our pizza parties anymore.

 

The more people you’re ordering for, the more you have to compromise. e.g. if Allen wants a classic Hawaiian (ham, pineapple, and cherries), and Brenda wants a more local variant (bacon and pineapple), then clearly the solution is to take the intersection of the two: nothing but pineapple!

(Yes yes, probably sauce and cheese also, but the point is: pineapple is great and everyone loves it)

 

Pizza:

To assist with this, we could devise a new data type: a Pizza.

To be clear, a Pizza in this context isn’t the pizza itself, but rather a configuration of toppings.

There are 20 possible toppings (including sauces and cheeses)

o The options are all defined in an unscoped enumeration

o Each topping is either present, or not (e.g. you can’t get ‘double bacon’)

Since a Pizza is really just ‘one possible configuration’, the type is immutable. If you want a different configuration, simply use one of the included operators to create new derived configuration

o e.g. if p1 is [Red sauce | Pepperoni], then p2=p1+OLIVES; means p2 ends up with [Red sauce | Pepperoni | Olives], but p1 remains unchanged

 

Pizza Operators:

Operator C++ [returns]

Union of toppings present in either pizza A+B [Pizza]

Intersection of only toppings common to both pizzas A^B [Pizza]

Result of removing toppings defined by a different pizza A-B [Pizza]

Result of adding a single topping to the pizza A+b [Pizza]

Result of leaving a single topping off the pizza A-b [Pizza]

Checking if a pizza’s toppings are contained entirely within another’s A<=B [bool]

Checking if second pizza’s topping are a strict superset of this one’s A<B [bool]

Checking if a pizza has at least all the same toppings as another A>=B [bool]

Checking if a pizza has the same toppings as another, plus at least one more A>B [bool]

Checking if two pizzas have identical toppings A==B [bool]

Checking if two pizzas are different A!=B [bool]

Checking if a pizza has no toppings at all !A [bool]

Getting the number of toppings on the pizza A() [int]

Checking if a specific topping is present A[t] [bool]

Stream insertion (output) O<<A [ostream]

There are also two static functions for presets: one that yields the configuration of all possible toppings, and one that’s just for solely the meats (i.e. not even sauce or cheese).

 

Task:

You’ve been provided with a header file. Do not modify it.

You’ll be writing two files:

Pizza.cpp – containing the complete implementation, relying on Pizza.h

A simple program to demonstrate all of the operations

 

The output (stream insertion) uses the following format:

Starts with [ and ends with ]

Each topping is listed in plain English

o Each topping is separated by a |

o There is no | before the first topping, or after the last one

o An ‘empty’ pizza has no | at all

e.g. [Pepperoni] []

[Red sauce | White sauce | Mozzarella | Feta | Pepperoni | Green pepper | Red pepper | Banana pepper | Black pepper | Sausage | Bacon | Pineapple | Corn | Artichoke | Toes | Mushrooms | Onions | Ham | Olives | Cherries]

If you’re still having issues by then, we’ll cover a couple tips during lecture.

 

(5/5)
Attachments:

Expert's Answer

652 Times Downloaded

Related Questions

. Introgramming & Unix Fall 2018, CRN 44882, Oakland University Homework Assignment 6 - Using Arrays and Functions in C

DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma

. The standard path finding involves finding the (shortest) path from an origin to a destination, typically on a map. This is an

Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t

. Develop a program to emulate a purchase transaction at a retail store. This program will have two classes, a LineItem class and a Transaction class. The LineItem class will represent an individual

Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th

. SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

. Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of Sea Ports. Here are the classes and their instance variables we wish to define:

1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of

652 Times Downloaded

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Um e HaniScience

725 Answers

Hire Me
expert
Muhammad Ali HaiderFinance

794 Answers

Hire Me
expert
Husnain SaeedComputer science

641 Answers

Hire Me
expert
Atharva PatilComputer science

512 Answers

Hire Me
April
January
February
March
April
May
June
July
August
September
October
November
December
2025
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
SunMonTueWedThuFriSat
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
00:00
00:30
01:00
01:30
02:00
02:30
03:00
03:30
04:00
04:30
05:00
05:30
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
23:30