Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Вниз

Программы для тестирования студентов в локальной сети   Найти похожие ветки 

 
Константинов ©   (2004-12-20 22:46) [0]

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

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

Вопросов собственно несколько:
1. Мне не очень нравится сама идея использования типизированных файлов. Не лучше ли для этой цели использовать базы данных? Хоть тот же Paradox?( Не будет головной боли совместного доступа к файлам ).

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

3. Где и как хранить некоторые, общие для всех пользовательских ПК настройки, которые мог бы изменять преподователь?
Ini файл в той же директории, где храняться тесты? Тут уж даже не надо быть семи пядей во лбу, чтобы подправить этот файл даже в блокноте.

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


 
opel ©   (2004-12-20 23:13) [1]

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

         // начало теста
DBNavigator1.BtnClick(nbNext);
         //выборка слов для вывода
LvK := ADOTable1.FieldByName("nam").Value;
if (EndArh < 22) then
 begin
     Range := EndArh-1;
     Randomize;
     repeat
     Lv1 := 1+Random(Range);
     until Lv1 <> LvK;
     repeat
     Lv2 := 1+Random(Range);
     until (Lv2 <> Lv1) and (Lv2 <> LvK);
     repeat
     Lv3 := 1+Random(Range);
     until (Lv3 <> Lv1) and (Lv3 <> Lv2) and (Lv3 <> LvK);
     repeat
     Lv4 := 1+Random(Range);
     until (Lv4 <> Lv1) and (Lv4 <> Lv2) and (Lv4 <> Lv3) and (Lv4 <> LvK);
 end;
  // распределение надписей для кнопок
    Ar[1] := LvK;
    Ar[2] := Lv1;
    Ar[3] := Lv2;
    Ar[4] := Lv3;
    Ar[5] := Lv4;
 Cap1 := Ar[1+Random(5)];
 repeat
 Cap2 := Ar[1+Random(5)];
 until Cap2 <> Cap1;
 repeat
 Cap3 := Ar[1+Random(5)];
 until (Cap3 <> Cap1) and (Cap3 <> Cap2);
 repeat
 Cap4 := Ar[1+Random(5)];
 until (Cap4 <> Cap1) and (Cap4 <> Cap2) and (Cap4 <> Cap3);
 repeat
 Cap5 := Ar[1+Random(5)];
 until (Cap5 <> Cap1) and (Cap5 <> Cap2) and (Cap5 <> Cap3) and (Cap5 <> Cap4);
     tesButton1.Caption := ADOTable1.Lookup("nam",Cap1,"per");
     tesButton2.Caption := ADOTable1.Lookup("nam",Cap2,"per");
     tesButton3.Caption := ADOTable1.Lookup("nam",Cap3,"per");
     tesButton4.Caption := ADOTable1.Lookup("nam",Cap4,"per");
     tesButton5.Caption := ADOTable1.Lookup("nam",Cap5,"per");
 tesPanel3.Visible := True;
end;
                                    //  СРАВНЕНИЕ СТРОК

procedure TForm1.tesButtonClick(Sender: TObject);

begin
                      // оценка
  A := Trim(ADOTable1.Lookup("nam",LvK,"per"));
  B := Trim((Sender as TButton).Caption);
  C := CompareStr(A,B);
if  (C <> 0) then begin
   Labeltes7.Visible := True;
   Timer4.Interval := 1000;
  end
else
 begin
          //выборка слов для вывода

 DBNavigator1.BtnClick(nbNext);
 LvK := ADOTable1.FieldByName("nam").Value;
 if (EndArh < 22) then
 begin
     Range := EndArh-1;
     Randomize;
     repeat
     Lv1 := 1+Random(Range);
     until Lv1 <> LvK;
     repeat
     Lv2 := 1+Random(Range);
     until (Lv2 <> Lv1) and (Lv2 <> LvK);
     repeat
     Lv3 := 1+Random(Range);
     until (Lv3 <> Lv1) and (Lv3 <> Lv2) and (Lv3 <> LvK);
     repeat
     Lv4 := 1+Random(Range);
     until (Lv4 <> Lv1) and (Lv4 <> Lv2) and (Lv4 <> Lv3) and (Lv4 <> LvK);
 end;
  // распределение надписей для кнопок
    Ar[1] := LvK;
    Ar[2] := Lv1;
    Ar[3] := Lv2;
    Ar[4] := Lv3;
    Ar[5] := Lv4;
 Cap1 := Ar[1+Random(5)];
 repeat
 Cap2 := Ar[1+Random(5)];
 until Cap2 <> Cap1;
 repeat
 Cap3 := Ar[1+Random(5)];
 until (Cap3 <> Cap1) and (Cap3 <> Cap2);
 repeat
 Cap4 := Ar[1+Random(5)];
 until (Cap4 <> Cap1) and (Cap4 <> Cap2) and (Cap4 <> Cap3);
 repeat
 Cap5 := Ar[1+Random(5)];
 until (Cap5 <> Cap1) and (Cap5 <> Cap2) and (Cap5 <> Cap3) and (Cap5 <> Cap4);
     tesButton1.Caption := ADOTable1.Lookup("nam",Cap1,"per");
     tesButton2.Caption := ADOTable1.Lookup("nam",Cap2,"per");
     tesButton3.Caption := ADOTable1.Lookup("nam",Cap3,"per");
     tesButton4.Caption := ADOTable1.Lookup("nam",Cap4,"per");
     tesButton5.Caption := ADOTable1.Lookup("nam",Cap5,"per");
 tesPanel3.Visible := True;
end;
end;

procedure TForm1.Timer4Timer(Sender: TObject);
begin
  Labeltes7.Visible := False;
  Timer4.Interval := 0;
end;


 
sniknik ©   (2004-12-20 23:36) [2]

всем трем вопросам замечательно отвечает трехзвенка. ;о))

без шуток.
1 конечно база, но не парадокс, можно аксесс. (будет но есть шанс сделать нормально, в отличии от типизированных файлов)

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

3 аналогично с базой, просто держи в недоступном с клиентов месте.

по инструментам, ADO + midas вполне подойдет. (проще делать на SocketConnection, с DCOM или тем паче RDS лучше в первое время не связываться ;о)), заколебешся с настройками даже при полностью рабочей проге ;)


 
Vit@ly ©   (2004-12-20 23:39) [3]


> Тесты стандартные (вопрос и несколько вариантов ответов,
> один или несколько из которых правильные ).

Достаточно долго работаю с программами тестирования и аттестации. Возможно корень именно в том, что "Тесты стандартные".
Но это уже проблема постановщиков, а не программиста.
1. ИМХО лучше все-таки использовать базы данных (даже любые)
2. Открывать общий ресурс программно, только тогда, когда работает инструктор и по окончании его работы закрывать общий доступ (естесственно тоже программно). Кстати интересно как формируются задания студентам? Это статический набор "тестов" или динамически формируемый преподавателем из большой группы вопросов (что практически обеспечивает неповторяемость тестов).
3. А что необходимо менять преподавателю, если задания формируются случайным образом? Не совсем понял при чем здесь блокнот при грамотной организации?
Если интересно можно ответить на форуме или на мыло.
Принципиально работающую демку (для ознакомления с организацией проекта) могу выслать


 
Константинов ©   (2004-12-21 00:46) [4]

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

Vit@ly ©   (20.12.04 23:39) [3]
>Принципиально работающую демку (для ознакомления с организацией проекта) могу выслать

был бы очень признателен!
только мыло в анкете "битое"
работает yur-k@yandex.ru


 
KSergey ©   (2004-12-21 08:00) [5]

> [2] sniknik ©   (20.12.04 23:36)
> всем трем вопросам замечательно отвечает трехзвенка. ;о))

А просто взять готовый SQL-серверок простенький - это уже не прикольно? Или надо обязательно самому "на сокетах связь делать"?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.046 c
14-1103707033
Hypercube
2004-12-22 12:17
2005.01.09
Программы как исполняемая информация


1-1103554456
Cosinus
2004-12-20 17:54
2005.01.09
Как узнать координаты определенной строки в ListBox-е?


1-1103620841
Cosinus
2004-12-21 12:20
2005.01.09
Assigned &amp; Dispose. Что не так?


9-1094678752
массив
2004-09-09 01:25
2005.01.09
Glscene Как создавать TGLFreeForm в рантайме ?


14-1103319750
saNat
2004-12-18 00:42
2005.01.09
Российский сотовый телефон





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский