Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

gokata2000 avatar gokata2000 1 Точки

Проблем със задача

Здрравейте! Имам проблем със задача  Vending machine-7 https://softuni.bg/trainings/resources/officedocument/37239/exercise-technology-fundamentals-with-csharp-january-2019/2237 

Не мога да се сетя как да изкарам "Sorry, not enough money"

Ето моя код и благодаря предварително.

 

 

 

using System;

namespace Exam
{
    class Program
    {
        static void Main(string[] args)
        {

            string input = Console.ReadLine();
            double sum = 0;
            while (input!="Start")
            {
                double coins = double.Parse(input);
                if (coins == 0.1 || coins==0.20 || coins==0.5 || coins==1 || coins==2)
                {
                    sum += coins;
                }
                else
                {
                    Console.WriteLine($"Cannot accept {coins}");
                }
                input = Console.ReadLine();
            }
            string input2 = Console.ReadLine();
            while (input2 != "End")
            {
                string product =(input2);
                
                if (product=="Coke" && sum>=1)
                {
                    Console.WriteLine("Purchased coke");
                    sum = sum - 1;
                }
                if (product=="Nuts"&&sum>=2)
                {
                    Console.WriteLine("Purchased nuts");
                    sum = sum - 2;
                }
                if (product=="Water"&&sum>=0.7)
                {
                    Console.WriteLine("Purchased water");
                    sum = sum - 0.7;
                }
                if (product=="Crisps"&&sum>=1.5)
                {
                    Console.WriteLine("You purchased crisps");
                    sum = sum - 1.5;
                    
                }

                if (product=="Soda"&&sum>=0.8)
                {
                    Console.WriteLine("Purchased soda");
                    sum = sum - 0.8;
                }
               
                if (product!="Coke"&& product != "Soda"&& product != "Water"&&product!="Nuts"&&product!="Crisps")
                {
                    Console.WriteLine("Invalid product");
                }
                if (sum<0.70)
                {
                    Console.WriteLine("Sorry, not enough money");
                }
               

                input2 = Console.ReadLine();
            }
            Console.WriteLine($"Change: {sum :f2}");

        }
       
    

    }

    }

Тагове:
VasilKotsev avatar VasilKotsev 830 Точки
Best Answer

Ползвай "Code block" в форума или Pastebin/Github Gist като постваш код защото формата отива на ... Като цяло тази задача с речник/асоциативен масив и лист може да се реши доста по адекватно, но щом е от първата тема на Тех-а едва ли това ще ти говори нещо. Като цяло доста си се оплел в тази задача, подходил си много зле с проверките във втория цикъл. Ето ти примерно решение с switch-case, би трябвало да си запознат с него от basics, но можеш и да си рефакторираш проверките. За да изкараш, че потребителя няма наличните средства за да си закупи даден артикул трябва да проверяваш първо дали цената на артикула е по-голяма от наличните монети в машината.

0
svetoslav_0 avatar svetoslav_0 1009 Точки

Определено има и по-свястно решение на твоя проблем (макар и с по-advanced знания), но пък най-простото изглежда така:
 

if (product=="Coke")
{
    if(sum < 1)
    {
        Console.WriteLine("Sorry, not enought money");
    }
    else
    {
        Console.WriteLine("Purchased coke");
        sum = sum - 1;
    }
}

И така за всеки продукт.

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