Ejemplo n.º 1
0
        public Collection(int length)
        {
            City       = new List <Person>();
            Department = new List <Person>();

            for (int i = 0; i < length; i++)
            {
                if (i / 2 == 0)
                {
                    Schooler child = new Schooler();
                    City.Add(child);
                }
                else
                {
                    Person p = new Person();
                    City.Add(p);
                }

                if (i / 2 == 0)
                {
                    ExramuralStudent exSt = new ExramuralStudent();
                    Department.Add(exSt);
                }
                else
                {
                    Student st = new Student();
                    Department.Add(st);
                }
            }
        }
Ejemplo n.º 2
0
        }//Печать всей коллекции

        private static SortedList Clone(SortedList sortedList)
        {
            SortedList sortedList2 = new SortedList();

            foreach (Person item in sortedList.Values)
            {
                ExramuralStudent student = item as ExramuralStudent;
                if (student is ExramuralStudent)
                {
                    sortedList2.Add(sortedList.GetKey(sortedList.IndexOfValue(item)), student.Clone());
                }
            }

            foreach (Person item in sortedList.Values)
            {
                Student student = item as Student;
                if (student is Student && !(student is ExramuralStudent))
                {
                    sortedList2.Add(sortedList.GetKey(sortedList.IndexOfValue(item)), student.Clone());
                }
            }

            foreach (Person item in sortedList.Values)
            {
                Schooler schooler = item as Schooler;
                if (schooler is Schooler)
                {
                    sortedList2.Add(sortedList.GetKey(sortedList.IndexOfValue(item)), schooler.Clone());
                }
            }



            return(sortedList2);
        }// клонирование коллекции
Ejemplo n.º 3
0
        private static Schooler GetSchooler()
        {
            Console.Write("Введите имя: ");
            string nameToFind = Console.ReadLine();
            int    age        = ReadNumber(0, 100, "Введите возраст: ");
            int    sclass     = ReadNumber(0, 12, "Введите класс: ");


            Schooler st = new Schooler(nameToFind, age, sclass);

            return(st);
        }
 public SchoolerChangedEventArgs(Schooler oldSchooler, Schooler newSchooler)
 {
     OldSchooler = oldSchooler;
     NewSchooler = newSchooler;
 }
Ejemplo n.º 5
0
        private static void Collection1()
        {
            Console.WriteLine("Данная программа создаёт и выводит на печать первоначальное количество объектов заданного типа " +
                              "\nи содержит ряд функций для работы с этими объектами");
            Console.WriteLine("\nНажмите любую клавишу, чтобы продолжить...");
            Console.ReadKey();
            Console.Clear();

            int        numberOfExStudent = ReadNumber(0, 2000, "Введите начальное количество студентов-заочников: ");
            int        numberOfStudent   = ReadNumber(0, 2000, "Введите начальное количество студентов: ");
            int        numberOfSchooler  = ReadNumber(0, 2000, "Введите начальное количество школьников: ");
            SortedList sortedList1       = Generator.CreateCollectionFirstTask(numberOfExStudent, numberOfStudent, numberOfSchooler);

            PrintAllInformation(sortedList1);

            Console.WriteLine("Нажмите любую клавишу, чтобы продолжить...");
            Console.ReadKey();
            Console.Clear();

            int menuChoise = 1;

            while (menuChoise != 0)
            {
                menuChoise = Task12_menu();
                switch (menuChoise)
                {
                //_____ДОБАВЛЕНИЕ_____//
                case 1:
                    switch (ObjectMenu())
                    {
                    case 1:
                        int keyAddObject      = NewKey(sortedList1);
                        ExramuralStudent exSt = new ExramuralStudent();

                        sortedList1.Add(keyAddObject, exSt);
                        Console.WriteLine($"Элемент: {exSt}, успешно добавлен");
                        break;

                    case 2:
                        keyAddObject = NewKey(sortedList1);
                        Student st = new Student();
                        sortedList1.Add(keyAddObject, st);
                        Console.WriteLine($"Элемент: {st}, успешно добавлен");
                        break;

                    case 3:
                        keyAddObject = NewKey(sortedList1);
                        Schooler sc = new Schooler();
                        sortedList1.Add(keyAddObject, sc);
                        Console.WriteLine($"Элемент: {sc}, успешно добавлен");
                        break;
                    }
                    break;

                //_____УДАЛЕНИЕ_____//
                case 2:
                    int removeObject = ReadNumber(-1, 100000, "Введите ключ объекта для удаления: ");
                    if (sortedList1.ContainsKey(removeObject))
                    {
                        Person p = (Person)sortedList1[removeObject];

                        sortedList1.Remove(removeObject);
                        Console.WriteLine($"Элемент {p} успешно удален");
                    }
                    else
                    {
                        Console.WriteLine("Элемента с таким ключем не существует");
                    }

                    break;

                //_____ПОДСЧЕТ_____//
                case 3:

                    int count = 0;

                    foreach (Person item in sortedList1.Values)
                    {
                        ExramuralStudent student = item as ExramuralStudent;
                        if (student is ExramuralStudent)
                        {
                            count += 1;
                        }
                    }
                    Console.WriteLine("\nКоличество студентов-заочников: " + count);

                    count = 0;
                    foreach (Person item in sortedList1.Values)
                    {
                        Student student = item as Student;
                        if (student is Student && !(student is ExramuralStudent))
                        {
                            count += 1;
                        }
                    }
                    Console.WriteLine("\nКоличество студентов: " + count);

                    count = 0;
                    foreach (Person item in sortedList1.Values)
                    {
                        Schooler schooler = item as Schooler;
                        if (schooler is Schooler)
                        {
                            count += 1;
                        }
                    }
                    Console.WriteLine("\nКоличество школьников: " + count);
                    break;

                //_____ПЕЧАТЬ РАЗНЫХ ТИПОВ КОЛЛЕКЦИИ_____//
                case 4:
                    bool persons = false;


                    Console.WriteLine("1. Студент-заочник" +
                                      "\n2. Студент" +
                                      "\n3. Школьник" +
                                      "\n4. Печать всей коллекции");

                    int choice = ReadNumber(0, 5, "Выберите тип объекта: ");

                    switch (choice)
                    {
                    case 1:
                        foreach (Person item in sortedList1.Values)
                        {
                            ExramuralStudent exStudent = item as ExramuralStudent;
                            if (exStudent is ExramuralStudent)
                            {
                                exStudent.Show();
                                persons = true;
                            }
                        }
                        if (!persons)
                        {
                            Console.WriteLine("Студентов заочников в коллекции нет");
                        }
                        break;

                    case 2:
                        foreach (Person item in sortedList1.Values)
                        {
                            Student student = item as Student;
                            if (student is Student && !(student is ExramuralStudent))
                            {
                                student.Show();
                                persons = true;
                            }
                        }
                        if (!persons)
                        {
                            Console.WriteLine("Студентов в коллекции нет");
                        }
                        break;

                    case 3:
                        foreach (Person item in sortedList1.Values)
                        {
                            Schooler schooler = item as Schooler;
                            if (schooler is Schooler)
                            {
                                schooler.Show();
                                persons = true;
                            }
                        }
                        if (!persons)
                        {
                            Console.WriteLine("Школьников в коллекции нет");
                        }
                        break;

                    case 4:
                        PrintAllInformation(sortedList1);
                        break;
                    }

                    break;

                //_____ПОДСЧЕТ СРЕДНЕЙ ОЦЕНКИ У СТУДЕНТОВ-ЗАОЧНИКОВ_____//
                case 5:
                    ArrayList removeKeyList = new ArrayList();
                    foreach (Person item in sortedList1.Values)
                    {
                        ExramuralStudent student = item as ExramuralStudent;
                        if (student is ExramuralStudent && student.ExamMark1 <= 3 && student.ExamMark2 <= 3)
                        {
                            removeKeyList.Add(item);
                        }
                    }
                    if (removeKeyList.Count == 0)
                    {
                        Console.WriteLine("Никто не отчислен");
                    }
                    else
                    {
                        for (int i = 0; i < removeKeyList.Count; i++)
                        {
                            sortedList1.Remove(sortedList1.IndexOfValue(removeKeyList[i]));
                        }
                        Console.WriteLine("Студенты отчислены");
                    }

                    break;

                //_____ПОИСК_____//
                case 6:
                    SortedList sortedList2 = Clone(sortedList1);

                    bool itemFinded = false;
                    switch (ObjectMenu())
                    {
                    case 1:

                        ExramuralStudent st1 = GetExStudent();
                        if (sortedList2.ContainsValue(st1))
                        {
                            itemFinded = true;
                        }
                        break;

                    case 2:

                        Student st2 = GetStudent();
                        if (sortedList2.ContainsValue(st2))
                        {
                            itemFinded = true;
                        }

                        break;

                    case 3:

                        Schooler st3 = GetSchooler();
                        if (sortedList2.ContainsValue(st3))
                        {
                            itemFinded = true;
                        }
                        break;
                    }

                    if (itemFinded == true)
                    {
                        Console.WriteLine("Объект найден");
                    }
                    else
                    {
                        Console.WriteLine("Объект не найден");
                    }
                    break;
                }
                Console.WriteLine("\nНажмите любую клавишу для продолжения...");
                Console.ReadKey();
                Console.Clear();
            }
        }