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

Готовое_КР_Календарь

.pdf
Скачиваний:
5
Добавлен:
07.06.2025
Размер:
859.07 Кб
Скачать

3 РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ

3.1 Общие сведения

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

3.1.1 Наименование программы

Официальное название приложения: "Календарь". Английская версия названия: "Calendar". Данное наименование отражает основные функциональные возможности и назначение разработанного приложения.

3.1.2 Программное обеспечение, необходимое для функционирования

программы

Для корректного функционирования данного приложения данного

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

на OC Aurora.

3.1.3 Язык программирования, на котором написана программа

Для написания приложения используется язык C++.

14

3.2 Функциональное назначение приложения (классы

решаемых задач и функциональные ограничения на применения)

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

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

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

3.3 Описание логической структуры приложения

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

3.3.1 Алгоритмы, используемые в программе

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

3.3.1.1 Алгоритм добавления события

Функция addEvent() реализует простой и эффективный алгоритм добавления нового события в календарное приложение. Алгоритм последовательно выполняет три основные операции: сначала открывает

15

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

Блок-схема алгоритма представлена на рисунке 3.1

Рисунок 3.1 – Алгоритм проверки корректности систем счисления

Алгоритм имеет линейную структуру без ветвлений, отличается минимальной нагрузкой на систему и обеспечивает мгновенную обратную связь пользователю

3.1.2 Алгоритм удаления события

Алгоритм функции deleteEvent() выполняет удаление события из базы данных календарного приложения по указанному идентификатору с последующим обновлением отображения событий. Процесс начинается с открытия транзакции базы данных для обеспечения целостности операции. В

16

рамках этой транзакции выполняется SQL-запрос DELETE, который удаляет запись из таблицы events, где значение столбца id соответствует переданному параметру. После успешного выполнения операции удаления автоматически вызывается функция loadEventsForSelectedDate(), которая обновляет список отображаемых событий для текущей выбранной даты, обеспечивая актуальность данных в пользовательском интерфейсе.

Блок-схема представлена на рисунке 3.2

Рисунок 3.2 – Алгоритм удаления события.

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

3.1.3 Алгоритм загрузки событий для выбранной даты

Функция loadEventsForSelectedDate() выполняет загрузку и отображение событий для выбранной даты в календарном приложении. Алгоритм начинается с очистки текущей модели событий eventsModel.clear(), что обеспечивает подготовку к загрузке новых данных без дублирования. Затем открывается транзакция базы данных db.transaction, внутри которой выполняется SQL-запрос, извлекающий все записи для указанной даты,

17

отсортированные по времени. Полученные данные обрабатываются в цикле,

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

Блок-схема представлена на рисунке 3.3

Рисунок 3.3 – Алгоритм загрузки событий для выбранной даты.

Особенностью алгоритма является использование автоматическая сортировка событий по времени.

3.3.1.2 Алгоритм проверки наличия событий

Функция hasEvents(date) проверяет наличие событий в базе данных для указанной даты. Алгоритм начинается с инициализации переменной result

значением false, которая будет хранить итоговый результат проверки. Затем открывается транзакция базы данных (db.transaction), в рамках которой

18

выполняется оптимизированный SQL-запрос с передачей параметра date. Этот запрос возвращает первую найденную запись для указанной даты (если такая существует), не загружая все данные, что повышает производительность. После выполнения запроса переменная result получает значение true, если количество строк в результате (rs.rows.length) больше нуля, что означает наличие хотя бы одного события для указанной даты. В противном случае result остается false.

По завершении транзакции функция возвращает полученное значение result.

Блок-схема алгоритма представлена на рисунке 3.4

Рисунок 3.4 – Алгоритм проверки наличия событий

Алгоритм эффективен за счет использования LIMIT 1 в SQL-запросе, что минимизирует объем обрабатываемых данных, и не требует дополнительных операций с моделью или интерфейсом, выполняя только проверку наличия записей.

19

3.1.4 Структура программы приложения с описанием функций

составных частей и связей между ними

Программа состоит из графического интерфейса (QML) - MainPage.qml

[3].

Элементы интерфейса:

Repeater - календарная сетка с днями месяца;

Button – кнопки для добавления, удаления, обновления событий;

SilicaListView - список событий на выбранную дату;

Dialog компонент для добавления,редактирования событий:

Логика взаимодействия:

1.При запуске приложения инициализируется база данных и загружаются события на текущую дату;

2.При выборе даты в календаре вызывается

loadEventsForSelectedDate().

3. При добавлении/редактировании события открывается диалоговое

окно.

4. Все изменения сразу сохраняются в БД и отображаются в интерфейсе.

20

3.2 Технические средства, которые используются при работе

программы

Для разработки приложения используются такие языки и технологии, как

QML для создания интерфейса и C++ для реализации функций программы.

В качестве среды разработки выступает AuroraIDE - кроссплатформенная среда для разработки мобильных приложений.

Также использовалась библиотека Qt Quick для создания адаптивного интерфейса для копирования результата. [4]

3.3Демонстрация работы приложения

При запуске приложения сразу видны календарь, а также кнопка

добавления события (Рисунок 3.5).

21

Рисунок 3.5 – Главное окно приложения

На рисунке 3.6 представлена работа добавления события. Необходимо ввести название событие, а также его время в необходимом формате.

Описание события пишется по желанию.

22

Рисунок 3.6 – Тестирование работы приложения

На рисунке 3.7 показана работа программы при вводе времени в

неправильном формате. Приложение выводит соответствующее сообщение.

23