Определить, есть ли в списке работающих Ивановы, и, если есть, то вывести их адрес (адреса) - C#

Узнай цену своей работы

Формулировка задачи:

Вот сама задача: Дан массив данных о работающих на фабрике: фамилия, имя, отчество, адрес (улица, дом, квартира) и дата поступления на работу (месяц, год). Определить, есть ли в списке Ивановы (Иванов, Иванова), если есть, то вывести их адрес (адреса) и посчитать из них количество, проработавших не менее двух лет на сегодняшний день. Проблема в том, что я не знаю как сделать так, чтобы код проверял только Ивановых! структура с фамилией
Листинг программы
  1. public string familia;
Вот фрагмент кода, который проверяет, работает ли человек более 2 лет, как написать, чтобы он проверял Иванов или нет?
Листинг программы
  1. for (int i = 0; i < n; i++)
  2. {
  3. if (((c - mas[i].date.year) * 12 + mas[i].date.month) >= 24)
  4. k++;
  5. }

Решение задачи: «Определить, есть ли в списке работающих Ивановы, и, если есть, то вывести их адрес (адреса)»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public struct FullName
  6. {
  7.     public string surname;
  8.     public string name;
  9.     public string patr;
  10.     public override string ToString()
  11.     {
  12.         return String.Format("{0} {1} {2}", surname, name, patr);
  13.     }
  14. }
  15. public struct Address
  16. {
  17.     public string street;
  18.     public uint home;
  19.     public uint ap;
  20.     public override string ToString()
  21.     {
  22.         return String.Format("{0} {1} {2}", street, home, ap);
  23.     }
  24. }
  25. public struct Date
  26. {
  27.     public uint month;
  28.     public uint year;
  29.     public override string ToString()
  30.     {
  31.         return String.Format("{0} {1}", month, year);
  32.     }
  33. }
  34. public struct Employee
  35. {
  36.     public FullName fullname;
  37.     public Address address;
  38.     public Date date;
  39.     public override string ToString()
  40.     {
  41.         return String.Format("ФИО: {0}, Адрес: {1}, Дата: {2}", fullname, address, date);
  42.     }
  43. }
  44. public class Program
  45. {
  46.     public static void Main()
  47.     {
  48.         List<Employee> list = new List<Employee>
  49.         {
  50.             new Employee{fullname = new FullName{surname = "Иванов", name = "Иван", patr = "Иванович"},
  51.                          address = new Address{street = "Железнодорожников", home = 22, ap = 121},
  52.                          date = new Date{month = 12, year = 2016}},
  53.             new Employee{fullname = new FullName{surname = "Иванов", name = "Семен", patr = "Вениаминович"},
  54.                          address = new Address{street = "Гоголя", home = 60, ap = 92},
  55.                          date = new Date{month = 4, year = 2008}},
  56.             new Employee{fullname = new FullName{surname = "Петров", name = "Петр", patr = "Петрович"},
  57.                          address = new Address{street = "Тимирязева", home = 12, ap = 41},
  58.                          date = new Date{month = 8, year = 2012}},
  59.             new Employee{fullname = new FullName{surname = "Иванова", name = "Ольга", patr = "Михайловна"},
  60.                          address = new Address{street = "Пушкинская", home = 4, ap = 190},
  61.                          date = new Date{month = 2, year = 2015}}
  62.         };
  63.         var data = from d in list where d.fullname.surname == "Иванов" || d.fullname.surname == "Иванова" select d;
  64.         uint count = 0;
  65.         foreach(var d in data)
  66.         {
  67.             Console.WriteLine(d);
  68.             if (DateTime.Now.Year - d.date.year  > 2||
  69.                 (DateTime.Now.Year - d.date.year == 2 && DateTime.Now.Month >= d.date.month))
  70.                 ++count;
  71.         }
  72.         Console.WriteLine("Из них проработали не менее двух лет: {0}", count);
  73.         Console.ReadLine();
  74.     }
  75. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы