Пожилому волшебнику требуется ваша помощь с расчетом чистой прибыли за продажи палочек, при этом важно учесть все расходы:
Аренда помещения
Оплата материалов для изготовления палочек (древесина + сердцевина)
Зарплата для сотрудника
Услуги мракоборцев (авроров - волшебная полиция) - установка магглоотталкивающих щитов, защиты здания
ЗАДАЧИ
Задачи:
Создать класс филиал (NewBranch).
Класс является наследником класса BrunchFinances
Класс содержит приватную строковую переменную (для хранения имени филиала)
Класс содержит конструктор, который принимает строковую переменную, и деструктор
Класс прибыль (BranchFinances)
Класс содержит константные переменные, необходимые для расчёта
Класс содержит конструктор по умолчанию и деструктор
Метод класса. Расчёт стоимости аренды помещения. Формула расчёта: арендная плата в месяц = ставка + ((прибыль - сумма, сверх которой нужно платить процент) × процент). Если прибыль меньше установленной суммы, то арендная плата равна ставке.
Метод класса. Расчёт всех расходов. Формула: Р = Зп + Аренда + услуги мракоборцев.
Метод класса. Вывод всех расходов в консоль.
Метод класса. Подбор выручки с помощью ГПСЧ.
Метод класса. Расчёт чистой прибыли. Формула: чистая прибыль = выручка - расходы.
Функция main()
Создать объект класса NewBranch
Вывести чистую прибыль.
УСЛОВИЯ
Условия для задачи:
Для аренды:
Арендная ставка составляет 50 галлеонов в месяц;
Процент, который Олливандер должен платить в дополнение к арендной ставке, составляет 7% от выручки;
Сумма выручки, сверх которой Олливандеру нужно платить процент, составляет 270 галлеонов в месяц;
Для чистой прибыли:
Выручка магазина волшебных палочек составляет от 250 до 500 галлеонов в месяц;
Зарплата сотруднику составляет 35 галлеонов в месяц;
Расходы на услуги мракоборцев составляет 15 галлеонов в месяц;
Ответы
Ответ:
Вот пример реализации классов в соответствии с задачей на языке Python:
import random
class BranchFinances:
def __init__(self):
self.rent_rate = 50
self.revenue_threshold = 270
self.additional_percent = 0.07
class NewBranch(BranchFinances):
def __init__(self, branch_name):
super().__init__()
self.branch_name = branch_name
self.employee_salary = 35
self.auror_services_expense = 15
def calculate_rent(self, profit):
if profit >= self.revenue_threshold:
rent = self.rent_rate + ((profit - self.revenue_threshold) * self.additional_percent)
else:
rent = self.rent_rate
return rent
def calculate_expenses(self):
total_expenses = self.employee_salary + self.calculate_rent(self.generate_revenue()) + self.auror_services_expense
return total_expenses
def generate_revenue(self):
return random.randint(250, 500)
def calculate_net_profit(self):
revenue = self.generate_revenue()
expenses = self.calculate_expenses()
net_profit = revenue - expenses
return net_profit
def print_expenses(self):
rent = self.calculate_rent(self.generate_revenue())
expenses = self.calculate_expenses()
print(f"Expenses for branch {self.branch_name}:")
print(f" Employee Salary: {self.employee_salary} galleons")
print(f" Rent: {rent} galleons")
print(f" Auror Services Expense: {self.auror_services_expense} galleons")
print(f"Total Expenses: {expenses} galleons")
def main():
branch = NewBranch("Diagon Alley")
net_profit = branch.calculate_net_profit()
print(f"Net Profit for branch {branch.branch_name}: {net_profit} galleons")
branch.print_expenses()
main()
Программа создает класс BranchFinances в качестве базового класса и класс NewBranch, наследующий BranchFinances. Класс NewBranch содержит методы для расчета арендной платы, всех расходов, подбора выручки с помощью ГПСЧ, расчета чистой прибыли и вывода расходов в консоль.
В функции main() создается объект класса NewBranch, а затем выводится чистая прибыль и все расходы для этого филиала. Пример вывода может выглядеть следующим образом:
Net Profit for branch Diagon Alley: 153 galleons
Expenses for branch Diagon Alley:
Employee Salary: 35 galleons
Rent: 50 galleons
Auror Services Expense: 15 galleons
Total Expenses: 100 galleons
Обратите внимание, что выручка генерируется случайным образом в диапазоне от 250 до 500 галлеонов каждый раз при вызове метода generate_revenue(), поэтому результаты могут отличаться при каждом выполнении программы.
Объяснение: