Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 29.02.2024
Сообщений: 2

Создание системы бухгалтерского учёта

29.02.2024, 16:19. Показов 2341. Ответов 3

Студворк — интернет-сервис помощи студентам
Добрый день! Есть домашнее задание. Никак не выходит

Надо написать систему бухгалтерского учёта. Логика контроля доходов и расходов будет в одном классе, а логика системы налогообложения — в других. Полиморфизм понадобится, чтобы это без сбоев работало друг с другом.

Создайте класс Company. Каждая компания должна знать свои title (название), debit (доходы), credit (расходы) и taxSystem (систему налогообложения, о ней ниже).

В этом классе должен быть только один конструктор, задающий название компании и систему налогообложения, принимая их параметрами. Доходы и расходы изначально равны нулю.

У компании должен быть метод shiftMoney(int amount), который работает так:
  • если amount больше 0, то увеличивается значение debit на amount;
  • если amount меньше 0, то увеличивается значение credit на Math.abs(amount);
  • если amount равен 0, то ничего не происходит.

Теперь поговорим про системы налогообложения. Все системы налогообложения будут наследоваться от класса TaxSystem, переопределяя метод расчёта налогов по доходам и расходам:

Java
1
2
3
4
5
6
7
package taxes;
 
public class TaxSystem {
    public int calcTaxFor(int debit, int credit) {
        return 0;
    }
}
Обратите внимание, что этот класс находится в пакете. В том же пакете должны находиться и классы других налоговых систем, которые вам предстоит написать.

Реализуйте два класса налоговых систем:
  • УСН доходы — налог 6% от доходов;
  • УСН доходы минус расходы — налог 15% от разницы доходов и расходов.

Помните, что налог не может быть отрицательным. В таком случае налог должен быть 0.

Компания должна работать с любой системой налогообложения, поэтому внутри класса Company используйте класс TaxSystem в указании типов ячеек. По правилу полиморфизма, в них можно будет передать объекты любых наследников этого класса, с конкретными логиками расчёта налогов.

Добавьте в класс Company сеттер для смены системы налогообложения.

Добавьте в класс Company метод payTaxes(), который:
  • рассчитает с помощью выбранной этой компанией системы налогообложения размер налогов;
  • выведет сообщение на экран вида: Компания <название> уплатила налог в размере: <сумма> руб.;
  • обнулит счётчики debit и credit.

Протестируйте работоспособность своих классов в Main.


Есть ещё усложнение, но необязательно:

Создайте в вашем проекте дополнительный класс Deal, объект которого будет описывать сделку, что может провернуть компания. Каждая сделка сопровождается комментарием (comment), суммой расходов (creditChange) и суммой доходов (debitChange). Создайте конструктор, который принимает эти три параметра.

Создайте два наследника: Sale (продажа) и Expenditure (трата). Объект Sale должен конструироваться от названия товара и его цены, являясь сделкой с комментарием (comment) вида Продажа <название товара> на <цена> руб., debitChange размером в цену и нулевым creditChange. Объект Expenditure должен конструироваться от названия товара и его цены, являясь сделкой с комментарием (comment) вида Покупка <название товара> на <цена> руб., creditChange размером в цену и нулевым debitChange

В классе Company создайте метод int applyDeals(Deal[] deals), в результате вызова которого:
  • компания применяет все сделки из массива сделок (т. е. увеличивает credit на creditChange, debit на debitChange);
  • выплачивает все налоги;
  • возвращает из метода разницу доходов и расходов, которая была на момент старта уплаты налогов.

Протестируйте работоспособность своих классов в Main


Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.02.2024, 16:19
Ответы с готовыми решениями:

Задача бухгалтерского учета
Компания занимается торговлей продуктами питания. Учет товаров ведется в разрезе сроков годности и партий товаров. Под партией понимается...

С чего начать создание системы учета заказов такси или информационной системы ломбарда?
Создание информационной системы учета заказов радиотакси(ИЛИ)Создание информационной системы ломбарда. Незнаю с чего начать даже и что...

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

3
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
29.02.2024, 16:21
Цитата Сообщение от Geordie Посмотреть сообщение
Никак не выходит
Показывай, что понаписал
0
0 / 0 / 0
Регистрация: 29.02.2024
Сообщений: 2
29.02.2024, 16:33  [ТС]
Java
1
2
3
4
5
public class Main {
    public static void main(String[] args) {
 
    }
}
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
import taxes.TaxSystem;
 
public class Company {
    private String title;
    private int debit;
    private int credit;
    private TaxSystem taxSystem;
 
    public Company(String title, TaxSystem taxSystem) {
        this.title = title;
        this.taxSystem = taxSystem;
    }
 
    public void setTaxSystem(TaxSystem taxSystem) {
        this.taxSystem = taxSystem;
    }
 
    public int payTaxes() {
        int tax = taxSystem.calcTaxFor(debit, credit);
        System.out.println("Компания " + title + " уплатила налог в размере: " + tax + " руб.");
        return tax;
    }
 
    public static boolean shiftMoney(int amount) {
        if (amount > 0) {
 
        }
 
    }
 
}
Java
1
2
3
4
5
6
7
package taxes;
 
public class TaxSystem {
    public int calcTaxFor(int debit, int credit) {
        return 0;
    }
}
Java
1
2
3
4
5
6
7
8
package taxes;
 
public class TaxSystemEarnings extends TaxSystem {
    @Override
    public int calcTaxFor(int debit, int credit) {
        return debit * 100/6;
    }
}
Java
1
2
3
4
5
6
package taxes;
 
public class TaxSystemEarningsMinusExpense extends TaxSystem {
    @Override
    public int calcTaxFor(int debit, int credit) {
        return (debit - credit) * 100/15;
На этом всё. Я толком и условия задачи не понял. Как тестить и что должно выйти
0
156 / 62 / 16
Регистрация: 12.12.2023
Сообщений: 389
29.02.2024, 17:45
Не хотелось бы при таких налогах работать. Может все-таки * 6 /100?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.02.2024, 17:45
Помогаю со студенческими работами здесь

Нужно внедрить в 1С объект участка бухгалтерского учета «Инвентаризация» в типовую конфигурацию 1С:Предприятие
Нужно в 1С создать на пример вкладку: Инвентаризация по складам или по компьютерной технике.???

Ищем Проектировщика-разработчика/программиста 1С решений для бухгалтерского учета, гор. Москва
Ищем Проектировщика-разработчика/программиста 1С решений для бухгалтерского учета, гор. Москва Опыт работы: от 3 лет Образование:...

Курсы бухгалтерского учета и 1С, курсы сметчиков и АВК в Киеве
Приглашаем всех желающих пройти обучение в УЦ по направлениям: -курсы бухгалтерского учета -курсы 1С Бухгалтерия -курсы главного...

Создание БД для системы учета заявок на оборудования
Есть пользователи(users) , которые подают заявку на установку нужного им оборудования(EquipmentI). У каждого пользователя есть роль (RoleI...

Создание системы для учета и каталогизации книг
Здравствуйте! Дана задача для выполнения в 1с:Предприятии 8.3. Никак не могу собраться с мыслями, что же от меня нужно. Я пока поняла, что...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru