CS logo CS dept
space
Титульный лист
Команда разработчиков
План проекта
Спецификация требований
Документация проектирования
Журнал
Valid HTML 4.01!
Valid CSS!
Yellow Pages
HotLog

Документация проектирования

  1. Проект архитектуры

    Проектируемая программная система состоит из:
    • подсистемы интерфейса.
    • подсистемы обработки.
    • модуль обработки ошибок.



    Модули связаны следующим образом: из главной формы (форма таблицы) может быть вызвана форма ограничений. Функции модуля импорта и модуля обработки вызываются из модуля формы таблицы. А функции модуля экспорта из модуля обработки. Модуль обработки ошибок контролирует коды возвратов функций и при необходимости выводит соответствующую информацию пользователю.

    Модуль формы таблицы (включая модуль импорта дынных) – в данной форме пользователь указывает имя обрабатываемого файла, после этого данный файл представляется пользователю (это необходимо, чтобы во время работы программы пользователь мог изменять условия задачи прямо в программе) затем данные извлекаются из файла, в котором хранится условие задачи (импортный файл указывает пользователь) для модуля обработки данных.

    Модуль формы ограничений – модуль для внесения дополнительных данных задачи, в него вносятся основные данные, с которыми будет контактировать программа. В функции данного модуля входит прочтение введенных имен ячеек и доп. ограничений и перевод их для дальнейшего использования программой.

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

    Модуль импорта данных – данный модуль позволяет извлекать данные из файла, в котором хранится условие задачи (импортный файл указывает пользователь) для модуля обработки данных. Извлекаемые данные записывается в модуль формы таблицы.

    Модуль обработки данных – этот модуль извлекает информацию из модуля импорта данных, модуля формы ограничений, обрабатывает их для получения данных задачи для LP-solver, затем записывает в конечный файл полученые данные.

    Модуль экспорта данных – данный модуль получает данные из модуля обработки данных и записывает их в файл указанный пользователем.
  2. Проект интерфейса пользователя.

    Внешний вид системы.

    Когда пользователь запустит программу, первое, что он увидит это главная форма, представленная на картинке ниже (рис. 1.). Меню этой формы позволяет открыть файл электронной таблицы с данными или создать его с нуля [последняя функция не утверждена на 100%, возможно, позднее её не будет] – вкладка «Файл». Также, на форме имеется окно для отображения электронной таблицы.

    Рис. 1
    Рис. 1

    Рис. 2
    Рис. 2

    Через команду «Решить» на вкладке «Данные»(рис 2.) пользователь может перейти на этап формирования задачи для экспорта. Тогда перед пользователем появится форма изображенная на рисунке 3.

    Посредством данной формы производится вся основная работа пользователя с программой. В первую очередь: выбор целевой ячейки и указание ограничений на поиск решения (рис. 4). Также, пользователь должен указать к какому значению стремится целевая функция (максимальное или минимальное).

    Рис. 3
    Рис. 3

    Нажав кнопку «Добавить» в области «Ограничения», пользователь увидит форму добавления ограничения, где он должен будет выбрать ссылку на ячейку с ограничением, знак отношения и проедельное значение ограничения, после чего, записанное ограничение добавится к уже введенным и отобразится в специальном окошке. Записанные ограничения можно изменять и удалять.

    Рис. 4
    Рис. 4

    По нажатии кнопки «Выполнить» пользователь подтверждает правильность введенных данных и запускает операцию поиска решения.
  3. Проект подсистем.

    Модуль обработки ошибок.
    1. На входе, модуль получает код возврата отработанной функции.
    2. Далее сверяем этот код с кодами содержащимися в таблице возвратов функций (таблица содержит коды ошибок и информацию о них).
    3. После нахождения соответствия выводим на экран информацию об ошибке.
    Примечание: По умолчанию, при успешном завершении, каждая функция возращает код "0". Если на входе модуль обработки ошибок получил код "0", то никаких сообщений об ошибках на экран выведено не будет.
    errors

    Модуль экспорта данных.
    1. На входе модуль получает обработанные данные и имя файла, в который необходимо их сохранить.
    2. Создаётся файл с указанным именем.
    3. Данные помещаються в файл.
    4. Модуль завершает работу и возвращяет соответствующий код возврата (при успешном выполнении - "0").
    Примечания:
    - Конечный файл будет иметь расширение "txt".
    - Если на каком-либо этапе возникла ошибка, то модуль прекращает работу и возвращает соответсвующий ей код возврата.

    export

    Модуль обработки данных.
    1. При указании целей формы в модуле формы таблицы целевой функции указанные данные переводятся в соответствующие переменные.
    2. Определяется «min» или «max» и записывается в соответствующую строковую переменную (string CF).
    3. Дописываются другие значения (х1, х2 и ...).
    4. Обрабатываются дополнительные ограничения (для каждого ограничения существует соответствующая строковая переменная (Stroka[a]), в которую вначале записываться значения иксов, далее знак («>» «<» «=» «>=» «<=») и числовое значение).
    Примечание: Допорлнительные ограничения представлены в виде массива переменных для простоты обработки в цикле.
    processing

Петрозаводск - 2008