Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DMoroz / Диплом.doc
Скачиваний:
20
Добавлен:
16.04.2013
Размер:
1.12 Mб
Скачать

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

1.2.4.1. Учебная карточка студента

Процедура «Учебная карточка студентов» реализует следующие варианты использования:

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

  2. Подготовка к печати отчётов по результатам обучения студента(ов) по конкретному семестру обучения.

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

  1. Выбор студента или всех студентов учебной группы. Информацию о студентах можно получить из таблицы USERSбазы данных ОРОКС. Для выбора предлагается создавать таблицу со списком студентов группы. Группа в свою очередь будет выбираться из списка всех учебных групп. Для облегчения поиска конкретного студента в таблице можно предусмотреть поиск студента по начальным буквам фамилии. При этом в таблице студентов будут отображаться только те студенты группы, которые удовлетворяют условию поиска.

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

Эскиз входной формы, на которой осуществляются эти действия, представлен на pис. 6:

Рис. 6. Эскиз формы №1: выбор группы, студента(ов), учебного плана

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

  1. Выбрать дисциплину из списка всех дисциплин выбранного учебного плана. Целесообразно осуществлять этот выбор из выпадающего списка.

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

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

При выводе результатов для различных типов контрольных мероприятий следует учесть, что:

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

  • Так как контрольные мероприятия в виде зачётов и экзаменов выполняются очно и результаты их выполнения, в отличие от тестов и контрольных работ, системой ОРОКС автоматически не фиксируются, то в таблицу результатов выполнения зачётов и экзаменов следует выводить список всех студентов. Для тестов и контрольных работ в таблицу должны быть включены результаты только тех студентов, факт выполнения которыми контрольного мероприятия зафиксирован системой.

Ввод дат доставки контрольных работ и оценивание удобно осуществлять из соответствующей ячейки таблицы результатов. Для ввода даты доставки контрольной работы в ячейку с датой доставки можно поместить рисунок, при нажатии на который в БД будет занесена текущая дата. При вводе в БД системы ОРОКС даты доставки также следует занести идентификатор преподавателя, курирующего обучение студента по выбранной дисциплине. Это позволит существенно ускорить выборку информации о контрольных работах при выдаче решений на проверку преподавателю.

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

На pис. 7 показан эскиз формы, на которой производится просмотр успеваемости, ввод информации в БД ОРОКС о доставке работ, ввод и редактирование оценок.

Рис. 7. Эскиз формы №2: просмотр успеваемости, ввод информации в БД

Для подготовки к печати отчётов по результатам обучения, как и при просмотре результатов, учебному администратору следует сначала выбрать студента(ов) и учебный план. Поэтому данные действия для двух вариантов использования можно объединить. Затем следует настроить параметры отчёта:

  • Выбрать контрольные мероприятия, результаты выполнения которых следует включить в отчёт. Перечень дисциплин с контрольными мероприятиями удобно представить в виде дерева, корнями которого будут являться названия дисциплин, а ветвями – контрольные мероприятия, содержащиеся в соответствующей дисциплине. Напротив названия каждого контрольного мероприятия следует создать элемент ввода типа «флажок» для обеспечения возможности выбора данного контрольного мероприятия. Для выбора всех контрольных мероприятий дисциплины можно создать такой же элемент напротив названия дисциплины. Для удобства следует создать пару кнопок «Выделить все» и «Снять выделение», с помощью которых можно будет выбрать все имеющиеся в плане контрольные мероприятия, либо снять это выделение.

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

  • Осуществить выбор параметра «Выводить только наилучшие результаты (при наличии 2х и более попыток выполнения)». Настройку данного параметра следует производить только при группировке результатов обучения по студентам, поскольку при группировке по дисциплинам включение в отчёт результатов по нескольким попыткам выполнения существенно загромождает таблицу отчёта. Выбор данного параметра будет осуществляться с помощью элемента ввода типа «флажок».

  • Выбор параметра «Включать в таблицы отчёта невыполненные контрольные мероприятия». Выбор данного параметра необходим для включения в отчёт записей о невыполненных контрольных мероприятиях с пустыми ячейками для обеспечения возможности ручного проставления дат и оценок. Выбор данного параметра также будет осуществляться с помощью элемента ввода типа «флажок».

После настройки параметров отчёта учебный администратор путём нажатия кнопки «Создать документ» активизирует создание документа с отчётом, который распечатывается средствами Интернет-браузера.

Эскиз формы, с помощью которой будет производиться настройка параметров отчёта, изображён на pис. 8.

Рис. 8. Эскиз формы №3: настройка параметров отчёта

Приведённая на pис. 9 диаграмма деятельности показывает основные процессы работы процедуры «Учебная карточка студента».

Рис. 9. Диаграмма деятельности «Учебная карточка студента»

На pис. 10 показана диаграмма последовательностей для варианта использования «Подготовка к печати отчётов по результатам обучения».

Рис. 10. Диаграмма последовательностей «Подготовка к печати отчётов по результатам обучения»

На pис. 11 изображена диаграмма последовательностей для варианта использования «Ввод информации о доставке контрольных работ в учебное учреждение, ввод и редактирование оценок».

Рис. 11. Диаграмма последовательностей «Ввод информации о доставке контрольных работ в учебное учреждение и ввод оценок»

Схема алгоритма работы данной процедуры представлена на pис. 12

Рис. 12. Схема алгоритма работы процедуры «Учебная карточка студента»

Особый интерес представляет реализация простановки дат доставки контрольных работ и выставление оценок. Для организации ввода даты доставки элементу ввода - "картинке", соответствующей контрольной работе, присваивается имя: «add_miee-» + идентификатор студента из таблицыUSERS+ «-» + идентификатор записи из таблицы результатов.

Поскольку выставление оценок производится из выпадающего списка, при отправке формы на сервер передаются значения всех имеющихся на экране выпадающих списков и определение того, какая же оценка изменилась, может занять большое количество времени. Поэтому рядом с каждым выпадающим списком оценок была создана картинка с уникальным именем: «s_add_mark-» + идентификатор студента из таблицы USERS+ «-» + идентификатор записи из таблицы результатов. При нажатии на данную картинку программа при обработке полученного запроса заносит в базу данных соответствующую оценку.

Ниже приведён фрагмент программы, реализующий обработку значений, поступающих при отправке формы с результатами на сервер и занесение в БД системы ОРОКС соответствующей информации.

foreach(keys %FORM)

{

if ($_ =~ m/^add_miee-(\d+)-(\d*)\.x$/) # Т.е. меняем дату МИЭТ у контрольных, зачётов и экзаменов...

{

# Сначала выберем преподавателя..

if ($FORM{'pl'} eq "plans") # Если план базовый..

{

#t_print "План базовый";

$sql="SELECT tutors.prep_ID from tutors, students

where tutors.plan_ID=$FORM{'plans_id'} AND tutors.disnum=$FORM{'discip'} AND students.tutor_ID=tutors.ID AND students.stud_ID=$1";

}

else # Если план производный..

{

$sql="SELECT disciplines FROM dplans WHERE ID=$FORM{'plans_id'}";

$sth=ExecSQL($sql);

my $dis=0;

Assign2var ($sth, $dis);

my @_dis=split(',',$dis);

$dis=@_dis[$FORM{'discip'}-1];

$sql="SELECT tutors.prep_ID from tutors, students, dplans

where tutors.plan_ID=dplans.base_ID AND dplans.ID=$FORM{'plans_id'} AND tutors.disnum=$dis AND students.tutor_ID=tutors.ID AND students.stud_ID=$1";

}

$sth=ExecSQL($sql);

my $prep_users_ID=0; # ID преподавателя

Assign2var ($sth, $prep_users_ID);

# Завершение выбора преподавателя

if ($FORM{'km_type'} ne "") # Если это контра

{

$sql="SELECT kinfo_id FROM results WHERE ID=$2";

$sth=ExecSQL($sql);

Assign2var ($sth, $kinfo_ID);

$sql=qq(UPDATE kinfo set received='$curdate', tutor_ID='$prep_users_ID' WHERE ID='$kinfo_ID');

$sth=ExecSQL($sql);

}

else # Т.е это зачёт или экзамен и нужно создать запись в таблице kinfo и results

{

$sql = "INSERT INTO kinfo VALUES(NULL, '$prep_users_ID', '$curdate', '', '', 7)";

$sth=ExecSQL($sql);

$k_id = InsertID($sth);

$sql="INSERT INTO results VALUES($1, 0, '**?**', 0.0, 0, 'YES', NULL, '$curdate', '$curtime', 0.0, 0, '', 0, 0, 0, $FORM{pid}, $FORM{discip}, $FORM{kontr}, $k_id, 2, NULL)";

$sth=ExecSQL($sql);

}

}

if ($_ =~ m/^s_add_mark-(\d+)-(\d+)\.x$/) # Т.е. меняем меняем оценку

{

my $mark=$FORM{'add_mark-'.$1.'-'.$2};

$sql=qq(UPDATE results set stage='$mark' WHERE ID='$2');

ExecSQL($sql);

if ($FORM{'km_type'} ne "OFF") # т.е это не ТЕСТ

{

$sql=qq(SELECT kinfo_id FROM results WHERE ID=$2);

$sth=ExecSQL($sql);

Assign2var ($sth, $kinfo_ID);

if ($mark ne "**?**")

{

$sql=qq(UPDATE kinfo set handed_in='$curdate' WHERE ID='$kinfo_ID');

}

else

{

$sql=qq(UPDATE kinfo set handed_in='' WHERE ID='$kinfo_ID');

}

$sth=ExecSQL($sql);

}

}

}

Соседние файлы в папке DMoroz