Question
Redo Exercise 4 so that the customer can select multiple items of a particular type. A sample output in this case is: Welcome to Johnny's
Redo Exercise 4 so that the customer can select multiple items of a particular type. A sample output in this case is:
Welcome to Johnny's Resturant ----Today's Menu---- 1: Plain Egg $1.45 2: Bacon and Egg $2.45 3: Muffin $0.99 4: French Toast $1.99 5: Fruit Basket $2.49 6: Cereal $0.69 7: Coffee $0.50 8: Tea $0.75 You can make up to 8 different selections Do you want to make selection Y/y (Yes), N/n (No): Y Enter item number: 1 How many orders: 3 Select another item Y/y (Yes), N/n (No): Y Enter item number: 8 How many orders: 1 Select another item Y/y (Yes), N/n (No): N Welcome to Johnny's Resturant 3 Plain Egg $4.35 1 Tea $0.75 Tax $0.26 Amount Due $5.35
programming language is c++
code to redo is:
#include #include #include #include
using namespace std;
const int NO_OF_ITEMS = 8;
struct menuItemType { string menuItem; double menuPrice; };
void getData(ifstream& inFile, menuItemType mList[], int listSize); void showMenu(menuItemType mList[], int listSize); void printCheck(menuItemType mList[], int listSize, int cList[], int cListLength); void makeSelection(int listSize, int cList[], int& cListLength); bool isItemSelected(int cList[], int cListLength, int itemNo);
int main() { menuItemType menuList[NO_OF_ITEMS]; int choiceList[NO_OF_ITEMS]; int choiceListLength;
ifstream inFile;
cout << fixed << showpoint << setprecision(2);
inFile.open("Ch9_Ex4Data.txt");
if (!inFile) { cout << "Cannot open the input file. Program Terminates!" << endl; return 1; }
getData(inFile, menuList, NO_OF_ITEMS); showMenu(menuList, NO_OF_ITEMS); makeSelection(NO_OF_ITEMS, choiceList, choiceListLength); printCheck(menuList, NO_OF_ITEMS, choiceList, choiceListLength);
return 0; }
void getData(ifstream& inFile, menuItemType mList[], int listSize) { char ch; for (int i = 0; i < listSize; i++) { getline(inFile, mList[i].menuItem); inFile >> mList[i].menuPrice; inFile.get(ch); } }
void showMenu(menuItemType mList[], int listSize) { cout << "Welcome to Johnny's Resturant" << endl; cout << "----Today's Menu----" << endl;
for (int i = 0; i < listSize; i++) cout << i+1 << ": " << left << setw(15) << mList[i].menuItem << right << " $" << mList[i].menuPrice << endl; cout << endl; }
void printCheck(menuItemType mList[], int listSize, int cList[], int cListLength) { int i; double salesTax; double amountDue = 0;
cout << "Welcome to Johnny's Resturant" << endl; for (i = 0; i < cListLength; i++) { cout << left << setw(15) << mList[cList[i]].menuItem << right << " $" << setw(4) << mList[cList[i]].menuPrice << endl; amountDue += mList[cList[i]].menuPrice; }
salesTax = amountDue * .05; cout << left << setw(15) << "Tax " << right << " $" << salesTax << endl; amountDue = amountDue + salesTax; cout << left << setw(15) << "Amount Due " << right << " $" << amountDue << endl; }
void makeSelection(int listSize, int cList[], int& cListLength) { int selectionNo = 0; int itemNo;
char response;
cListLength = 0;
cout << "You can make up to " << listSize << " single order selections" << endl;
cout << "Do you want to make selection Y/y (Yes), N/n (No): "; cin >> response; cout << endl;
while ((response == 'Y' || response == 'y') && cListLength < 8) { cout << "Enter item number: "; cin >> itemNo; cout << endl;
if (!isItemSelected(cList,cListLength,itemNo)) cList[cListLength++] = itemNo - 1; else cout << "Item already selected" << endl;
cout << "Select another item Y/y (Yes), N/n (No): "; cin >> response; cout << endl; } }
bool isItemSelected(int cList[], int cListLength, int itemNo) { bool found = false;
for (int i = 0; i < cListLength; i++) if (cList[i] == itemNo) { found = true; break; }
return found; }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started