Coursework
Курсова робота, з курсу Основи програмування. Програма запитує користувача тип діяльності, місце відправлення , і на скільки днів він хоче піти, і програма дає йому кілька сприятливих варіантів.
Site Link https://shakhovm.pythonanywhere.com/
(ПРОБЛЕМА: pythonanywhere видає помилку, коли береться інформація з сайту omio.com, тому функціоналу з білетами на ньому немає. Але якщо запустити сайт в локалі (модуль simple_site.py), то цей функціонал буде присутній)
Коротка інструкція по використанню програми:
Опис програми: При введені користувачем бажаної ціни на білети, типу курорту та потрібних йому дат, сайт пропонує йому декілька варіантів підібраних за допомогою аналізу погоди, який здійсненний за допомогою API ключа openweather.com, та за допомогою сайту omio.com, з якого беруться дані про різноманітні шляхи пересування по всій Єворпі(таких як автобуси, поїзди чи літаки). Найважливіше, що потрібно з цього сайту це ціни на білети, адже меoтою курсової роботи є те щоб найи найоптимальніший варіант стосовно ціни, яку готовий заплатити користувач за свій відрочинок До того ж є функція вибору валюти в якій користувач хоче задати свій бюджет. Валюта конвертується за допомого API ключа currencyconverter.com.
Пакунок extra_modules:
Модуль weather_analysis:
Головна мета модуля це аналізувати дані з json файлу про погоду і визначати
чи погода є підходящої для подорожі. Для цього був розроблений модуль Weather
з методами weather_json, reader, get_season, good_weather, avarage_throught_days,
Ядро складають методи avarage_throught_days та good_weather, які аналізують чи в
конкретний день підходяща погода, а інший чи підходяща температура.
Модуль currency_converter:
Потрібен для перетворення значення ціни з одної валюти на іншу.
Клас Place призначений для об'єктів, накшатлт міст курортів.
-метод get_coordinates визначає координати місцевості
-метод distance визначає відстань між двома місцевостями
-метод wiki_information повертає коротку інформацію про місцевість с вікіпедії
Клас Price призначений для валют.
-метод currency_coefficient визначає коефіцієнт валюти по відношенні до іншої валюти
-метод currency_converter переводить одну валюту в іншу.
Функція модуля weahter_funcs get_weather_json створює json файл з прогнозом погоди на 5 днів
Функція модуля weahter_funcs get_info_from_weather записує у json файл потрібну інформацію про погоду
Пакунок data_base:
В якому знаходяться модулі розділені двома основними функціями: діставати дані з Інтернеті або зчитувати дані з txt файлів. Функція модуля currency_converter переводить одну валюту в іншу. Функція модуля map_cities get_map створює карту місцевості.
Пакунок ADT:
Директорія data_structure:
В ній знаходяться всі потрібні для ADT структури даних
Клас PlaceInfo - це ADT, який використовує масив
-Властивості:
можна встановити елемент на задану позицію;
можна отримати елемент на заданій позиції;
можна дізнатися довжину типу даних;
метод str повертає стрічку, яка являє собою зручний вигляд елементів типу даних.
Клас ResortInfo нащадок PlaceInfo
-Властивість:
метод create додає в тип даних курорти вказаного типу (аргумент key) з json файлу (аргумент path).
Клас CityInfo нащадок PlaceInfo
-Властивість:
метод create додає в тип даних міста з файлу (аргумент path)
Клас AppropriatePlaces - ADT, який використовує LinkedList, потрібен для фільтру місцевостей
-Властивості:
можна додавати нове місто в зв’язний список
можна видалити місто із списку
можна видати весь список
можна перевірити, чи список пустий
можна перевірити, чи місто є оптимальним варіантом
метод create створює список на основі типу даних ResortInfo
метод str повертає стрічку, яка являє собою зручний вигляд елементів типу даних.
Модулі з префіксом test тестують ADT
Директорія Simple_Site:
Модуль constData:
Створює константні дані для основного модуля: Створюється 3 ResortsInfo для різних типів курортів.
Модуль main_process - основний модуль, для оброблення інформації.
Модуль map_cities:
Потрібен для створення карту на основі місця відпочинку
Модуль optimal_places:
Потрібен для створення словника з білетами.
Модуль main_process:
Приклад виконання основної програми.
Ввід: тип відпочинку, дата приїзду, дата від'їзду, ціна та валюта.
Обробляється інформація про курорти обраного типу.
Вивід: Оптимальні місця для відпочинку та коротка інформація про них
Модуль simple_site - це ОСНОВНИЙ модуль, який запускає сайт на локалі.