Войти

Показать полную графическую версию : класс Бухгалтер


mephistophel
08-11-2011, 00:34
Доброго времени суток! Опыт программирования на java у меня практически нулевой,но столкнулся с задачей,которую необходимо реализовать:


Создать абстрактный класс Сотрудник. У него должны быть методы для задания ставки (з/п в месяц при 100% отработки), количества отработанных часов, а также методы для получения процента отработанного времени и зарплаты за месяц.
Сотрудники могут быть двух типов: Программист и Менеджер. Программист получает зарплату в соответствии с количеством отработанных часов, а менеджер - 100% в случае переработки и соответствующий процент в случае недоработки.
Класс Бухгалтер принимает множество сотрудников и считает их з/п. Для него должно быть прозрачным, какого типа является сотрудник. Ему важна только зарплата за текущий месяц.
Создать нужно 4 класса: сотрудник,менеджер,программист,бухгалтер.


класс сотрудник,менеджер и программист я создал,но не понимаю, нафиг нужен класс бухгалтер,если у меня зарплата считается в менеджере и программисте,но класс "бухгалтер" должен быть обязательно;класс бухгалтер должен наследовать сотрудника или не обязательно?как вообще подсчёт зарплаты в этом классе организовать?Заранее спасибо за советы.
Вот собственно то,что я уже набросал:

abstract class Employee { private int ID; public String name; public String role; public int FixedSalary; public int worckedHours; public Employee() { ID++; } public final int getID() { return ID; } public void setName(String name) { this.name=name; } public void setRole(String role) { this.role=role; } public int setFixedSalary(int FixedSalary) { return this.FixedSalary=FixedSalary; } public int setWorckedHours(int worckedHours) { return this.worckedHours=worckedHours; } public int getWorckedHours() { return worckedHours; } public int getFixedSalary() { return this.FixedSalary; } public String getName() { return name; } public String getRole() { return role; } public abstract int getPercent(); public abstract int getFullSalary(); }

class Developer extends Employee { static private final int HOURS_FOR_MONTH = 160; static private final int MAX_SALARY=5000; public int getPercent() { return getWorckedHours()*100/HOURS_FOR_MONTH; } public int getFullSalary() { return getFixedSalary()*100/MAX_SALARY; } }

class Manager extends Employee { static private final int HOURS_FOR_MONTH = 160; static private final int MAX_SALARY=4000; public int getPercent() { if(getWorckedHours()>HOURS_FOR_MONTH) { return 100; } return getWorckedHours()*100/HOURS_FOR_MONTH; } public int getFullSalary() { return getFixedSalary()*100/MAX_SALARY; } }




© OSzone.net 2001-2012