در این سوال شما باید یک کلاس مدیریت فاکتورهای فروش برای شرکت سجادینه طراحی کنید. در شرکت سجادینه افراد زیادی میتوانند فاکتورهای مالی را ثبت کنند و هر کدام از این افراد تاریخ فاکتور را به یکی از ۶ فرمتی که در جدول پایین آمده ثبت میکنند.
برای مثال یک فاکتور که روز دوم ماه ششم سال ۲۰۲۰ ثبت شود، میتواند طبق یکی از فرمتهای زیر ثبت شود:
| زمانی که در سیستم ثبت میشود | فرمت زمان |
|:------------------:|:------------------:|
| `02/06/2020` | `dd/mm/yyyy` |
| `02/2020/06` | `dd/yyyy/mm` |
| `2020/06/02` | `yyyy/mm/dd` |
| `2020/02/06` | `yyyy/dd/mm` |
| `06/2020/02` | `mm/yyyy/dd` |
| `06/02/2020` | `mm/dd/yyyy` |
# پروژه اولیه
پروژه اولیه را از [این لینک](/contest/assignments/21629/download_problem_initial_project/76083/) دانلود کنید. شما باید کلاس `FactorHandler` را در این فایل کامل کنید به طوری که سه تابع زیر عملکردهای خواسته شده را داشته باشند.
<details class="green">
<summary>
تابع `add_factor`
</summary>
این تابع به ترتیب سه ورودی `time_format` و `time` و `value` را ورودی میگیرد. مقدار `time_format` یکی از ۶ رشته جدول بالا است و `time` تاریخ ثبت فاکتور بر حسب فرمت داده شده است. مقدار `value` هم، هزینه فروش فاکتور داده شده برای آن تاریخ را مشخص میکند.
</details>
<details class="green">
<summary>
تابع `remove_all_factors`
</summary>
این تابع به ترتیب سه ورودی `time_format` و `time` را ورودی میگیرد که هر دویشان مانند تابع `add_factor` هستند؛ این تابع تمام فاکتورهایی که در تاریخ داده شده ثبت شدهاند را از لیست فاکتورها حذف میکند.
</details>
<details class="green">
<summary>
تابع `get_sum`
</summary>
این تابع به ترتیب سه ورودی `time_format` و `start_time` و `finish_time` را ورودی میگیرد و جمع هزینه فاکتورهایی که از تاریخ `start_time` تا `finish_time` ثبتشدهاند (شامل خود این دو تاریخ) را برمیگرداند.
</details>
در همه توابع تضمین میشود که `time` حتما بر حسب فرمت `time_format` است. توجه کنید که هیچ یک از توابع بالا را نباید استاتیک تعریف کنید.
# مثال
```python
>>> fh = FactorHandler()
>>> fh.add_factor("dd/mm/yyyy", "02/10/2019", 10)
>>> fh.add_factor("dd/mm/yyyy", "03/10/2019", 20)
>>> fh.add_factor("dd/mm/yyyy", "03/10/2019", 30)
>>> fh.add_factor("dd/mm/yyyy", "05/10/2019", 5)
>>> fh.get_sum("yyyy/dd/mm", "2019/02/10", "2019/03/10")
60
>>> fh.remove_all_factors("mm/dd/yyyy", "10/03/2019")
>>> fh.get_sum("yyyy/dd/mm", "2019/02/10", "2019/05/10")
15
```
# آنچه باید آپلود کنید
یک فایل پایتون که کلاس `FactorHandler` در آن پیادهسازی شده است را آپلود کنید.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.