static void Main(string[] args)
        {
            System.Console.OutputEncoding = System.Text.Encoding.UTF8;

            var university = new University();
            var done       = false;

            while (!done)
            {
                Console.WriteLine("Введите необходимую клавишу " +
                                  "чтобы исполнить команду");
                Console.WriteLine("0 - Выход");
                Console.WriteLine("1 - Вывести информацию о всех студентах");
                Console.WriteLine("2 - Вывести информацию о всех преподавателях");
                Console.WriteLine("3 - Вывести информацию о всех людях");
                Console.WriteLine("4 - Найти по фамилии");
                Console.WriteLine("5 - Найти по среднему баллу");
                Console.WriteLine("6 - Удалить пользователя");
                Console.WriteLine("7 - Добавить пользователя");

                Command input = (Command)Enum.Parse(typeof(Command), Console.ReadLine());

                switch (input)
                {
                case Command.getStudent:
                    if (university.Students.Any())
                    {
                        foreach (var student in university.Students)
                        {
                            Console.WriteLine(student);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Список студентов пуст");
                    }
                    break;

                case Command.getTeacher:
                    if (university.Teachers.Any())
                    {
                        foreach (var teacher in university.Teachers)
                        {
                            Console.WriteLine(teacher);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Список препадователей пуст");
                    }
                    break;

                case Command.getAll:
                    if (university.Persons.Any())
                    {
                        foreach (var person in university.Persons)
                        {
                            Console.WriteLine(person);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Список людей пуст");
                    }
                    break;

                case Command.findByLastName:
                    Console.WriteLine("Введите фамилию: ");
                    var lastName = Console.ReadLine();
                    foreach (var person in university.FindByLastName(lastName))
                    {
                        Console.WriteLine(person.ToString());
                    }
                    break;

                case Command.findByAvgPoint:
                    Console.WriteLine("Введите средний балл: ");
                    var avgPoint = float.Parse(Console.ReadLine());
                    foreach (var student in university.FindByAvgPoint(avgPoint))
                    {
                        Console.WriteLine(student.ToString());
                    }
                    break;

                case Command.deletePerson:
                    Console.WriteLine("Введите фамилию: ");
                    lastName = Console.ReadLine();

                    Console.WriteLine("Введите имя: ");
                    var name = Console.ReadLine();

                    Console.WriteLine("Это студент? 1 - если да, 2 - если нет");
                    var isStudentInput = Console.ReadLine();

                    IOrderedEnumerable <IPerson> personList;
                    if (isStudentInput == "1")
                    {
                        personList = from student in university.Students
                                     where student.Name == name &&
                                     student.LastName == lastName
                                     orderby student.LastName
                                     select student;
                    }
                    else
                    {
                        personList = from teacher in university.Teachers
                                     where teacher.Name == name &&
                                     teacher.LastName == lastName
                                     orderby teacher.LastName
                                     select teacher;
                    }

                    if (!personList.Any())
                    {
                        Console.WriteLine("Такой человек отсутствует");
                        break;
                    }
                    else
                    {
                        foreach (var person in personList)
                        {
                            university.Remove(person);
                        }
                    }
                    break;

                case Command.addPerson:
                    Console.WriteLine("Это студент? 1 - если да, 2 - если нет");
                    isStudentInput = Console.ReadLine();

                    Console.WriteLine("Введите фамилию: ");
                    lastName = Console.ReadLine();

                    Console.WriteLine("Введите имя: ");
                    name = Console.ReadLine();

                    Console.WriteLine("Введите отчество: ");
                    var patronymic = Console.ReadLine();

                    Console.WriteLine("Введите дату рождения: ");
                    var date = DateTime.Parse(Console.ReadLine());

                    if (isStudentInput == "1")
                    {
                        Console.WriteLine("Введите курс: ");
                        var course = int.Parse(Console.ReadLine());

                        Console.WriteLine("Введите группу: ");
                        var group = int.Parse(Console.ReadLine());

                        Console.WriteLine("Введите средний балл: ");
                        avgPoint = float.Parse(Console.ReadLine());

                        university.Add(new Student(lastName, name, patronymic,
                                                   date, course, group, avgPoint));
                    }
                    else
                    {
                        Console.WriteLine("Введите факультет: ");
                        var faculty = Console.ReadLine();

                        Console.WriteLine("Введите опыт работ: ");
                        var experience = int.Parse(Console.ReadLine());

                        Console.WriteLine("Введите должность: ");
                        var position = (Positions)Enum.Parse(typeof(Positions),
                                                             Console.ReadLine());

                        university.Add(new Teacher(lastName, name, patronymic,
                                                   date, faculty, experience,
                                                   position));
                    }
                    break;

                default:
                    done = true;
                    break;
                }
            }
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            University university = new University();

            #region Enter
            foreach (var student in File.ReadAllLines(studentPath).Select(student => Student.Parse(student)))
            {
                university.Add(student);
            }

            foreach (var teacher in File.ReadAllLines(teacherPath).Select(teacher => Teacher.Parse(teacher)))
            {
                university.Add(teacher);
            }
            #endregion

            bool isAnswered = false;
            bool isReverse  = false;

            Console.WriteLine("Сортровать в порядке возрастания?");

            while (!isAnswered)
            {
                switch (Console.ReadLine())
                {
                case "да":
                    isReverse  = false;
                    isAnswered = true;
                    break;

                case "нет":
                    isReverse  = true;
                    isAnswered = true;
                    break;

                default:
                    Console.WriteLine("Повторите");
                    break;
                }
            }
            university.Sort(isReverse);

            Console.WriteLine("<0> - ВЫХОД ");
            Console.WriteLine("<1> - Вывести студентов");
            Console.WriteLine("<2> - Вывести преподавателей");
            Console.WriteLine("<3> - Вывести всех");
            Console.WriteLine("<4> - Вывести всех преподавателей, название кафедры которых содержит заданный текст");
            Console.WriteLine("<5> - Поиск по фамилии");
            Console.WriteLine("<6> - удалить человека");
            Console.WriteLine("<7> - очистить консоль");

            int a = Convert.ToInt32(Console.ReadLine());

            while (a != 0)
            {
                switch (a)
                {
                case 1:
                {
                    if (university.Students.Any())
                    {
                        foreach (Student student in university.Students)
                        {
                            Console.WriteLine(student);
                        }
                    }

                    else
                    {
                        Console.WriteLine("Список студентов пуст");
                    }
                    break;
                }

                case 2:
                {
                    if (university.Teachers.Any())
                    {
                        foreach (Teacher teacher in university.Teachers)
                        {
                            Console.WriteLine(teacher);
                        }
                    }

                    else
                    {
                        Console.WriteLine("Список преподавателей пуст");
                    }
                    break;
                }

                case 3:
                {
                    if (university.Persons.Any())
                    {
                        foreach (IPerson pers in university.Persons)
                        {
                            Console.WriteLine(pers);
                        }
                    }

                    else
                    {
                        Console.WriteLine("Список людей пуст");
                    }
                    break;
                }

                case 4:
                {
                    Console.WriteLine("Введите ключ");
                    string key = Console.ReadLine();
                    IEnumerable <Teacher> teachers = university.FindByDepartment(key);

                    if (teachers.Any())
                    {
                        foreach (var person in teachers)
                        {
                            Console.WriteLine(person);
                        }
                    }

                    else
                    {
                        Console.WriteLine("Соответствий не найдено");
                    }
                    break;
                }

                case 5:
                {
                    Console.WriteLine("Введите фамилию для поиска");
                    string key = Console.ReadLine();
                    IEnumerable <IPerson> peoples = university.FindByLastName(key);

                    if (peoples.Any())
                    {
                        foreach (IPerson person in peoples)
                        {
                            Console.WriteLine(person);
                        }
                    }

                    else
                    {
                        Console.WriteLine("В списке не существует людей с такой фамилией");
                    }
                    break;
                }

                case 6:
                {
                    if (university.Persons.Any())
                    {
                        Console.WriteLine("Введите ФИО человека, которого вы хотите удалить из списка");
                        string namePerson = Console.ReadLine();
                        try
                        {
                            string[] key = namePerson.Split(new char[] { ' ' });
                            string   lastName = key[0], name = key[1], patronomic = key[2];
                            IPerson  itemToDelete = university.Persons.Where(x => x.Name == name).Where(y => y.Patronomic == patronomic).Where(z => z.Lastname == lastName).First();
                            university.Remove(itemToDelete);
                        }
                        catch
                        {
                            Console.WriteLine("Ошибка удаления. Человека с та-ким именем в списке не существует.");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Ошибка удаления. Список людей пуст.");
                    }
                    break;
                }

                case 7:
                {
                    Console.Clear();
                    Console.WriteLine("<0> - ВЫХОД ");
                    Console.WriteLine("<1> - Вывести студентов");
                    Console.WriteLine("<2> - Вывести преподавателей");
                    Console.WriteLine("<3> - Вывести всех");
                    Console.WriteLine("<4> - Вывести всех преподавателей, название кафедры которых содержит заданный текст");
                    Console.WriteLine("<5> - Поиск по фамилии");
                    Console.WriteLine("<6> - удалить человека");
                    Console.WriteLine("<7> - очистить консоль");
                    break;
                }

                default:
                {
                    Console.WriteLine("Ошибка ввода");
                    break;
                }
                }
                a = Convert.ToInt32(Console.ReadLine());
            }
        }
        static void Main(string[] args)
        {
            ConsoleOutput("Добро пожаловать в наш СуперКрутойКонсольныйИнтерфейс™");
            ConsoleOutput("Строим университет...");

            University university = new University();

            ConsoleOutput("Загружаем стандартный набор преподователей и студентов для развлечений");

            // Считываем из teachers.txt строки
            // и преобразует их в экземпляры класса Teacher
            // и запихивает их в университет
            foreach (var teacher in File.ReadAllLines("teachers.txt")
                     .Select(teacherString => Teacher.Parse(teacherString)))
            {
                university.Add(teacher);
            }

            // Считываем из students.txt строки
            // и преобразует их в экземпляры класса Student
            // и призывает их в университет
            foreach (var student in File.ReadAllLines("students.txt")
                     .Select(studentString => Student.Parse(studentString)))
            {
                university.Add(student);
            }

            ConsoleOutput("Университет создан!");
            ConsoleOutput("Введит <help> для просмотра команд");

            bool isQuit = false;

            string[] input;

            while (!isQuit)
            {
                input = ConsoleInput().Split();

                if (input.Length == 1 && input[0] == String.Empty)
                {
                    continue;
                }

                switch (input[0])
                {
                case "help":
                    ConsoleOutput("add {student|teacher} [params] - добавить кого-нибудь");
                    ConsoleOutput("remove {student|teacher} [params] - удалить кого-нибудь");
                    ConsoleOutput("get {students|teachers|persons} [params] - вывести всех студентов/преподавателей/персон");
                    ConsoleOutput("find lastname [фамилия] - найти персону по фамилии");
                    ConsoleOutput("find department [название_факультета] - найти преподавателя по факультету");
                    ConsoleOutput("quit - выйти");
                    break;

                case "add":
                    if (input.Length > 1)
                    {
                        switch (input[1])
                        {
                        case "student":
                            try
                            {
                                university.Add(Student.Parse(String.Join(" ", input.Skip(2))));
                                ConsoleOutput("Студент успешно добавлен в университет");
                            }
                            catch
                            {
                                ConsoleOutput("Неверный формат ввода студента. Требуемый формат:");
                                ConsoleOutput("Имя Отчество Фамилия Курс Группа Средний_Балл Дата_Рождения");
                            }
                            break;

                        case "teacher":
                            try
                            {
                                university.Add(Teacher.Parse(String.Join(" ", input.Skip(2))));
                                ConsoleOutput("Преподаватель успешно добавлен в университет");
                            }
                            catch
                            {
                                ConsoleOutput("Неверный формат ввода преподавателя. Требуемый формат:");
                                ConsoleOutput("Имя Отчество Фамилия Факультет Должность Дата_Начала_Деятельности Дата_Рождения");
                            }
                            break;

                        default:
                            ConsoleOutput("add {student|teacher|person} [params] - добавить кого-нибудь");
                            break;
                        }
                    }
                    else
                    {
                        ConsoleOutput("add {student|teacher} [params] - добавить кого-нибудь");
                    }
                    break;

                case "remove":
                    if (input.Length > 1)
                    {
                        switch (input[1])
                        {
                        case "student":
                            try
                            {
                                bool isRemoved       = false;
                                var  studentToRemove = Student.Parse(String.Join(" ", input.Skip(2)));

                                foreach (var student in university.Students)
                                {
                                    if (studentToRemove.Equals(student))
                                    {
                                        isRemoved = true;
                                        university.Remove(student);
                                        break;
                                    }
                                }

                                if (isRemoved)
                                {
                                    ConsoleOutput("Студент успешно отчислен из университета");
                                }
                                else
                                {
                                    ConsoleOutput("Такого студента в университете не существует");
                                }
                            }
                            catch
                            {
                                ConsoleOutput("Неверный формат ввода студента. Требуемый формат:");
                                ConsoleOutput("Имя Отчество Фамилия Курс Группа Средний_Балл Дата_Рождения");
                            }
                            break;

                        case "teacher":
                            try
                            {
                                bool isRemoved       = false;
                                var  teacherToRemove = Teacher.Parse(String.Join(" ", input.Skip(2)));

                                foreach (var teacher in university.Teachers)
                                {
                                    if (teacherToRemove.Equals(teacher))
                                    {
                                        isRemoved = true;
                                        university.Remove(teacher);
                                        break;
                                    }
                                }

                                if (isRemoved)
                                {
                                    ConsoleOutput("Преподаватель успешно уволен из университета");
                                }
                                else
                                {
                                    ConsoleOutput("Такого преподавателя в университете не существует");
                                }
                            }
                            catch
                            {
                                ConsoleOutput("Неверный формат ввода преподавателя. Требуемый формат:");
                                ConsoleOutput("Имя Отчество Фамилия Факультет Должность Дата_Начала_Деятельности Дата_Рождения");
                            }
                            break;

                        default:
                            ConsoleOutput("remove {student|teacher} [params] - удалить кого-нибудь");
                            break;
                        }
                    }
                    else
                    {
                        ConsoleOutput("remove {student|teacher} [params] - удалить кого-нибудь");
                    }
                    break;

                case "get":
                    if (input.Length > 1)
                    {
                        switch (input[1])
                        {
                        case "persons":
                            ConsoleOutput("Все персоны:");
                            foreach (var person in university.Persons)
                            {
                                ConsoleOutput(person.ToString());
                            }
                            break;

                        case "students":
                            ConsoleOutput("Все студенты:");
                            foreach (var student in university.Students)
                            {
                                ConsoleOutput(student.ToString());
                            }
                            break;

                        case "teachers":
                            ConsoleOutput("Все преподаватели:");
                            foreach (var teacher in university.Teachers)
                            {
                                ConsoleOutput(teacher.ToString());
                            }
                            break;

                        default:
                            ConsoleOutput("get {students|teachers|persons} [params] - вывести всех студентов/преподавателей/персон");
                            break;
                        }
                    }
                    else
                    {
                        ConsoleOutput("get {students|teachers|persons} [params] - вывести всех студентов/преподавателей/персон");
                    }
                    break;

                case "find":
                    if (input.Length > 1)
                    {
                        switch (input[1])
                        {
                        case "lastname":
                            if (input.Length > 2)
                            {
                                foreach (var person in university.FindByLastName(input[2]))
                                {
                                    ConsoleOutput(person.ToString());
                                }
                            }
                            else
                            {
                                ConsoleOutput("find lastname [фамилия] - найти персону по фамилии");
                            }
                            break;

                        case "department":
                            if (input.Length > 2)
                            {
                                foreach (var person in university.FindByDepartment(input[2]))
                                {
                                    ConsoleOutput(person.ToString());
                                }
                            }
                            else
                            {
                                ConsoleOutput("find lastname [фамилия] - найти персону по фамилии");
                            }
                            break;

                        default:
                            ConsoleOutput("find lastname [фамилия] - найти персону по фамилии");
                            ConsoleOutput("find department [название_факультета] - найти преподавателя по факультету");
                            break;
                        }
                    }
                    else
                    {
                        ConsoleOutput("find lastname [фамилия] - найти персону по фамилии");
                        ConsoleOutput("find department [название_факультета] - найти преподавателя по факультету");
                    }                        break;

                case "quit":
                    ConsoleOutput("Выходим...");
                    isQuit = true;
                    break;

                default:
                    ConsoleOutput("Не понимаю, введите <help>");
                    break;
                }
            }
        }