Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace FoodMarket_02
- {
- class Program
- {
- static void Main(string[] args)
- {
- Market market = new Market();
- market.Work();
- }
- }
- class Market
- {
- private List<Product> _products;
- private Queue<Shopper> _shoppers;
- private Cart _cart;
- Random rand;
- public Market()
- {
- _products = new List<Product>();
- _shoppers = new Queue<Shopper>();
- _cart = new Cart();
- rand = new Random();
- int shoppersCount = 10;
- LoadProducts();
- CreateNewShopper(shoppersCount, rand);
- }
- public void Work()
- {
- string splitbar = "--------------------------------------------";
- while (_shoppers.Count > 0)
- {
- Console.WriteLine($"До закрытия магазина и Нового Года остались считанные минуты.\nВы, как кассир единственно работающей кассы, с грустью смотрите на очередь из {_shoppers.Count} человек.");
- Console.WriteLine(splitbar);
- Shopper shopper = _shoppers.Dequeue();
- _cart.FillWithProducts(_products);
- Console.WriteLine($"Перед Вами очередной покупатель, за собой он тащит корзину с покупками:");
- _cart.ShowProducts();
- Console.WriteLine(splitbar);
- Console.WriteLine($"на общую сумму {_cart.SumPrice():# ###} рублей");
- Console.WriteLine(splitbar);
- Console.WriteLine($"как опытный кассир, по одному взгляду Вы понимаете, что у покупателя {shopper.Money:# ###} рублей");
- while (CheckDeficit(shopper.Money))
- {
- int deficit = _cart.SumPrice() - shopper.Money;
- Console.WriteLine($"\nпокупателю не хватает {deficit:# ###} рублей.\nнажмите чтобы удалить случайный товар из корзины.");
- Console.ReadKey();
- _cart.PutOut();
- Console.Clear();
- _cart.ShowProducts();
- }
- Console.WriteLine($"\nДовольный покупатель оплатил по чеку.");
- Console.ReadKey();
- Console.Clear();
- _cart.ToEmpty();
- }
- Console.WriteLine(splitbar);
- Console.WriteLine($"покупатели закончились, можно сделать перерыв на чай");
- Console.WriteLine(splitbar);
- Console.WriteLine($"нажмите любую чтобы завершить программу");
- Console.ReadKey();
- }
- private void LoadProducts()
- {
- _products.Add(new Product("Ломанный грош юбилейный", 1000));
- _products.Add(new Product("Стельки с подогревом", 255));
- _products.Add(new Product("Электроластик", 160));
- _products.Add(new Product("Накладка на руль", 318));
- _products.Add(new Product("Лампа для шкафа", 466));
- _products.Add(new Product("Плоская фляга", 495));
- _products.Add(new Product("Круговой нож", 433));
- _products.Add(new Product("Карты", 340));
- _products.Add(new Product("Мини бритва", 264));
- _products.Add(new Product("Спирограф", 431));
- _products.Add(new Product("Спортивная бутылка", 418));
- _products.Add(new Product("Карманные шахматы", 344));
- _products.Add(new Product("Щетка-ролик", 402));
- _products.Add(new Product("Зонт", 492));
- _products.Add(new Product("Ножницы с лазерным прицелом", 356));
- _products.Add(new Product("Шампур-вилка", 351));
- _products.Add(new Product("RGB-лампа", 244));
- _products.Add(new Product("Складное ведёрко", 486));
- _products.Add(new Product("Слайсер для ананаса", 275));
- _products.Add(new Product("Ледоступы", 450));
- _products.Add(new Product("Дорожные столовые приборы", 235));
- _products.Add(new Product("Газовый паяльник", 476));
- _products.Add(new Product("Губная гармошка", 286));
- _products.Add(new Product("Водонепроницаемая флешка", 395));
- _products.Add(new Product("Дозатор для напитков", 210));
- _products.Add(new Product("Умный кошелёк", 603));
- _products.Add(new Product("Комплект для выжигания", 883));
- _products.Add(new Product("Дерево Бонсай", 1200));
- _products.Add(new Product("Бумага мягкая", 68));
- _products.Add(new Product("Атомная батарейка", 999));
- }
- private void CreateNewShopper(int count, Random rand)
- {
- int minValue = 3000;
- int maxValue = 4000;
- for (int i = 0; i < count; i++)
- {
- _shoppers.Enqueue(new Shopper(rand.Next(minValue, maxValue)));
- }
- }
- private bool CheckDeficit(int cash)
- {
- return _cart.SumPrice() > cash;
- }
- }
- class Product
- {
- public string Name { get; private set; }
- public int Price { get; private set; }
- public Product(string name, int price)
- {
- Name = name;
- Price = price;
- }
- public void ShowInfo()
- {
- Console.WriteLine($"{Name} - {Price} рублей");
- }
- }
- class Shopper
- {
- public int Money;
- public Shopper(int money)
- {
- Money = money;
- }
- }
- class Cart
- {
- private List<Product> _products;
- public Cart()
- {
- _products = new List<Product>();
- }
- public void ShowProducts()
- {
- for (int i = 0; i < _products.Count; i++)
- {
- Console.Write($"{i + 1}. ");
- _products[i].ShowInfo();
- }
- }
- public void FillWithProducts(List<Product> products)
- {
- Random rand = new Random();
- int limit = 16;
- int size = rand.Next(1, limit);
- for (int i = 0; i < size; i++)
- {
- _products.Add(products[rand.Next(0, products.Count)]);
- }
- }
- public void ToEmpty()
- {
- _products.RemoveRange(0, _products.Count);
- }
- public int SumPrice()
- {
- int sum = 0;
- for (int i = 0; i < _products.Count; i++)
- {
- sum += _products[i].Price;
- }
- return sum;
- }
- public void PutOut()
- {
- Random rand = new Random();
- int count = _products.Count;
- int index = rand.Next(0, count);
- _products.RemoveAt(index);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement