Advertisement
Sergio_The_Best

Work_28_08_2017

Aug 28th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.70 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 Work_28_08_2017
  8. {
  9.     class Program
  10.     {
  11.             static Random random = new Random();
  12.  
  13.             static void Main(string[] args)
  14.             {
  15.                 Cafe cafe = new Cafe(2, 2);
  16.  
  17.                 int personCounter = 0;
  18.  
  19.                 Console.WriteLine("Нажмите на Enter для начала игры и продолжайте нажимать, \nесли вы захотите увидеть нового посетителя в своем кафе. \n Для выхода из игры нажмите Escape\n");
  20.  
  21.                 ConsoleKey key = Console.ReadKey(true).Key;
  22.  
  23.                 while (true)
  24.                 {
  25.                     Person person = new Person("Wiktor" + personCounter++, random.Next(15, 61), (PersonBehavior)random.Next(0, 3));
  26.                     cafe.NewVisitor(person);
  27.  
  28.                     //System.Threading.Thread.Sleep(2000);
  29.                     Console.WriteLine();
  30.                     key = Console.ReadKey(true).Key;
  31.                 }
  32.             }
  33.     }
  34.  
  35.     enum PersonBehavior
  36.     {
  37.         Aggressive = 0,
  38.         Passive = 1,
  39.         Polite = 2
  40.     }
  41.  
  42.     class Person
  43.     {
  44.         protected string Name;
  45.         protected int Age;
  46.         private PersonBehavior Behavior;
  47.  
  48.         public Person(string name, int age)
  49.         {
  50.             Name = name;
  51.             Age = age;
  52.         }
  53.  
  54.         public Person(string name, int age, PersonBehavior behavior)
  55.         {
  56.             Name = name;
  57.             Age = age;
  58.             Behavior = behavior;
  59.         }
  60.  
  61.         public string GetName(){
  62.             return Name;
  63.         }
  64.  
  65.         public int GetAge()
  66.         {
  67.             return Age;
  68.         }
  69.  
  70.         //Добавьте в класс Person метод, который будет возвращать поведение объекта Person(возвращаемый тип - созданный нами Enum)
  71.  
  72.         public PersonBehavior BehaviorObject()
  73.         {
  74.             return Behavior;
  75.         }
  76.     }
  77.     class Employee : Person
  78.     {
  79.         protected int Zp;
  80.         public Employee(int zp, string name, int age) : base(name, age)
  81.         {
  82.             Zp = zp;
  83.         }
  84.  
  85.         public int GetZp()
  86.         {
  87.             return Zp;
  88.         }
  89.  
  90.     }
  91.  
  92.  
  93.  
  94.     class Waiters : Employee
  95.     {
  96.         public Waiters(int zp, string name, int age) : base(zp, name, age)
  97.         {
  98.  
  99.         }
  100.     }
  101.  
  102.     class Securities : Waiters
  103.     {
  104.         public Securities(int zp, string name, int age) : base(zp, name, age)
  105.         {
  106.  
  107.         }
  108.     }
  109.  
  110.     class Cafe
  111.     {
  112.         private int currWaiters = 0;                    //текущее кол-во посетителей
  113.         private int currSecurities = 0;                 //текущее кол-во охранников
  114.         private int maxWaiters = 0;                     //макс-е кол-во посетителей
  115.         private int maxSecurities = 0;                  //макс-е кол-во охранников
  116.         private Employee[] employee;                    //массив служащих
  117.         //private Securities[] security;                //массив охранников
  118.         //private Waiters[] waiter;                     //массив официантов
  119.  
  120.         public Cafe(int maxwaiters, int maxsecurities)
  121.         {
  122.             maxWaiters = maxwaiters;
  123.             maxSecurities = maxsecurities;
  124.             employee = new Employee[maxsecurities + maxwaiters];
  125.  
  126.         }
  127.  
  128.  
  129.         public void RecruitmentSecurity(Person person)
  130.         {
  131.             //метод должен проверять, сколько сейчас охранников работает в кафе и если охранников меньше,
  132.             //    чем их максимальное число, принять объект на работу и вывести на экран информацию следующего
  133.             //    вида «Поздравляем, { имя объекта}
  134.             //! \nВы приняты на должность охранника с зарплатой { зарплата объекта)}
  135.             //рублей!»
  136.             //-иначе вывести информацию следующего вида «Охрана, выкиньте { имя объекта }
  137.             //из зала!»
  138.  
  139.             if (currSecurities < maxSecurities)
  140.             {
  141.                 employee[currSecurities] = new Securities(30000, person.GetName(), person.GetAge());
  142.                 Console.WriteLine("Поздравляем, {0}. Вы приняты на должность охранника с зарплатой {1}",
  143.                                    employee[currSecurities].GetName(), employee[currSecurities].GetZp());
  144.                 currSecurities++;
  145.             }
  146.             else
  147.             {
  148.                 Console.WriteLine("Охрана, выкиньте {0} из зала!", person.GetName());
  149.             }
  150.  
  151.         }
  152.  
  153.         public void RecruitmentWaiters(Person person)
  154.         {
  155.             //-метод должен проверять, сколько сейчас официантов работает в кафе и если официантов меньше,
  156.             //чем их максимальное число, принять объект на работу и вывести на экран информацию следующего
  157.             //    вида «{ имя объекта }, без Вас мы не справимся! \nВы приняты на должность официанта
  158.             //    с зарплатой { зарплата объекта }
  159.             //рублей!»
  160.             //-иначе вывести информацию следующего вида «Ох...Очень жаль, { имя объекта },
  161.             //\nно у нас сейчас нет места для еще одного официанта :(»
  162.  
  163.             if (currWaiters < maxWaiters)
  164.             {
  165.                 employee[maxSecurities + currWaiters] = new Waiters(30000, person.GetName(), person.GetAge());
  166.                 Console.WriteLine("{0}, без Вас мы не справимся. Вы приняты на должность официанта с зарплатой {1}",
  167.                                    employee[maxSecurities + currWaiters].GetName(), employee[maxSecurities + currWaiters].GetZp());
  168.                 currWaiters++;
  169.             }
  170.             else
  171.             {
  172.                 Console.WriteLine("Ох, очень жаль, {0}, но у нас сейчас нет места для еще одного официанта", person.GetName());
  173.             }
  174.  
  175.  
  176.         }
  177.  
  178.         public void NewVisitor(Person person)
  179.         {
  180.  
  181.             switch ((int)person.BehaviorObject())
  182.             {
  183.                 case 0:
  184.                     Console.WriteLine("Пожалуйста поспокойнее, {0}!", person.GetName());
  185.                     RecruitmentSecurity(person);
  186.                     break;
  187.                 case 1:
  188.                     Console.WriteLine("С вас 3000 рублей, уважаемый, {0}!", person.GetName());
  189.                     break;
  190.                 case 2:
  191.                     Console.WriteLine("О, Вы так вежливы, {0}! Возможно у меня будет для Вас кое-какое предложение", person.GetName());
  192.                     RecruitmentWaiters(person);
  193.                     break;
  194.                 default:
  195.                     break;
  196.             }
  197.         }
  198.     }
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement