#include <iostream>
using namespace std;
bool buy(int, float&, bool&); //function prototype
int main()
{
int selection;
float money;
bool notEnoughMoney=false;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << "Welcome to Balkan Vending.\n";
cout << "\nREADY\n";
cout << "Enter 1 for COKE 85 cents\n";
cout << "Enter 2 for SPRITE 85 cents\n";
cout << "Enter 0 to cancel\n";
cout << "\nPlease make your selection: ";
cin >> selection;
if(selection!=0)
{
cout << "Please insert 85 cents\n";
cout << "Enter 1.00 for $1, Enter 0.75 for 3 quarters and so on\n";
cout << "Enter Money :$ ";
cin >> money;
bool successful = buy(selection, money, notEnoughMoney);
if(successful==true)
{
cout << "\nThank you for your purchase\n";
cout << "Your change is $" << money << ".\n";
}
else if(successful==false)
{
if(notEnoughMoney==false)
{
cout << "\nI'm sorry. We are temporarily out of that drink.\n";
cout << "Returning your $" << money << ".\n";
}
else if(notEnoughMoney==true)
{
cout << "\nI'm sorry. You need to deposit more money.\n";
cout << "Returning your $" << money << ".\n";
}
}
}
else if(selection==0)
{
cout << "\nThanks For Using Balkan Vending\n";
cout << "\nEnd of Program\n";
}
return 0;
}
bool buy(int selection, float& money, bool& notEnoughMoney)
{
static int cokestock = 20,
spritestock = 20;
bool inStock;
switch ( selection )
{
case 1:
{
if(cokestock>0)
{
if(money>=.85)
{
money = money - .85;
cokestock--;
inStock = true;
break;
}
else if(money<.85)
notEnoughMoney = true;
inStock = false;
break;
}
else if(cokestock<=0)
inStock = false;
break;
}
case 2:
{
if(spritestock>0)
{
if(money>=.85)
{
money = money - .50;
spritestock--;
inStock = true;
break;
}
else if(money<.85)
notEnoughMoney = true;
inStock = false;
break;
}
else if(spritestock<=0)
inStock = false;
break;
}
}
return inStock;
}