I am working on this homework assignment which asks to put different items into classes and header files, which I am not sure how to do.
You are to design a Class that will represent a restaurant order. The Class will have two public methods,
one to place an order and the second to calculate and display the order items and prices, the order subtotal,
the tip, the tax, and the check total. The method to place the order will allow the User to enter up to
5 order items. The method is to present a Menu of items for selection. You are to create two const static,
parallel arrays for the menu items, one for the item descriptions (string) and the second for the item costs
(double), which, of course, will be class private data members. You are to provide 10 items for selection.
Your project must meet these minimum requirements:
Name the class: RestaurantCheck
Include a Constructor that takes two arguments, the tax rate and the tip, both as a percentage:
1. Validate that the tax rate is greater than or equal to 1% (0.01) and less than or equal to
12% (0.12). If the value passed to the Constructor is invalid, set the tax rate to 0.065
2. Validate that the tip percentage is greater than or equal to 5% (0.05) and less than or
equal to 20% (0.20). If the value passed to the Constructor is invalid, set the tip to 15%
(0.15)
Include a Default Constructor that sets the tax rate to 0.065 (6.5%) and the tip percentage to 15%
The default values and the limit values should be declared as class private, static const values.
Provide a public static class method, named testTaxRate, to test a tax rate percentage value
passed to it as a parameter. The method will RETurn a bool value, true: The parameter value is
valid.
Provide a public static class method, named testTipRate, to test a tip percentage value passed to
it as a parameter. The method will RETurn a bool value, true: The parameter value is valid.
Name the public class method to place an order: placeOrder
Name the public class method to display the check: issueCheck
Create a private class method to display the Menu and name it: presentMenu
Note: This method is called by method placeOrder to present the menu of items
Create a private class method to calculate the tax and name it: calculateTax
Create a private class method to calculate the tip and name it: calculateTip
When displaying the check, make sure all amounts have their decimal points vertically aligned
and display 2 digits of precision to the right of the decimal point (all amounts are double)
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208
|
#include "stdafx.h"
#include <string>
#include <iomanip>
#include <iostream>
using namespace std;
string menu[10] = { "BLT Sandwich", "Ham and Cheese Sandwich", "Hot Chocolate", "Breakfast Special", "House Sandwich", "Full Stack Special", "Club Sandwich", "Coffee", "Ham and Eggs", "Steak and Eggs" };
double menuPrice[10] = { 6.50, 6.50, 2.50, 8.00, 6.50, 4.00, 6.50, 2.00, 8.00, 12.00,};
int menuOrder[100];
int main()
{
double taxRate = 6.5,
tipRate = 15;
cout << "Enter the tax rate, as a %: ";
cin >> taxRate;
cout << "Enter the tip, as a %: ";
cin >> tipRate;
system("cls");
cout << setw(26) << "Joe's Diner" << endl;
cout << setw(22) << "Menu" << endl << endl;
cout << "1: BLT Sandwich" << setw(34) << "2: Ham and Cheese Sandwich" << endl;
cout << "3: Hot Chocolate" << setw(27) << "4: Breakfast Special" << endl;
cout << "5: House Sandwich" << setw(28) << "6: Full Stack Pancakes" << endl;
cout << "7: Club Sandwich" << setw(16) << "8: Coffee" << endl;
cout << "9: Ham and Eggs" << setw(25) << "10: Steak and Eggs" << endl;
cout << "11: Order Complete" << endl << endl;
int Choice = 0;
int itemNum = 1;
int i = 1;
char doneOrder = 'N';
while (Choice != 11)
{
cout << "Enter Order item #" << itemNum << ": ";
itemNum++;
cin >> Choice;
if (Choice > 11)
{
cout << "Please enter a number between 1 and 11." << endl;
itemNum--;
cout << "Enter Order item #" << itemNum << ": ";
cin >> Choice;
itemNum++;
}
menuOrder[i] = Choice;
i++;
}
cout << fixed << setprecision(2);
cout << endl << "Confirming your customer's Order:" << endl;
i = 1;
int l = 1;
while (doneOrder != 'Y' && doneOrder != 'y')
{
cout << "Item " << l << ":" << endl;
l++;
Choice = menuOrder[i];
switch (Choice)
{
case 1:
cout << menu[0] << ", Price: $" << menuPrice[0] << endl;
menuOrder[i] = 1;
i++;
break;
case 2:
cout << menu[1] << ", Price: $" << menuPrice[1] << endl;
menuOrder[i] = 2;
i++;
break;
case 3:
cout << menu[2] << ", Price: $" << menuPrice[2] << endl;
menuOrder[i] = 3;
i++;
break;
case 4:
cout << menu[3] << ", Price: $" << menuPrice[3] << endl;
menuOrder[i] = 4;
i++;
break;
case 5:
cout << menu[4] << ", Price: $" << menuPrice[4] << endl;
menuOrder[i] = 5;
i++;
break;
case 6:
cout << menu[5] << ", Price: $" << menuPrice[5] << endl;
menuOrder[i] = 6;
i++;
break;
case 7:
cout << menu[6] << ", Price: $" << menuPrice[6] << endl;
menuOrder[i] = 7;
i++;
break;
case 8:
cout << menu[7] << ", Price: $" << menuPrice[7] << endl;
menuOrder[i] = 8;
i++;
break;
case 9:
cout << menu[8] << ", Price: $" << menuPrice[8] << endl;
menuOrder[i] = 9;
i++;
break;
case 10:
cout << menu[9] << ", Price: $" << menuPrice[9] << endl;
menuOrder[i] = 10;
i++;
break;
case 11:
cout << endl << "Is this order correct? (Y or N):";
cin >> doneOrder;
break;
}
}
system("cls");
double total = 0;
double tax;
double tip;
cout << setw(26) << "Joe's Diner" << endl;
cout << setw(23) << "Check" << endl << endl;
i = 0;
while (menuOrder[i] != 11)
{
Choice = menuOrder[i];
i++;
switch (Choice)
{
case 1:
cout << menu[0] << setw(20) << " $ " << menuPrice[0] << endl;
total = total + menuPrice[0];
break;
case 2:
cout << menu[1] << setw(9) << " $ " << menuPrice[1] << endl;
total = total + menuPrice[1];
break;
case 3:
cout << menu[2] << setw(19) << " $ " << menuPrice[2] << endl;
total = total + menuPrice[2];
break;
case 4:
cout << menu[3] << setw(15) << " $ " << menuPrice[3] << endl;
total = total + menuPrice[3];
break;
case 5:
cout << menu[4] << setw(18) << " $ " << menuPrice[4] << endl;
total = total + menuPrice[4];
break;
case 6:
cout << menu[5] << setw(14) << " $ " << menuPrice[5] << endl;
total = total + menuPrice[5];
break;
case 7:
cout << menu[6] << setw(19) << " $ " << menuPrice[6] << endl;
total = total + menuPrice[6];
break;
case 8:
cout << menu[7] << setw(26) << " $ " << menuPrice[7] << endl;
total = total + menuPrice[7];
break;
case 9:
cout << menu[8] << setw(20) << " $ " << menuPrice[8] << endl;
total = total + menuPrice[8];
break;
case 10:
cout << menu[9] << setw(17) << " $ " << menuPrice[9] << endl;
total = total + menuPrice[9];
break;
}
}
cout << "-------------------------- ---------" << endl;
cout << "Sub Total" << setw(23) << "$ " << total << endl;
tax = total * (taxRate/10);
tip = total * (tipRate/10);
cout << "Tax (" << taxRate << "%)" << setw(21) << "$ " << tax << endl;
cout << "Tip (" << tipRate << "%)" << setw(20) << "$ " << tip << endl;
cout << "-------------------------- ---------" << endl;
total = total + tax + tip;
cout << "Total Due" << setw(23) << "$ " << total << endl << endl;
return 0;
}
|