private void Run() { // create vending machine and vending machine customer objects VendingMachine myVendingMachine = new VendingMachine(); myVendingMachine.Owner = "Umbrella Corp"; myVendingMachine.Model = "Vendo-Matic 600"; VendingMachineCustomer myVendingMachineCustomer = new VendingMachineCustomer(); myVendingMachine.TurnVendingMachineOn(); //turn vending machine on myVendingMachine.FillInventory(); //read inventory from txt file myVendingMachine.SetInventoryQuantities(); //assign all items in machine qty = 5 while (myVendingMachine.IsOn) // only show menus if vending machine is on... { String mainMenuSelection = (string)ui.PromptForSelection(MAIN_MENU_OPTIONS); // main menu prompt for selection if (mainMenuSelection == MAIN_MENU_OPTION_DISPLAY_ITEMS) { myVendingMachine.PrintCurrentInventory(); } if (mainMenuSelection == MAIN_MENU_OPTION_PURCHASE) { String purchaseMenuSelection = (string)ui.PromptForSelection(PURCHASE_MENU_OPTIONS); if (purchaseMenuSelection == PURCHASE_MENU_OPTION_FEED_MONEY) { // prompt for money Console.WriteLine("Please enter money in one dollar increments:"); string amountDeposited = Console.ReadLine(); if (int.Parse(amountDeposited) > 0) { myVendingMachineCustomer.DepositMoney(int.Parse(amountDeposited)); // logs in audit file when a customer has deposited money // logs date, time, amount fed, current customer balance myVendingMachine.PrintToAuditFile(DateTime.Now.ToString() + " FEED MONEY: $" + +(decimal)int.Parse(amountDeposited) + " $" + myVendingMachineCustomer.Balance); } else { Console.WriteLine("Negative or zero deposits not allowed."); } } if (purchaseMenuSelection == PURCHASE_MENU_OPTION_SELECT_PRODUCT) { if (myVendingMachineCustomer.HasBalance()) { Console.WriteLine("Please select a product by entering the slot number:"); string selectedItem = Console.ReadLine(); myVendingMachine.PurchaseItem(selectedItem, myVendingMachineCustomer); } else { Console.WriteLine("Must deposit money before making a selection!"); } } if (purchaseMenuSelection == PURCHASE_MENU_OPTION_FINISH_TRANSACTION) { //dispense change Console.WriteLine(myVendingMachine.DispenseChange(myVendingMachineCustomer)); } } if (mainMenuSelection == MAIN_MENU_OPTION_EXIT) { break; } if (mainMenuSelection == MAIN_MENU_OPTION_SALES_REPORT) { //logic for sales reports goes here... // SALES REPORT FUNCTIONS myVendingMachine.PrintSalesReport(); myVendingMachine.TurnVendingMachineOff(); } } myVendingMachine.IsOn = false; }
static void Main(string[] args) { try { bool isComplete = false; while (!isComplete) { string choice = ""; bool exitToMainMenu = false; ReadInInputFile.InputInventory(); Console.WriteLine("Welcome to the Vend-Matic 500!"); Console.WriteLine(); Console.WriteLine("Please see our menu options below."); Console.WriteLine("(1) Display items"); Console.WriteLine("(2) Purchase"); choice = Console.ReadLine(); if (choice == "1") { VendingMachine.DisplayItems(); Console.WriteLine("Please press(2) to make a purchase: "); choice = Console.ReadLine(); } if (choice == "2") { decimal fedMoney = 0; do { Console.WriteLine("Purchase Menu"); Console.WriteLine("(1) Feed Money"); Console.WriteLine("(2) Select Product"); Console.WriteLine("(3) Finish Transaction"); Console.WriteLine("Current Money Provided: $" + fedMoney); string selection = Console.ReadLine(); if (selection == "1") { Console.WriteLine("Please feed money in whole dollar amounts($1, $5, $10, or $20)"); Console.WriteLine("How much money do you want to feed?"); string fedMoneyString = Console.ReadLine(); if (fedMoneyString == "1" || fedMoneyString == "5" || fedMoneyString == "10" || fedMoneyString == "20") { fedMoney += VendingMachine.FeedMoney(fedMoneyString); } else { Console.WriteLine("Incorrect denomination. The money fed must be in whole dollar amounts(ex. $1, $5, etc)"); Console.WriteLine(); } } if (selection == "2") { VendingMachine.DisplayItems(); Console.WriteLine("Please type your selection(ex. A1)"); string selectedProduct = Console.ReadLine().ToUpper(); if (VendingMachine.vendMachine.ContainsKey(selectedProduct)) { fedMoney = VendingMachine.PurchaseItem(selectedProduct, fedMoney); } else { Console.WriteLine("Incorrect entry. Item does not exist!"); Console.WriteLine(); } } if (selection == "3") { VendingMachine.DispenseChange(fedMoney); Console.WriteLine("Are sure you want to finish you transaction? "); string exitQuestion = Console.ReadLine().ToUpper(); if (exitQuestion == "N") { exitToMainMenu = false; } if (exitQuestion == "Y") { exitToMainMenu = true; } fedMoney = 0; } }while (!exitToMainMenu); } Console.ReadLine(); } } catch (Exception e) { Console.WriteLine(e.Message); } }
public void Display() { while (true) { Console.WriteLine(); Console.WriteLine("Purchase Menu"); Console.WriteLine("1] >> Feed Money"); Console.WriteLine("2] >> Select Product"); Console.WriteLine("3] >> Finish Transaction"); Console.WriteLine("Q] >> Quit"); Console.WriteLine($"You have ${vm.Balance} left."); Console.WriteLine(); Console.Write("What option do you want to select? "); string input = Console.ReadLine(); Console.WriteLine(); if (input == "1") { try { Console.Write("How much money are you feeding the vending machine? "); decimal moneyFed = decimal.Parse(Console.ReadLine()); Console.WriteLine(); vm.FeedMoney(moneyFed); Console.WriteLine($"Current Total Money Provided: ${vm.Balance}"); } catch (FormatException e) { Console.WriteLine(); Console.WriteLine("That is not money. Please enter money."); } } else if (input == "2") { Console.Write("Please select which product you would like to purchase by the slot identification: "); string slot = Console.ReadLine().ToUpper(); Console.WriteLine(); Item item = vm.SelectProduct(slot); purchasedItems.Add(item); } else if (input == "3") { Console.WriteLine(); Console.WriteLine(vm.DispenseChange()); // checking the type of the user's item, and returning the sound. foreach (Item item in purchasedItems) { Console.WriteLine(item.MakeSound()); } } else if (input == "Q" || input == "q") { Console.WriteLine("Returning to main menu"); break; } else { Console.WriteLine("Please try again"); } } }