The Site is under maintenance!..Test link

Assignment9_2

String Operations

String Operations

Answer:

class cashRegister
{
    private:
	int cashOnHand; 
    public:
	cashRegister(); //Constructor Sets the cash in the register to a default amount.
	cashRegister(int cashIn); //Constructor Sets the cash in the register to a specific amount.
	int getCurrentBalance();	//The value of cashOnHand is returned.
	void acceptAmount(int amountIn);//Function to receive the amount deposited by the customer  
                                          //and update amount in the register.
};

//************************************************************
// class dispenserType
// This class specifies the members to implement a dispenser.
//************************************************************

class dispenserType
{
   private:
	int numberOfItems; //variable to store the number of items in the dispenser
	int cost; //variable to store the cost of an item
   public:
	dispenserType(); //Constructor Sets the cost and number of items in the dispenser to the default
	dispenserType(int setNoOfItems, int setCost); //Constructor Sets to the values specified
	int getNoOfItems();	//The value of numberOfItems is returned.
	int getCost();	//Function to show the cost of the item. The value of cost is returned.
	void makeSale(); //Function to reduce the number of items by 1.
};


cashRegister::cashRegister()
{
	cashOnHand = 500;
}

cashRegister::cashRegister(int cashIn)
{
	cashOnHand = cashIn;
}

int cashRegister::getCurrentBalance()
{
	return cashOnHand;
}

void cashRegister::acceptAmount(int amountIn)
{

	cashOnHand = cashOnHand + amountIn;
}

dispenserType::dispenserType()
{
	numberOfItems = 50;
	cost = 50;
}

dispenserType::dispenserType(int setNoOfItems, int setCost)
{
	numberOfItems = setNoOfItems;
	cost = setCost;
}

int dispenserType::getNoOfItems()
{
	return numberOfItems;
}

int dispenserType::getCost()
{
	return cost;
}

void dispenserType::makeSale()
{
	numberOfItems--;
}


//*****************************************************
// This program uses the classes cashRegister and
// dispenserType to implement a candy machine.
// ****************************************************

#include 

void showSelection();
void sellProduct(dispenserType& product, cashRegister& pCounter);
int main()
{
	cashRegister counter;
	dispenserType candy(100, 50);
	dispenserType chips(100, 65);
	dispenserType gum(75, 45);
	dispenserType cookies(50, 85);
	int choice;
	showSelection();
	cin >> choice;
	while (choice != 5)
	{
		switch (choice)
		{
			case 1:
				sellProduct(candy, counter);
				break;
			case 2:
				sellProduct(chips, counter);
				break;
			case 3:
				sellProduct(gum, counter);
				break;
			case 4:
				sellProduct(cookies, counter);
				break;
			default:
				cout << "Invalid selection." << endl;
		}
		showSelection();
		cin >> choice;
	}	
	return 0;
}

void showSelection()
{
	cout << "*** Welcome to Candy Shop ***" << endl;
	cout << "To select an item, enter " << endl;
	cout << "1 for Candy" << endl;
	cout << "2 for Chips" << endl;
	cout << "3 for Gum" << endl;
	cout << "4 for Cookies" << endl;
	cout << "5 to exit" << endl;
}

void sellProduct(dispenserType& product, cashRegister& pCounter)
{
	int amount; //variable to hold the amount entered
	int amount2; //variable to hold the extra amount needed
	if (product.getNoOfItems() > 0) //if the dispenser is not empty
	{
		cout << "Please deposit " << product.getCost() << " cents" << endl;
		cin >> amount;
		if (amount < product.getCost())
		{
			cout << "Please deposit another " << product.getCost()- amount << " cents" << endl;
			cin >> amount2;
			amount = amount + amount2;
		}
		
		if (amount >= product.getCost())
		{
			pCounter.acceptAmount(amount);
			product.makeSale();
			cout << "Collect your item at the bottom and " << "enjoy." << endl;
		}

		else
			cout << "The amount is not enough. " << "Collect what you deposited." << endl;
		cout << "*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*" << endl << endl;
	}
	else
		cout << "Sorry, this item is sold out." << endl;
}