Prepare a virtual Restaurant that simulates a real world restaurant. The restaurant would have a minimum: greeter waiters/waitresses, a cashier. Whenever user enters restaurant he/she is greeted by greeter and asked for their name. Greeter would receive name that was given. User is seated in the section of restaurant attended by the specific server who would secure credit card from user and require them to give following information: ID, password PIN. Once verified, server must present to user all of their specific contact information with an emphasis on their credit card balance. The user could now begin to order from restaurant. They could only order as much as they can afford. If at the time they exceed their capacity to pay, that item should be rejected and not debited from their account and the user notified. At the conclusion of their order they must be presented with their invoice that has listed: ItemPurchased, CostEach Quantity, Total Cost, Sub Total Taxes, Grand Total, Customer Name, Credit Card Number, Credit Card Balance. Once the confirmation is made for the order, user is thanked, by name, bid a fine farewell and the application resets for the next user. All of the human objects must flow from one base class which is created as an Abstract class. All of the restaurant items must floe from one base class that also is an abstract class. Credit cards objects are to be a composite object. You have to include your IPO chart, Abstract classes, sub class designs, function stubs and program flow.