Ещё рандомные правки

This commit is contained in:
2024-11-12 13:56:13 +03:00
parent 56c0e35987
commit 0daa8eb426

View File

@@ -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.50579 «Единая система программной документации.
Руководство оператора. Требования к содержанию и оформлению».
\newpage
\section{ИСТОЧНИКИ РАЗРАБОТКИ}