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