Необходимо описать предметную область (кадровое агенство), используя принципы ООП - C#
Формулировка задачи:
Добрый день. Задача заключается в следующем: Необходимо описать предметную область (кадровое агенство), используя принципы ООП. Задачу, вроде, понял, написал какой-никакой набросок приложения.
Но из-за моей неопытности в ООП и C#, в частности, возникло несколько вопросов (проблем), с которыми прошу помочь.
Возникает проблема с вводом данных (NullReferenceException), а ещё я не знаю, как описать новый метод в классе Employee(сотрудник агентства), который бы использовал данные из других классов (проверял бы достаточна ли оплата PaymentS для поиска, если да, то совпадают ли вакансия работодателя Vacancy с специальностью искателя Specialty, если всё OK, тогда выводит какое-то сообщение). Заранее благодарю.
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());
}
}
}
}Решение задачи: «Необходимо описать предметную область (кадровое агенство), используя принципы ООП»
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());
}