3.ТО (Готовое ДЗ неизвестного варианта (5))
Описание файла
Файл "3.ТО" внутри архива находится в папке "Готовое ДЗ неизвестного варианта (5)". Документ из архива "Готовое ДЗ неизвестного варианта (5)", который расположен в категории "". Всё это находится в предмете "объектно-ориентированное программирование (ооп)" из 3 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "объектно-ориентированное программирование (ооп)" в общих файлах.
Онлайн просмотр документа "3.ТО"
Текст из документа "3.ТО"
Московский государственный технический университет им. Н.Э.Баумана
_________________________________________________________________
Утверждаю: | |
Большаков С.А. | "__"_____________2008 г. |
Домашнее задание по дисциплине ПППО
“< Классы таблиц >”
<Техническое описание>
(вид документа)
A4
(вид носителя)
8
(количество листов)
ИСПОЛНИТЕЛЬ: | |
студент группы ИУ5-61 | Забаева А. Л. |
Большаков С.А. | "__"_____________2008 г. |
Москва - 2008
1. ОБЩИЕ СВЕДЕНИЯ О ПРОГРАММНОМ ОБЕСПЕЧЕНИИ.
Система классов написана на языке С++ в версии компании Borland Int. Файлы программного продукта:
Файл | Описание | Размер |
Cell.h | Файл заголовка | 758 b |
Column.h | Файл заголовка | 343 b |
Abstr.h | Файл заголовка | 312 b |
List.h | Файл заголовка | 1.93 Kb |
Node.h | Файл заголовка | 375 b |
Table.h | Файл заголовка | 2.52 Kb |
About.cpp | Файл исходного кода | 191 b |
Main.cpp | Файл исходного кода | 1.96 Kb |
Main.exe | Исполняемый файл | 40.38 Kb |
2. СТРУКТУРА КЛАССОВ СИСТЕМЫ.
2.1. ОПИСАНИЕ КЛАССОВ
Система классов «Таблица» состоит из 6 классов – Abstr(абстрактный класс-строка),Cell (класс ячейка, наследованный от класса строка), Node (класс узел, элемент списка, Включает либо узел, либо строку-название), List (список, состоящий из узлов, наследован от абстрактного класса строка),Column(столбец-спиоск узлов,с названием) и Table (класс Таблица).
Абстрактный класс Abstr предназначен для объявления общих функций, таких как распечатка, установка значения строки, и общих данных - поле строка.
Класс Cell предназначен для хранения непосредственно текстовых данных. Он содержит текстовые данные, номер строки и столбца в таблице. Для конечного пользователя в public доступе содержатся функции, в основном, контрольного типа – печать ячейки, просмотр её свойств, а также функция замены текста в ячейке. Сделано это для того, чтобы не дать пользователю возможность случайно изменить «внутрисистемные» переменные класса. Можно распечатать строку и колонку, в которой содержится ячейка.
Кроме того, объект ячейки в отдельности не имеет ценности для конечного пользователя.
Класс Node нужен для того чтобы оперировать им в списке. Он включает в себя строку- в конечном счете это или ячейка или название ,заголовок столбца или строки. Также он содержит указатель на предыдущую запись и следующую, для удобства оперирования в списке.
Класс List это реализация списка, контейнерный класс, включает в себя узлы. Имеет начало списка, конец списка, текущий узел.В список можно добавлять узлы, удалять узлы из списка, распечатать список.
Класс Column – это класс-контейнер наследник класса список . Он предназначен для хранения столбца таблицы. Физически, контейнер представляет собой массив объектов Cell. Можно при создании задать номер столбца и заголовок столбца
Класс Table – это класс Таблица с перегруженной функцией печати таблицы. Это контейнерный класс, он содержит указатель на список столбцов. В таблицу можно добавить столбец, добавить строку, распечатать число строк и столбцов таблицы и заголовки столбцов.
2.2. ДИАГРАММА КЛАССОВ СИСТЕМЫ
2.3. МОДУЛЬНАЯ СТРУКТУРА КЛАССОВ
2.4. ОПИСАНИЕ ДАННЫХ КЛАССОВ
Название | Тип | Описание |
Abstr::Value | Char * | Текст в строке |
Cell::Row | Int | Позиция ячейки в таблице по горизонтали |
Cell::Col | Int | Позиция ячейки в таблице по вертикали |
Node::Prev | Node* | Указатель на предыдущий узел |
Node::Next | Node* | Указатель на следующий узел |
Node::A | Abstr* | Указатель на текст узла |
List::Head | Node* | Первый узел списка |
List::Current | Node* | Текущий узел списка |
List::Tail | Node* | Последний узел списка |
List::Count | Int | Количество элементов в списке |
Column::Number | Int | Номер столбца в таблице |
Table:: RowCount | Int | Количество строк в таблице |
Table:: ColCount | Int | Количество столбцов в таблице |
Table:: Columns | List* | Указатель на список столбцов |
2.5. ОПИСАНИЕ ФУНКЦИЙ КЛАССОВ
Функции класса Abstr
Класс Abstr | |||
Название метода | Входные данные | Выходные данные | Описание |
AbstStr | Конструктор | ||
AbstStr | char* | Конструктор | |
~AbstStr | Деструктор | ||
| Печать строки | ||
Класс Cell | |||
Cell | int, int, char* | Конструктор | |
| Печать свойств ячейки | ||
operator+ | char* | Cell* | Добавляет текст в ячейку |
PrintCol | Печать столбца ячейки | ||
PrintRow | Печать строки ячейки | ||
PrintValue | Печать содержимого ячейки | ||
Класс Node | |||
Node | Конструктор | ||
Node | Abstr* | Конструктор | |
~Node | Деструктор | ||
Класс List | |||
List | Конструктор | ||
List | char* | Конструктор | |
~List | Деструктор | ||
Operator+ | Node* | Добавить узел | |
Add | Node* | Добавить узел | |
Delete | Node* | Удалить узел | |
Operator- | Node* | Удалить узел | |
| Распечатка списка | ||
Класс Column | |||
Column | int | Конструктор | |
Column | char*, int | Конструктор | |
~Column() | Деструктор | ||
| Распечатка столбца | ||
Класс Table | |||
Table | Конструктор | ||
Table | char* | Конструктор | |
~Table | Деструктор | ||
AddCol | char* | Column* | Добавить столбец в таблицу |
AddRow | List* | void | Добавить строку в таблицу |
PrintTitles | void | Распечатать заголовки столбцов | |
PrintTable | void | Распечатать таблицу | |
GetColCount | Int | Количество столбцов | |
GetRowCount | Int | Количество строк |
3. ДИАГРАММА ОБЪЕКТОВ ТЕСТОВОГО ПРИМЕРА
4. ОПИСАНИЕ ТЕСТОВОГО ПРИМЕРА
См. документ «Описание тестового примера».
5. ОПИСАНИЕ ОТЛАДКИ КЛАССА
-
Освобождение указателя, возвращаемого функцией.
-
Несоответствие типов при работе с указателями.
-
Неверное явное преобразование типов.