-1
 int choice, quanti, decide, total, cash;
 double change;
 string dcount;
    while (true)
    {
        Console.Clear();
        string w = "WELCOME ";
        Console.SetCursorPosition((Console.WindowWidth - w.Length) / 2, Console.CursorTop);  // for setting string output on center top
        Console.WriteLine(w);
        Console.WriteLine("");
        System.Threading.Thread.Sleep(2000); //time delay

        string p = "HERE'S OUR MERCHANDISES! ";
        Console.SetCursorPosition((Console.WindowWidth - p.Length) / 2, Console.CursorTop);  // for setting string output on center top
        Console.WriteLine(p);
        System.Threading.Thread.Sleep(2000);//time delay

        string[] products = { "[1]BLACKPINK Lightstick ", "[2]DREAMCATCHER Seasons Greetings",
                "[3]RED VELVET Summer Package"};

        for (int g = 0; g < products.Length; g++)
        {
            Console.WriteLine(products[g]);
        }

        Dictionary<int, int> ProductList = new Dictionary<int, int>();
        while (true)
        {
            {
                Console.Write("Pick your product: ");
                choice = int.Parse(Console.ReadLine());
                switch (choice)
                {
                    case 1:
                        Console.WriteLine("BLACKPINK Lightstick 1500php");
                        break;
                    case 2:
                        Console.WriteLine("DREAMCATCHER Seasons Greetings 920php");

                        break;
                    case 3:
                        Console.WriteLine("RED VELVET Summer Package 980php");

                        break;
                }
                Console.WriteLine("Quantity of product: ");
                quanti = int.Parse(Console.ReadLine());
                if (!ProductList.ContainsKey(choice))
                    ProductList.Add(choice, quanti);
                else
                    ProductList[choice] += quanti;
                System.Threading.Thread.Sleep(2000);//time delay
                Console.WriteLine("[1] Add more products \t [2] Pay: ");
                decide = int.Parse(Console.ReadLine());

                if (decide == 2)
                    break;
            }
        }
        total = 0;
        foreach (int key in ProductList.Keys)
            switch (key)
            {
                case 1:
                    total += ProductList[key] * 1500;
                    break;
                case 2:
                    total += ProductList[key] * 920;
                    break;
                case 3:
                    total += ProductList[key] * 980;
                    break;
                default:
                    total += 0;
                    break;
            };
        Console.WriteLine("To Pay: " + total);
        Console.Write("Cash: ");
        cash = Convert.ToInt32(Console.ReadLine());
        Console.Write("Discount[s]suki [v]voucher: ");
        dcount = Console.ReadLine();
        if (dcount == "s") 
        {
           change = (cash - total) - 0.7;
            Console.WriteLine("Change: " + change);

        }
        else if (dcount == "v")
        {
           change = cash -(total - 0.5) ;
            Console.WriteLine("Change: " + change);

        }
        else 
        {
            change = cash- (total - 0.7) ;
            Console.WriteLine("Change: " + change);
        }

     

        Console.WriteLine("Another shopping? [1]Yes [2] No");
        choice = int.Parse(Console.ReadLine());
        if (choice == 2)
            break;


  }
}

} } Good day, I'm doing a project for school. I've already asked earlier about my code and someone help me, thanks to him, unfortunately I still have a problem with my code. After the users inputs and giving her a change, it was supposed to output a receipt like, wherein it contains users purchased products. I've tried outputting the variables that have been used in acquiring users input but to my dismay, it can only output the user's first input product, it can't Output all the users purchase. The receipt like output was supposed to contain the user's products purchased, quantity of each product, total, cash, discount and change in horizontal line/tabular.

MULTI FANDOM
  • 3
  • 1
  • 4

1 Answers1

0

Quick way of printing out products and quantity for each would be to put after dcount = Console.ReadLine(); something like:

foreach(var entry in ProductList)
{
    Console.WriteLine(products[entry.Key].Substring(3) + "......." + entry.Value);
}

I'll leave the amount of dots and cursor position to You.

Also, when dealing with currency it's better to use decimal due to higher precision (maybe not needed in this example.) And try to use Math.Round() function when displaying money amount - limit decimal places.

quain
  • 861
  • 5
  • 18