Example #1
0
        public PersonArray(int size)
        {
            arr = new Person[size];
            for (int i = 0; i < arr.Length; i++)
            {
                Console.Write("Имя: ");
                string firstName = Console.ReadLine();
                Console.Write("Фамилия: ");
                string lastName = Console.ReadLine();
                Console.Write("Возраст: ");
                int age = InputNumber("", 0, 110);
                Console.WriteLine("Выберите должность (1-2): 1 - Работник,  2 - Администратор");
                int choose = InputNumber("", 1, 2);
                if (choose == 1)
                {
                    Console.WriteLine("Инженер? 1 - Да, 2 - Нет");
                    int choiceWL = InputNumber("", 1, 2);
                    Console.WriteLine("Наименование цеха:");
                    string worr = Console.ReadLine();
                    if (choiceWL == 2)
                    {
                        Worker w = new Worker(firstName, lastName, age, worr);
                        arr[i] = w;
                    }

                    if (choiceWL == 1)
                    {
                        Console.WriteLine("Наименование места работы:");
                        string   eng = Console.ReadLine();
                        Engineer e   = new Engineer(firstName, lastName, age, worr, eng);
                        arr[i] = e;
                    }
                }
                if (choose == 2)
                {
                    Console.WriteLine("Наименование места администрирования:");
                    string     adm = Console.ReadLine();
                    Administer a   = new Administer(firstName, lastName, age, adm);
                    arr[i] = a;
                }
                Console.WriteLine();
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            //Задание 1.

            int encount = 0;

            Console.WriteLine("Лабораторная работа №10. Решетняк Роман. 3 Вариант");
            Console.WriteLine();
            Console.WriteLine("Введите размер массива (максимум 15)");
            Console.WriteLine();
            size = InputNumber("", 0, 15);
            Console.WriteLine();
            PersonArray PArr = new PersonArray(size);

            Console.WriteLine();

            //     Console.WriteLine(PersonArray.);
            Console.WriteLine();
            Console.WriteLine("Просмотр данных:");
            for (int i = 0; i < size; i++)
            {
                Console.WriteLine("Имя: " + PArr.arr[i].FirstName);
                Console.WriteLine("Фамилия: " + PArr.arr[i].LastName);
                Console.WriteLine("Возраст: " + PArr.arr[i].Age);
                if (PArr.arr[i] is Engineer)
                {
                    Engineer engl = PArr.arr[i] as Engineer;
                    Console.WriteLine("Наименование места работы: " + engl.NameFactory);
                }
                if (PArr.arr[i] is Administer)
                {
                    Administer adm = PArr.arr[i] as Administer;
                    Console.WriteLine("Наименование места администрирования: " + adm.WhatManage);
                }
                if (PArr.arr[i] is Worker)
                {
                    Worker Wk = PArr.arr[i] as Worker;
                    Console.WriteLine("Наименование цеха: " + Wk.NameWorkShop);
                }
                Console.WriteLine();
            }


            //Задание 2.
            //______________________________________________________________________________________________________________________________



            Console.WriteLine();
            Console.WriteLine("Запросы: \n1) Количество инженеров на работе;\n2) Имена рабочих;\n3) Количество инженеров в заданном подразделении;\n4) Продолжить.");
            Console.WriteLine();

            //Задача 9. Количество инженеров на работе.

            Console.WriteLine("Количество инженеров на работе");
            foreach (Person pEng in PArr.arr)
            {
                if (pEng is Engineer)
                {
                    encount = 1 + encount;
                }
            }
            Console.WriteLine("Инженеров: " + encount);
            Console.WriteLine();

            //Задача 7. Имена рабочих.

            int da = 0;

            foreach (Person pWk in PArr.arr)
            {
                if (pWk is Worker)
                {
                    da = 1 + da;

                    if (pWk is Engineer)
                    {
                        Console.WriteLine("Рабочий инженер: " + pWk.FirstName + " " + pWk.LastName);
                    }
                    else
                    {
                        Console.WriteLine("Рабочий: " + pWk.FirstName + " " + pWk.LastName);
                    }
                }
            }
            if (da == 0)
            {
                Console.WriteLine("Рабочих нет");
            }
            Console.WriteLine();

            //Задача 19. Количество инженеров в заданном подразделении.

            Console.WriteLine("Количество инженеров в заданном месте работы");
            Console.WriteLine("Введите место работы: ");
            string unit      = Console.ReadLine();
            int    unitCount = 0;

            Console.WriteLine();
            Engineer engIn = new Engineer("", "", 0, "", "");

            foreach (Person pEng in PArr.arr)
            {
                if (pEng is Engineer)
                {
                    engIn = pEng as Engineer;
                    if (engIn.NameFactory == unit)
                    {
                        unitCount = 1 + unitCount;
                    }
                }
            }
            Console.WriteLine("Всего инженеров на данном месте работы: " + unitCount);
            Console.WriteLine();


            //Задача 3.
            //______________________________________________________________________________________________________________________________
            Console.WriteLine("Сортировка");
            Array.Sort(PArr.arr);
            for (int i = 0; i < PArr.arr.Length; i++)
            {
                Console.WriteLine("Имя: " + PArr.arr[i].FirstName);
                Console.WriteLine("Фамилия: " + PArr.arr[i].LastName);
                Console.WriteLine("Возраст: " + PArr.arr[i].Age);
                if (PArr.arr[i] is Administer)
                {
                    Administer adm = PArr.arr[i] as Administer;
                    Console.WriteLine("Наименование места администрирования: " + adm.WhatManage);
                }
                if (PArr.arr[i] is Worker)
                {
                    Worker Wk = PArr.arr[i] as Worker;
                    Console.WriteLine("Наименование цеха: " + Wk.NameWorkShop);
                    if (PArr.arr[i] is Engineer)
                    {
                        Engineer engl = PArr.arr[i] as Engineer;
                        Console.WriteLine("Наименование места работы: " + engl.NameFactory);
                    }
                }
                Console.WriteLine();
            }
            //Поиск в массиве
            Console.WriteLine("В каком разделе искать: 1 - Работник, 2 - Администратор");
            int findCount = InputNumber("", 1, 2);

            if (findCount == 1)
            {
                Console.WriteLine("Инженер? 1 - Да, 2 - Нет.");
                int choiceEngl = InputNumber("", 1, 2);

                Console.WriteLine();
                Console.Write("Введите имя:");
                string findFirstName = Console.ReadLine();
                Console.Write("Введите фамилию: ");
                string findLastName = Console.ReadLine();
                Console.Write("Введите возраст: ");
                int findAge = InputNumber("", 0, 100);
                Console.Write("Введите название цеха: ");
                string findNameWorkShop = Console.ReadLine();
                if (choiceEngl == 2)
                {
                    try
                    {
                        Person p      = new Worker(findFirstName, findLastName, findAge, findNameWorkShop);
                        Person finded = Array.Find(PArr.arr, Person => p == Person);
                        Console.Write($"Найдено: ");
                        p.Display();

                        Console.WriteLine("Клонирование...");
                        for (int i = 10; i > 0; i--)
                        {
                            Thread.Sleep(500);
                            Console.WriteLine(i);
                        }

                        Person ClonP = (Worker)p.Clone();
                        Console.WriteLine("Клонирование завершено!");

                        Console.WriteLine(ClonP.FirstName + " " + ClonP.LastName + " " + ClonP.Age);

                        //interface IExecutable
                        ClonP.Execute();
                        Console.WriteLine("Клонирование...");
                        for (int i = 10; i > 0; i--)
                        {
                            Thread.Sleep(500);
                            Console.WriteLine(i);
                        }

                        Console.WriteLine(ClonP.FirstName + " " + ClonP.LastName + " " + ClonP.Age);
                    }
                    catch
                    {
                        Console.WriteLine("Пользователя нет!");
                    }
                }

                if (choiceEngl == 1)
                {
                    Console.Write("Введите наименование места работы: ");
                    string findNameFactory = Console.ReadLine();
                    try
                    {
                        Person p      = new Engineer(findFirstName, findLastName, findAge, findNameWorkShop, findNameFactory);
                        Person finded = Array.Find(PArr.arr, Person => p == Person);
                        Console.Write($"Найдено: ");
                        p.Display();
                        Console.WriteLine("Клонирование...");
                        for (int i = 10; i > 0; i--)
                        {
                            Thread.Sleep(500);
                            Console.WriteLine(i);
                        }

                        Person ClonP = (Engineer)p.Clone();
                        Console.WriteLine("Клонирование завершено!");

                        Console.WriteLine(ClonP.FirstName + " " + ClonP.LastName + " " + ClonP.Age);

                        //interface IExecutable
                        ClonP.Execute();
                        Console.WriteLine("Клонирование...");
                        for (int i = 10; i > 0; i--)
                        {
                            Thread.Sleep(500);
                            Console.WriteLine(i);
                        }

                        Console.WriteLine(ClonP.FirstName + " " + ClonP.LastName + " " + ClonP.Age);
                    }
                    catch
                    {
                        Console.WriteLine("Пользователя нет!");
                    }
                }
            }

            if (findCount == 2)
            {
                Console.WriteLine();
                Console.Write("Введите имя: ");
                string findFirstName = Console.ReadLine();
                Console.Write("Введите фамилию: ");
                string findLastName = Console.ReadLine();
                Console.Write("Введите возраст: ");
                int findAge = InputNumber("", 0, 100);
                Console.Write("Введите наименоение места администрирования: ");
                string findWhatManage = Console.ReadLine();
                try
                {
                    Person p      = new Administer(findFirstName, findLastName, findAge, findWhatManage);
                    Person finded = Array.Find(PArr.arr, Person => p == Person);
                    Console.Write($"Найдено: ");
                    p.Display();
                    Console.WriteLine("Клонирование...");
                    for (int i = 10; i > 0; i--)
                    {
                        Thread.Sleep(500);
                        Console.WriteLine(i);
                    }

                    Person ClonP = (Administer)p.Clone();
                    Console.WriteLine("Клонирование завершено!");

                    Console.WriteLine(ClonP.FirstName + " " + ClonP.LastName + " " + ClonP.Age);

                    //interface IExecutable
                    ClonP.Execute();
                    Console.WriteLine("Клонирование...");
                    for (int i = 10; i > 0; i--)
                    {
                        Thread.Sleep(500);
                        Console.WriteLine(i);
                    }

                    Console.WriteLine(ClonP.FirstName + " " + ClonP.LastName + " " + ClonP.Age);
                }
                catch
                {
                    Console.WriteLine("Пользователя нет!");
                }

                Console.ReadLine();
            }
        }