static void removeStudentInArray( string readSurname ) { if ( readSurname == "" ) { Console.WriteLine( "Ничего не введено.Попробуйте ещё раз!" ); } else { Student[] arrStudents = new Student[students.Length]; for (int i = 0; i < students.Length; i++) { if (students[i].LastName != readSurname && !students[i].isEmpty()) { arrStudents[i] = students[i]; } else if (students[i].LastName == readSurname) { students[i].makeEmpty(); arrStudents[i] = students[i]; } else arrStudents[i] = students[i]; } Array.Copy(arrStudents, students, students.Length); for (int i = 0; i < students.Length; i++) { if (!students[i].isEmpty()) { students[i].outputDataAboutStudents(); } } } }
static void Main(string[] args) { bool flag = true; for (int i = 0; i < maxNumberStudents; i++) { students[i] = new Student(); } while (flag) { Console.WriteLine("\nВыберите действие:\n"); Console.WriteLine("1 - Тестовое создание объектов класса Студент"); Console.WriteLine("2 - Тестовое использование свойств класса Студент и метода ввода"); Console.WriteLine("3 - Формирование нового списка студентов"); Console.WriteLine("4 - Добавление данных о студенте"); Console.WriteLine("5 - Вывод списка студентов на экран"); Console.WriteLine("6 - Операция класса: Вычисление разницы в возрасте (в днях) для двух студентов"); Console.WriteLine("7 - Поиск в массиве всех студентов заданного года рождения"); Console.WriteLine("8 - Удаление студента с заданной фамилией из массива"); Console.WriteLine("9 - Сортировка по полной дате рождения"); Console.WriteLine("10 - Сортировка по полной ФИО"); Console.WriteLine("11 - Записать массив студентов в файл"); Console.WriteLine("0 - Выход"); try { int choose = int.Parse(Console.ReadLine()); switch (choose) { case 0: { flag = false; Console.WriteLine("Программа завершила работу."); break; } case 1: { Console.WriteLine("Количество созданных объектов = {0}", Student.quantityObjects - 20); Console.WriteLine("\nДемонстрируется работа трех конструкторов: "); Student firstStudent = new Student(); firstStudent.outputDataAboutStudents(); Student secondStudent = new Student("Иван", "Николаевич", "Тополев", 10, 12, 1990); secondStudent.outputDataAboutStudents(); Student thirdStudent = new Student("Максимов"); thirdStudent.outputDataAboutStudents(); Console.WriteLine("\nКоличество созданных объектов = {0}", Student.quantityObjects - 20); break; } case 2: { Console.WriteLine(" Для демонстрации свойств класса и метода вывода создайте студента. "); Student student = new Student(); student.inputDataAboutStudents(); Console.WriteLine("\nСоздан студент:"); Console.WriteLine("ФИО: {0} {1} {2} Дата Рождения:{3}.{4}.{5}", student.LastName, student.Name, student.Patronymic, student.Day_birth, student.Month_birth, student.Year_birth); student.Name = "Василий"; student.Patronymic = "Федорович"; student.LastName = "Астафьев"; student.Day_birth = 15; student.Month_birth = 10; student.Year_birth = 1994; Console.WriteLine("\nДанные студента изменены:"); Console.WriteLine("ФИО: {0} {1} {2} Дата Рождения:{3}.{4}.{5}", student.LastName, student.Name, student.Patronymic, student.Day_birth, student.Month_birth, student.Year_birth); break; } case 3: { if (numberStudents == 0) new_array(); else Console.WriteLine("Список уже сформирован, Вы можете только добавить студента"); break; } case 4: addStudent(); break; case 5: outputArrayStudents(); break; case 6: { Student s1 = new Student(); s1.inputDataAboutStudents(); Console.WriteLine("\nСоздан студент: "); s1.outputDataAboutStudents(); Student s2 = new Student(); s2.inputDataAboutStudents(); Console.WriteLine("\nСоздан студент: "); s2.outputDataAboutStudents(); Console.WriteLine("Разница в возрасте двух студентов: {0} дн.", Math.Abs(s1 - s2)); break; } case 7: { Console.WriteLine("\nВведите год рождения студента, данные о котором Вы хотите найти: "); int readYearBirth = int.Parse(Console.ReadLine()); Student.findStudentsByYearBirth(students, numberStudents, readYearBirth); break; } case 8: { Console.WriteLine("Введите фамилию студента, которого хотите удалить: "); string readSurname = Console.ReadLine(); removeStudentInArray(readSurname); break; } case 9: { Console.WriteLine( "Сортировка по полной дате рождения:" ); Array.Sort( students, new Student.SortByFullDateBirth()); foreach (Student elem in students) { if( !elem.isEmpty() ) elem.outputDataAboutStudents(); } break; } case 10: { Console.WriteLine("Сортировка по ФИО:"); Array.Sort(students, new Student.SortByName()); Array.Sort(students, new Student.SortByPatronymic()); Array.Sort(students, new Student.SortByLastName()); foreach (Student elem in students) { if( !elem.isEmpty() ) elem.outputDataAboutStudents(); } break; } case 11: { writeToFileArrayStudents(); foreach (Student elem in students) { if (!elem.isEmpty()) elem.outputDataAboutStudents(); } break; } default: Console.WriteLine( "Ошибка ввода\n" ); break; } } catch ( FileNotFoundException ) { Console.WriteLine("Файла с таким именем не существует"); Console.WriteLine("Для продолжения нажмите Enter"); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine( "Exception:{0}\nFile:{1}\nLocation:{2}\n{3}", ex.Message, ex.Source, ex.TargetSite ); Console.WriteLine( "Для продолжения нажмите Enter" ); Console.ReadKey(); } } }
public static void findStudentsByYearBirth(Student[] arrStudents, int numbersStudents, int readYearBirth) { if (numbersStudents == 0) { throw new Exception("\nВ списке нет студентов"); } bool flag = false; Student stud = new Student(); stud.Year_birth = readYearBirth; for (int i = 0; i < numbersStudents; i++) { if (arrStudents[i] == stud) { arrStudents[i].outputDataAboutStudents(); flag = true; } } if (flag == false) { Console.WriteLine("В списке нет студентов с годом рождения:{0}", readYearBirth); } }