Организация методов пользовательских классов - C#
Формулировка задачи:
Описать структуру с именем ZNAK, содержащую следующие поля:
- фамилия, имя;
- знак Зодиака;
- дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив, состоящий из восьми элементов
типа ZNAK (записи должны быть упорядочены по знакам Зодиака);
- вывод на экран информации о людях, родившихся в месяц, значение
которого введено с клавиатуры (если таких нет, вывести
соответствующее сообщение).
Решение задачи: «Организация методов пользовательских классов»
textual
Листинг программы
using System;
using System.Linq;
namespace ConsoleApplication
{
struct ZNAK
{
string surname, name;
public string znak;
public int[] birthday;
public ZNAK(string name, string surname, string znak, int day, int month, int year)
{
this.name = name;
this.surname = surname;
this.znak = znak;
birthday = new int[] { day, month, year };
}
public override string ToString()
{
return String.Format("Имя: {0}\nФамилия: {1}\nЗнак: {2}\nДата рождения: {3}.{4}.{5}", name, surname, znak, birthday[0], birthday[1], birthday[2]);
}
}
class Program
{
static void Main(string[] args)
{
ZNAK[] znaki = new ZNAK[8];
string name, surname, znak;
int day, month, year;
for (int i = 0; i < znaki.Length; i++ )
{
Console.Write("Введите имя: ");
name = Console.ReadLine();
Console.Write("Введите фамилию: ");
surname = Console.ReadLine();
Console.Write("Введите знак: ");
znak = Console.ReadLine();
Console.Write("Введите день рождения: ");
day = Int32.Parse(Console.ReadLine());
Console.Write("Введите месяц рождения: ");
month = Int32.Parse(Console.ReadLine());
Console.Write("Введите год рождения: ");
year = Int32.Parse(Console.ReadLine());
znaki[i] = new ZNAK(name, surname, znak, day, month, year);
}
znaki = znaki.OrderBy(n => n.znak).ToArray();
for (int i = 0; i < znaki.Length; i++)
Console.WriteLine(znaki[i].znak);
Console.Write("Введите месяц для поиска: ");
int targetMonth = Int32.Parse(Console.ReadLine());
bool exist = false;
for(int i=0; i<znaki.Length; i++)
{
if (znaki[i].birthday[1] == targetMonth)
{
Console.WriteLine(znaki[i].ToString() + "\n");
exist = true;
}
}
if (!exist)
Console.WriteLine("Записей нет");
Console.ReadKey();
}
}
}