Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Veterut
0 / 0 / 1
Регистрация: 18.05.2013
Сообщений: 29
1

Спроектировать и реализовать классы Налоговая Инспекция и Гражданин

11.11.2014, 23:42. Просмотров 654. Ответов 9
Метки нет (Все метки)

Налоговая инспекция, которая хранит информацию о всех гражданах в едином реестре
, планирует начислять по более низкой ставке налог для граждан, имеющих
более трех несовершеннолетних детей. Необходимо спроектировать и реализовать
классы Налоговая Инспекция и Гражданин для расчета налоговых выплат по каждому
гражданину. Класс Налоговая Инспекция должен содержать метод main() для вывода
информации о начисленных налогах.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2014, 23:42
Ответы с готовыми решениями:

Спроектировать и реализовать классы Налоговая Инспекция и Гражданин для расчет налоговых выплат
Налоговая инспекция, которая хранит информацию о всех гражданах в едином...

Реализовать классы - рыбы и птицы
2)В зоопарке водятся рыбы и птицы. Рыбы характеризуются следующими атрибутами:...

Реализовать классы, используя процедуру наследования
Здравствуйте! Задание: Создать класс КВАДРАТ, члены класса - длина...

Реализовать классы с использованием внутренних классов
Создать класс Зачетная Книжка с внутренним классом, с помощью объектов которого...

Реализовать абстрактные классы или интерфейсы, а также наследование и полиморфизм
Реализовать абстрактные классы или интерфейсы, а также наследование и...

9
KEKCoGEN
Эксперт Java
2054 / 1927 / 498
Регистрация: 28.12.2010
Сообщений: 7,715
12.11.2014, 01:29 2
Лучший ответ Сообщение было отмечено Veterut как решение

Решение

Поскольку написали честно что нужен код, а не "помогите написать", привожу код.


TaxInspection

Java
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import java.util.ArrayList;
import java.util.List;
 
public class TaxInspection {
    
    private static final Integer MIN_CHILDREN_TO_AMMORT = 3;
    
    private static final Integer ADULTS_NUMBER_TO_GENERATE = 10;
    
    
    
    private List<Citizen> citizens = new ArrayList<Citizen>();
    
    public TaxInspection() {
        for(int i=0; i<ADULTS_NUMBER_TO_GENERATE; i++) {
            Citizen citizen = generateCitizen(true);
            citizens.add(citizen);
        }
    }
    
    
    public static void main(String[] args) {
        TaxInspection taxInspection = new TaxInspection();
        
        TaxCriteriaCalculator taxCriteria = new ChildrenTaxAmmortizerCriteria(MIN_CHILDREN_TO_AMMORT);
        taxInspection.printTaxes(taxCriteria);
    }
    
    private void printTaxes(TaxCriteriaCalculator taxCriteria) {
        System.out.println("There are " + citizens.size() + " records in data base");
        for (Citizen citizen : citizens) {
            if(taxCriteria.shouldBeAmmortized(citizen)) {
                System.out.println("Following citizen should get tax discount: " + citizen);
            }else{
                System.out.println("Citizen id " + citizen.getId() + ", name: " + citizen.getName() + " should NOT get tax discount since he\\she has " + citizen.getChildrenCount() + " children");
            }
        }
    }
 
 
 
    private Citizen generateCitizen(boolean withChildren) {
        String name = DataGenerator.getRandomName();
        String id = DataGenerator.getId();
        Integer age = DataGenerator.geRandomAge();
        
        List<Citizen> children = new ArrayList<Citizen>();
        
        if(withChildren) {
            children = assignChildrens();
        }
        
        Citizen result = new Citizen(id, name, age, children);
        return result;
    }
 
    private List<Citizen> assignChildrens() {
        
        List<Citizen> resultList = new ArrayList<Citizen>();
        
        if(!shouldAssignChildren()) {
            return resultList;
        }
        
        int childNumber = DataGenerator.getRandomInt(1, 5);
        
        for(int i=0; i<childNumber; i++) {
            resultList.add(generateCitizen(false));
        }
        return resultList;
    }
    
    boolean shouldAssignChildren() {
        Integer randValue = DataGenerator.getRandomInt(0, 4);
        return randValue % 3 == 0;
        
    }
 
}
Citizen

Java
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.util.List;
 
public class Citizen {
    
 
    private String id;
    private String name;
    private Integer age;
    
    private List<Citizen> children;
    
    
    public Citizen(String id, String name, Integer age, List<Citizen> children) {
        super();
        this.id = id;
        this.name = name;
        this.age = age;
        this.children = children;
    }
 
    public String getId() {
        return id;
    }
 
 
 
    public void setId(String id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public Integer getAge() {
        return age;
    }
 
    public void setAge(Integer age) {
        this.age = age;
    }
 
    public List<Citizen> getChildren() {
        return children;
    }
    
    public Integer getChildrenCount() {
        return children.size();
    }
 
    public void setChildren(List<Citizen> children) {
        this.children = children;
    }
 
    @Override
    public String toString() {
        return "Citizen [id=" + id + ", name=" + name + ", age=" + age + ", has " + children.size() + " children]";
    }
}
TaxCriteriaCalculator

Java
1
2
3
4
5
public interface TaxCriteriaCalculator {
    
    boolean shouldBeAmmortized(Citizen citizen);
 
}
ChildrenTaxAmmortizerCriteria

Java
1
2
3
4
5
6
7
8
9
10
11
12
public class ChildrenTaxAmmortizerCriteria implements TaxCriteriaCalculator {
    
    private Integer minChildNumber;
    
    public ChildrenTaxAmmortizerCriteria(int minChildNumber) {
        this.minChildNumber = minChildNumber;
    }
 
    public boolean shouldBeAmmortized(Citizen citizen) {
        return citizen.getChildrenCount() > minChildNumber;
    }
}
DataGenerator

Java
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
import java.util.Random;
 
 
public class DataGenerator {
    
    private static Integer id = 0;
    
    
    private static final String[] names = new String[] {"Vasya", "Lena", "Petya", "Jenya", "Slava", "Kolya", "Anya", "Olya", "Dima", "Sonya"};
    
    public static String getRandomName() {
        Integer randIndex = getRandomInt(0, 10);
        return names[randIndex];
    }
    
    public static String getId() {
        return (++id).toString();
    }
    
    public static Integer geRandomAge() {
        return getRandomInt(20, 120);
    }
    
    public static Integer getRandomInt(int min, int max) {
        Random rand = new Random();
        return rand.nextInt(max) + min;
    }
 
}
1
EdisonMiranda
68 / 68 / 39
Регистрация: 22.05.2014
Сообщений: 311
12.11.2014, 22:37 3
KEKCoGEN, а скажите пожалуйста:
- зачем тут супер?
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
public Citizen(String id, String name, Integer age, List<Citizen> children) {
* * * * super();
- сколько у вас ушло времени на написание всего этого?
0
KEKCoGEN
Эксперт Java
2054 / 1927 / 498
Регистрация: 28.12.2010
Сообщений: 7,715
13.11.2014, 10:44 4
Цитата Сообщение от EdisonMiranda Посмотреть сообщение
зачем тут супер?
IDE подставила когда конструктор сгенерировала. Особого смысла конечно же нет.

Цитата Сообщение от EdisonMiranda Посмотреть сообщение
сколько у вас ушло времени на написание всего этого?
Не засекал. Минут 20 думаю.
1
EdisonMiranda
68 / 68 / 39
Регистрация: 22.05.2014
Сообщений: 311
13.11.2014, 11:58 5
KEKCoGEN, я наконец то понял в чем моя проблема. Я все эти конструкторы, геттеры сеттеры набираю руками, оттого это и занимает у меня так много времени

Скажите, какие комбинации клавиш на быстрое создание
конструкторы, геттеры сеттеры
0
KEKCoGEN
Эксперт Java
2054 / 1927 / 498
Регистрация: 28.12.2010
Сообщений: 7,715
13.11.2014, 12:37 6
EdisonMiranda, в эклипсе alt-shift-s чтобы вызвать меню source. Там можно выбрать что надо. Это не такая частая операция чтобы на неё ставить отдельную комбинацию клавишь. Можно сверху выбрать меню Source -> Generate Constructor и все остальное
1
reisal78
894 / 645 / 218
Регистрация: 28.04.2013
Сообщений: 1,845
13.11.2014, 13:13 7
alt+ins в idea
1
Veterut
0 / 0 / 1
Регистрация: 18.05.2013
Сообщений: 29
23.11.2014, 12:10  [ТС] 8
А как изменить код так, чтобы дети тоже имели свой возраст, и учитывались только дети которым уже исполнилось 18 лет?
0
KEKCoGEN
Эксперт Java
2054 / 1927 / 498
Регистрация: 28.12.2010
Сообщений: 7,715
23.11.2014, 14:14 9
Дети и так имеют возраст
0
Veterut
0 / 0 / 1
Регистрация: 18.05.2013
Сообщений: 29
23.11.2014, 14:33  [ТС] 10
но дети ведь в этом коде вроде не могут быть младше 18 лет?а надо прям проверку чтобы дети были старше 18 лет

Добавлено через 15 минут
т.е. у детей свой возраст у родителей свой возраст.
У родителей например от 18 до 110, а у детей от 8 и до 30

Добавлено через 29 секунд
т.е. у детей свой возраст у родителей свой возраст.
У родителей например от 18 до 110, а у детей от 8 и до 30
0
23.11.2014, 14:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2014, 14:33

Реализовать абстрактные классы или интерфейсы, а также наследование и полиморфизм
Реализовать абстрактные классы или интерфейсы, а также наследование и...

Реализовать абстрактные классы или интерфейсы, а также наследование и полиморфизм для классов: interface Mobil
Реализовать абстрактные классы или интерфейсы, а также наследование и...

Федеральная налоговая инспекция
16 октября 2014 пришло письмо с темой: Федеральная налоговая инспекция И файлы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru