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 Work_28_08_2017
- {
- class Program
- {
- static Random random = new Random();
- static void Main(string[] args)
- {
- Cafe cafe = new Cafe(2, 2);
- int personCounter = 0;
- Console.WriteLine("Нажмите на Enter для начала игры и продолжайте нажимать, \nесли вы захотите увидеть нового посетителя в своем кафе. \n Для выхода из игры нажмите Escape\n");
- ConsoleKey key = Console.ReadKey(true).Key;
- while (true)
- {
- Person person = new Person("Wiktor" + personCounter++, random.Next(15, 61), (PersonBehavior)random.Next(0, 3));
- cafe.NewVisitor(person);
- //System.Threading.Thread.Sleep(2000);
- Console.WriteLine();
- key = Console.ReadKey(true).Key;
- }
- }
- }
- enum PersonBehavior
- {
- Aggressive = 0,
- Passive = 1,
- Polite = 2
- }
- class Person
- {
- protected string Name;
- protected int Age;
- private PersonBehavior Behavior;
- public Person(string name, int age)
- {
- Name = name;
- Age = age;
- }
- public Person(string name, int age, PersonBehavior behavior)
- {
- Name = name;
- Age = age;
- Behavior = behavior;
- }
- public string GetName(){
- return Name;
- }
- public int GetAge()
- {
- return Age;
- }
- //Добавьте в класс Person метод, который будет возвращать поведение объекта Person(возвращаемый тип - созданный нами Enum)
- public PersonBehavior BehaviorObject()
- {
- return Behavior;
- }
- }
- class Employee : Person
- {
- protected int Zp;
- public Employee(int zp, string name, int age) : base(name, age)
- {
- Zp = zp;
- }
- public int GetZp()
- {
- return Zp;
- }
- }
- class Waiters : Employee
- {
- public Waiters(int zp, string name, int age) : base(zp, name, age)
- {
- }
- }
- class Securities : Waiters
- {
- public Securities(int zp, string name, int age) : base(zp, name, age)
- {
- }
- }
- class Cafe
- {
- private int currWaiters = 0; //текущее кол-во посетителей
- private int currSecurities = 0; //текущее кол-во охранников
- private int maxWaiters = 0; //макс-е кол-во посетителей
- private int maxSecurities = 0; //макс-е кол-во охранников
- private Employee[] employee; //массив служащих
- //private Securities[] security; //массив охранников
- //private Waiters[] waiter; //массив официантов
- public Cafe(int maxwaiters, int maxsecurities)
- {
- maxWaiters = maxwaiters;
- maxSecurities = maxsecurities;
- employee = new Employee[maxsecurities + maxwaiters];
- }
- public void RecruitmentSecurity(Person person)
- {
- //метод должен проверять, сколько сейчас охранников работает в кафе и если охранников меньше,
- // чем их максимальное число, принять объект на работу и вывести на экран информацию следующего
- // вида «Поздравляем, { имя объекта}
- //! \nВы приняты на должность охранника с зарплатой { зарплата объекта)}
- //рублей!»
- //-иначе вывести информацию следующего вида «Охрана, выкиньте { имя объекта }
- //из зала!»
- if (currSecurities < maxSecurities)
- {
- employee[currSecurities] = new Securities(30000, person.GetName(), person.GetAge());
- Console.WriteLine("Поздравляем, {0}. Вы приняты на должность охранника с зарплатой {1}",
- employee[currSecurities].GetName(), employee[currSecurities].GetZp());
- currSecurities++;
- }
- else
- {
- Console.WriteLine("Охрана, выкиньте {0} из зала!", person.GetName());
- }
- }
- public void RecruitmentWaiters(Person person)
- {
- //-метод должен проверять, сколько сейчас официантов работает в кафе и если официантов меньше,
- //чем их максимальное число, принять объект на работу и вывести на экран информацию следующего
- // вида «{ имя объекта }, без Вас мы не справимся! \nВы приняты на должность официанта
- // с зарплатой { зарплата объекта }
- //рублей!»
- //-иначе вывести информацию следующего вида «Ох...Очень жаль, { имя объекта },
- //\nно у нас сейчас нет места для еще одного официанта :(»
- if (currWaiters < maxWaiters)
- {
- employee[maxSecurities + currWaiters] = new Waiters(30000, person.GetName(), person.GetAge());
- Console.WriteLine("{0}, без Вас мы не справимся. Вы приняты на должность официанта с зарплатой {1}",
- employee[maxSecurities + currWaiters].GetName(), employee[maxSecurities + currWaiters].GetZp());
- currWaiters++;
- }
- else
- {
- Console.WriteLine("Ох, очень жаль, {0}, но у нас сейчас нет места для еще одного официанта", person.GetName());
- }
- }
- public void NewVisitor(Person person)
- {
- switch ((int)person.BehaviorObject())
- {
- case 0:
- Console.WriteLine("Пожалуйста поспокойнее, {0}!", person.GetName());
- RecruitmentSecurity(person);
- break;
- case 1:
- Console.WriteLine("С вас 3000 рублей, уважаемый, {0}!", person.GetName());
- break;
- case 2:
- Console.WriteLine("О, Вы так вежливы, {0}! Возможно у меня будет для Вас кое-какое предложение", person.GetName());
- RecruitmentWaiters(person);
- break;
- default:
- break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement