Необходимо описать предметную область (кадровое агенство), используя принципы ООП - 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()); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д