Advertisement
Fle2x

6.7

Jul 1st, 2021
988
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.79 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace HW_6._7
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Console.WriteLine("Введите количество покупателей:");
  14.             Shop shop = new Shop();
  15.             int userInput = Convert.ToInt32(Console.ReadLine());
  16.  
  17.             shop.CreateNewQueue(userInput);
  18.             shop.Work();
  19.             Console.ReadKey();
  20.         }
  21.     }
  22.  
  23.     class Client
  24.     {
  25.         private List<Product> _products = new List<Product>(0);
  26.         private int _totalSum;
  27.         Random random = new Random();
  28.  
  29.         public int Money { get; private set; }
  30.  
  31.         public Client(int money)
  32.         {
  33.             Money = money;
  34.         }
  35.  
  36.         public void ShowProducts()
  37.         {
  38.             foreach (var product in _products)
  39.             {
  40.                 product.ShowInfo();
  41.                 _totalSum += product.Price;
  42.             }
  43.  
  44.             Console.WriteLine($"Общая стоимость продуктов-{_totalSum}\n");
  45.         }
  46.  
  47.         public void BuyProducts()
  48.         {
  49.             if (_totalSum >= Money)
  50.             {
  51.                 Console.WriteLine($"У вас не хватает денег");
  52.                
  53.                 while (_totalSum >= Money)
  54.                 {
  55.                     int index = random.Next(0, _products.Count);
  56.                     _totalSum -= _products[index].Price;
  57.                     Console.WriteLine($"Удаляем товар:{_products[index].Name}\n");
  58.                     _products.RemoveAt(index);
  59.                 }
  60.             }
  61.             else
  62.             {
  63.                 Console.WriteLine($"Забирайте свой товар");
  64.             }
  65.             Console.WriteLine("===============================");
  66.         }
  67.  
  68.         public void AddProducts(List<Product> products)
  69.         {
  70.             foreach (var product in products)
  71.             {
  72.                 _products.Add(product);
  73.             }
  74.         }
  75.  
  76.         public void RemoveProduct(List<Product> products)
  77.         {
  78.             products.RemoveAt(random.Next(0, products.Count));
  79.         }
  80.     }
  81.  
  82.     class Product
  83.     {
  84.         public string Name { get; private set; }
  85.         public int Price { get; private set; }
  86.  
  87.         public Product(string name, int price)
  88.         {
  89.             Name = name;
  90.             Price = price;
  91.         }
  92.  
  93.         public void ShowInfo()
  94.         {
  95.             Console.WriteLine($"Наименование-{Name}, стоимость-{Price}");
  96.         }
  97.     }
  98.  
  99.     class Shop
  100.     {
  101.         Random random = new Random();
  102.         private Queue<Client> _clients = new Queue<Client>();
  103.         private List<Product> _products = new List<Product>
  104.         {
  105.             new Product("Помидоры", 10),
  106.             new Product("Огурцы", 15),
  107.             new Product("Баклажаны", 20),
  108.             new Product("Перец",15),
  109.             new Product("Картошка", 10),
  110.             new Product("Лук", 10)
  111.         };
  112.  
  113.         public void CreateNewQueue(int count)
  114.         {
  115.             for (int i = 0; i < count; i++)
  116.             {
  117.                 Client client = new Client(random.Next(50, 80));
  118.                 client.AddProducts(_products);
  119.                 _clients.Enqueue(client);
  120.             }
  121.         }
  122.  
  123.         public void Work()
  124.         {
  125.             while (_clients.Count > 0)
  126.             {
  127.                 Client client = _clients.Dequeue();
  128.                 client.ShowProducts();
  129.                 Console.WriteLine($"У покутеля денег {client.Money}\n");
  130.                 client.BuyProducts();
  131.                 Console.ReadKey();
  132.             }
  133.         }
  134.     }
  135. }
  136.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement