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;
- namespace HW_45_OOP_AutoService
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- Service service = new Service(new List<Client> {
- new Client("Андрей", 10000, new Auto("Audi", "Двигатель")),
- new Client("Макар", 10000, new Auto("Audi", "Двигатель")),
- new Client("Алексей", 10000, new Auto("Mercedes", "Двигатель")),
- new Client("Ибрагим", 10000, new Auto("Audi", "Двигатель")),
- new Client("Ланселот", 10000, new Auto("Audi", "Двигатель")),
- new Client("Антон", 10000, new Auto("Pegeout", "Тормоза")),
- new Client("Анатолий", 10000, new Auto("Lada", "Тормоза")),
- new Client("Валерий", 10000, new Auto("UAZ", "Генератор")),
- new Client("Григорий", 10000, new Auto("Niva", "Двигатель")),
- new Client("Алексей", 10000, new Auto("Chevrolet", "Подвеска")),
- new Client("Андрей", 10000, new Auto("Maybah", "Рулевая")),
- new Client("Соломон", 10000, new Auto("Citroen", "Стартер")),
- });
- while (service.Clients.Count != 0)
- {
- Console.WriteLine("Денег в кассе: " + service.MoneyCount + "\n\n");
- service.ProceedClient();
- Console.ReadLine();
- Console.Clear();
- }
- }
- }
- class Service
- {
- private int _moneyCount;
- private int _partPrice;
- //тут задать бы автоприсвоение уникального id
- private List<Client> _clients = new List<Client>();
- private Warehouse _warehouse = new Warehouse(15, new List<Part> {
- new Part("Двигатель", 10000, 1),
- new Part("Двигатель", 10000, 2),
- new Part("Двигатель", 10000, 3),
- new Part("Двигатель", 10000, 4),
- new Part("Генератор", 6000, 5),
- new Part("Генератор", 6000, 6),
- new Part("Генератор", 6000, 7),
- new Part("Подвеска", 3500, 8),
- new Part("Подвеска", 3500, 9),
- new Part("Рулевая", 5200, 10),
- new Part("Рулевая", 5200, 11),
- new Part("Рулевая", 5200, 12),
- new Part("Стартер", 4000, 13),
- new Part("Тормоза", 5000, 14),
- new Part("Тормоза", 5000, 15),
- });
- public Service(List<Client> clients)
- {
- _clients = clients;
- }
- public List<Client> Clients { get { return _clients; } set { _clients = value; } }
- public int MoneyCount { get { return _moneyCount; } set { _moneyCount = value; } }
- public int PartPrice { get { return _partPrice; } set { _partPrice = value; } }
- public Warehouse Warehouse { get { return _warehouse; } set { _warehouse = value; } }
- public void ProceedClient()
- {
- var currentClient = _clients.First();
- Console.WriteLine($"Клиент - {currentClient.Name}, марка авто - {currentClient.Auto.Name}. Неисправность - {currentClient.Auto.MalfunctionDesc}");
- TakePart(currentClient);
- _clients.Remove(currentClient);
- }
- public void TakePart(Client client)
- {
- string neededPart = client.Auto.MalfunctionDesc;
- var searchResult = Warehouse.SearchPart(neededPart, ref _partPrice);
- if (searchResult)
- {
- Repair();
- }
- else
- {
- MoneyBack();
- }
- }
- public void Repair()
- {
- Console.WriteLine("Успешный ремонт !");
- _moneyCount += _partPrice;
- }
- public void MoneyBack()
- {
- Console.WriteLine("Возврат денег + неустойка");
- _moneyCount -= _partPrice;
- }
- }
- class Warehouse
- {
- private int _partsCount;
- private List<Part> _partList = new List<Part>();
- public Warehouse(int partsCount, List<Part> partList)
- {
- PartsCount = partsCount;
- _partList = partList;
- }
- public int PartsCount { get { return _partsCount; } set { _partsCount = value; } }
- public List<Part> PartsList { get { return _partList; } set { _partList = value; } }
- public bool SearchPart(string partName, ref int price)
- {
- Console.WriteLine("Ищем деталь . . .");
- Thread.Sleep(1000);
- foreach (var part in _partList)
- {
- if (part.Name == partName)
- {
- price = part.Price;
- Console.WriteLine(part.Name + " " + part.Id);
- Console.WriteLine("цена детали " + price);
- Console.WriteLine("Есть деталь !, передаем на ремонт !");
- RemovePart(part.Id);
- return true;
- }
- }
- Console.WriteLine("Такой детали нет");
- return false;
- }
- public void RemovePart(int id)
- {
- _partList.RemoveAll(x => x.Id == id);
- }
- }
- class Part
- {
- private string _name;
- private int _price;
- private int _id;
- public Part(string name, int price, int id)
- {
- Name = name;
- _price = price;
- _id = id;
- }
- public string Name { get { return _name; } set { _name = value; } }
- public int Price { get { return _price; } set { _price = value; } }
- public int Id { get { return _id; } }
- }
- class Client
- {
- public Auto Auto;
- public string Name;
- private int _money;
- public Client(string name, int money, Auto auto)
- {
- Name = name;
- _money = money;
- Auto = auto;
- }
- public int Money { get { return _money; } }
- }
- class Auto
- {
- public string Name;
- public string MalfunctionDesc;
- public Auto(string name, string malfunctionDesc)
- {
- Name = name;
- MalfunctionDesc = malfunctionDesc;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement