Абстрактные классы для телефонного справочника - C#

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

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

Я кое-что понакидала,но нужна помощь в доработке, делала по примеру,который нашла на форуме Класс "Клиент" (банка) Само задание: 1)Создать абстрактный класс Телефонный_справочник с методами, позволяющими вывести на экран информацию о записях в телефонном справочнике, а также определить соответствие записи критерию поиска. 2) Создать производные классы: Персона (фамилия, адрес, номер телефона), Организация (название, адрес, телефон, факс, контактное лицо), Друг (фамилия, адрес, номер телефона, дата рождения) со своими методами вывода информации на экран, и определения соответствия искомому типу. 3) Создать базу (массив) из n товаров, вывести полную информацию из базы на экран, а также организовать поиск в базе по фамилии Я не знаю,как определить соответствие записи критерию поиска, определить соответствие искомому типу и организовать поиск по фамилии. основная программа
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication2
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. Spravka [] spravkaDataBase = new Spravka[]
  12. {
  13. new Persona("Пупкин","г. Москва, 3-я ул. Строителей, д. 22,кв. 15 ",458934),
  14. new Persona("Петров","г. Челябинск, ул. Иванова, д. 3,кв. 90 ", 907814),
  15. new Organization("ФинСтрой №1","г. Москва, ул. Морозова, д. 17",675043,3335545,"Антон Макаренко"),
  16. new Organization("ПоСтрой","г. Москва, ул. Ленина, д. 5",785690,4577788,"Иван Долгов"),
  17. new Friend("Обломов","г. Санкт-Петербург, ул. Семеновская, д.56, кв.456 ",676050,new DateTime(1982, 8, 9)),
  18. new Friend("Козлов","г. Москва, ул. Заречная, д.2, кв.34 ",676050,new DateTime(1983, 3, 4))
  19. };
  20. }
  21. }
  22. }
класс
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication2
  6. {
  7. public abstract class Spravka
  8. {
  9. public abstract void PrintInfo();
  10. }
  11. public class Persona : Spravka
  12. {
  13. public string Surname { get; set; }
  14. public string Adres { get; set; }
  15. public int Telephone { get; set; }
  16. public Persona(string surname, string Adres, decimal Telephone)
  17. {
  18. Surname = surname;
  19. Adres = adres;
  20. Telephone= telephone;
  21. }
  22. public override void PrintInfo()
  23. {
  24. Console.WriteLine("Фамилия: {0}", Surname);
  25. Console.WriteLine("Адрес: {0}", Adres);
  26. Console.WriteLine("Телефон: {0}", Telephone);
  27. }
  28. public class Organization : Spravka
  29. {
  30. public string Name { get; set; }
  31. public string AdresOrg { get; set; }
  32. public int Number { get; set; }
  33. public int Faks { get; set; }
  34. public string Kontakt { get; set; }
  35.  
  36. public Organization(string name,string AdresOrg , int Number,int Faks, decimal accountAmount)
  37. {
  38. Name = name;
  39. AdresOrg = adresOrg;
  40. Number = number;
  41. Faks = faks;
  42. Kontakt = kontakt;
  43. }
  44. public override void PrintInfo()
  45. {
  46. Console.WriteLine("Название организации: {0}", Name);
  47. Console.WriteLine("Адрес: {0}", AdresOrg);
  48. Console.WriteLine("Номер телефона: {0}", Number);
  49. Console.WriteLine("Факс: {0}", Faks);
  50. Console.WriteLine("Контактное лицо: {0}", Kontakt);
  51. }
  52. public class Friend : Spravka
  53. {
  54. public string Surname { get; set; }
  55. public string Adres { get; set; }
  56. public int Telephone { get; set; }
  57. public DateTime BirthdayDate { get; set; }
  58. public Friend(string surname,string Adres, int Telephone,DateTime HappyDate)
  59. {
  60. Surname = surname;
  61. Adres = adres;
  62. Telephone = telephone;
  63. BirthdayDate=birthdayDate;
  64. }
  65. public override void PrintInfo()
  66. {
  67. Console.WriteLine("Фамилия: {0}", Surname);
  68. Console.WriteLine("Адрес: {0}", Adres);
  69. Console.WriteLine("Телефон: {0}", Telephone);
  70. Console.WriteLine("Дата рождения: {0}", BirthdayDate);
  71. }
  72. }

Решение задачи: «Абстрактные классы для телефонного справочника»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4.  
  5. namespace ConsoleApplication207
  6. {
  7.     internal class Program
  8.     {
  9.         private static void Main(string[] args)
  10.         {
  11.             Spravka[] spravkaDataBase = new Spravka[]
  12.                                             {
  13.                                                 new Person("Пупкин", "г. Москва, 3-я ул. Строителей, д. 22,кв. 15 ", 458934),
  14.                                                 new Person("Петров", "г. Челябинск, ул. Иванова, д. 3,кв. 90 ", 907814),
  15.                                                 new Organization("ФинСтрой №1", "г. Москва, ул. Морозова, д. 17", 675043, 3335545, "Антон Макаренко"),
  16.                                                 new Organization("ПоСтрой", "г. Москва, ул. Ленина, д. 5", 785690, 4577788, "Иван Долгов"),
  17.                                                 new Friend("Обломов", "г. Санкт-Петербург, ул. Семеновская, д.56, кв.456 ", 676050, new DateTime(1982, 8, 9)),
  18.                                                 new Friend("Козлов", "г. Москва, ул. Заречная, д.2, кв.34 ", 676050, new DateTime(1983, 3, 4))
  19.                                             };
  20.  
  21.             foreach (var s in FindSurname(spravkaDataBase, "ов"))
  22.                 s.PrintInfo();
  23.  
  24.             Console.ReadLine();
  25.         }
  26.  
  27.         private static IEnumerable<Person> FindSurname(Spravka[] spravkaDataBase, string surnameSubstring)
  28.         {
  29.             foreach (var s in spravkaDataBase)
  30.                 if (s is Person)
  31.                 if ((s as Person).Surname.Contains(surnameSubstring))
  32.                     yield return s as Person;
  33.         }
  34.     }
  35.  
  36.     public abstract class Spravka
  37.     {
  38.         public abstract void PrintInfo();
  39.     }
  40.  
  41.     public class Person : Spravka
  42.     {
  43.         public string Surname { get; set; }
  44.         public string Adres { get; set; }
  45.         public decimal Telephone { get; set; }
  46.  
  47.         public Person(string surname, string adres, decimal telephone)
  48.         {
  49.             Surname = surname;
  50.             Adres = adres;
  51.             Telephone = telephone;
  52.         }
  53.  
  54.         public override void PrintInfo()
  55.         {
  56.             Console.WriteLine("Фамилия: {0}", Surname);
  57.             Console.WriteLine("Адрес: {0}", Adres);
  58.             Console.WriteLine("Телефон: {0}", Telephone);
  59.         }
  60.     }
  61.  
  62.     public class Organization : Spravka
  63.     {
  64.         public string Name { get; set; }
  65.         public string AdresOrg { get; set; }
  66.         public int Number { get; set; }
  67.         public int Faks { get; set; }
  68.         public string Kontakt { get; set; }
  69.  
  70.  
  71.  
  72.         public Organization(string name, string adresOrg, int number, int faks, string kontakt)
  73.         {
  74.             Name = name;
  75.             AdresOrg = adresOrg;
  76.             Number = number;
  77.             Faks = faks;
  78.             Kontakt = kontakt;
  79.         }
  80.  
  81.         public override void PrintInfo()
  82.         {
  83.             Console.WriteLine("Название организации: {0}", Name);
  84.             Console.WriteLine("Адрес: {0}", AdresOrg);
  85.             Console.WriteLine("Номер телефона: {0}", Number);
  86.             Console.WriteLine("Факс: {0}", Faks);
  87.             Console.WriteLine("Контактное лицо: {0}", Kontakt);
  88.         }
  89.     }
  90.  
  91.     public class Friend : Person
  92.     {
  93.         public DateTime BirthdayDate { get; set; }
  94.  
  95.         public Friend(string surname, string adres, int telephone, DateTime birthdayDate) : base(surname, adres, telephone)
  96.         {
  97.             BirthdayDate = birthdayDate;
  98.         }
  99.  
  100.         public override void PrintInfo()
  101.         {
  102.             base.PrintInfo();
  103.             Console.WriteLine("Дата рождения: {0}", BirthdayDate);
  104.         }
  105.     }
  106. }

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


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

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

6   голосов , оценка 4 из 5

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

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

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