Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 / курсовая.docx

.pdf
Скачиваний:
1
Добавлен:
16.05.2025
Размер:
1.46 Mб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА ПРИКЛАДНОЙ ИНФОРМАТИКИ

КУРСОВАЯ РАБОТА (ПРОЕКТ) ЗАЩИЩЕНА С ОЦЕНКОЙ

РУКОВОДИТЕЛЬ

канд. техн. наук, доц.

 

 

 

В. А. Килимник

должность, уч. степень, звание

 

подпись, дата

 

инициалы, фамилия

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ (ПРОЕКТУ)

Разработка Telegram-бота на языке программирования Python

по дисциплине: Технологии программирования

РАБОТУ ВЫПОЛНИЛ

 

 

 

 

 

СТУДЕНТ гр. №

Z0411

31.05.2023

 

М. В. Карелина

 

 

номер группы

 

подпись, дата

 

инициалы, фамилия

Студенческий билет №

2020/3477

 

 

 

 

 

 

 

 

 

Шифр ИНДО

Санкт-Петербург 2023

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

Факультет № _____________

Кафедра №____41____________

Задание по курсовому проектированию

На тему:

Разработка Telegram-бота на языке программирования

__________________________________________________________________

______

Выдано студенту_______________

группа № Z0411

________ 2023г.

Срок выполнения__31.05.2023г.____

1. СОДЕРЖАНИЕ ПРОЕКТА

Введение. Постановка задачи. Структура программы. Текст программы. Описание программы. Описание применения. Заключение. Список использованных источников.

2. ПРОГРАММНЫЕ СРЕДСТВА И ИНСТРУМЕНТЫ РЕАЛИЗАЦИИ

1)Компилятор PyCharm

2)Telegram API

3)Библиотеки sqlite3, telegram

4)SQLiteStudio

3.ОФОРМЛЕНИЕ ПРОЕКТА

1)Пояснительная записка, оформленная в соответствии требованиями на оформление пояснительной записки.

2)Результат вывода программы или приложения.

4.УКАЗАНИЯ

2

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

5.ЛИТЕРАТУРА

1.Telegram: https://core.telegram.org/api 20.05.2023

2.ГОСТ 7.32-2017 Система стандартов по информации, библиотечному и издательскому делу. Отчет по научно-исследовательской работе.

Структура и правила оформления. 25.05.2023

Руководитель курсовой работы ________Килимник В.А._______(подпись)

Задание принял к исполнению _______________________ (подпись студента)

3

Сокращения и обозначения

БД – база данных.

API – (от англ. Application Programming Interface) программный интерфейс приложения В контексте API слово «приложение» относится к любому ПО с определенной функцией. Интерфейс можно рассматривать как сервисный контракт между двумя приложениями. Этот контракт определяет,

как они взаимодействуют друг с другом, используя запросы и ответы.

Документация API содержит информацию о том, как разработчики должны структурировать эти запросы и ответы.

IDE – (от англ. integrated development environment — IDE), также единая среда разработки, ЕСР — комплекс программных средств, используемый программистами для разработки программного обеспечения.

4

Термины и определения Блок-схема – схематичное представление алгоритма. Для ее

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

указывающие последовательность шагов.

API токен – идентификатор, выпущенный пользователем. Позволяет изменить способ аутентификации и получить Access Token для авторизации дальнейших вызовов API.

PyCharm – интегрированная среда разработки языка программирования

Python.

Python – высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью,

ориентированный на повышение производительности разработчика и качества кода. Язык является полностью объектно-ориентированным, в том плане, что все является объектами.

SQL - декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных,

управляемой соответствующей системой управления базами данных.

Telegram – кроссплатформенная система мгновенного обмена сообщениями (мессенджер) с функциями обмена текстовыми, голосовыми и видеосообщениями, а также стикерами, фотографиями и файлами многих форматов. Также можно совершать аудио- и видеозвонки, устраивать трансляции в каналах и группах, организовывать конференции,

многопользовательские группы и каналы. Функционал приложения может быть значительно расширен при помощи ботов.

5

 

 

Оглавление

 

Введение .........................................................................................................................................

7

1.

Постановка задачи .................................................................................................................

8

 

1.1

Цели и задачи .......................................................................................................................

8

2.

Разработка блок-схем............................................................................................................

9

3.

Разработка программы ........................................................................................................

10

 

3.1

Описание программы ........................................................................................................

10

 

3.2

Текст программы ...............................................................................................................

10

 

3.3

Результаты тестирования..................................................................................................

21

 

3.3.1 Положительное тестирование ...................................................................................

21

Заключение...................................................................................................................................

24

Список используемой литературы.............................................................................................

25

6

Введение Данная работа предназначена для закрепления учебного материала,

изученного по курсу «Технологии программирования».

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

Цель курсовой работы – выработать навыки использования алгоритмов для решения конкретной задачи, закрепить знания по программированию на языке Python, а также познакомиться с созданием Telegram-ботов.

Кроме этого, курсовая работа предназначена для развития навыков оформления сопроводительной документации к разработанному программному обеспечению.

7

1. Постановка задачи

1.1 Цели и задачи

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

Бот должен быть понятен в использовании.

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

Для достижения цели будут выполнены следующие задачи:

- изучение структурного и модульного программирования, работы с API

Telegram, с базами данных, а также с библиотеками Telegram и SQLite на языке программирования Python;

-построение схем базы данных, общей работы программы и основных алгоритмов;

-составление спецификации основных подпрограмм;

-разработка программы;

-оформление курсовой работы на тему «Разработка Telegram-бота на языке программирования Python».

1.2 Выбор средства разработки

В качестве среды разработки был выбран IDE PyCharm, так как PyCharm

делает разработку максимально продуктивной благодаря функциям автодополнения и анализа кода, мгновенной подсветке ошибок и быстрым исправлениям.

В качестве основного языка разработки был выбран Python по причине простого синтаксиса, большого количества подключаемых библиотек, его динамичности и распространенности, особенно при выполнении задач в данной предметной области. Также часть кода была написана на «чистом»

SQL, который является основным языком работы с базами данных.

8

2. Разработка блок-схем

Так как разрабатываемый Telegram-бот опирается на работу с базой данных, для начала разработаем структуру самой базы аниме. Она будет состоять одной таблицы: «Аниме» (Anime).

Теперь перейдем к разработке структуры самой программы. Ниже будет представлена основная структура программы, структура отдельных функций будет рассмотрена отдельно. Работа с ботом начинается с команды /start, после чего пользователь может выбрать любую из доступных функций. Логического конца программы нет, то есть пользователь может постоянно переходить от одной функции к другой. Общая блок-схема алгоритма представлена на рисунке №1.

Рисунок 1 - Общая блок-схема программы

Теперь перейдем к разработке структуры отдельных функций

9

3.Разработка программы

3.1Описание программы

3.2Текст программы

Листинг 1. Файл h.py

from sqlalchemy import create_engine, Column, Integer, String, Float, LargeBinary

from sqlalchemy.orm import sessionmaker, declarative_base

engine = create_engine('sqlite:///Naruto_World.db', echo=True) Base = declarative_base()

class Anime(Base): __tablename__ = 'anime'

anime_id = Column(Integer, primary_key=True) anime_name_r = Column(String)

anime_name_e = Column(String) release_date = Column(Integer) genre = Column(String) episodes_number = Column(Integer) rating = Column(Float)

def __repr__(self):

return f'Аниме [ID: {self.anime_id}, Название на русском: {self.anime_name_r}' \

f', Название на английском: {self.anime_name_e},

Год выпуска: {self.release_date}' \

f', Жанр: {self.genre}, Количество эпизодов:

{self.episodes_number}, Рейтинг: {self.rating}]'

Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) session = Session()

# Создаем объекты Anime и добавляем их в базу данных

10

Соседние файлы в папке 2