static void Main(string[] args)
        {
            string answer;

            Console.WriteLine("Доброго времени суток. Добро пожаловать на домашнюю работу студанта А.Малова к уроку №6 курса Основы языка C#.");
            do
            {
                Console.Write("Выберите интересующее вас задание:\n1|2.Работы с функциями через делегаты \n3.'Доработаный' пример использования коллекций \nДля выхода введите 0\nИтак, ваш выбор=> ");
                answer = Console.ReadLine();
                if (answer == "1" || answer == "2")
                {
                    Task1_2.RunTask1_2();
                }
                else
                if (answer == "3")
                {
                    MyStudent.RunTask3();
                }
                else
                if (answer == "0")
                {
                    Console.WriteLine("Good bye! Thanks for your time!)");
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Введён не корректный номер задания. Повторите ввод");
                    Task1_2.Pause();
                }
            } while (answer != "0");
            Task1_2.PauseAndClear();
        }
Exemple #2
0
        /// <summary>
        /// Запуск поиска числа студентов по пункту, выбранному пользователем
        /// </summary>
        /// <param name="delegatcount">массив методов поиска</param>
        /// <param name="students">Список студентов</param>
        public static void RunGetCountProgram(GetCountDelOut[] delegatcount, List <MyStudent> students)
        {
            int answer, count;

            do
            {
                Console.Write("Можно подсчитать количество студентов по следующим параметрам:\n1.По Фамилии\n2.По Имени\n3.По Университету\n4.По Факультету\n5.По кафедре\n6.По Курсу\n7.По возрасту\n8.По номеру группы\n9.По Городу\nДля выхода введите 0\nВаш выбор=> ");
                if (int.TryParse(Console.ReadLine(), out answer) && answer > 0 && answer <= delegatcount.Length)
                {
                    count = delegatcount[answer - 1](students, out List <MyStudent> tempstudents);
                    Console.WriteLine($"Количество студентов по заданному параметру = {count}\nИ вот эти студенты:");
                    PrintMyListStudent(tempstudents);
                    Console.Write("Продолжить поиск с получившимся списком или вернёмся к дефолтному?\nДля продолжения с действующм списком введите 1, для выхода - что угодно только не 1=> ");
                    if ((int.TryParse(Console.ReadLine(), out answer)) && answer == 1)
                    {
                        RunGetCountProgram(delegatcount, tempstudents);
                    }
                    else
                    {
                        answer = 0;
                    }
                }
                else
                if (answer != 0)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("не валидный номер задачи. Повторите ввод!");
                    Task1_2.PauseAndClear();
                }
            } while (answer != 0);
        }
Exemple #3
0
        /// <summary>
        /// Метод получения числа студентов из заданной группы, возвращающий лист с этими студентами
        /// </summary>
        /// <param name="students">лист студентов</param>
        /// <param name="group">группа</param>
        /// <param name="tempstudents">лист студентов из заданной группы</param>
        /// <returns></returns>
        public static int GetCountGroup(List <MyStudent> students, out List <MyStudent> tempstudents)
        {
            tempstudents = new List <MyStudent>();
            do
            {
                Console.WriteLine("Введите номер группы по которой необходимо найти студентов:");
                if (int.TryParse(Console.ReadLine(), out int group))
                {
                    foreach (MyStudent el in students)
                    {
                        if (el.course == group)
                        {
                            tempstudents.Add(el);
                        }
                    }
                    break;
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Вы ввели не корректные данные. Повторите ввод!");
                    Task1_2.Pause();
                }
            } while (true);

            CheckCount(tempstudents);
            return(tempstudents.Count);
        }
Exemple #4
0
 /// <summary>
 /// Метод проверки были ли совпадения в резултате поиска
 /// </summary>
 /// <param name="students"></param>
 public static void CheckCount(List <MyStudent> students)
 {
     if (students.Count == 0)
     {
         Console.ForegroundColor = ConsoleColor.Red;
         Console.WriteLine("Совпадений не найдено!");
         Task1_2.Pause();
     }
 }
Exemple #5
0
        /// <summary>
        /// Метод запуска 3-го задания
        /// </summary>
        public static void RunTask3()
        {
            int answer, count;

            GetCountDelOut[]  delegatcount  = { GetCountLName, GetCountFName, GetCountUniver, GetCountFaculty, GetCountDepartament, GetCountCourse, GetCountAge, GetCountGroup, GetCountCity };
            GetCountDel2Out[] delegatcount2 = { GetCountRangeCourse, GetCountRangeAge, GetCountRangeGroup };
            string            fileName      = AppDomain.CurrentDomain.BaseDirectory + "BaseOfStudents.csv";
            List <MyStudent>  students      = GetBaseSTudent(fileName);

            Console.WriteLine("Задание 3 к уроку 6. Работа с коллекциями.");
            do
            {
                Console.WriteLine("Дан список студентов:");
                PrintMyListStudent(students);
                Console.Write("Выберете что хотите сделать со списком:\n1) Подсчитать количество студентов учащихся на 5 и 6 курсах \n2) подсчитать сколько студентов в возрасте от 18 до 20 лет на каком курсе учатся\n3) отсортировать список по возрасту студента\n4)отсортировать список по курсу и возрасту студента\n5) разработать единый метод подсчета количества студентов по различным параметрам выбора с помощью делегата и методов предикатов.\nДля выхода введите 0\nВаш выбор=> ");
                if (int.TryParse(Console.ReadLine(), out answer) && answer != 0)
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    switch (answer)
                    {
                    case 1:
                        Console.Write("Количество студентов учащихся на 5 и 6 курсах = ");
                        count = GetRangeCount(GetCountRangeCourse, students, 5, 6, out List <MyStudent> activestudents);
                        break;

                    case 2:
                        Console.Write("Количество студентов в возрасте от 18 до 20 лет = ");
                        count = GetRangeCount(GetCountRangeAge, students, 18, 20, out List <MyStudent> activestudents1);
                        break;

                    case 3:
                        students = SortMyListAge(students);
                        PrintMyListStudent(students);
                        break;

                    case 4:
                        students = SortMyListCourseAndAge(students);
                        PrintMyListStudent(students);
                        break;

                    case 5:
                        RunGetCountProgram(delegatcount, students);
                        break;
                    }
                    Task1_2.PauseAndClear();
                }
                else
                if (answer != 0)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("не валидный номер задачи. Повторите ввод!");
                    Task1_2.PauseAndClear();
                }
            }while (answer != 0);
        }
Exemple #6
0
 /// <summary>
 /// Метод вывода на экран списка студентов
 /// </summary>
 /// <param name="tempst"></param>
 public static void PrintMyListStudent(List <MyStudent> tempst)
 {
     Console.ForegroundColor = ConsoleColor.Cyan;
     Console.WriteLine("--------------------------------------------");
     foreach (MyStudent el in tempst)
     {
         Console.WriteLine(el.ToString());
     }
     Console.WriteLine("--------------------------------------------");
     Task1_2.Pause();
 }