Наименование программы: “Обучающая система по ассемблеру”.
Исполнимый файл – “elteach.exe”.
Программный комплекс работает под операционной системой Windows 9x/NT 4.0/Me/2000. Также для работы программного комплекса необходимо наличие BDE Administrator.
Программный комплекс написан на языке Object Pascal в интегральной среде разработчика Delphi 5.0
Программный комплекс предназначен для обучения курсу ассемблера.
Программный комплекс состоит из трех составных частей.
- графической оболочки, которая представляет собой графический интерфейс пользователя;
- системной части, осуществляющей операции ввода-вывода;
- функциональной части.
Алгоритм комплекса имеет два основных разветвления:
- создание обучающего курса;
- обучение курсу.
Программный комплекс использует следующие аппаратные средства:
- объем оперативной памяти не менее 32МБ;
- процессор не ниже Pentium 100;
- свободное место на жестком диске не менее 3МБ;
- монитор SVGA;
- мышь;
- клавиатура.
Для запуска программы необходимо выполнить файл elteach.exe.
Программа динамически использует доступную операционной системе оперативную и виртуальную память. Объем занимаемого ею места на жестком диске – примерно 5 мегабайт.
Для обучающего приложения входными данными является заполненная база курса (таблицы Paradox и файлы мультимедиа)
Выходные данные программного комплекса – структурированное представление обучающей информации.
Разработка структуры программно – методического комплекса - это очень важный этап, так как от правильной разработки структуры комплекса зависит его дальнейшее развитие, модификация, адаптация.
Модульная структура программно – методического комплекса обеспечивает его адаптацию и удобство модернизации, что обеспечивает эффективность использования комплекса разными пользователями при решении поставленных задач.
Все функции разрабатываемого программного комплекса можно разбить на три части:
- внешняя оболочка (GUI);
- системная часть осуществляет операции ввода-вывода, вызов внешних модулей;
- функциональная часть выполняет основные функции, которые осуществляют решение поставленной задачи.
Внешняя оболочка в требованиях к современному программному продукту представляет собой удобный графический интерфейс. При правильной разработке программы, он должен как можно меньше зависеть от остальной части программы.
Современные средства разработки приложений также позволяют отделять графический интерфейс от логики самого приложения. При разработке программного комплекса предпринимались попытки, где это возможно, отделить графический интерфейс от остальных частей программного комплекса.
Системная часть представлена несколькими модулями, а именно:
- модуль создания курса;
- модуль обучения;
- модуль контроля;
- системный модуль, содержащий используемые функции ввода-вывода.
- модуль статистики.
Модуль создания курсов представляет собой удобный графический интерфейс для формирования преподавателем обучающего курса.
Обучающий модуль выводит в удобном виде обучающий курс.
Модуль контроля обеспечивает контроль знаний, полученных при помощи обучающей системы.
Модуль статистики позволяет собирать статистику обучения по каждому студенту.
Cтруктура программного комплекса и более детальная взаимосвязь модулей представлены на рисунке Б.1 приложения Б.
Модуль для обучения. Содержит процедуры, функции и элементы графического интерфейса для представления обучающей информации.
Процедура, реализующая возможность навигации по курсу вперед –назад, BrowserNavigate.
Текст процедуры представлен рисунке 2.1
procedure BrowserNavigate(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
var
NewIndex: Integer;
begin
NewIndex := HistoryList.IndexOf(URL);
if NewIndex = -1 then
begin
if (HistoryIndex >= 0) and (HistoryIndex < HistoryList.Count - 1) then
while HistoryList.Count > HistoryIndex do
HistoryList.Delete(HistoryIndex);
HistoryIndex := HistoryList.Add(URL);
end
else
HistoryIndex := NewIndex;
if UpdateCombo then
begin
UpdateCombo := False;
NewIndex := URLs.Items.IndexOf(URL);
if NewIndex = -1 then
URLs.Items.Insert(0, URL)
else
URLs.Items.Move(NewIndex, 0);
end;
URLs.Text := URL;
end;
Рисунок 2.1 – Процедура для навигации по курсу
Системный модуль. Содержит процедуры и функции для внутренних операций чтения – записи, необходимых для работы приложения.
Процедура для выгрузки на винчестер необходимой информации при запуске приложения первый раз procedure ReadBase(path_to : String), где path – путь для выгрузки информации из баз.
Модуль для шифрования текстовой информации.
Содержит функции для шифрования информации и расшифровки информации. Метод шифрования базируется на понятиях открытого и закрытого ключа. Для увеличения надежности шифрования используется случайный выбор шифрующего кода, что позволяет одной и той же информации выглядеть по-разному в зашифрованном виде. Используется для защиты взлома тестирующей системы.
function Kodir(s : String; K : Integer) : String. Кодирует сообщение S открытым ключом K. Возвращает зашифрованный текст.
function DeKod(S : String; K2 : Integer) : String. Декодирует сообщение S закрытым ключом K2. Возвращает расшифрованный текст.
Реализация функций представлена на рисунке 2.2.
function Kodir(s : String; K : Integer) : String;
Var I : Integer;
Current_Num : Integer;
Kodir_Num : Double;
Kodir_Num2 : Integer;
Res : String;
Step : Integer;
begin
Res := '';
for I := 1 to length(S) do
begin
//Получил номер символа
Current_Num := Get_Num_Buk(S[I]);
Step := random(K-1)+1;
Kodir_Num := Current_Num * Step;
Kodir_Num2 := Step + K;
Res := Res + floattostr(Kodir_Num)+' '+ inttostr(Kodir_Num2)+' '
end;
Res := copy(Res, 1, Length(res) - 1);
Result := Res;
end;
function DeKod(S : String; K2 : Integer) : String;
Var I : Integer;
Current_Num : Integer;
Kodir_Num : Double;
Kodir_Num2 : Integer;
Res : String;
Step : Integer;
S1, S2 : String;
begin
Res := '';
I := 1;
while I <= length(S) do
begin
s1 := '';
while S[I] <> ' ' do
begin
s1 := s1 + S[I];
I := I + 1;
end;
I := I + 1;
s2 := '';
while S[I] <> ' ' do
begin
s2 := s2 + S[I];
I := I + 1;
end;
I := I + 1;
//Step := strtoint(S[I+1]) - K2_TO_K(K2);
Step := strtoint(S2) - K2_TO_K(K2);
//Current_Num := round(strtofloat(S[I]) / Step);
Current_Num := round(strtofloat(S1) / Step);
Res := Res + Get_CH(Current_Num);
end;
Result := Res;
end;
Рисунок 2.2 – Функции кодирования и декодирования информации.
Логическая модель программного комплекса приведена на рисунке А.1 приложения А.
Модель обеспечивает хранение обучающего материала.
Для работы с лекциями используются таблицы “T_TEMA”, “T_LEK”, “T_TERMIN”, “T_KONTR”, “T_SOUND”, “T_AVI”.
Таблица “T_TEMA” содержит названия разделов, подразделов и лекций. Таблица позволяет организовать любую степень вложенности подразделов. Это реализовано за счет добавления в таблицу дополнительного поля “Parent”, которое содержит идентификационный номер записи, являющейся разделом более высокого уровня. Так, чтобы изменить вложенность разделов, достаточно изменить значения поля “Parent”. Для разделов первого уровня значение поля должно равняться минус единице.
Таблица “T_TEMA” является главной для таблиц “T_LEK”, “T_TERMIN”, “T_KONTR”, “T_SOUND”, “T_AVI”.
Содержание таблиц:
- T_LEK – содержит текст лекции.
- T_TERMIN – определения терминов лекции.
- T_KONTR – контрольные вопросы к каждой лекции.
- T_SOUND – пути размещения звукового сопровождения лекций
- T_VIDEO - пути размещения видеоматериалов.
Таблица “T_KONTR” предназначена для хранения итоговых вопросов
и ответов по каждой лекции.
Группа таблиц, связанных с лабораторными работами курса имеют аналогичную структуру таблицам лекций. Это таблицы “T_LAB”, “T_LABS’, “T_SOUNDL”, “T_AVIL”, “T_COMPIL”.
Таблица “T_COMPIL” содержит сведения о компиляторе для выполнения лабораторных работ.
Таблицы для хранения электронных учебников “T_TEACH”, “T_TEACH2”.
Для тестирования используются таблицы “T_TEST” и “T_TESTS”.
При создании пользовательского интерфейса желательно пользоваться следующими правилами.
1 Быть последовательным. Использовать всегда для подобной функциональности подобные элементы и подобные решения (одинаковое расположение кнопок, выполняющих одинаковые функции, на разных формах).
2 Заимствование. Не исключать возможность принять на вооружение приемы которые уже привычны для пользователя и апробированы.
3 Видимость отражает полезность. Всегда стоит задавать себе вопрос: "Зачем?". Если ответа нет, то удалить элемент, для которого этот вопрос задавался.
4 Обратная связь. Не делать "безмолвных" программ.
5 Золотое сечение 1:1.62. Применяется везде: в размерах, в количестве и так далее.
6 Семь сущностей - это достаточно. Человеческий мозг устроен, так что лучше всего за один раз воспринимаются 7 (плюс-минус 2) сущности.
Графический интерфейс главного окна программно-методического комплекса приведен на рисунке В.1 приложения В.
Описание элементов формы.
Главная формы приложения содержит ряд закладок: лекции, учебники, словарь, лабораторные, контроль. Эти закладки соответствуют структуре обучающего материала. На рисунке В.1 приложения В показана закладка лекции. Содержимое других закладок имеет аналогичную структуру. В левой части формы показываются разделы и подразделы , содержащие лекции. В правой части показывается содержимое конкретной, выбранной лекции. Существует возможность для прослушивания краткого содержания лекции, чтобы сориентироваться, нужно ее читать или нет.