www.dupliksv.hut.ru/pauk/glava5.html

Программная реализация системы проектирования

автоматизированных учебных курсов

Программная реализация системы осуществлена на языке программирования Pascal в среде Borland (Inprise) Delphi 4.0 [1,10,12].

 

Структура программного комплекса системы

и технические требования

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

Теоретический материал курсов оформляется в виде HTML-файлов, к которым прилагаются используемые мультимедиа-файлы (рисунки, аудио- и видеофайлы). Все учебные курсы должны располагаться в подкаталоге KURS каталога, где установлена система. Рекомендуется для каждого курса создавать отдельный каталог в подкаталоге KURS, а для каждого раздела - подкаталог в этом каталоге, в котором будут находиться все файлы, относящиеся к темам данного раздела (кроме удаленных файлов из сети).

Вопросы для тестового контроля и условия задач хранятся в базах данных. Картинки к вопросам должны храниться в формате GIF. Допускается использование анимированных картинок (формат animated GIF). Картинки рекомендуется хранить в подкаталоге KURS\IMAGE каталога, где установлена система (в нем допускается создание подкаталогов, чтобы хранить картинки, относящиеся к одному курсу в одном подкаталоге).

Для функционирования программного комплекса необходимо выполнение следующих минимальных требований к техническим и программным средствам:

Полный дистрибутив системы занимает 6.7Мб, что соответствует 5 дискетам объемом 1.44Мб. Если на компьютере установлен пакет Borland Database Engine (BDE), можно воспользоваться сокращенным дистрибутивом, занимающим 2.5Мб (2 дискеты объемом 1.44Мб).

 

Библиотека формул

Библиотека формул представляет из себя обычную библиотеку динамической компоновки (DLL). Она может быть написана на любом языке программирования. Однако, при ее написании необходимо придерживаться требований, которые изложены ниже:

1. Библиотека формул разрабатывается для каждого установленного курса (предмета) и располагается в каталоге этого курса (имя этого каталога указывается в базе данных курсов, в записи, описывающей курс).

2. Библиотека формул должна иметь имя formuls.dll.

3. Библиотека формул тесно связана с базой данных формул курса . Необходимо точное соответствие идентификаторов функций в базе данных и в библиотеке, иначе решение задач станет невозможным или задачи будут решаться неправильно.

4. Библиотека формул должна содержать следующие обязательные элементы (примеры будут приводиться на языке Pascal, поэтому для других языков программирования их придется соответствующим образом перевести):

константу:

maxperem=1000

тип

tarr=array[-maxperem..maxperem] of variant

процедуру

func(id:integer;var x:tarr)

Имена, значения и параметры должны точно соответствовать приведенным выше.

5. Процедура func на входе получает идентификатор формулы (id) и массив значений переменных (x). Соответствующая переменная вычисляется по формуле с заданным идентификатором, и ее значение записывается в соответствующий элемент массива x. Таким образом, массив x является также выходным параметром процедуры.

6. Процедура func должна иметь следующую структуру (для языка Pascal):

case id of

011 : x[001]:= <формула для вычисления переменной X001>;

012 : x[002]:= <формула для вычисления переменной X002>;

020 : x[003]:= <формула для вычисления переменной X003>;

021 : x[002]:= <еще одна формула для вычисления переменной X002>;

125 : x[010]:= begin

<блок для вычисления переменной X010, состоящий

из нескольких операторов>

end;

. . .

end; {case}

Индексом массива x является трехзначный номер переменной, указанный в ее имени (см. раздел 5.1, база данных svp.db).

Каждой записи в базе данных формул должна соответствовать формула в библиотеке формул.

Формула для вычисления переменной может состоять из нескольких строк (блока), если ее невозможно описать одной строкой. Основное требование при этом - в конце переменной должен быть присвоен результат вычислений.

7. Процедура func должна быть экспортируемой, т.е. в библиотеке должна присутствовать следующая строка (для языка Pascal):

exports func;