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

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

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

Добрый день. Задача заключается в следующем: Необходимо описать предметную область (кадровое агенство), используя принципы ООП. Задачу, вроде, понял, написал какой-никакой набросок приложения.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace LabOOP1
{
    abstract class PersonofRecruitmentAgency
    {
        public string FName { get; set; }
        public string LName { get; set; }
 
        public PersonofRecruitmentAgency(string fname, string lname)
        {
            FName = fname;
            LName = lname;
        }
 
        public abstract void Display();
    }
 
    class TheJobSeeker: PersonofRecruitmentAgency
    {
        public string Specialty { get; set; }
        public int Experience { get; set; }
        public int PaymentS { get; set; }
 
        public TheJobSeeker(string fname, string lname, string Spec, int Exper, int Pay) : base(fname, lname) 
        {
            Specialty = Spec;
            Experience = Exper;
            PaymentS = Pay;
        }
 
        public override void Display()
        {
            Console.WriteLine(FName + " " + LName + " ищет работу по специальности: " + Specialty + " (Стаж работы: " + Experience + " лет) (Заплатил: " + PaymentS + " руб. за услуги агенства");
        }
    }
 
    class TheEmployer: PersonofRecruitmentAgency
    {
        public string Company { set; get; } 
        public string Vacancy { set; get; }
        public int Salary { set; get; }
        
        public TheEmployer(string fname, string lname, string Comp, string Vacan, int Sal) : base(fname, lname)
        {
            Company = Comp;
            Vacancy = Vacan;
            Salary = Sal;
        }
 
        public override void Display()
        {
            Console.WriteLine(FName + " " + LName + " - директор компании: '" + Company  + "' предоставляет вакансию: " + Vacancy + "(Заработная плата: " + Salary + "руб.)");
        }
    }
 
    class Employee : PersonofRecruitmentAgency // сотрудник
    {
        public int PaymentE { get; set; }
 
        public Employee(string fname, string lname, int PayE) : base(fname, lname)
        {
            PaymentE = PayE;
        }
 
        public override void Display()
        {
            {
                Console.WriteLine();
            }
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
 
            int n1, n2, n3, i;
            Console.WriteLine("Сколько искателей работы?");
            n1 = Int32.Parse(Console.ReadLine());
            TheJobSeeker[] JobSeeker = new TheJobSeeker[n1];
 
            for (i = 0; i < n1; i++)
            {
                Console.WriteLine("Введите имя искателя");
                JobSeeker[i].FName = Console.ReadLine();
                Console.WriteLine("Введите фамилию искателя");
                JobSeeker[i].LName = Console.ReadLine();
                Console.WriteLine("Введите специальность");
                JobSeeker[i].Specialty = Console.ReadLine();
                Console.WriteLine("Введите стаж работы");
                JobSeeker[i].Experience = Int32.Parse(Console.ReadLine());
                Console.WriteLine("А сколько же он заплатит за услуги агенства?");
                JobSeeker[i].PaymentS = Int32.Parse(Console.ReadLine());
            }
 
            Console.WriteLine("Сколько работодателей?");
            n2 = Int32.Parse(Console.ReadLine());
            TheEmployer[] employer = new TheEmployer[n2];
 
            for (i = 0; i < n2; i++)
            {
                Console.WriteLine("Введите имя работодателя");
                employer[i].FName = Console.ReadLine();
                Console.WriteLine("Введите фамилию работодателя");
                employer[i].LName = Console.ReadLine();
                Console.WriteLine("Введите название компании");
                employer[i].Company = Console.ReadLine();
                Console.WriteLine("Введите предоставляемую вакансию");
                employer[i].Vacancy = Console.ReadLine();
                Console.WriteLine("Введите заработную плату");
                employer[i].Salary = Int32.Parse(Console.ReadLine());                 
            }              
        }
    }
}
Но из-за моей неопытности в ООП и C#, в частности, возникло несколько вопросов (проблем), с которыми прошу помочь. Возникает проблема с вводом данных (NullReferenceException), а ещё я не знаю, как описать новый метод в классе Employee(сотрудник агентства), который бы использовал данные из других классов (проверял бы достаточна ли оплата PaymentS для поиска, если да, то совпадают ли вакансия работодателя Vacancy с специальностью искателя Specialty, если всё OK, тогда выводит какое-то сообщение). Заранее благодарю.

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

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

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


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

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

7   голосов , оценка 4.286 из 5
Похожие ответы