Beispiel #1
0
        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;
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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");
                }
            }
        }