Разработка подсистемы анализа SCORM-пакетов (лекционный материал)

Стандарты в сфере дистанционного обучения. Создание модели подсистемы анализа SCORM-пакетов (лекционный материал), написание ее программной реализации и обеспечение эффективного функционирования. Проектирование программного средства, его тестирование.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 28.08.2012
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1. Формирование требований к программному средству
  • 2. Анализ предметной области
  • 2.1 Описание потоков данных
  • 2.2 Входные данные
  • 2.3 Выходные данные
  • 2.4 Построение диаграммы потоков данных
  • 3. Проектирование программного средства
  • 4. Реализация программного средства
  • 4.1 Выбор средств реализации подсистемы
  • 4.2 Организация взаимодействия приложения с базой данных
  • 4.3 Реализация пользовательского интерфейса
  • 4.4 Реализация функциональности подсистемы
  • 5. Тестирование программного средства
  • Приложения
  • Приложение А

Введение

Министерство Обороны (DoD) и Департамент политики в области науки и технологии Администрации Президента США (OSTP) в ноябре 1997 объявили о создании инициативы ADL (Advanced Distributed Learning). Целью создания данной инициативы является развитие стратегии, проводимой министерством обороны и правительством в области модернизации обучения и тренинга, а также для объединения высших учебных заведений и коммерческих предприятий для создания стандартов в сфере дистанционного обучения.

Создание стандарта SCORM (Sharable Content Object Reference Model) является первым шагом на пути развития концепции ADL, так как данный стандарт определяет структуру учебных материалов и интерфейс среды выполнения, за счет чего учебные объекты могут быть использованы в различных системах электронного дистанционного образования. SCORM описывает эту техническую структуру с помощью некоторых основных принципов, спецификаций, и стандартов, основанных на работе других уже созданных спецификаций и стандартов электронного и дистанционного образования. Организации, создавшие эти стандарты продолжают работать с ADL, развивая и улучшая их собственные спецификации и стандарты электронного и дистанционного образования и помогая строить и улучшать SCORM.

Предметом разработки является подсистема анализа SCORM-пакетов: лекционный материал, которая будет соответствовать следующим функциям, требованиям и характеристикам:

Определение соответствия представленного курса спецификациям SCORM

- Вывод данных о версии XML, компоновке и наполнении курса.

- Вывод тестов в браузере пользователя в пригодном виде.

программный тестирование дистанционный обучение

Перспективой данной разработки является создание модели подсистемы анализа SCORM-пакетов, написание ее программной реализации и обеспечение эффективного функционирования. Использование данной подсистемы будет возможно в следующих случаях: при внедрении стандарта SCORM в системе дистанционного обучения нашей кафедры и других подшефных организаций. Используя подсистему анализа SCORM-пакетов важно знать, что она позволяет лишь анализировать правильность исследуемого пакета, получить более подробную информацию о нем, но не для использования пользователями (студентами ДО).

1. Формирование требований к программному средству

Основные требования, предъявляемые к разработанной программе, включают в себя:

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

б) Максимальное взаимодействие программы и пользователя. Система должна полностью поддерживать пользователя. Он не должен заниматься поиском информации. Вся необходимая информация должна быть собрана на одном экране. Выводимая информация не должна требовать интерпретации или перекодировки.

в) Минимальный объём оперативной памяти пользователя. От пользователя требуется, чтобы он занимал минимум информации.

Разработка диаграммы вариантов использования.

Таблица 1.1 Описание шаблона проблемы

Проблема

Разработка подсистемы анализа SCORM - пакетов: лекционный материал

Затрагивает

Центр ДО и операторов

Ее следствием

является

Позволяет операторам контролировать лекционные материалы перед их применением Система Управления Обучением (LMS)

Успешное решение

Создание подсистемы анализа Scorm - пакетов, интеграция готовых Scorm - пакетов.

Шаблон документа "Vision" RUP содержит следующие основные разделы:

1. Введение

2. Позиционирование

3. Описания совладельцев и пользователей

4. Краткий обзор изделия

5. Возможности продукта

6. Ограничения

7. Показатели качества

8. Старшинство и приоритеты

9. Другие требования к изделию

10. Требования к документации

11. Приложение

1. Введение - данная подсистема анализа Scorm - пакетов тетов предоставит операторам возможность проверить и при необходимости внести свои поправки в тестовые задания перед проведением тестирования. Эта подсистема взаимодействует с другими подсистемами анализа Scorm - пакетов и образует единую систему тестирования студентов. Scorm (Shared Content Object Reference Model) - Модель Обмена Учебным Материалом.

2. Позиционирование - требуется создать подсистему анализ Scorm - пакетов тестовых заданий, которая будет включать в себя следующие функции:

а) Необходимо найти нужный пакет в хранилище пакетов.

б) Распознать тип пакета.

в) Проверить корректность и целостность Scorm - пакета.

г) Проанализировать корректность и целостность необходимой нам информации.

д) Найти необходимую структуру соответствующую лекционному материалу

г) Вывести требуемую информацию в определённой форме.

д) Сохранить полученную информацию на заданно носителе.

Целевым заказчиком являются ЦДО и студенты.

3. Описания совладельцев и пользователей - в качестве пользователей являются операторы ЦДО, отвечающие за содержание тестовых заданий, а совладельцами являются ЦДО и определенная группа преподавателей.

4. Краткий обзор изделия - благодаря этой подсистеме оператор сможет найти необходимый пакет в "хранилище Scorm - пакетов", внести свои корректировки, сформировать готовые тестовые задания и сохранить на заданном носители информации. Данная программа размещается на диске и запускается "Автозапуском" для начала анализа, при этом ничего не надо устанавливать (инсталлировать).

5. Возможности продукта - обеспечивает более удобную подготовку Scorm - пакетов перед проведением тестирования.

6. Ограничения - система работает на компьютерах с минимальными загрузочными требованиями. Система будет работать на платформе.net Framework 2.0. Операционная система: Microsoft Windows 2000/ХР

7. Показатели качества - система эффективна, так как не требует от пользователей установки программного обеспечения.

8. Старшинство и приоритеты - эта подсистема тесно связана с другими подсистемами, входящими в единую систему анализа тестовых заданий.

9. Другие требования к изделию - применяются стандарты по защите прав автора, вузов.

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

11. Приложение - выгоду получают вузы и пользователи, расходуя экономично свое время.

Выявление акторов

Оператор. Выборка Scorm - пакетов, определение формата и распаковка архива. Корректировка Scorm - пакета, если структура не соответствует стандарту.

LMS. Работа с сохранёнными лекциями, проведение лекций.

Создание диаграммы вариантов использования

Рис.1 Диаграмма вариантов использования

2. Анализ предметной области

2.1 Описание потоков данных

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

В данном методе различаются следующие процессы общего назначения:

· Выбор Scorm - пакета;

· Корректировка пакета;

· Формирование теста;

· Сохранение теста.

Входными данными является содержимое Scorm пакета, а именно файл, содержащий ссылки на все ресурсы пакета, imsmanifest. xml. Сам пакет не будет подвержен никакой обработке и не изменит своего содержания. Мы лишь считаем все его содержимое, относящиеся к тестовым заданиям на соответствие, во временное хранилище, и в дальнейшем будем работать именно с этим хранилищем. После получения тестовых заданий на соответствие, оператор может корректировать пакет, путём внесения изменений в сами тестовые задания либо в среду выполнения тестовых заданий. После корректировки пакета, оператор может просмотреть тесты или сохранить их в виде Scorm пакета в хранилище тестов, из которого этот пакет будет брать Система Управления Обучением (LMS).

Выходными данными является конечный Scorm пакет.

2.2 Входные данные

Входными данными является содержимое Scorm пакета, а именно файл, содержащий ссылки на все ресурсы пакета, imsmanifest. xml.

2.3 Выходные данные

Выходными данными является конечный Scorm пакет.

2.4 Построение диаграммы потоков данных

Описав потоки данных, процессы, хранилища данных и объектов, мы можем построить диаграмму потоков данных.

Рис.2 Диаграмма потоков данных

3. Проектирование программного средства

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

Размещено на http://www.allbest.ru/

Рис.3. Основные пространства взаимодействий

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

Размещено на http://www.allbest.ru/

Рис.4. Карта навигации по контекстам

Графические компоненты взаимодействия с пользователем для выбранного контекста.

XML-анализатор:

· Форма (Form1), содержащая все графические элементы взаимодействия.

· Текстовое окно (textBox) - элемент, в который пользователь вводит адрес симуляции SCORM-пакета, который он хочет проанализировать.

· Кнопка "Browse” (button) - открывает стандартное Windows-окно поиска файлов.

· Текстовое поле (textArea) - элемент, в который заносится XML-структура выбранного пакета

· Кнопка "Анализ" - при ее нажатии происходит анализ симуляции и открытие диалогового окна с результатом.

Сущностная эффективность - показатель того, насколько данный интерфейс близок к идеалу, выраженному сущностной моделью use case. Сущностная эффективность измеряется отношением длины сущностного описания к длине

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

СЭ = Sсущн/Sреальн*100

Sсущн = 5

Sреальн = 8

СЭ = 5/8*100 = 62.5

Вывод: спроектированный интерфейс является эффективным.

4. Реализация программного средства

4.1 Выбор средств реализации подсистемы

В качестве среды визуального программирования будет использована MS Visual Studio.net 2008, язык программирования C# и расширяемый язык разметки XML. Среда программирования Visual Studio 2008 в настоящее время имеет огромную популярность, она дает большие возможности для быстрой и надежной разработки этого программного средства, а так же его отладки и тестирования.

В семействе средств разработки Visual Studio 2008 поставляются пакеты, которые упростят работу над программными проектами и обеспечат преимущества как при индивидуальной работе, так и в больших коллективных проектах. MS Visual Studio 2008 позволяет выполнять задачи быстрее с минимумом монотонной работы, эффективнее взаимодействовать в команде, увеличить результативность и вашей компании, и компаний-заказчиков.

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

Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, RDF, RSS, http://ru. wikipedia.org/wiki/MathML XHTML, SVG), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть не зная смыслового значения элементов. Важной особенностью XML также является применение так называемых пространств имён.

4.2 Организация взаимодействия приложения с базой данных

Главным объектом, имеющим существенное значение для рассматриваемой подсистемы, являются тестовые задания. Тестовые задания, имеющие вид "вопрос-ответ" хранятся в структурированном формате в xml файле. Наша подсистема работает с 3мя обязательными xml файлами:

· Imsmanifest - Этот файл, подобный "упаковочному бланку”, описывает содержание пакета и может включать дополнительное описание его структуры.

· Runtime - Цель SCORM RTE состоит в том, чтобы обеспечить интероперабельность объектов SCO и LMS систем. Для этого необходима общая модель запуска, создания и обмена информацией между содержанием и LMS. Тремя основными компонентами RTE являются Launch (запуск), Application Program Interface (API) (программный интерфейс приложения), и Data Model. Рассмотрим коротко каждый из них. Launch (запуск) определяет отношения между LMSs и SCORM контентом так, чтобы контент SCORM был совместим с LMS системами, стандартизованными в SCORM, чтобы быть поставленным и показанным ученику. В SCORM 2004, LMS системы способны определять, какой материал доставлять первым. Это описано в книге SCORM SN, также затронуто в книге SCORM RTE. SCORM Application Program Interface (API) обеспечивает набор ункциональных возможностей, которые принимаются как разработчиками LMS, так и разработчиками инструментов создания содержания, чтобы обеспечить связь между LMS и SCOs,. Эти функциональные возможности заканчивают процесс запуска, связывая SCO и LMS, когда это необходимо. Кроме того, API позволяет содержанию SCORM "устанавливать" и "получить" данные от LMS, типа результатов оценки, и обращаться к любым ошибкам, которые происходят в течение работы. SCORM Run-Time Environment Data Model описывает словарь, который может использоваться, чтобы передать или получить информацию LMS. Например, при получении контрольной работы ученика, SCO использует SCORM Data Model, известную как "cmi. score. scaled”, чтобы сообщить LMS результаты ученика. Это все подробно описано в книге SCORM RTE.

· Xmlschema - Схемы данных (Schemas) являются альтернативным способом создания правил построения XML-документов. По сравнению с DTD, схемы обладают более мощными средствами для определения сложных структур данных, обеспечивают более понятный способ описания грамматики языка, способны легко модернизироваться и расширяться. Безусловным достоинством схем является также то, что они позволяют описывать правила для XML - документа средствами самого же XML. Однако это не означает, что схемы могут полностью заменить DTD - описания - этот способ определения грамматики языка используется сейчас практическими всеми верифицирующими анализаторами XML и, более того, сами схемы, как обычные XML - элементы, тоже описываются DTD. Но серьезные возможности нового языка и его относительная простота, безусловно, дают основания утверждать, что будущий стандарт найдет широкое применение в качестве удобного и эффективного средства проверки корректности составления документов. В настоящее время в W3 консорциуме идет работа над первой спецификацией схем данных. В этом разделе мы рассмотрим основные возможности схем данных, попытаемся использовать их для проверки корректности ранее описываемых XML - документов.

В подсистеме анализа Scorm пакетов тестов на соответствие вопросы и ответы хранятся в файле runtime. xml в структуре "target-bullet", где <q_target> - вопрос, а <q_bullet> соответствующий ему ответ

4.3 Реализация пользовательского интерфейса

Пользовательский интерфейс имеет одну главную форму и две второстепенные. В этом разделе опишем по подробнее процесс создания главной формы.

Первое что нам нужно сделать - создать новый проект C#, при этом в рабочем поле Дизайнера автоматически появится новая форма "Form1". В панели "Properties" мы можем поменять его название, цвет, размер, ориентацию элементов и текста внутри формы и т.д.

Второй этап создания пользовательского интерфейса - создание элементов управления "кнопок" подсистемы анализа Scorm пакетов. Для этого указателем перетащим элемент "Button" из панели "Common Controls" на нашу форму.

Рис.5. Панель "Common Controls"

Для новой кнопки мы также можем изменить цвет, название, размеры, ориентацию на форме и другие свойства в панели "Properties". Назовём нашу первую кнопку "Анализ"

Рис.6. Панель "Properties" для элемента управления "Button1"

Так же поступим и с остальными элементами управления. Создадим ещё две кнопки "О программе" и "Выход".

Рис.7. Форма с тремя элементами управления.

Последним элементом является заранее заготовленный Логотип, которое мы вставим в левую часть формы.

Рис.8. Форма с Логотипом.

Рис.9. Конечный вариант главной формы.

4.4 Реализация функциональности подсистемы

В данном разделе будут рассмотрены этапы работы со Scorm пакетом.

На начальном этапе мы находим на локальном диске Scorm пакет, распаковываем его из архива во временное хранилище и вызываем диалог для выбора файла imsmanifest. xml.

string path = System. Environment. CurrentDirectory;

this. openFileDialog1. FileName = "*. xml";

if (this. openFileDialog1. ShowDialog () == DialogResult. OK)

Если файл imsmanifest. xml загружен - начинаем анализ его структуры на корректность, находим путь к файлу runtime. xml

{

XmlTextReader reader = null;

System. Collections. ArrayList simList = new System. Collections. ArrayList ();

try

{

reader = new XmlTextReader (openFileDialog1. FileName);

reader. WhitespaceHandling = WhitespaceHandling. None; // пропускаем пустые узлы

while (reader. Read ())

if (reader. NodeType == XmlNodeType. Element)

if (reader. Name == "resource")

{

for (int i = 0; i < reader. AttributeCount; i++)

{

if (reader. GetAttribute (i) == "sco")

{

while (reader. Read () && reader. Name == "file")

if (reader. GetAttribute (0). IndexOf ("runtime. xml")! = - 1)

{

string name = openFileDialog1. FileName. Replace ("imsmanifest. xml","") + "\\" + reader. GetAttribute (0). Replace ("/", "\\");

listBox1. Items. Add (name);

}

}

}

}

}

Если путь к файлу runtime. xml найден, начинаем его анализ, в который будет входить создание двух массивов для вопросов и ответов, пропуск пустых узлов, поиск структуры тестов на соответствие и запись их в массив.

System. Collections. ArrayList questionsList = new System. Collections. ArrayList ();

System. Collections. ArrayList answersList = new System. Collections. ArrayList ();

try

{

reader = new XmlTextReader (listBox1. Items [0]. ToString ());

reader. WhitespaceHandling = WhitespaceHandling. None;

while (reader. Read ())

if (reader. NodeType == XmlNodeType. Element)

if (reader. Name == "q_question")

{

while (reader. Read ())

{

if (reader. Name == "q_variants")

{

while (reader. Read ())

{

if (reader. Name == "item")

{

while (reader. Read ())

{

if (reader. Name == "q_target")

{

questionsList. Add (stripTags (reader. ReadString (). ToString ()));

}

else if (reader. Name == "q_bullet")

{

answersList. Add (stripTags (reader. ReadString (). ToString ()));

}

}

}

}

}

}

}

}

На следующем этапе анализа Scorm пакета оператор может внести свои корректировки в опросы и ответы. Для этого на форме есть два поля ввода, куда выводится текущий вопрос и текущий ответ и две кнопки сохранить, для вопроса и ответа.

private void button1_Click_1 (object sender, EventArgs e)

{

FileStream _fs = new FileStream (filename, FileMode. Open);

StreamReader _reader = new StreamReader (_fs);

string str = "";

str = _reader. ReadToEnd ();

_reader. Close ();

_fs. Close ();

FileStream fs = new FileStream (filename, FileMode. Create);

StreamWriter _writer = new StreamWriter (fs);

_writer. Write (str. Replace (listBox1. SelectedItem. ToString (),textBox1. Text));

_writer. Close ();

fs. Close ();

listBox1. Items [listBox1. SelectedIndex] = textBox1. Text;

}

private void listBox1_Click (object sender, EventArgs e)

{

textBox1. Text = listBox1. SelectedItem. ToString ();

button1. Enabled = true;

}

private void listBox2_Click (object sender, EventArgs e)

{

textBox2. Text = listBox2. SelectedItem. ToString ();

button2. Enabled = true;

}

private void button2_Click (object sender, EventArgs e)

{

FileStream _fs = new FileStream (filename, FileMode. Open);

StreamReader _reader = new StreamReader (_fs);

string str = "";

str = _reader. ReadToEnd ();

_reader. Close ();

_fs. Close ();

FileStream fs = new FileStream (filename, FileMode. Create);

StreamWriter _writer = new StreamWriter (fs);

_writer. Write (str. Replace (listBox2. SelectedItem. ToString (), textBox2. Text));

_writer. Close ();

fs. Close ();

listBox2. Items [listBox2. SelectedIndex] = textBox2. Text;

}

После окончания корректировки оператор может просмотреть тесты, нажав два раза на любом вопросе или ответе.

private void listBox1_DoubleClick (object sender, EventArgs e)

{

System. Diagnostics. Process. Start (filename. Replace ("runtime. xml","start.html"));

}

private void listBox2_DoubleClick (object sender, EventArgs e)

{

System. Diagnostics. Process. Start (filename. Replace ("runtime. xml", "start.html"));

}

5. Тестирование программного средства

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

Протестируем систему на ошибки при попытки анализа некорректных Scorm пакетов.

· Попытка анализировать оригинал Scorm пакета, вместо его экземпляра во временном хранилище;

Ответ: пожалуйста разархивируйте ваш Scorm пакет.

· Выбранный Scorm пакет не имеет файла imsmanifest. xml;

Ответ: выбранный вами архив не является Scorm пакетом.

· Выбранный Scorm пакет не имеет файла runtime. xml;

Ответ: выбранный вами архив не является Scorm пакетом.

· В файле imsmanifest. xml определена некорректная ссылка на файл runtime. xml;

Ответ: выбранный вами архив не является Scorm пакетом;

· Файл runtime. xml не содержит тестов на соответствие;

Ответ: выбранный вами Scorm пакет не содержит тестов на соответствие;

· Не возможно запустить Программное Средство;

Ответ: установите.net Framework 2.0;

6. Руководство пользователя

С учетом того, что разрабатывается подсистема анализа SCORM пакетов, нас будет интересовать руководство с точки зрения пользователя-оператора.

1. Состав Подсистемы анализа Scorm пакетов.

В состав подсистемы анализа Scorm пакетов входит программное средство "scorm. exe" и файл справки, содержащий данное руководство пользователя "справка. chm"

2. Запуск приложения

Запуск приложения осуществляется запуском файла "Scorm. exe". После запуска на экран выводится главное окно приложения, с помощью которого можно управлять подсистемой анализа Scorm пакетов.

3. Начало работы с подсистемой

Главная форма ПС имеет 3 кнопки: "Анализировать" для начала анализа SCORM пакетов, "О Программе" для вывода информации о текущей версии и разработчике программы и "Выход" для закрытия приложения.

Рис.10. Главная Форма Приложения

Первое что нам нужно сделать, это выбрать место расположения Scorm пакета на локальном диске или на заданном носителе. Выбор Scorm пакета заключается в поиске файла "imsmanifest. xml" на локальном диске или на заданно носителе. Это можно осуществить из главного мену "Файл" "Открыть".

Рис.11. Выбор Scorm пакета

4. Анализ Scorm пакета

Для того что бы начать анализировать SCORM пакеты, оператор должен нажать кнопку "Анализировать". Если расположение Scorm пакета не было определено, то программа предложит выбрать его на локальном диске или заданном носителе.

Рис.12. Выбор SCORM пакета

После выбора SCORM пакета, программа некоторое время анализирует его и выводит найденные в нём лекции.

5. Редактирование Вопросов и Ответов

Для редактирования лекции выберите её в списке. И нажмите открыть для редактирования. Перед вами от текстовый документ, содержащий текст выбранной вами лекции. При клике на кнопку сохранить, будут сохранены внесенные вами изменения.

7 Вывод информации о программе

Для просмотра информации о версии и разработчике программы нужно нажать кнопку "О программе" на главной форме программы или из главного меню "Справка".

8 Окончание работы с программой.

Окончание работы с программой осуществляется с помощью кнопки "Выход" на главной форме программы или из главного меню "Файл"

Заключение

Нужно иметь в виду, что SCORM пока еще окончательно не утвердился как стандарт, и что процедура независимого сертифицирования для него еще даже не начата. Поэтому по отношению к SCORM правомерно употреблять терминологическое выражение "претендующий на соответствие стандарту".

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

Приложения

Приложение А

Код основной функции для анализа пакета

{

string path = System. Environment. CurrentDirectory;

this. openFileDialog1. FileName = "*. xml";

if (this. openFileDialog1. ShowDialog () == DialogResult. OK) {

{

XmlTextReader reader = null;

System. Collections. ArrayList simList = new System. Collections. ArrayList ();

try

{

reader = new XmlTextReader (openFileDialog1. FileName);

reader. WhitespaceHandling = WhitespaceHandling. None; // пропускаем пустые узлы

while (reader. Read ())

if (reader. NodeType == XmlNodeType. Element)

if (reader. Name == "resource")

{

for (int i = 0; i < reader. AttributeCount; i++)

{

if (reader. GetAttribute (i) == "sco")

{

while (reader. Read () && reader. Name == "file")

if (reader. GetAttribute (0). IndexOf ("runtime. xml")! = - 1)

{

string name = openFileDialog1. FileName. Replace ("imsmanifest. xml","") + "\\" + reader. GetAttribute (0). Replace ("/", "\\");

listBox1. Items. Add (name);

}

}

}

}

}

catch (Exception ex)

{

MessageBox. Show ("Ошибка: " + ex. Message);

}

finally

{

if (reader! = null)

reader. Close ();

}

System. Collections. ArrayList questionsList = new System. Collections. ArrayList ();

System. Collections. ArrayList answersList = new System. Collections. ArrayList ();

try

{

reader = new XmlTextReader (listBox1. Items [0]. ToString ());

reader. WhitespaceHandling = WhitespaceHandling. None; // пропускаем пустые узлы

while (reader. Read ())

if (reader. NodeType == XmlNodeType. Element)

if (reader. Name == "q_question")

{

while (reader. Read ())

{

if (reader. Name == "q_variants")

{

while (reader. Read ())

{

if (reader. Name == "item")

{

while (reader. Read ())

{

if (reader. Name == "q_target")

{

questionsList. Add (stripTags (reader. ReadString (). ToString ()));

}

else if (reader. Name == "q_bullet")

{

answersList. Add (stripTags (reader. ReadString (). ToString ()));

} } } }

} } } }

ПРИЛОЖЕНИЕ Б

Код функции редактирования пакета

private void Form3_Load (object sender, EventArgs e)

{

for (int i = 0; i < questionsList. Count; i++)

listBox1. Items. Add (questionsList [i]. ToString ());

for (int i = 0; i < answersList. Count; i++)

listBox2. Items. Add (answersList [i]. ToString ());

for (int i = 0; i < textList. Count; i++)

listBox3. Items. Add (textList [i]. ToString ());

}

private void button1_Click (object sender, EventArgs e)

{

}

private void label1_Click (object sender, EventArgs e)

{

}

private void listBox1_SelectedIndexChanged (object sender, EventArgs e)

{

}

private void button1_Click_1 (object sender, EventArgs e)

{

FileStream _fs = new FileStream (filename, FileMode. Open);

StreamReader _reader = new StreamReader (_fs);

string str = "";

str = _reader. ReadToEnd ();

_reader. Close ();

_fs. Close ();

FileStream fs = new FileStream (filename, FileMode. Create);

StreamWriter _writer = new StreamWriter (fs);

writer. Write (str. Replace (listBox1. SelectedItem. ToString (),textBox1. Text));

_writer. Close ();

fs. Close ();

listBox1. Items [listBox1. SelectedIndex] = textBox1. Text;

}

private void listBox1_Click (object sender, EventArgs e)

{

textBox1. Text = listBox1. SelectedItem. ToString ();

button1. Enabled = true;

}

private void listBox2_Click (object sender, EventArgs e)

{

textBox2. Text = listBox2. SelectedItem. ToString ();

button2. Enabled = true;

}

private void button2_Click (object sender, EventArgs e)

{

FileStream _fs = new FileStream (filename, FileMode. Open);

StreamReader _reader = new StreamReader (_fs);

string str = "";

str = _reader. ReadToEnd ();

_reader. Close ();

_fs. Close ();

FileStream fs = new FileStream (filename, FileMode. Create);

StreamWriter _writer = new StreamWriter (fs);

_writer. Write (str. Replace (listBox2. SelectedItem. ToString (), textBox2. Text));

_writer. Close ();

fs. Close ();

listBox2. Items [listBox2. SelectedIndex] = textBox2. Text;

}

private void listBox1_DoubleClick (object sender, EventArgs e)

{

System. Diagnostics. Process. Start (filename. Replace ("runtime. xml","start.html"));

}

private void listBox2_DoubleClick (object sender, EventArgs e)

{

System. Diagnostics. Process. Start (filename. Replace ("runtime. xml", "start.html"));

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.