1.15. Курсовая работа
Для реализации личного помощника по финансам необходимо выполнить следующие требования:
- Создать глобальные переменные, которые будут хранить - ежемесячный доход, ежемесячный расход, разовый доход.
- Реализовать функцию
add_mounth_income(amount)
, которая добавляет к текущим постоянным ежемесячным доходам сумму amount и ничего не возвращает. - Реализовать функцию
add_mounth_outcome(amount)
, которая добавляет к ежемесячным расходам сумму amount и ничего не возвращает. - Реализовать функцию
set_reservepercent(perc)
, которая устанавливает процент отчисления для резервного фонда ежемесячно. - Реализовать функцию
set_fintarget(amount)
- финансовую цель, которая установит сумму, которую необходимо накопить. - Реализовать функцию
set_fintpercent(perc)
которая хранит процент для откладывания на финансовую цель ежемесячно. - Реализовать функцию
report()
, которая выводит сводку размеров фондов на год, с шагом в месяц, а также признак будет ли достигнута финансовая цель.
Шаблон скрипта:
import argparse
#Пользовательские функции:
#Функция для добавления источников постоянного дохода.
def add_mounth_income(amount):
pass
#Функция для добавления источников разового дохода.
def add_onceincom(amount):
pass
#функция для добавления постоянных источников расхода.
def add_mounth_outcome(amount):
pass
def set_reservepercent(perc):
pass
#Функция для назначения финансовой цели.
def set_fintarget(amount):
pass
#Функция для назначения процентов.
def set_fintpercent(perc):
pass
#Функция выводит размеры фондов за год, с шагом в месяц а также проверяет, будет ли достигнута финансовая цель.
def report():
print("Отчета нет.")
#Функция отмечает неоптимальные финансовые показатели, и даёт рекомендации по их улучшению.
def recomend():
print("Рекомендаций нет.")
#это часть шаблона, не менять!
def main(mounth_income, mounth_outcome, once_income, fin_amount, percent_reserve, percent_fintar, need_reccomend):
print('Ежемесячная прибыль: {}\nЕжемесячный расход: {}\nЕдиновременная прибыль: {}\nФинансовая цель: {}\nПроцент отчислений в резервный фонд: {}\nПроцент отчислений на цель: {}\nНеобходимость рекомендации: {}\n-------\n'.format(mounth_income, mounth_outcome, once_income, fin_amount, percent_reserve, percent_fintar,need_reccomend))
add_mounth_income(mounth_income)
add_mounth_outcome(mounth_outcome)
add_onceincom(once_income)
set_fintarget(fin_amount)
set_reservepercent(percent_reserve)
set_fintpercent(percent_fintar)
#получаем отчет
report()
#если задана рекоммендация, то получаем
if need_reccomend:
recomend()
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='SUFLE')
parser.add_argument('--mi', type=int, default=120000, help='Mounth income (default: 120000)')
parser.add_argument('--mo', type=int, default=30000, help='Mounth outcome (default: 30000)')
parser.add_argument('--oi', type=int, default=0, help='Once income (default: 0)')
parser.add_argument('--ft', type=int, default=60000, help='Finance target (default: 60000)')
parser.add_argument('--pr', type=int, default=30, help='Percent reserve fond (default: 30)')
parser.add_argument('--pf', type=int, default=10, help='Percent finansial target (default: 10)')
parser.add_argument('--r', type=bool, default=False, help='Need recommendation (default: False)')
args = parser.parse_args()
main(args.mi,args.mo,args.oi,args.ft,args.pr,args.pf,args.r)
Пример выдачи:
Скрипт использует аргументы командной строки. Посмотреть список аргументов можно так:
Все аргумены устанавливаются значениями по-умолчанию. Для установки других параметров пишите через два тире. Например, вы хотите запустить с ежемесячным доходом 60000 и финансовой цели на 30000:
Дополнительная задача 1. Одноразовые доходы.
Реализовать функцию add_once_income(amount)
, которая добавляет к текущим одноразовым доходам сумму amount и ничего не возвращает.
Дополнительная задача 2
Реализовать рекомендательную систему на свой выбор в функции recomend()
. Она должна по размерам фондов, ежемесячных доходов и т.п. давать рекомендации по увеличении процента резервного фонда, его уменьшению, а также подсказывать как достичь финансовую цель, если не выходит.