fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. bool buy(int, float&, bool&); //function prototype
  5.  
  6. int main()
  7. {
  8. int selection;
  9. float money;
  10. bool notEnoughMoney=false;
  11.  
  12. cout.setf(ios::fixed);
  13. cout.setf(ios::showpoint);
  14. cout.precision(2);
  15.  
  16. cout << "Welcome to Balkan Vending.\n";
  17. cout << "\nREADY\n";
  18. cout << "Enter 1 for COKE 85 cents\n";
  19. cout << "Enter 2 for SPRITE 85 cents\n";
  20. cout << "Enter 0 to cancel\n";
  21. cout << "\nPlease make your selection: ";
  22. cin >> selection;
  23.  
  24. if(selection!=0)
  25. {
  26. cout << "Please insert 85 cents\n";
  27. cout << "Enter 1.00 for $1, Enter 0.75 for 3 quarters and so on\n";
  28. cout << "Enter Money :$ ";
  29. cin >> money;
  30.  
  31. bool successful = buy(selection, money, notEnoughMoney);
  32.  
  33. if(successful==true)
  34. {
  35. cout << "\nThank you for your purchase\n";
  36. cout << "Your change is $" << money << ".\n";
  37. }
  38. else if(successful==false)
  39. {
  40. if(notEnoughMoney==false)
  41. {
  42. cout << "\nI'm sorry. We are temporarily out of that drink.\n";
  43. cout << "Returning your $" << money << ".\n";
  44. }
  45.  
  46. else if(notEnoughMoney==true)
  47. {
  48. cout << "\nI'm sorry. You need to deposit more money.\n";
  49. cout << "Returning your $" << money << ".\n";
  50. }
  51. }
  52. }
  53. else if(selection==0)
  54. {
  55. cout << "\nThanks For Using Balkan Vending\n";
  56. cout << "\nEnd of Program\n";
  57. }
  58. return 0;
  59. }
  60.  
  61. bool buy(int selection, float& money, bool& notEnoughMoney)
  62. {
  63. static int cokestock = 20,
  64. spritestock = 20;
  65.  
  66. bool inStock;
  67.  
  68. switch ( selection )
  69. {
  70. case 1:
  71. {
  72. if(cokestock>0)
  73. {
  74. if(money>=.85)
  75. {
  76. money = money - .85;
  77. cokestock--;
  78. inStock = true;
  79. break;
  80. }
  81. else if(money<.85)
  82. notEnoughMoney = true;
  83. inStock = false;
  84. break;
  85. }
  86. else if(cokestock<=0)
  87. inStock = false;
  88. break;
  89. }
  90. case 2:
  91. {
  92. if(spritestock>0)
  93. {
  94. if(money>=.85)
  95. {
  96. money = money - .50;
  97. spritestock--;
  98. inStock = true;
  99. break;
  100. }
  101. else if(money<.85)
  102. notEnoughMoney = true;
  103. inStock = false;
  104. break;
  105. }
  106.  
  107. else if(spritestock<=0)
  108. inStock = false;
  109. break;
  110. }
  111. }
  112. return inStock;
  113. }
Success #stdin #stdout 0s 15240KB
stdin
4
i love hackerrank
hackerrank is an awesome place for programmers
hackerrank
i think hackerrank is a great place to hangout
stdout
Welcome to Balkan Vending.

READY
Enter 1 for COKE	85 cents
Enter 2 for SPRITE	85 cents
Enter 0 to cancel

Please make your selection: Please insert 85 cents
Enter 1.00 for $1, Enter 0.75 for 3 quarters and so on
Enter Money :$ 
I'm sorry. We are temporarily out of that drink.
Returning your $0.00.