Загрузка данных
using System;
namespace Шмфтщм_Laba02
{
// Начало задания 3
// Создание собственного исключения для некорректных дат
public class InvalidDateException : Exception
{
public InvalidDateException(string message) : base(message) { }
}
// Создание класса Human со свойствами и методом расчета возраста
public class Human
{
public string LastName { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string Gender { get; set; }
public int BirthDay { get; set; }
public int BirthMonth { get; set; }
public int BirthYear { get; set; }
public int GetAge(int currentDay, int currentMonth, int currentYear)
{
try
{
if (currentDay < 1 || currentDay > 31 || currentMonth < 1 || currentMonth > 12 || currentYear < 1)
{
throw new InvalidDateException("Указаны некорректные параметры текущей даты.");
}
if (BirthDay < 1 || BirthDay > 31 || BirthMonth < 1 || BirthMonth > 12 || BirthYear < 1)
{
throw new InvalidDateException("Указаны некорректные параметры даты рождения.");
}
int age = currentYear - BirthYear;
if (currentMonth < BirthMonth || (currentMonth == BirthMonth && currentDay < BirthDay))
{
age--;
}
if (age < 0)
{
throw new InvalidDateException("Дата рождения не может быть позже текущей даты.");
}
return age;
}
catch (InvalidDateException)
{
throw; // Оператор throw для передачи исключения вверх
}
}
}
// === Конец задания 3 ===
// === Начало задания 4 ===
// Создание класса Student и наследование его от Human
public class Student : Human
{
public string Group { get; set; }
}
// === Конец задания 4 ===
class Program
{
static void Main(string[] args)
{
// === Начало задания 2 ===
// Прописывание блока try...catch в методе Main
try
{
// === Начало задания 6 ===
// Создание массива объектов класса Student на 20 ячеек
Student[] students = new Student[20];
// === Конец задания 6 ===
// === Начало задания 5 ===
// Создание 20 уникальных объектов в блоке try и заполнение ими массива
for (int i = 0; i < students.Length; i++)
{
string gender = (i % 2 == 0) ? "Мужской" : "Женский";
string group = (i % 3 == 0) ? "ПОИТ-11" : "ИСИТ-21";
int birthYear = (i < 5) ? 2012 : 2004;
students[i] = new Student
{
LastName = "Фамилия_" + (i + 1),
FirstName = "Имя_" + (i + 1),
MiddleName = "Отчество_" + (i + 1),
Gender = gender,
BirthDay = 15,
BirthMonth = 5,
BirthYear = birthYear,
Group = group
};
}
// === Конец задания 5 ===
int currentDay = 23;
int currentMonth = 10;
int currentYear = 2026;
// === Начало задания 7 ===
// Вывод на консоль данных совершеннолетних студентов
Console.WriteLine("=== СОВЕРШЕННОЛЕТНИЕ СТУДЕНТЫ ===");
foreach (var student in students)
{
if (student.GetAge(currentDay, currentMonth, currentYear) >= 18)
{
Console.WriteLine($"{student.LastName} {student.FirstName} {student.MiddleName} ({student.BirthDay}.{student.BirthMonth}.{student.BirthYear} г.р.)");
}
}
Console.WriteLine();
// === Конец задания 7 ===
// === Начало задания 8 ===
// Вывод на консоль студентов одной конкретной указанной группы
string targetGroup = "ПОИТ-11";
Console.WriteLine($"=== СТУДЕНТЫ ГРУППЫ {targetGroup} ===");
foreach (var student in students)
{
if (student.Group == targetGroup)
{
Console.WriteLine($"{student.LastName} {student.FirstName} {student.MiddleName} - Группа: {student.Group}");
}
}
Console.WriteLine();
// === Конец задания 8 ===
// === Начало задания 9 ===
// Вывод количества девушек и юношей в виде строки определенного формата
int girlsCount = 0;
int boysCount = 0;
foreach (var student in students)
{
if (student.Gender == "Женский")
{
girlsCount++;
}
else if (student.Gender == "Мужской")
{
boysCount++;
}
}
Console.WriteLine($"Количество девушек: [{girlsCount}], количество юношей: [{boysCount}]");
// === Конец задания 9 ===
}
catch (InvalidDateException ex)
{
// Вывод сообщения об ошибке в случае собственного исключения
Console.WriteLine($"Ошибка валидации даты: {ex.Message}");
}
catch (Exception ex)
{
// Вывод сообщения об ошибке в случае возникновения любой исключительной ситуации
Console.WriteLine($"Произошла непредвиденная ошибка: {ex.Message}");
}
// === Конец задания 2 ===
Console.ReadKey();
}
}
}