С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
6 / 6 / 0
Регистрация: 02.07.2021
Сообщений: 50

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

01.08.2021, 11:31. Показов 6695. Ответов 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
6496 / 3907 / 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,146
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru