6 / 6 / 0
Регистрация: 02.07.2021
Сообщений: 50

Реализуйте класс Worker

01.08.2021, 11:31. Показов 6747. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите, пожалуйста, так ли я сделала, задачи взаимосвязаны

1) Реализуйте класс Worker (Работник), который будет иметь следующие свойства:
- firstName,
- lastName,
- salaryPerDay
- days

Также класс должен иметь метод getSalary(), который будет выводить зарплату работника.
Зарплата - это произведение ставки в день(salaryPerDay) на количество отработанных дней(days)

Создайте несколько экземпляров класса Worker, и проверьте работоспособность метода getSalary
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Worker {
  constructor(name, surname, rate, days) {
    this.name = name;
    this.surname = surname;
    this.salaryPerDay = salaryPerDay;
    this.days = days;
  }
  getSalary() {
    return this.salaryPerDay * this.days;
  }  
}
let worker = new Worker('Иван', 'Иванов', 10, 31);
console.log(worker.name); 
console.log(worker.surname); 
console.log(worker. salaryPerDay); 
console.log(worker.days); 
console.log(worker.getSalary());
2) Реализуйте Геттеры в классе Worker из предыдущего задания, для чтения:
- имени работника
- фамилии работника
- дневной зарплаты
- кол-ва дней

Воспользуйтесь этими Геттерами для вывода информации по работнику

JavaScript
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
class Worker {
  constructor(name, surname, salaryPerDay, days) {
    this._name = name;
    this._surname = surname;
    this._salaryPerDay = salaryPerDay;
    this._days = days;
  }
  
  getName() {
    return this._name;
  }
  
  getSurname() {
    return this._surname;
  }
  
  getsalaryPerDay() {
    return this._salaryPerDay;
  }
  
  getDays() {
    return this._days;
  }
  
  getSalary() {
    return this._salaryPerDay * this._days;
  }
  
}
 
let worker = new Worker('Иван', 'Иванов', 10, 31);
console.log(worker.getName()); 
console.log(worker.getSurname()); 
console.log(worker.getSalaryPerDay()); 
console.log(worker.getDays()); 
console.log(worker.getSalary());
3) Реализуйте Сеттеры в классе Worker из задания номер 1, для изменения дневной ставки, и изменения кол-ва дней.
После создания экземпляра класса вам необходимо воспользоваться этими Сеттерами, и после этого, с помощью Геттеров вывести
уже измененную информацию по работнику

JavaScript
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
class Worker {
  constructor(name, surname, salaryPerDay, days) {
    this._name = name;
    this._surname = surname;
    this._salaryPerDay = salaryPerDay;
    this._days = days;
  }
  
  getName() {
    return this._name;
  }
  
  getSurname() {
    return this._surname;
  }
  
  getSalaryPerDay() {
    return this._salaryPerDay;
  }
  
  getDays() {
    return this._days;
  }
  
  getSalary() {
    return this._rate * this._days;
  }
  
  setSalaryPerDay(num) {
    return this._salaryPerDay = num;
  }
  
  setDays(num) {
    return this._days = num;
  }
  
}
 
let worker = new Worker('Иван', 'Иванов', 10, 31);
 
console.log(worker.getSalaryPerDay()); 
console.log(worker.getDays());
console.log(worker.getSalary()); 
 
worker.setSalaryPerDay(20); 
worker.setDays(10); 
console.log(worker.getSalary());
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.08.2021, 11:31
Ответы с готовыми решениями:

Напишите класс Круг и реализуйте следующий функционал
Напишите класс Круг и реализуйте следующий функционал: 1. Определите конструктор, который запрашивает координаты центра круга, его радиус...

[Error] no matching function for call to 'worker::worker()' (Worker-структура)
#include <iostream> #include <iomanip> #include <cstring> using namespace std; struct worker { worker (worker* w, int n); ...

Создайте пример наследования, реализуйте класс Student и класс Aspirant
Помогите срочно надо, можно даже не полностью. Времени всего 2,5 часа Создайте пример наследования, реализуйте класс Student и класс...

8
0 / 0 / 0
Регистрация: 01.08.2021
Сообщений: 7
01.08.2021, 12:03
через пакетный интерпретатор просто компилируешь пакеты, подключаешь бибилотеку bash() и серверным протаколом прогоняешь дальше всё локальное поле имен

вообще вот хороший кодец на твою тему как раз

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function Person(firstName, lastName) {
    this._firstName = firstName;
    this._lastName = lastName;
}
 
Person.prototype.log = function() {
    console.log('I am', this._firstName, this._lastName);
}
 
// This line adds getters and setters for the profession object. Note that in general you could just write your own get and set functions like the 'log' method above.
// Since in this example we are trying the mimic the class above, we try to use the getters and setters property provided by JavaScript
Object.defineProperty(Person.prototype, 'profession', {
    set: function(val) {
        this._profession = val;
    },
    get: function() {
        console.log(this._firstName, this._lastName, 'is a', this._profession);
    }
})
0
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
01.08.2021, 12:22
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

Здравствуйте.
Первая часть:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        class Worker {
            constructor(firstName, lastName, salaryPerDay, days) {
                this.firstName = firstName;
                this.lastName = lastName;
                this.salaryPerDay = salaryPerDay;
                this.days = days;
            }
            getSalary() {
                return this.salaryPerDay * this.days;
            }
        }
 
        let workers = [
            new Worker("a1", "aa1", 10, 31),
            new Worker("a2", "aa2", 20, 31),
            new Worker("a3", "aa3", 30, 31),
        ];
        for (let w of workers)
            console.log(`${w.firstName} ${w.lastName} ${w.getSalary()}`);
Вторая часть:
JavaScript
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
        class Worker {
            #firstName;
            #lastName;
            #salaryPerDay;
            #days;
            constructor(firstName, lastName, salaryPerDay, days) {
                this.#firstName = firstName;
                this.#lastName = lastName;
                this.#salaryPerDay = salaryPerDay;
                this.#days = days;
            }
            getSalary() {
                return this.salaryPerDay * this.days;
            }
            get firstName() { return this.#firstName; }
            get lastName() { return this.#lastName; }
            get salaryPerDay() { return this.#salaryPerDay; }
            get days() { return this.#days; }
        }
 
        let workers = [
            new Worker("a1", "aa1", 10, 31),
            new Worker("a2", "aa2", 20, 31),
            new Worker("a3", "aa3", 30, 31),
        ];
        for (let w of workers)
            console.log(`${w.firstName} ${w.lastName} ${w.salaryPerDay} ${w.days} ${w.getSalary()}`);
Третья часть:
JavaScript
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
        class Worker {
            #firstName;
            #lastName;
            #salaryPerDay;
            #days;
            constructor(firstName, lastName, salaryPerDay, days) {
                this.#firstName = firstName;
                this.#lastName = lastName;
                this.salaryPerDay = salaryPerDay; // Сеттер
                this.days = days; // Сеттер
            }
            getSalary() {
                return this.salaryPerDay * this.days;
            }
            get firstName() { return this.#firstName; }
            get lastName() { return this.#lastName; }
            get salaryPerDay() { return this.#salaryPerDay; }
            get days() { return this.#days; }
            set salaryPerDay(value) {
                if (!Number.isFinite(value) || value < 0) throw new Error("Salary must be not less, than 0.");
                this.#salaryPerDay = value;
            }
            set days(value) {
                if (!Number.isFinite(value) || value < 0) throw new Error("Days must be not less, than 0.");
                this.#days = value;
            }
        }
 
        const rand = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);
        let workers = [
            new Worker("a1", "aa1", 0, 0),
            new Worker("a2", "aa2", 0, 0),
            new Worker("a3", "aa3", 0, 0)
        ];
        for (let w of workers) {
            w.salaryPerDay = rand(100, 200);
            w.days = rand(15, 23);
            console.log(`${w.firstName} ${w.lastName} ${w.salaryPerDay} ${w.days} ${w.getSalary()}`);
        }
2
0 / 0 / 0
Регистрация: 01.08.2021
Сообщений: 7
01.08.2021, 12:50
ну я бы не стал так злоупотреблядь массивами здесь. можно и через словари сделать, хотя судя по тем фреймворкам которые вы используете, я вижу что вам немного надо подтянуть кэширование баз данных
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
01.08.2021, 13:21
Цитата Сообщение от starikanvingrad Посмотреть сообщение
судя по тем фреймворкам которые вы используете
Каким именно?

Добавлено через 1 минуту
Цитата Сообщение от starikanvingrad Посмотреть сообщение
через пакетный интерпретатор просто компилируешь пакеты
Какие пакеты?
2
0 / 0 / 0
Регистрация: 01.08.2021
Сообщений: 7
01.08.2021, 13:45
Цитата Сообщение от DrType Посмотреть сообщение
Каким именно?
JetFire и AcroStat

Цитата Сообщение от DrType Посмотреть сообщение
Какие пакеты?
импортированные из библиотек этих
0
Молодой техлид)
Эксперт JSЭксперт HTML/CSS
 Аватар для mr_dramm
1818 / 1056 / 329
Регистрация: 17.07.2021
Сообщений: 2,147
Записей в блоге: 14
01.08.2021, 15:03
Цитата Сообщение от starikanvingrad Посмотреть сообщение
через пакетный интерпретатор просто компилируешь пакеты, подключаешь бибилотеку bash()
тут вроде браузерный javascript -_-
0
6 / 6 / 0
Регистрация: 02.07.2021
Сообщений: 50
01.08.2021, 15:11  [ТС]
разве здесь используются фреймворки?
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
01.08.2021, 15:14
karino4ka_, про фреймворки — это какая-то бессмыслица была, это к задаче вообще отношения не имеет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.08.2021, 15:14
Помогаю со студенческими работами здесь

Класс: Реализуйте класс Rectangle для описания прямоугольника, стороны которого параллельны осям координат.
Реализуйте класс Rectangle для описания прямоугольника, стороны которого параллельны осям координат. При инициализации экземпляра...

Создать класс Worker
Доброго времени суток! Есть такая задачка: создать класс Worker с полями, задающими фамилию работника, фамилии руководителя и подчиненных и...

Изменить класс Worker
В класс Worker добавить поле СТАЖ и ввести специальные функции для записи возраста и стажа. Функции будут, в частности, проверять...

Описать класс Worker
Разработать класс для описанных ниже объектов. Включить в класс методы set (...), get (...), show (...) Worker: Фамилия, Имя, Отчество,...

Класс worker и work
Я создала класс worker. В нем есть поля имя фамилия возраст и id. И есть класс work. Он должен выводить информацию о работнике по индексу....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru