| Код | using System; using System.Collections.Generic; using System.Text; using System.Globalization;
namespace ConsoleApplication1 { // Базовый класс abstract public class Person { protected DateTime birthday; public string surname;
public Person(string surname, DateTime birthday) { this.surname = surname; this.birthday = birthday; }
public virtual void PrintInfo() { Console.Write("Фамилия: {0}\nДата рождения: {1}\n", surname, birthday); }
public virtual int CalculateAge() { int age = DateTime.Now.Year - birthday.Year; return age; } }
// Класс преподаватель class Teacher : Person { string department; // факультет string job; // должность int exp; // стаж
public Teacher(string surname, DateTime birthday, string department, string job, int exp) : base(surname, birthday) { this.department = department; this.job = job; this.exp = exp; }
public override void PrintInfo() { Console.Write("Фамилия: {0}\nДата рождения: {1}\nФакультет: {2}\nДолжность: {3}\nСтаж: {4}\n", surname, birthday, department, job, exp.ToString()); }
public override int CalculateAge() { return base.CalculateAge(); } }
// Класс Студент class Student : Person { string department; // факультет int course; // курс
public Student(string surname, DateTime birthday, string department, int course) : base(surname, birthday) { this.department = department; this.course = course; }
public override void PrintInfo() { Console.Write("\nФамилия: {0}\nДата рождения: {1}\nФакультет: {2}\nКурс: {3}\n", surname, birthday, department, course.ToString()); }
public override int CalculateAge() { return base.CalculateAge(); } }
// Класс Абитуриент public class Applicant : Person { protected string department; // факультет
public Applicant(string surname, DateTime birthday, string department) : base(surname, birthday) { this.department = department; }
public override void PrintInfo() { Console.Write("Фамилия: {0}\nДата рождения: {1}\nФакультет: {2}\n", surname, birthday, department); }
public override int CalculateAge() { return base.CalculateAge(); } }
class Program { // массив static Person[] persons; static CultureInfo culture;
static void Main(string[] args) { persons = new Person[0]; culture = new CultureInfo("ru-RU"); bool isExit = false; do { Console.Write("Введите действие:\n1) Добавить человека в список\n" + "2) Вывести весь список\n3) Поиск по возрасту\n" + "4) Вывести весь список с возрастом\n5) Выход\nВаш выбор: "); int action = int.Parse(Console.ReadLine()); switch (action) { case 1: AddPerson(); break; case 2: PrintArray(); break; case 3: SearchByAge(); break; case 4: PrintInfoAndAge(); break; case 5: isExit = true; break; default: PrintMenu(); break; } }while (isExit == false); }
// Вывести список с информацией и возрастом всех людей private static void PrintInfoAndAge() { foreach (Person p in persons) { p.PrintInfo(); Console.WriteLine("Возраст: {0}", p.CalculateAge()); } }
// Вывести меню private static void PrintMenu() { Console.Write("\nВведите действие: 1) Добавить человека в список\n2) Вывести информацию об опр-ом человеке\n" + "3) Вывести весь список\n4) Показать возраст опр-го человека\n5) Показать возраст всех людей в списке\n" + "6) Вывести весь список с возрастом\n7) Выход\nВаш выбор:"); }
// Вывести список людей private static void PrintArray() { foreach (Person p in persons) p.PrintInfo(); }
// Поиск по заданному диапазону возраста private static void SearchByAge() { Console.Write("Минимальный возраст: "); int minAge = int.Parse(Console.ReadLine());
Console.Write("Максимальный возраст: "); int maxAge = int.Parse(Console.ReadLine());
int i = 0; foreach (Person p in persons) { i++; if (p.CalculateAge() >= minAge && p.CalculateAge() <= maxAge) { persons[i].PrintInfo(); } } }
// Добавление человека private static void AddPerson() { bool isExit = false; do { Console.Write("Кого добавить:\n1) Абитуриента\n2) Студента\n3) Преподавателя\n4) Отмена\nВаш выбор: "); int action = int.Parse(Console.ReadLine()); switch (action) { case 1: AddApplicant(); break; case 2: AddStudent(); break; case 3: AddTeacher(); break; case 4: isExit = true; break; default: Console.Write("\nНеизвестная команда.\nКого добавить:\n1) Абитуриента\n2) Студента\n3) Преподавателя\n4) Отмена\nВаш выбор: "); break; } } while (isExit == false); }
// Добавление студента в массив private static void AddStudent() { try { Array.Resize(ref persons, persons.Length + 1);
Console.Write("\nВведите фамилию: "); string surname = Console.ReadLine();
Console.Write("\nВведите дату рождения (дд.мм.гггг): "); DateTime birthday = Convert.ToDateTime(Console.ReadLine(), culture);
Console.Write("\nВведите факультет: "); string department = Console.ReadLine();
Console.Write("\nВведите курс: "); int course = int.Parse(Console.ReadLine());
persons[persons.Length - 1] = new Student(surname, birthday, department, course); Console.Write("\nСделано\n"); } catch (Exception error) { PrintError(error.Message); } }
// Добавление преподавателя в массив private static void AddTeacher() { try { Array.Resize(ref persons, persons.Length + 1);
Console.Write("\nВведите фамилию: "); string surname = Console.ReadLine();
Console.Write("\nВведите дату рождения (дд.мм.гггг): "); DateTime birthday = Convert.ToDateTime(Console.ReadLine());
Console.Write("\nВведите факультет: "); string department = Console.ReadLine();
Console.Write("\nВведите должность: "); string job = Console.ReadLine();
Console.Write("\nВведите стаж (кол-во лет): "); int exp = int.Parse(Console.ReadLine());
persons[persons.Length - 1] = new Teacher(surname, birthday, department, job, exp); Console.Write("\nСделано\n"); } catch (Exception error) { PrintError(error.Message); } }
// Добавление абитуриента в массив private static void AddApplicant() { try { Array.Resize(ref persons, persons.Length + 1); Console.Write("\nВведите фамилию: "); string surname = Console.ReadLine(); Console.Write("\nВведите дату рождения (дд.мм.гггг): "); DateTime birthday = Convert.ToDateTime(Console.ReadLine()); Console.Write("\nВведите факультет: "); string department = Console.ReadLine(); persons[persons.Length - 1] = new Applicant(surname, birthday, department); Console.Write("\nСделано\n"); } catch (Exception error) { PrintError(error.Message); } }
// Вывод ошибки private static void PrintError(string msg) { Console.Write("Ошибка: {0}", msg); Console.ReadLine(); } } }
|
|