Question
C++ Instructions Redo Exercise 4 so that the customer can select multiple items of a particular type. A sample output in this case is: Welcome
C++
Instructions
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
Given
Ch9_ExData.txt
Plain Egg
1.45
Bacon and Egg
2.45
Muffin
0.99
French Toast
1.99
Fruit Basket
2.49
Cereal
0.69
Coffee
0.50
Tea
0.75
Main.cpp
#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;
}
Test Case 1
3 eggs and tea
Input
Y
1
3
Y
8
1
N
Expected Results
Tax $0.26 Amount Due $5.35
Test Case 2
Just french toast
Input
Y
4
2
N
Expected Results
Tax $0.20 Amount Due $4.18
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