Описать структуру с именем ZNAK - C# (199464)
Формулировка задачи:
Помогите сделать задание из практики, пожалуйста. В
Console C#
Задание:Описать структуру с именем ZNAK, содержащую следующие поля: - фамилия, имя; - знак Зодиака; - дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: - ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по датам рождения; - вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры; - если таких нет, вывести соответствующее сообщение.
Решение задачи: «Описать структуру с именем ZNAK»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication5
{
class Program
{
static void Main(string[] args)
{
SortedSet<Znak> set = new SortedSet<Znak>(new ZnakComparer());
set.Add(new Znak("Alex", "Barly", "AAA", new int[] { 12, 12, 1981 }));
set.Add(new Znak("Nick", "Simpson", "BBB", new int[] { 10, 20, 1995 }));
set.Add(new Znak("Mary", "Douglas", "AAA", new int[] { 25, 12, 2005 }));
Console.WriteLine("Введите знак:");
string zodiak = Console.ReadLine();
List<Znak> result = (from n in set where n.Zodiak == zodiak select n).ToList<Znak>();
if (result.Count != 0)
foreach (var n in result)
Console.WriteLine(n.ToString());
else
Console.WriteLine("Данные отсутствуют!");
Console.Read();
}
}
public struct Znak
{
public string firstName;
public string lastName;
public string Zodiak;
public int[] DateOfBirth;
public Znak(string fName, string lName, string Z, int[] date)
{
firstName = fName;
lastName = lName;
Zodiak = Z;
DateOfBirth = new int[date.Length];
DateOfBirth = date;
}
public override string ToString()
{
return string.Format("Имя: {0}, фамилия: {1}, знак Зодиака: {2}, дата рождения: {3}.{4}.{5}",
firstName, lastName, Zodiak, DateOfBirth[0], DateOfBirth[1], DateOfBirth[2]);
}
}
class ZnakComparer:IComparer<Znak>
{
public int Compare(Znak x, Znak y)
{
if (x.DateOfBirth[0] > y.DateOfBirth[0])
return 1;
if (x.DateOfBirth[0] < y.DateOfBirth[0])
return -1;
else
return 0;
}
}
}