Бакалавр
Дипломные и курсовые на заказ

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

РефератПомощь в написанииУзнать стоимостьмоей работы

String myStringVariable = «вы точно хотите удалить выбранный элемент?»; Список значений элементов принадлежащих компетенциям. Список ид элементов, принадлежащих компетенциям. From compItem in Competencelist//список выбранных компетенций. Проверяем полученный элемент на существование. Select new { CE. Id_CompetenceElement, elementdata. CompetenceText, CE. ElementText }; Select new… Читать ещё >

Программная реализация редактора тестовых заданий (реферат, курсовая, диплом, контрольная)

В первую очередь рассмотрим способы связывания элементов web формы с таблицами из БД. Для этого используется стандартный элемент ASP.net — LinqDataSource с целью привязки элемента с разработанной связью LINQ to SQL.

В свойствах данного элемента должны быть указаны наименование связующего элемента LINQ и заголовок таблицы. В случае необходимости в свойствах могут быть добавлены правила выбора заданий, обновления, вставки и удаление элемента из указанной таблицы. Пример кода для заполнения полей таблицы компетенций представлен ниже:

runat="server" .

ContextTypeName="Testint.DataClasses1DataContext" .

EntityTypeName="" .

TableName="Competence" .

EnableUpdate="True" .

EnableInsert="True" .

EnableDelete="True" >

Для работы с таблицами из программной части необходимо создать элемент связи с БД. В нашем случае этим элементом является dataСontext. Далее создается запрос к базе данных, в который могут быть включены внутренние элементы страницы (например, Competencelistсписок используемых компетенций). Пример кода для заполнения таблицы элементов, принадлежащих выбранным компетенциям:

protected void GetElements (List Competencelist, GridView gv, int elementtype) //получение списка выбранных элементов из таблицы с определенным типом.

{//Установка связи с БД.

var dataContext = new DataClasses1DataContext ();

//назначение источника для таблицы.

gv.DataSource = from elementdata in.

(// список значений элементов принадлежащих компетенциям.

from competence_list in.

(//список ид элементов, принадлежащих компетенциям.

from compItem in Competencelist//список выбранных компетенций.

join competenceItem in dataContext.Competence.

on compItem equals competenceItem. Id_Competence into ccom.

from coptence_item in ccom.

select new { coptence_item.Id_Competence, coptence_item.CompetenceText }.

).

join ElementGroupItem in dataContext.ElementGroup.

on competence_list.Id_Competence equals ElementGroupItem. Id_Competence.

select new{ competence_list.CompetenceText, ElementGroupItem. Id_CompetenceElement}.

).

join CE in dataContext.CompetenceElements.

on elementdata. Id_CompetenceElement equals CE. Id_CompetenceElement.

where CE. Id_TypeOfElement == elementtype.

select new { CE. Id_CompetenceElement, elementdata. CompetenceText, CE. ElementText };

gv.DataBind ();

}Для реализации метода создания новой записи в таблице используются стандартные средства LINQ. После создания экземпляра класса и заполнения его полей, добавляется созданный класс в связанную таблицу. После добавления изменения в таблице БД должны быть сохранены.

// Установка связи с БД.

var dataContext = new DataClasses1DataContext ();

//создание экземпляра задания.

TestTask currenttask = new TestTask ();

{// заполенение атрибутов.

currenttask.Id_Type = int. Parse (TaskTypeList.SelectedValue);

currenttask.Complexity = byte. Parse (ComplexityList.SelectedValue);

currenttask.Explanation = TaskExplanation. Text;

currenttask.TaskText = ForTaskText. Text;

//вставка экземпляра задания в конец таблицы.

dataContext.TestTask.InsertOnSubmit (currenttask);

//принятия изменений в таблице БД.

dataContext.TestTask.Context.SubmitChanges ();

}.

Операция удаления элемента из БД требует подтверждение пользователя на ее выполнение с целью исключения возможности случайного исполнения операции. Для подтверждения действия предусмотрено появление перед пользователем всплывающего окна (рисунок 3.9).

Запрос на удаление элемента.

Рисунок 3.9. Запрос на удаление элемента.

//запрос на подтверждение удаления элемента.

string myStringVariable = «вы точно хотите удалить выбранный элемент?» ;

ClientScript.RegisterStartupScript (this.GetType (), «myalert», «confirm ('» + myStringVariable + «');», true);

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

//связываемся с БД.

var dataContext = new DataClasses1DataContext ();

//получаем экземпляр класса по ИД.

elementItem = dataContext.CompetenceElements.

.First (p => p. Id_CompetenceElement == int. Parse (link.CommandArgument));

// проверяем полученный элемент на существование.

if (elementItem ≠ null).

{// удаляем строку в таблицу.

dataContext.CompetenceElements.DeleteOnSubmit (elementItem);

//сохраняем изменения.

dataContext.CompetenceElements.Context.SubmitChanges ();

Редактор предоставляет возможность привязки тестового задания к одной или нескольким темам, или элементам компетенции, отображенных на форме. Учитывая, что выбранные элементы будут использоваться в дальнейшем их удобнее хранить в специальных списках. Далее представлен код для заполнения списка выбранными элементами из таблицы:

protected List GetCheckPoints (GridView gv).

// получение выбранных полей таблицы.

{.

List grList = new List ();

foreach (GridViewRow item in gv. Rows).

{.

if ((item.Cells[0]. FindControl («CheckCom») as CheckBox).Checked).

{.

item.BackColor = System.Drawing.Color.Aquamarine;

grList.Add (int.Parse (item.Cells[1]. Text));

}.

}.

return grList;

}.

Выводы по главе

На основе выявленных требований к редактору тестовых заданий и необходимых атрибутов для тестового задания был разработан редактор тестовых заданий. Приложение использует технологии ASP.NET Webforms в среде Visual Studio. Для хранения тестовых заданий использовалась база данных, реализованная с помощью SQL Server Management Studio на основе ее инфологической модели.

Организация связи базы данных с приложением осуществляется с помощью технологии LINQ to SQL, обеспечивающей интерпретируемость запросов. Программная часть реализована с помощью языков C# и JavaScript.

Показать весь текст
Заполнить форму текущей работой