Loading...
rossyruseva avatar rossyruseva 1 Точки

C# Fundamentals - Exercise: Intro and Basic Syntax: 07. Vending Machine

Колеги, ако може малко помощ. Доколкото си спомням не съм писала нещо подобно в кода(пробвах се да кача скрийншот, но нещо не ми се получава) :

Your output:

Cannot accept 0.11
Cannot accept 0.11
Invalid product
Purchased beer
Change: 0.00
 

Expected output:

Cannot accept 0.11
Cannot accept 0.11
Invalid product
Change: 0.00

А това е кодът:

https://pastebin.com/EG6L730N

0
Fundamentals Module
Axiomatik avatar Axiomatik 2422 Точки

Practise-session is not available in judge, but these sort of vending machines exercises always require decimal instead of double numbers to work correctly. Also, better to use ToLower() on all input data for the second part of the exercise in order not to miss out on a valid product that is spelled COke or sodA.

You also need to include a validation whether you purchase an invalid product (line 64-75), otherwise output will be “Invalid product” and “Purchased ...“ when entering a product that is not on the product-list. This is why “beer” produced a wrong output.

Best,

New code:

using System;

namespace VendingMachine
{
    class Program
    {
        static void Main(string[] args)
        {
            string coins = Console.ReadLine();

            decimal totalSum = 0m;

            while (coins != "Start")
            {
                decimal currentAmount = decimal.Parse(coins);

                if (currentAmount != 0.1m
                    && currentAmount != 0.2m
                    && currentAmount != 0.5m
                    && currentAmount != 1m
                    && currentAmount != 2m)
                {
                    Console.WriteLine($"Cannot accept {currentAmount}");
                }
                else
                {
                    totalSum += currentAmount;
                }

                coins = Console.ReadLine();
            }

            string input = Console.ReadLine().ToLower();

            while (input != "end")
            {

                decimal currentPrice = 0;
                bool invalidProduct = false;

                switch (input)
                {
                    case "nuts":
                        currentPrice = 2.0m;
                        break;
                    case "water":
                        currentPrice = 0.7m;
                        break;
                    case "crisps":
                        currentPrice = 1.5m;
                        break;
                    case "soda":
                        currentPrice = 0.8m;
                        break;
                    case "coke":
                        currentPrice = 1.0m;
                        break;
                    default:
                        Console.WriteLine("Invalid product");
                        invalidProduct = true;
                        break;
                }

                if (invalidProduct == false)
                {
                    if (totalSum >= currentPrice)
                    {
                        totalSum -= currentPrice;
                        Console.WriteLine($"Purchased {input.ToLower()}");
                    }
                    else
                    {
                        Console.WriteLine("Sorry, not enough money");
                    }
                }

                input = Console.ReadLine().ToLower();
            }

            Console.WriteLine($"Change: {totalSum:f2}");
        }
    }
}

0
rossyruseva avatar rossyruseva 1 Точки

Thank you! :)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.