Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> класс Бухгалтер 
:(
    Опции темы
ricky
Дата 7.11.2011, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.4.2011

Репутация: нет
Всего: нет



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

PM MAIL   Вверх
rang3r
Дата 8.11.2011, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 2.4.2009

Репутация: нет
Всего: нет



С идеологической т.з. Бухалтер - это тоже сотрудник, но в данном случае ему не надо наследоваться от Employee, ему надо только считать, пускай он получает на вход Employee и дергает у него getFullSalary()*getPercent().
Вот собственно и все, кстати у тебя ID не будут уникальными. Потому что он создаться при создании объекта и присвоиться ему значение 0, потом выполниться ID++. Сделай тогда статическую переменную.
PM MAIL Skype   Вверх
ricky
Дата 8.11.2011, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 11.4.2011

Репутация: нет
Всего: нет



спасибо,я уже решил проблему
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0628 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.