Описать структуру с именем ZNAK - C# (207417)
Формулировка задачи:
Привет всем)
Мне надо сделать вот такое задание :
Описать структуру с именем ZNAK, содержащую следующие поля:
• фамилия, имя;
• знак Зодиака;
• дата рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK (записи должны быть упорядочены по дате рождения);
• вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры (если таких нет, вывести соответствующее сообщение).
Помогите пожалуста сделать её . Очень надо
Решение задачи: «Описать структуру с именем ZNAK»
textual
Листинг программы
using System;
using System.Text.RegularExpressions;
using System.IO;
using System.Reflection;
using System.Text;
using System.Linq;
using System.Collections.Generic;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ZNAK[] znaks = new ZNAK[8];
Console.WriteLine("enter 8 znaks\n");
for (int i = 0; i < znaks.Length; i++)
{
ZNAK znk = new ZNAK();
Console.Write("enter name and surname: ");
znk.NameSurname = Console.ReadLine();
Console.Write("enter zodiac sign: ");
string zs = Console.ReadLine();
switch (zs)
{
case "Aries":
znk.ZodiacSign = Zodiacs.Aries;
break;
case "Taurus":
znk.ZodiacSign = Zodiacs.Taurus;
break;
case "Gemini":
znk.ZodiacSign = Zodiacs.Gemini;
break;
case "Cancer":
znk.ZodiacSign = Zodiacs.Cancer;
break;
case "Leo":
znk.ZodiacSign = Zodiacs.Leo;
break;
case "Virgo":
znk.ZodiacSign = Zodiacs.Virgo;
break;
case "Libra":
znk.ZodiacSign = Zodiacs.Libra;
break;
case "Scorpio":
znk.ZodiacSign = Zodiacs.Scorpio;
break;
case "Sagittarius":
znk.ZodiacSign = Zodiacs.Sagittarius;
break;
case "Capricorn":
znk.ZodiacSign = Zodiacs.Capricorn;
break;
case "Aquarius":
znk.ZodiacSign = Zodiacs.Aquarius;
break;
case "Pisces":
znk.ZodiacSign = Zodiacs.Pisces;
break;
default:
Console.Write("WRONG ZODIAC SIGN");
break;
}
znk.DateOfdBirth = new int[3];
Console.Write("enter year: ");
znk.DateOfdBirth[0] = Convert.ToInt32(Console.ReadLine());
Console.Write("enter month: ");
znk.DateOfdBirth[1] = Convert.ToInt32(Console.ReadLine());
Console.Write("enter day: ");
znk.DateOfdBirth[2] = Convert.ToInt32(Console.ReadLine());
znaks[i] = znk;
}
Array.Sort(znaks);
Console.Write("enter zodiac sign to find: ");
string zodSign = Console.ReadLine();
bool found = false;
foreach (ZNAK zk in znaks)
{
if (zk.ZodiacSign.ToString().Equals(zodSign))
{
found = true;
Console.WriteLine(zk.NameSurname +", " + zk.DateOfdBirth[0] +"-"+zk.DateOfdBirth[1] +"-"+zk.DateOfdBirth[2] );
}
}
if (!found)
{
Console.WriteLine("NOT FOUND");
}
}
public enum Zodiacs
{
Aries,
Taurus,
Gemini,
Cancer,
Leo,
Virgo,
Libra,
Scorpio,
Sagittarius,
Capricorn,
Aquarius,
Pisces
}
public struct ZNAK : IComparable
{
public string NameSurname;
public Zodiacs ZodiacSign;
public int[] DateOfdBirth;// 0-year, 1 - month, 2 - day
public int CompareTo(object obj)
{
ZNAK com = (ZNAK)obj;
DateTime dt1 = new DateTime(this.DateOfdBirth[0], this.DateOfdBirth[1], this.DateOfdBirth[2]);
DateTime dt2 = new DateTime(com.DateOfdBirth[0], com.DateOfdBirth[1], com.DateOfdBirth[2]);
return dt1.CompareTo(dt2);
}
}
}
}