Hello everyone, I made a program that simulates a vending machine for class. I finally got it to execute without any errors, yet something is not right. I have functions that are being called upon when they shouldn't be. For instance, I choose my items, and it asks me if I want to pay with 1 debit or 2 credit. If I enter 3 it displays 'Invalid option please try again' at which point the program is supposed to stop, but instead, it goes straight to the creditcard function and says Enter PIN.
Alternatively, if I choose my items, and select 1 for debit payment, it asks me to enter the PIN. The PIN has to be 1234, and if I enter that its suppose to go straight to the receipt function, but instead it again goes to the creditcard function and asks Enter ZIP. I have my code so that if payment option == 1, it goes to the void debitcard function, why is it calling upon the void creditcard function as well?
:(
Alternatively, if I choose my items, and select 1 for debit payment, it asks me to enter the PIN. The PIN has to be 1234, and if I enter that its suppose to go straight to the receipt function, but instead it again goes to the creditcard function and asks Enter ZIP. I have my code so that if payment option == 1, it goes to the void debitcard function, why is it calling upon the void creditcard function as well?
:(
Code:
#include <iostream> #include <functional> using namespace std; int option; double chips, milk, cola, coffee, total, zipcode, quantity_chips, quantity_milk, quantity_cola, quantity_coffee, payment, pin, error, tax, final_cost; void menu () { cout << "Welcome to CSUMB Vending Machine.\n"; do { cout << "Select from our menu:\n" << "\t1. Sun Chip........$1.50\n" << "\t2. Otter Milk......$2.00\n" << "\t3. CSUMB Cola......$1.00\n" << "\t4. Regular Coffee..$2.50\n" << "\t5. Check out\n"; cout << "Enter your option: "; cin >> option; switch (option) { case 1: cout << "Quantity: "; cin >> quantity_chips; chips = (1.5 * quantity_chips); break; case 2: cout << "Quantity: "; cin >> quantity_milk; milk = (2 * quantity_milk); break; case 3: cout << "Quantity: "; cin >> quantity_cola; cola = (1 * quantity_cola); break; case 4: cout << "Quantity: "; cin >> quantity_coffee; coffee = (2.5 * quantity_coffee); break; case 5: void checkout(); break; default: cout << "Invalid option." << endl; } } while (option <5); } void checkout() { if (quantity_chips > 0||quantity_milk > 0||quantity_cola > 0||quantity_coffee > 0) { total = (chips) + (milk) + (cola) + (coffee); if (total > 10) { cout << "Error, you are buying too much!\n"; } else { cout << "Select payment option (1:Debit 2:Credit): "; cin >> payment; if (payment == 1) { void debitcard(); } else if (payment == 2) { void creditcard(); } else { cout << "Unknown payment option, please try again.\n"; } } } else { cout << "Please select at least one item.\n"; } } void debitcard() { error = 1; cout << "Enter PIN: "; cin >> pin; if (pin == 1234) { void receipt(); } else { while (error >= 1) { cout << "Invalid PIN. Try Again:"; cin >> pin; error++; if (pin == 1234) { void receipt(); } else { cout << "We are sorry but this is an invalid card\n" << "Thank you for using us.\n"; return; } } } } void creditcard() { error = 1; cout << "Enter ZIP"; cin >> zipcode; if (zipcode == 93955) { void receipt(); } else { while (error >= 1) { cout << "Invalid ZIP. Try Again: "; cin >> zipcode; error++; if (zipcode == 93955) { void receipt(); } else { cout << "We are sorry but this is an invalid card\n" << "Thank you for using us.\n"; return; } } } } void receipt () { cout << "This is your receipt:\n"; if (quantity_chips > 0) { cout << "Sun Chips: $1.50 x " << quantity_chips << " = $" << chips << endl; } if (quantity_milk > 0) { cout << "Otter Milk: $2.00 x " << quantity_milk << " = $" << milk << endl; } if (quantity_cola > 0) { cout << "CSUMB Cola: 1.00 x " << quantity_cola << " = $" << cola << endl; } if (quantity_coffee > 0) { cout << "Regular Coffee: $2.50 x " << quantity_coffee << " = $" << coffee << endl; } tax = (total * .10); final_cost = tax + total; cout << "Tax (10.0%): $" << tax << endl; cout << "Total: $" << final_cost << endl; } int main () { menu(); checkout(); debitcard(); creditcard(); receipt(); return 0; }
Comment