From 0daa8eb426d95fb6037a978f616b91dc09bf8060 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Tue, 12 Nov 2024 13:56:13 +0300 Subject: [PATCH] =?UTF-8?q?=D0=95=D1=89=D1=91=20=D1=80=D0=B0=D0=BD=D0=B4?= =?UTF-8?q?=D0=BE=D0=BC=D0=BD=D1=8B=D0=B5=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- report.tex | 104 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 82 insertions(+), 22 deletions(-) diff --git a/report.tex b/report.tex index d5d764d..5fc9a57 100644 --- a/report.tex +++ b/report.tex @@ -242,7 +242,7 @@ stringstyle =\bfseries} % шрифт для строк \small{наименование АС} \\ \vspace{0.5cm} \normalsize{ - Операции над красно-черными деревьями}\\ + Процесс управления данными в красно-чёрном дереве}\\ \vspace{-15pt} \hdashrule[-2mm]{\textwidth}{0.5pt}{} \small{наименование объекта автоматизации} \\ @@ -316,7 +316,7 @@ stringstyle =\bfseries} % шрифт для строк \subsection{Порядок оформления и предъявления заказчику результатов работ по созданию системы} -При предъявлении результатов работ Заказчику передаётся ПК базовой комплектации, с установленной лицензионной ОС <> и находящийся на гарантийном обслуживании. +При предъявлении результатов работ Заказчику передаётся ПК базовой комплектации, с установленной лицензионной ОС <> и находящийся на гарантийном обслуживании, загрузочный модуль приложения, руководство оператора, исходный код приложения. \subsection{Перечень нормативно-технических документов, методических материалов, использованных при разработке ТЗ} @@ -486,7 +486,7 @@ stringstyle =\bfseries} % шрифт для строк Требования не предъявляются. \subsection{Требования к функциям (задачам), выполняемым системой} -Системы управления данными <<Словарь-КЧД>> должна выполнять следущие задачи: +Система управления данными <<Словарь-КЧД>> должна выполнять следущие задачи: \begin{itemize} \item[$-$] Создание и поддержание структуры КЧД; @@ -503,22 +503,22 @@ stringstyle =\bfseries} % шрифт для строк \item[$-$] Вывод структуры КЧД в текстовом виде на экран. \end{itemize} -% Для выполнения поставленных задач должны быть реализованы следующие функции: -% \begin{itemize} -% \item[$-$] Создание и поддержание структуры КЧД; - -% \item[$-$] Добавление записей в КЧД; - -% \item[$-$] Удаление записей из КЧД; - -% \item[$-$] Поиск и просмотр записей в КЧД; - -% \item[$-$] Сохранение данных и структуры КЧД на диск; - -% \item[$-$] Чтение данных и структуры КЧД с диска; - -% \item[$-$] Вывод структуры КЧД в текстовом виде в консоль. -% \end{itemize} +Для выполнения поставленных задач должны быть реализованы следующие функции: +\begin{itemize} + \item Функция для создания структуры КЧД. + \item Функция для инициализации структуры КЧД с заданными параметрами. + \item Функция для добавления новой записи в структуру КЧД. + \item Функция для балансировки КЧД после добавления записи. + \item Функция для удаления записи из структуры КЧД. + \item Функция для балансировки КЧД после удаления записи. + \item Функция для поиска записи в КЧД. + \item Функция для отображения записей структуры КЧД в текстовом виде. + \item Функция для сохранения структуры и данных КЧД на диск. + \item Функция для загрузки структуры и данных КЧД с диска. + \item Функция для вывода структуры КЧД на экран в текстовом формате. + \item Функция для проверки целостности структуры КЧД при загрузке. + \item Функция для контроля и обработки входных данных от пользовтеля. +\end{itemize} \subsection{Требования к видам обеспечения} @@ -536,7 +536,65 @@ stringstyle =\bfseries} % шрифт для строк \subsubsection{Требования к информационному обеспечению системы} -Красно-черное дерево основано на структуре связного списка, который представляет собой сеть узлов, каждый из которых содержит данные, указатель на следующий узел и дополнительный бит, представляющий цвет. Память для хранения данных выделяется динамически и очищается при их удалении. +Структура данных: +\begin{itemize} + \item Класс \textbf{RBTree} (наследуется от \texttt{BinarySearchTree}): + \begin{itemize} + \item Методы: + \begin{itemize} + \item \texttt{void insert(std::string key, std::string value)}: Метод для вставки узла с заданными ключом и значением в дерево, с последующей балансировкой. + \item \texttt{void remove(std::string key)}: Метод для удаления узла с заданным ключом из дерева, с последующей балансировкой. + \end{itemize} + \end{itemize} + + \item Класс \textbf{BinarySearchTree}: + \begin{itemize} + \item Атрибуты: + \begin{itemize} + \item \texttt{Node* root}: Указатель на корневой узел дерева. + \end{itemize} + \item Методы: + \begin{itemize} + \item \texttt{Node* search(Node* node, std::string key)}: Метод для поиска узла с заданным ключом, начиная с узла \texttt{node}. + \item \texttt{Node* getMin(Node* node)}: Метод для получения узла с минимальным ключом, начиная с узла \texttt{node}. + \item \texttt{Node* getMax(Node* node)}: Метод для получения узла с максимальным ключом, начиная с узла \texttt{node}. + \item \texttt{void removeTree()}: Метод для удаления всего дерева. + \item \texttt{void printTree()}: Метод для вывода дерева. + \item \texttt{Node* insert(std::string key, std::string value)}: Метод для вставки нового узла с заданными ключом и значением. + \item \texttt{Node* remove(std::string key, Node* \&saveChildPtr)}: Метод для удаления узла с заданным ключом, сохраняя указатель на узел потомка. + \end{itemize} + \end{itemize} + + \item Класс \textbf{Node}: + \begin{itemize} + \item Атрибуты: + \begin{itemize} + \item \texttt{std::string key}: Ключ узла. + \item \texttt{std::string value}: Значение узла. + \item \texttt{bool color}: Цвет узла (красный или черный). + \item \texttt{Node* left}: Указатель на левый дочерний узел. + \item \texttt{Node* right}: Указатель на правый дочерний узел. + \item \texttt{Node* parent}: Указатель на родительский узел. + \end{itemize} + \item Методы: + \begin{itemize} + \item \texttt{void createLeafs()}: Метод для создания дочерних узлов-листьев. + \item \texttt{Node* grandparent() const}: Метод для получения указателя на дедушку узла. + \item \texttt{Node* uncle() const}: Метод для получения указателя на дядю узла. + \item \texttt{Node* brother() const}: Метод для получения указателя на брата узла. + \item \texttt{std::string toString() const}: Метод для преобразования узла в строку, включающую ключ, значение и цвет. + \item \texttt{bool isLeaf()}: Метод для проверки, является ли узел листом. + \end{itemize} + \end{itemize} + + \item Типы данных: + \begin{itemize} + \item \texttt{std::string}: Строковый тип данных, используемый для хранения ключей и значений узлов. + \item \texttt{bool}: Логический тип данных, применяемый для указания цвета узла в красно-черном дереве (красный или черный). + \item \texttt{int}: Целочисленный тип данных для хранения значений, таких как счетчики или индексы. + \end{itemize} +\end{itemize} + \subsubsection{Требования к лингвистическому обеспечению системы} @@ -619,7 +677,7 @@ stringstyle =\bfseries} % шрифт для строк \subsection{Общие требования к приемке работ по стадиям} -Должен быть предоставлен ПК базовой комплектации на гарантийном обслуживании с лицензионной ОС <>. На стадии тестирования должен быть предоставлен набор тестов и программа испытаний. На конечном этапе приёмки работы, должны быть предоставлены: исходный код программного модуля, исполняемый файл для <>. +Должен быть предоставлен ПК базовой комплектации на гарантийном обслуживании с лицензионной ОС <>. На стадии тестирования должен быть предоставлен набор тестов и программа испытаний. На этапе приёмки работы, должны быть предоставлены: исходный код программного модуля, исполняемый файл для <>. \subsection{Статус приемочной комиссии} @@ -636,7 +694,9 @@ stringstyle =\bfseries} % шрифт для строк \newpage \section{ТРЕБОВАНИЯ К ДОКУМЕНТИРОВАНИЮ} -Заказчику вместе с приложением должна быть предоставлена инструкция по использованию приложения. +Руководство оператора, предъявляемое Заказчику вместе с приложением должна быть +написана в соответсвии с ГОСТ 19.505–79 «Единая система программной документации. +Руководство оператора. Требования к содержанию и оформлению». \newpage \section{ИСТОЧНИКИ РАЗРАБОТКИ}