Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Programming With Visual Basic .NET

Authors: Carsten Thomsen

2nd Edition

1590590325, 978-1590590324

More Books

Students also viewed these Databases questions

Question

c. How is trust demonstrated?

Answered: 1 week ago

Question

Discuss the states of accounting

Answered: 1 week ago