Ещё рандомные правки
This commit is contained in:
104
report.tex
104
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{Порядок оформления и предъявления заказчику результатов работ по созданию системы}
|
||||
|
||||
При предъявлении результатов работ Заказчику передаётся ПК базовой комплектации, с установленной лицензионной ОС <<Windows 10>> и находящийся на гарантийном обслуживании.
|
||||
При предъявлении результатов работ Заказчику передаётся ПК базовой комплектации, с установленной лицензионной ОС <<Windows 10>> и находящийся на гарантийном обслуживании, загрузочный модуль приложения, руководство оператора, исходный код приложения.
|
||||
|
||||
\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{Общие требования к приемке работ по стадиям}
|
||||
|
||||
Должен быть предоставлен ПК базовой комплектации на гарантийном обслуживании с лицензионной ОС <<Windows 10>>. На стадии тестирования должен быть предоставлен набор тестов и программа испытаний. На конечном этапе приёмки работы, должны быть предоставлены: исходный код программного модуля, исполняемый файл для <<Windows 10>>.
|
||||
Должен быть предоставлен ПК базовой комплектации на гарантийном обслуживании с лицензионной ОС <<Windows 10>>. На стадии тестирования должен быть предоставлен набор тестов и программа испытаний. На этапе приёмки работы, должны быть предоставлены: исходный код программного модуля, исполняемый файл для <<Windows 10>>.
|
||||
|
||||
|
||||
\subsection{Статус приемочной комиссии}
|
||||
@@ -636,7 +694,9 @@ stringstyle =\bfseries} % шрифт для строк
|
||||
|
||||
\newpage
|
||||
\section{ТРЕБОВАНИЯ К ДОКУМЕНТИРОВАНИЮ}
|
||||
Заказчику вместе с приложением должна быть предоставлена инструкция по использованию приложения.
|
||||
Руководство оператора, предъявляемое Заказчику вместе с приложением должна быть
|
||||
написана в соответсвии с ГОСТ 19.505–79 «Единая система программной документации.
|
||||
Руководство оператора. Требования к содержанию и оформлению».
|
||||
|
||||
\newpage
|
||||
\section{ИСТОЧНИКИ РАЗРАБОТКИ}
|
||||
|
||||
Reference in New Issue
Block a user