Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 3
Регистрация: 27.12.2014
Сообщений: 68

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

21.10.2015, 20:44. Показов 1286. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Задача заключается в следующем: Необходимо описать предметную область (кадровое агенство), используя принципы ООП. Задачу, вроде, понял, написал какой-никакой набросок приложения.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
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, тогда выводит какое-то сообщение). Заранее благодарю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.10.2015, 20:44
Ответы с готовыми решениями:

Описать любую компьютерную игры через объекты используя принципы ООП
Помогите с одной проблемкой , надо описать любую компьютерную игры через объекты используя принципы ООП в java. Например , марио , плагин...

Описать предметную область
Вы работаете в коммерческой службе телефонной компании. Компания предоставляет абонентам телефонные линии для междугородних переговоров....

Описать предметную область Сети магазинов
Доброе утро. Тема информационная система сети магазинов по продаже бытовой техники. Описать сущности и написать постановку задач. Я...

2
 Аватар для DimanRu
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
22.10.2015, 20:14
Перед считыванием информации об объекте и заполнении полей объекта, необходимо его создать:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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());
}
А также добавьте пустые конструкторы в классах:
C#
1
2
3
4
5
6
7
8
abstract class PersonofRecruitmentAgency
{
    ...
 
    public PersonofRecruitmentAgency()
    {
    }
}
и
C#
1
2
3
4
5
6
7
8
class TheJobSeeker : PersonofRecruitmentAgency
{
    ...
 
    public TheJobSeeker()
    {
    }
}
1
1 / 1 / 3
Регистрация: 27.12.2014
Сообщений: 68
28.10.2015, 20:32  [ТС]
Благодарю за представленную помощь. Примеры оказались полезными.

Добавлено через 56 минут
В помощь таким же новичкам, как и я, прикреплю мой код, пусть он помогает разбираться (всё работает).
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace OOPTry
{
    abstract class PersonofRecruitmentAgency
    {
        public string FName { get; set; }
        public string LName { get; set; }
 
        public PersonofRecruitmentAgency(string fname, string lname)
        {
            FName = fname;
            LName = lname;
        }
 
        public PersonofRecruitmentAgency()
        {
        }
 
        public abstract void Display();
    }
 
    class TheJobSeeker : PersonofRecruitmentAgency
    {
        public string Specialty { get; set; }
        public int Experience { get; set; }
        public int PaymentS { get; set; }
        public bool YESorNO;
 
        public TheJobSeeker(string fname, string lname, string Spec, int Exper, int PayS) : base(fname, lname)
        {
            Specialty = Spec;
            Experience = Exper;
            PaymentS = PayS;
        }
 
        public TheJobSeeker()
        {
        }
 
        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 TheEmployer()
        {
        }
 
        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 bool Сheck(int a, int b, string s1, string s2)
        {
            if (a > b)
            {
                if (s1 == s2)
                {
                    return true;
                }
            }
            return false;
        }
 
        public override void Display()
        {
            {
                Console.WriteLine(FName + " " + LName + "для поиска вакансии требует" + PaymentE + "руб.");
            }
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            int n1, n2, i;
            Console.WriteLine("Сколько искателей работы?");
            n1 = Int32.Parse(Console.ReadLine());
            TheJobSeeker[] JobSeeker = new TheJobSeeker[n1];
 
            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());
                Console.WriteLine();
                Console.WriteLine("Ваши введённые данные: №" + i);
                JobSeeker[i].Display();
            }
 
            Console.WriteLine();
            Console.WriteLine("Сколько работодателей?");
            n2 = Int32.Parse(Console.ReadLine());
            TheEmployer[] employer = new TheEmployer[n2];
 
            for (i = 0; i < n2; i++)
            {
                employer[i] = new TheEmployer();
                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());
                Console.WriteLine();
                Console.WriteLine("Ваши введённые данные: №" + i);
                employer[i].Display();
            }
 
            Console.WriteLine();
            Console.WriteLine("Необходимо ввести данные сотрудника агентства");
            Console.WriteLine("Введите имя, фамилию и стоимость услуги");
            Employee Employee1 = new Employee(Console.ReadLine(), Console.ReadLine(), Int32.Parse(Console.ReadLine()));
            Console.WriteLine();
            Console.WriteLine("Ваши введённые данные:");
            Employee1.Display();
 
            Console.WriteLine();
            Console.WriteLine("Пробуем подобрать для соискателей подходящую вакансию...");
            Console.WriteLine();
 
            for (i = 0; i < n1; i++)
            {
                JobSeeker[i].YESorNO = Employee1.Сheck(JobSeeker[i].PaymentS, Employee1.PaymentE, employer[i].Vacancy, JobSeeker[i].Specialty);
                Console.WriteLine("Что с " + i + " соискателем?");
                if (JobSeeker[i].YESorNO == true)
                {
                    Console.WriteLine("Всё супер. Работа найдена.");
                }
                else
                {
                    Console.WriteLine("Либо нет нужных вакансий, либо КОЕ-КТО СЛИШКОМ МАЛО ЗАПЛАТИЛ");
                }
            }
            Console.ReadKey();
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.10.2015, 20:32
Помогаю со студенческими работами здесь

Используя предметную область, написать программу, выполняющую указанные действия с файлами
Здравствуйте! Помогите в решении лабораторной! Дано задание: Используя предметную область, определенную для вас на практике...

Необходимо рассчитать выражение, используя ООП по максимуму, применить инкапсуляцию и тд
Доброго времени суток, уважаемы пользователи CyberForum! Нуждаюсь в Вашей помощи. Прочитал уже много информации по ООП, но что-то...

Нужно создать базу данных на любую предметную область
Требования: Описание предметной области по которой вы делаете базу данных, не менее 20 таблиц и 15 запросов в Microsoft SQL Server R2 это...

Используя ООП, описать выборы. Примеры объектов: человек, кандидат (количество набранных голосов).
Используя ООП, описать выборы. Примеры объектов: человек, кандидат (количество набранных голосов). Всего избирателей 2000. Составить...

Принципы ООП
Здравствуйте, написал по заданию в универе программу которая реализует комплексное число в виде класса, и способна складывать два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru