Помощь - Поиск - Пользователи - Календарь
Полная версия: Тестирование
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-Shults99-
Подскажите, кто-нибудь видел подобное(всмысле код)?

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

1.Программа должна обеспечить работу с тестом произвольной длины, т.е. не должно быть ограничений на
количество вопросов в тесте.
2.Каждому вопросу может соответствовать до четырех возможных вариантов ответа со своей балльной оценкой.
3.Результат тестирования должен быть отнесен к одному из четырех уровней. Например, "отлично", "хорошо",
"удовлетворительно" или "плохо".
4.Тест представляет собой текстовый файл.
5.Программа должна быть инвариантна к различным тестам, т.е. изменения в тесте не должны вести за собой
требования изменения программы,
6.Программа не должна обеспечивать возврат к предыдущему вопросу. Если вопрос предложен, то на него должен
быть получен ответ.


**********************************************************

Запуск проги может быть из строки test.exe text_fail
где text_fail - текстовый файл с тестами.
Каждый вопрос сотоит из теста вопроса и текста вариантов ответа.
и т.д.
Ozzя
Есть такое. С ТурбоВижн написанное. Обеспечивает всё, кроме п. 4 (file of records). Выложить?
Вариантов ответов 3-7. Множественный выбор ответов. Ввод правильного ответа.
Shults99
Нет, не надо, thnks. К сож. нужно на Турбо-Паскале...
Ozzя
На турбо паскале + турбо вижн
klem4
А где у тебя возникает проблема в реализации ? По моему все достаточно тривиально, а текстовом файле строки расположить следующим образом

впрос1
ответ1
балл за ответ1 (скажем это правильный ответ, тут 25 баллов, а остальные 0)
ответ2
балл за ответ2
ответ3
балл за ответ 3
ответ4
балл за ответ4

вопрос2
... и так далее ...

хотя удобнее будет вот так

вопрос1
ответ1 балл
ответ2 балл
...


или даже так :

вопрос1
ответ1
ответ2
ответ3
ответ4
балл1
балл2
балл3
балл4

...
klem4
Вот набросал на скорую руку, суть я думаю поймешь :

uses crt;
var
   f : text;
   s : string;
   ch : char;
   i,j,sum,e,t : integer;

begin

   clrscr;

   assign(f,'c:\questions.txt');

   reset(f);

   sum := 0; i := 0;

   while (not(eof(f))) do begin
      clrscr;
      inc(i);
      writeln('Vopros N ',i);
      readln(f,s);
      writeln(s);
      writeln('Varianti otvetov');
      for j := 1 to 4 do begin
         write(j,' ');
         readln(f,s);
         writeln(s);
      end;
      writeln;
      repeat
         ch := readkey;
      until ch in ['1'..'4'];

      for j := 1 to 4 do begin
         readln(f,s);
         if j = ord(ch)-48 then begin
            val(s,t,e);
            sum := sum + t;
         end;
      end;
   end;

   writeln('sum = ',sum);
   close(f);
   readln;

end.



Содержание файла :

Цитата
Skolko vipit piva ?
dva batla
tri batla
5 batlov
niodnogo
3
7
9
0
oleg opozdaet ?
da, na 5 minut
da, na 20 minut
net
ya sam opozdau muahaha!
1
2
10
15
Shults99
Да, klem4, у меня проблема в реализации..
В т.ч. на reset(f) останавливается прога и говорит не знаю такого файла - questions.txt переписал в текущ и в корень
Ozzя
questions.txt - 9 символов в имени файла. Возможно, не берет из-за этого.
Попробуй переименовать в question.txt
Shults99
Угу. Вечерком попробую.
Shults99
Осталось совсем чуть-чуть.
Как напишу выложу тест по определению силы воли в профессиональной деятельности )))
Так, вопрос.
Три оценки по прохождению теста, взависимости от значения переменной sum.
Как их с помощью цикла (или нет) выдавать. Т.е. если сумма 10, то тройка, если сумма 15, то 4-, если больше, чем 15, то 5 ?
Вот пока все, о чем я додумался.
    writeln('Nabrano ballov - ',sum);
      if sum<=12 then
      writeln('Vasha otcenka = 0 
 Vy prosto delayete to, chto Vam interesno');
      else
      if (sum>13) and (sum<21) then
      writeln('Vasha otcenka = 4- 
 Po dobroy vole lishnego na sebya ne vozmete ;)')
      else
      writeln('Vasha otcenka = 5 
 Podumayte o gibkosti, snishoditelnosti i dobrote');
   close(f);
   readln;
Shults99
Тест силы воли в профессиональной деятельности.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.