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_01
- {
- class Program
- {
- static void Main(string[] args)
- {
- Cashdesk cashdesk = new Cashdesk();
- cashdesk.Work();
- }
- }
- class Cashdesk
- {
- private Queue<Shopper> _shoppers;
- public Cashdesk()
- {
- int shoppersCount = 10;
- _shoppers = new Queue<Shopper>();
- Random rand = new Random();
- CreateNewShopper(shoppersCount, rand);
- }
- private void CreateNewShopper(int count, Random rand)
- {
- int lowMoney = 3000;
- int maxMoney = 4000;
- for (int i = 0; i < count; i++)
- {
- _shoppers.Enqueue(new Shopper(rand.Next(lowMoney, maxMoney), rand));
- }
- }
- public void Work()
- {
- string splitbar = "-------------------------------------";
- while (_shoppers.Count > 0)
- {
- Console.WriteLine(splitbar);
- Console.WriteLine($"количество покупателей в очереди: {_shoppers.Count}");
- Console.WriteLine(splitbar);
- Shopper shopper = _shoppers.Dequeue();
- Console.WriteLine($"у кассы покупатель с {shopper.Money:# ###} монетами");
- Console.WriteLine(splitbar);
- Console.WriteLine($"у него в корзине: ");
- shopper.ViewCart();
- Console.WriteLine(splitbar);
- Console.WriteLine($"общая стоимость товаров в тележке: {shopper.CheckBill(): # ###} монет");
- while(shopper.CheckBill() > shopper.Money)
- {
- int deficit = shopper.CheckBill() - shopper.Money;
- Console.WriteLine($"\nпокупателю нехватает {deficit:# ###} монет.\nнажмите чтобы удалить случайный товар из корзины.");
- Console.ReadKey();
- shopper.PutOut();
- Console.Clear();
- shopper.ViewCart();
- }
- Console.WriteLine($"\nДовольный покупатель оплатил по чеку.");
- Console.ReadKey();
- Console.Clear();
- }
- Console.WriteLine($"покупатели закончились, можно сделать перерыв на чай");
- Console.WriteLine($"нажмите любую чтобы завершить программу");
- Console.ReadKey();
- }
- }
- class Shopper
- {
- private Cart _cart;
- public int Money { get; private set; }
- public Shopper(int money, Random rand)
- {
- Money = money;
- _cart = new Cart();
- _cart.CreateNewCart(rand);
- }
- public void ViewCart()
- {
- _cart.ViewProductsInCart();
- }
- public void PutOut()
- {
- _cart.PutOutProduct();
- }
- public int CheckBill()
- {
- return _cart.SumProducts();
- }
- }
- class Cart
- {
- private List<Product> _products;
- private List<Product> _productsInCart;
- public Cart()
- {
- _products = new List<Product>();
- _productsInCart = new List<Product>();
- LoadProducts();
- }
- public void CreateNewCart(Random rand)
- {
- _productsInCart = new List<Product>();
- int limit = 16;
- int size = rand.Next(1, limit);
- for (int i = 0; i < size; i++)
- {
- _productsInCart.Add(_products[rand.Next(0, _products.Count)]);
- }
- }
- public void ViewProductsInCart()
- {
- for (int i = 0; i < _productsInCart.Count; i++)
- {
- Console.Write($"{i + 1}. ");
- _productsInCart[i].ShowProduct();
- }
- }
- public int SumProducts()
- {
- int sum = 0;
- for (int i = 0; i < _productsInCart.Count; i++)
- {
- sum += _productsInCart[i].Price;
- }
- return sum;
- }
- public void PutOutProduct()
- {
- Random rand = new Random();
- int count = _productsInCart.Count;
- int index = rand.Next(0, count);
- _productsInCart.RemoveAt(index);
- }
- 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));
- }
- }
- 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 ShowProduct()
- {
- Console.WriteLine($"{Name} - {Price} монет");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement