Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пояснительная записка-2.doc
Скачиваний:
29
Добавлен:
20.09.2019
Размер:
194.56 Кб
Скачать

Структурное описание разработки

Структура проекта реализована следующим образом:

TList

Window

MainClass

FileOutputStream

FileInputStream

Frame

список

Запуск программы начинается с создания объекта класса MainClass. Этот класс создает класс Window, который реализует интерфейс с пользователем по средствам класса AWT. Класс AWT предоставляет собой набор стандартных управляющих элементов. AWT наследуется классом Window.

Window в основном управляет объектом класса TList. TList представляет собой класс, реализующий циклический двусвязный список.

Двусвязный циклический список – это структура данных множества переменных, связанных между собой указателями. Каждый элемент списка содержит два указателей на аналогичные элементы (элементы такого же типа). Цикличность выражена в том, что указатель «на следующий» последнего элемента указывает на первый элемент данного списка.

Список содержит в себе объекты, классы которых являются наследниками интерфейса object.

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

Название метода

Тип возвращаемого значения

Краткое описание метода

insert_numb

void

Вставка объекта в список по номеру

del_numb

void

Удаление объекта из списка по номеру

find_max

int

Поиск максимального объекта в списке

find_min

int

Поиск минимального объекта в списке

insert_por

void

Вставка объекта в список с сохранением порядка

sort

void

Сортировка списка

destroy

void

Очищение списка

size

int

Размер списка (кол-во объектов в списке)

Get_obj

object

Получение объекта по номеру

BSave_list

void

Сохранение списка в двоичный файл

BLoad_list

void

Загрузка списка из двоичного файла

Два метода BLoad_list и BSave_list позволяют загружать и сохранять текущий список в файловые потоки FileOutputStream и FileInputStream соответственно.

Также в проекте реализован класс BigInt, который является наследником интерфейса object. Это дает нам возможность хранения объекта класса BigInt в нашей структуре данных. Этот класс реализует Целые произвольной длины во внутреннем двоичном представлении – это динамический массив байтов. Так как массив байтов динамический, то целесообразно хранить текущий размер массива, т.е. размер хранимого числа в байтах. Знак числа определяется дополнительным кодом. Класс BigInt содержит следующие методы:

Название метода

Тип возвращаемого значения

Краткое описание метода

Get

int

Загрузка из текстовой строки

Put

string

Сохранение в текстовую строку

Load

int

Загрузка из символьного потока

Save

void

Сохранение в текстовый поток

BLoad

int

Загрузка из файлового потока

BSave

void

Сохранение в файловый поток

Type

int

Возращение идентификатора класса

Name

string

Возвращение имени класса

Cmp

int

Сравнение двух объектов

Copy

object

Создание динамической копии объекта

Add

int

Сложение двух объектов

getsign

boolean

Получение знака числа

inc

boolean

Инкремент числа

In

void

Ввод числа из внешней формы

smul

void

Умножение числа на другое число

sdiv

BigInt

Деление двух чисел

sub

void

Вычитание из числа другого числа

GetSize

int

Получение размера числа (в байтах)

GetPD

byte

Получение внутренней формы числа

Out

String

Вывод во внешнюю форму числа