Advertisement
ZhongNi

Shop

Sep 9th, 2024
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.73 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Classes
  5. {
  6.     internal class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Administrator administrator = new Administrator();
  11.             Seller seller = new Seller();
  12.             Customer customer = new Customer();
  13.             administrator.Shop(seller, customer);
  14.         }
  15.     }
  16.  
  17.     class Administrator
  18.     {
  19.         public void Shop(Seller seller, Customer customer)
  20.         {
  21.             const int CommandExit = 0;
  22.  
  23.             bool isRunning = true;
  24.  
  25.             while (isRunning)
  26.             {
  27.                 Console.Clear();
  28.  
  29.                 Console.Write("Sellers wallet: ");
  30.                 seller.ShowMoney();
  31.  
  32.                 int rightCursorPosition = 0;
  33.                 Console.WriteLine("Sellers cart: ");
  34.                 seller.ShowCart(ConsoleColor.Red, rightCursorPosition);
  35.  
  36.                 int leftCursorPosition = 25;
  37.                 Console.SetCursorPosition(leftCursorPosition, 0);
  38.                 Console.Write("Customers wallet: ");
  39.                 customer.ShowMoney();
  40.  
  41.                 Console.SetCursorPosition(leftCursorPosition, 1);
  42.                 Console.WriteLine("Customers cart: ");
  43.                 customer.ShowCart(ConsoleColor.Green, leftCursorPosition);
  44.  
  45.                 Console.SetCursorPosition(rightCursorPosition, 15);
  46.                 Console.Write("Enter a number to buy or 0 to exit\n" +
  47.                     "Enter the item number you want to buy: ");
  48.  
  49.                 int.TryParse(Console.ReadLine(), out int userInput);
  50.  
  51.                 if (userInput == CommandExit)
  52.                 {
  53.                     isRunning = false;
  54.                 }
  55.                 else if (0 < userInput && userInput <= seller.Count)
  56.                 {
  57.                     if (customer.BuyItem(seller.GetItem(userInput - 1)))
  58.                     {
  59.                         seller.SellItem(userInput - 1);
  60.                     }
  61.                     else
  62.                     {
  63.                         Console.ForegroundColor = ConsoleColor.Red;
  64.                         Console.WriteLine("not enough money!");
  65.                         Console.ResetColor();
  66.                         Console.ReadKey();
  67.                     }
  68.                 }
  69.             }
  70.         }
  71.     }
  72.  
  73.     class Person
  74.     {
  75.         protected List<Product> Cart = new List<Product>();
  76.         protected int Money;
  77.  
  78.         protected Random random = new Random();
  79.  
  80.         public void ShowCart(ConsoleColor consoleColor, int leftCursorPosition)
  81.         {
  82.             int topCursorPosition = 2;
  83.             int number = 1;
  84.  
  85.             foreach (Product product in Cart)
  86.             {
  87.                 Console.ForegroundColor = consoleColor;
  88.                 Console.SetCursorPosition(leftCursorPosition, topCursorPosition++);
  89.                 Console.WriteLine(number++ + " - " + product.Name + " - price " + product.Price);
  90.                 Console.ResetColor();
  91.             }
  92.         }
  93.  
  94.         public void ShowMoney()
  95.         {
  96.             Console.WriteLine(Money);
  97.         }
  98.     }
  99.  
  100.     class Seller : Person
  101.     {
  102.         public Seller()
  103.         {
  104.             FillCart();
  105.             Money = 0;
  106.         }
  107.  
  108.         private void FillCart()
  109.         {
  110.             int productCount = 10;
  111.             int minPrice = 10;
  112.             int maxPrice = 20;
  113.  
  114.             for (int i = 0; i < productCount; i++)
  115.             {
  116.                 Cart.Add(new Product("Item " + (i + 1), random.Next(minPrice, maxPrice)));
  117.             }
  118.         }
  119.  
  120.         public int Count => Cart.Count;
  121.  
  122.         public Product GetItem(int itemNumber)
  123.         {
  124.             Product item = Cart[itemNumber];
  125.             return item;
  126.         }
  127.  
  128.         public void SellItem(int itemNumber)
  129.         {
  130.             Money += Cart[itemNumber].Price;
  131.             Cart.RemoveAt(itemNumber);
  132.         }
  133.     }
  134.  
  135.     class Customer : Person
  136.     {
  137.         public Customer()
  138.         {
  139.             FillWallet();
  140.         }
  141.  
  142.         private void FillWallet()
  143.         {
  144.             int maxWalletValue = 200;
  145.             Money = random.Next(maxWalletValue);
  146.         }
  147.  
  148.         public bool BuyItem(Product item)
  149.         {
  150.             if (Money >= item.Price)
  151.             {
  152.                 Cart.Add(new Product(item.Name, item.Price));
  153.                 Money -= item.Price;
  154.                 return true;
  155.             }
  156.             else
  157.             {
  158.                 return false;
  159.             }
  160.         }
  161.     }
  162.  
  163.     class Product
  164.     {
  165.         public Product(string name, int price)
  166.         {
  167.             Name = name;
  168.             Price = price;
  169.         }
  170.  
  171.         public string Name { get; private set; }
  172.         public int Price { get; private set; }
  173.     }
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement