Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОДЕРЖАНИЕ тпр.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
775.69 Кб
Скачать

2.6 Описание структур данных

Структура данных программы описана в таблице 2.1

Таблица 2.1 – Структуры данных программы

№ п/п

Иден-тифи-катор

Тип

Размер,

Бит

Назначение

1

a

double[]

64 * a.Count

Содержит запасы поставщиков.

2

b

double[]

64 * b.Count

Содержит нужды потребителей.

3

с

double[][]

64 * b.Count

* a.Count

Содержит матрицу стоимостей.

4

x

double[][]

64 * b.Count

* a.Count

Содержит матрицу перевозок.

5

f

double[][]

64 * b.Count

* a.Count

Содержит матрицу, отмечающую положение базисных элементов.

6

quanOfVar

int

32

Содержит количество базисных элементов, которое нужно добавить к плану.

7

bal

int

32

Содержит разницу между суммарным запасом поставщиков и суммарной потребности потребителей.

8

is1r1c

bool

1

Отражает факт нахождения в определённом свободном элементе матрицы перевозок наличие на этой строке и на этом столбце более одного базисного элемента.

9

isopt

bool

1

Отражает факт положительности цен циклов пересчётов до данного.

10

isNegative

bool

1

Отражает факт отрицательности данного цикла пересчёта.

11

numofmatr

int

32

Содержит количество итераций, за которое была решена задача.

12

numofc

int

32

Содержит количесво посчитанных циклов пересчёта.

13

circle

List<Point>

64*length

Содержит цикл пересчёта

2.7 Описание программной системы «Оптимизация закупки топлива авиакомпанией»

Программа «Оптимизация закупки топлива авиакомпанией» производит на основании введённых данных: матрицы стоимостей, запасов поставщиков и потребностей потребителей, - вычисление оптимального плана перевозок топлива связкой методов: северо-западного угла и распределительного.

Данная программа разработана на Intel-Совместимом компьютере с операционной системой Windows 7 на языке программирования C# с помощью среды разработки Microsoft Visual Studio 2010.

Внешний вид программного интерфейса показан на рисунке 2.2

Рисунок 2.2 – Интерфейс программы

Интерфейс программы имеет три поля ввода и одно поле вывода, а также четыре кнопки. Функционал программы:

- Расчёт опорного плана методом северо-западного угла и оптимального плана распределительным методом

- Выдача оптимального плана на экран, а также количества проделанных итераций и высчитанных циклов пересчёта.

- Сохранение начальных условий

- Загрузка начальных условий

- Сохранение результата

Инструкция по использованию программы:

Для выдачи результата достаточно ввести данные в первые три поля и нажать на кнопку «Выполнить отчёт», однако данные нужно ввести в определённой форме:

Векторы запасов и потребностей вводятся в поля «Поставщики» и «Потребители» по правилу:

<число 1>\n

<число 2>\n

<число 3>\n

<число m>

Где \n – перенос строки (нажатие клавиши Enter).

Как видно из примера, значения отделяются знаком переноса без пробелов. Кроме того, знак переноса после последнего элемента не ставится.

Матрица стоимостей вводится в одноимённое поле по правилу:

<число 1 1>*<число 1 2>*…*<число 1 n>\n

<число 2 1>*<число 2 2>*…*<число 2 n>\n

<число 3 1>*<число 3 2>*…*<число 3 n>\n

<число m 1>*<число m 2>*…*<число m n>

Где \n – перенос строки (нажатие клавиши Enter);

* - нажатие клавиши «Пробел».

Как видно из примера, строки отделяются знаком переноса без пробелов. Кроме того, знак переноса после последней строки не ставится. Элементы строки разделяются одним пробелом. Пробел после последнего элемента строки не ставится.

Десятичная дробь вводится со знаком «,» (запятая).

Помимо корректности ввода нужно следить за выполнением математических взаимосвязей. Количество строк матрицы стоимостей должно соответствовать количеству поставщиков, а количество столбцов – количеству потребителей. Также должно выполняться условие (2.1) (Сбалансированность задачи). Если задача несбалансированна, нужно провести операции по балансировке, приведённые в подразделе 1.

Если все условия выполнены, в поле ответ будет высвечен результат (Структура результата показана в подразделе 10).