Описать структуру с именем NOTE - C# (181086)
Формулировка задачи:
- фамилия, имя;
- номер телефона;
дата рождения (массив из трёх чисел).
Написать программу, выполняющие следующие действия:
-ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть размещены по алфавиту
Решение задачи: «Описать структуру с именем NOTE»
textual
Листинг программы
- using System;
- using System.Linq;
- using System.Collections.Generic;
- class Program
- {
- [Serializable]
- public struct Note : IFormattable, IEquatable<Note>, IComparable<Note>
- {
- public string FullName { get; set; }
- public int[] Birthday { get; set; }
- public string Phone { get; set; }
- public Note(string fullName) :
- this(fullName, new int[] {0,0,0}, "")
- { }
- public Note(string fullName, int[] birthday) :
- this(fullName, birthday, "")
- { }
- public Note(string fullName, int[] birthday,
- string phone)
- {
- FullName = fullName;
- Birthday = birthday;
- Phone = phone;
- }
- public override string ToString()
- {
- return FullName;
- }
- public string ToString(string format, IFormatProvider formatProvider)
- {
- if (format == null)
- return ToString();
- switch (format.ToUpper())
- {
- case "FN":
- return FullName;
- case "B":
- return String.Format("{1,2:D2}:{2,2:D2}:{3,4:D4}", Birthday); ;
- case "P":
- return Phone.ToString();
- case "ALL":
- return String.Format(" Full name: {0}, Birthday: {1,2:D2}:{2,2:D2}:{3,4:D4}, Phone: {4}"
- , FullName, Birthday[0], Birthday[1], Birthday[2], Phone);
- default:
- throw new FormatException(String.Format(formatProvider,
- "Format {0} is not supported", format));
- }
- }
- public string ToString(string format)
- {
- return ToString(format, null);
- }
- public override int GetHashCode()
- {
- return (FullName.GetHashCode() + Phone.GetHashCode());
- }
- public bool Equals(Note other)
- {
- if (other == null)
- return false;
- if (string.Compare(this.FullName, other.FullName, StringComparison.OrdinalIgnoreCase) == 0
- &&
- Enumerable.SequenceEqual(this.Birthday, other.Birthday) == true
- &&
- string.Compare(this.Phone, other.Phone, StringComparison.OrdinalIgnoreCase) == 0)
- return true;
- else
- return false;
- }
- public override bool Equals(object other)
- {
- if (other == null)
- return false;
- return this.Equals((Note)other);
- }
- public int CompareTo(Note other)
- {
- if (other == this)
- return 0;
- return string.Compare(this.FullName,other.FullName, StringComparison.OrdinalIgnoreCase);
- }
- public static bool operator ==(Note left, Note right)
- {
- return left.Equals(right);
- }
- public static bool operator !=(Note left, Note right)
- {
- return left != right;
- }
- }
- public static void Main()
- {
- var notes = new List<Note>();
- //notes.Add(new Note("Jones I.O.", new int[] { 1990, 2, 15 },"009-888-999-44"));
- //notes.Add(new Note("Kimberly A.A.", new int[] {1991, 6, 4 }, "009-887-988-00"));
- //notes.Add(new Note("Miller C.H.", new int[] {1990, 11, 1 }, "009-888-999-44"));
- //notes.Add(new Note("Morgan B.V.", new int[] {1991, 4, 3 }, "009-088-000-55"));
- //notes.Add(new Note("PhilLips P.V.", new int[] {1991, 4, 3 }, "009-888-444-77"));
- //notes.Add(new Note("Lynn J.O.", new int[] {1991, 4, 3 }, "009-555-111-44"));
- for (int i = 0; i < 8; i++)
- {
- Note note = new Note();
- Console.WriteLine("Full name: ");
- note.FullName = Console.ReadLine();
- Console.WriteLine("Birthday: (array) ");
- var arr = new int[] { 0, 0, 0 };
- for (int j = 0; j < arr.Length; j++)
- arr[j] = Convert.ToInt32( Console.ReadLine());
- note.Birthday = arr;
- Console.WriteLine("Phone: ");
- note.Phone = Console.ReadLine();
- notes.Add(note);
- Console.WriteLine();
- }
- foreach (Note item in notes)
- Console.WriteLine("{0:All}", item);
- notes.Sort();
- Console.WriteLine();
- foreach (Note item in notes)
- Console.WriteLine("{0:All}", item);
- Console.ReadKey(true);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д