- •Курсовая работа
- •Пояснительная записка
- •Содержание
- •Задание
- •Структурное описание разработки
- •Функциональное описание
- •Класс tList
- •Класс BigInt
- •Класс Elm
- •Класс window
- •Класс MainClass
- •Интерфейс object
- •Приложение Класс MainClass
- •Класс window
- •Класс tList
- •Класс Elm
- •Класс BigInt
- •Интерфейс object
Структурное описание разработки
Структура проекта реализована следующим образом:
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 |
Вывод во внешнюю форму числа |