Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   класс Бухгалтер (http://forum.oszone.net/showthread.php?t=219927)

mephistophel 08-11-2011 00:34 1790666

класс Бухгалтер
 
Доброго времени суток! Опыт программирования на 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; } }


Время: 14:05.

Время: 14:05.
© OSzone.net 2001-