Необходимо описать предметную область (кадровое агенство), используя принципы ООП - C#

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

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

Добрый день. Задача заключается в следующем: Необходимо описать предметную область (кадровое агенство), используя принципы ООП. Задачу, вроде, понял, написал какой-никакой набросок приложения.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace LabOOP1
  7. {
  8. abstract class PersonofRecruitmentAgency
  9. {
  10. public string FName { get; set; }
  11. public string LName { get; set; }
  12. public PersonofRecruitmentAgency(string fname, string lname)
  13. {
  14. FName = fname;
  15. LName = lname;
  16. }
  17. public abstract void Display();
  18. }
  19. class TheJobSeeker: PersonofRecruitmentAgency
  20. {
  21. public string Specialty { get; set; }
  22. public int Experience { get; set; }
  23. public int PaymentS { get; set; }
  24. public TheJobSeeker(string fname, string lname, string Spec, int Exper, int Pay) : base(fname, lname)
  25. {
  26. Specialty = Spec;
  27. Experience = Exper;
  28. PaymentS = Pay;
  29. }
  30. public override void Display()
  31. {
  32. Console.WriteLine(FName + " " + LName + " ищет работу по специальности: " + Specialty + " (Стаж работы: " + Experience + " лет) (Заплатил: " + PaymentS + " руб. за услуги агенства");
  33. }
  34. }
  35. class TheEmployer: PersonofRecruitmentAgency
  36. {
  37. public string Company { set; get; }
  38. public string Vacancy { set; get; }
  39. public int Salary { set; get; }
  40. public TheEmployer(string fname, string lname, string Comp, string Vacan, int Sal) : base(fname, lname)
  41. {
  42. Company = Comp;
  43. Vacancy = Vacan;
  44. Salary = Sal;
  45. }
  46. public override void Display()
  47. {
  48. Console.WriteLine(FName + " " + LName + " - директор компании: '" + Company + "' предоставляет вакансию: " + Vacancy + "(Заработная плата: " + Salary + "руб.)");
  49. }
  50. }
  51. class Employee : PersonofRecruitmentAgency // сотрудник
  52. {
  53. public int PaymentE { get; set; }
  54. public Employee(string fname, string lname, int PayE) : base(fname, lname)
  55. {
  56. PaymentE = PayE;
  57. }
  58. public override void Display()
  59. {
  60. {
  61. Console.WriteLine();
  62. }
  63. }
  64. }
  65. class Program
  66. {
  67. static void Main(string[] args)
  68. {
  69. int n1, n2, n3, i;
  70. Console.WriteLine("Сколько искателей работы?");
  71. n1 = Int32.Parse(Console.ReadLine());
  72. TheJobSeeker[] JobSeeker = new TheJobSeeker[n1];
  73. for (i = 0; i < n1; i++)
  74. {
  75. Console.WriteLine("Введите имя искателя");
  76. JobSeeker[i].FName = Console.ReadLine();
  77. Console.WriteLine("Введите фамилию искателя");
  78. JobSeeker[i].LName = Console.ReadLine();
  79. Console.WriteLine("Введите специальность");
  80. JobSeeker[i].Specialty = Console.ReadLine();
  81. Console.WriteLine("Введите стаж работы");
  82. JobSeeker[i].Experience = Int32.Parse(Console.ReadLine());
  83. Console.WriteLine("А сколько же он заплатит за услуги агенства?");
  84. JobSeeker[i].PaymentS = Int32.Parse(Console.ReadLine());
  85. }
  86. Console.WriteLine("Сколько работодателей?");
  87. n2 = Int32.Parse(Console.ReadLine());
  88. TheEmployer[] employer = new TheEmployer[n2];
  89. for (i = 0; i < n2; i++)
  90. {
  91. Console.WriteLine("Введите имя работодателя");
  92. employer[i].FName = Console.ReadLine();
  93. Console.WriteLine("Введите фамилию работодателя");
  94. employer[i].LName = Console.ReadLine();
  95. Console.WriteLine("Введите название компании");
  96. employer[i].Company = Console.ReadLine();
  97. Console.WriteLine("Введите предоставляемую вакансию");
  98. employer[i].Vacancy = Console.ReadLine();
  99. Console.WriteLine("Введите заработную плату");
  100. employer[i].Salary = Int32.Parse(Console.ReadLine());
  101. }
  102. }
  103. }
  104. }
Но из-за моей неопытности в ООП и C#, в частности, возникло несколько вопросов (проблем), с которыми прошу помочь. Возникает проблема с вводом данных (NullReferenceException), а ещё я не знаю, как описать новый метод в классе Employee(сотрудник агентства), который бы использовал данные из других классов (проверял бы достаточна ли оплата PaymentS для поиска, если да, то совпадают ли вакансия работодателя Vacancy с специальностью искателя Specialty, если всё OK, тогда выводит какое-то сообщение). Заранее благодарю.

Решение задачи: «Необходимо описать предметную область (кадровое агенство), используя принципы ООП»

textual
Листинг программы
  1. for (i = 0; i < n1; i++)
  2. {
  3.     JobSeeker[i] = new TheJobSeeker(); //Вот в этой строке
  4.     Console.WriteLine("Введите имя искателя");
  5.     JobSeeker[i].FName = Console.ReadLine();
  6.     Console.WriteLine("Введите фамилию искателя");
  7.     JobSeeker[i].LName = Console.ReadLine();
  8.     Console.WriteLine("Введите специальность");
  9.     JobSeeker[i].Specialty = Console.ReadLine();
  10.     Console.WriteLine("Введите стаж работы");
  11.     JobSeeker[i].Experience = Int32.Parse(Console.ReadLine());
  12.     Console.WriteLine("А сколько же он заплатит за услуги агенства?");
  13.     JobSeeker[i].PaymentS = Int32.Parse(Console.ReadLine());
  14. }

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


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

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

7   голосов , оценка 4.286 из 5

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

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

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