C, PHP, VB, .NET

Дневникът на Филип Петров


* Примерна задача 3

Публикувано на 28 ноември 2009 в раздел ПИК3 Java.

Задача 1: Създайте клас „работник на хонорар“, в който са дефинирани лично, фамилно име, заплащане (левове за час) и личен номер (id) от тип int. Направете конструктори по подразбиране (въвежда се информацията от клавиатурата) и чрез подадени параметри. Създайте необходимите get и set методи. Напишете метод, който отпечатва информация за работника на екрана в подходящ вид. Напишете метод, който по подаден параметър „брой изработени часове“ връща парите, които работникът трябва да получи.

Задача 2: Създайте клас „обикновен работник“, който наследява класа „работник на хонорар“, в който се добавя информация за броя часове, които работникът е изработил за текущата седмица. Направете конструктори по подразбиране (стандартно работниците работят 40 часа седмично) и чрез подадени параметри. Създайте необходимите get и set методи. Напишете метод, който връща седмичната заплата на работника. Всички часове до 40-тия се пресмятат умножени с коефициент 1.0, а наднормените часове се заплащат с коефициент 1.5. Предефинирайте методът за отпечатване на информацията за работника така, че да се отпечата на екрана и новата информация (седмичната му заплата). Направете проверки за валидност на данните – един работник НЕ може да работи повече от 84 часа седмично. Ако се опитате да създадете такъв, то трябва да се хвърли изключение.

Задача 3: Създайте клас „работник с възможност за нощна смяна“, който наследява класа „обикновен работник“ и добавя информация за броят дни, в които работникът е работил нощем. Направете конструктори по подразбиране (стандартно работниците не работят нощни смени) и чрез подадени параметри. Създайте необходимите get и set методи. Предефинирайте метода връщаш седмичната заплата така, че нощните смени да бъдат заплатени по коефициент 1.5 (счита се, че продължителността на една нощна смяна е 8 работни часа). Наднормените часове не могат да бъдат нощна смяна (т.е. не се умножават два пъти с коефициента). Направете проверки за валидност на данните – ако работник има поне една нощна смяна, то той вече не може да работи повече от 72 часа седмично, а броят на нощните му смени за седмица не може да е повече от 5.

Задача 4: Създайте клас „списък с работници“, в който се пазят списъци за работниците на хонорар, обикновените работници и работниците с възможност за нощна смяна. Направете конструктор по подразбиране, който инициализира празни списъци. Направете метод, който по подаден параметър един от трите типа работници го добавя в съответния списък. Трябва да се направи проверка дали служител с такъв уникален номер (id) вече съществува (ако да – да се „хвърли“ exception). Направете метод, който изтрива работник по подадена информация „уникален номер на служител“. Ако такъв работник не съществува – да се хвърли изключение. Направете метод, който по подаден параметър „уникален номер“ отпечатва информацията за работника. Ако той е „обикновен работник“ или „работник с възможност за нощна смяна“ да се отпечата и неговата текуща седмична заплата.
Направете метод за отпечатване на информацията за всички работници на хонорар.
Направете метод за отпечатване на информацията за всички обикновени работници.
Направете метод за отпечатване на информацията за всички работници с възможност за нощна смяна.
Направете метод за отпечатване на информацията на всички налични работници, като ги раздели по групи.
Направете метод, който намира средната седмична заплата на всички работници (тези, които са на хонорар не участват в изчисленията).

Задача 5: Демонстрирайте функционалността на създадените класове чрез написване на main метод.

 



Един коментар


  1. Aleksandar Ivanov каза:

    Може ли да дадете решението на задача 4 методата add.

Добави коментар

Адресът на електронната поща няма да се публикува


*