Конструктор тестов - нужен пример - C#

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Конструктор тестов - нужен пример»

textual
Листинг программы
{$mode delphi}
 
Program tester_final;
 
Uses crt;
 
Var 
  fil, result: text;
  name, s, otv, ocenka: string;
  fam, im, kl: string;
  kol, num: integer;
 
  Label er1, er2, er3;
Begin
  num := 0;
  kol := 0;
  assign(result, 'result.res');
{$i-}
  append(result);
{$i+}
  If ioresult<>0 Then // обработка исключения если файл не найден
    Begin
      rewrite(result);
      writeln(result, 'Результаты тестирования: ');
      writeln(result, 'в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ');
    End;
  er1:
       textcolor(lightblue);
  writeln('Вводите на английском');
  normvideo;
  write('Фамилия: ');
  readln(fam);
  write('Имя: ');
  readln(im);
  write('Класс: ');
  readln(kl);
  If ((fam='') Or (im='') Or (kl='')) Then
    Begin
      clrscr;
      textcolor(lightred);
      writeln('Вы ввели не все данные.');
      normvideo;
      writeln('Возврат через 3 сек.');
      delay(3000);
      clrscr;
      goto er1;
    End;
  er3:
       clrscr;
  write('Имя файла -> ');
  readln(name);
  If (name='') Then
    Begin
      clrscr;
      textcolor(lightred);
      writeln('Вы не ввели название файла.');
      normvideo;
      writeln('Возврат через 3 сек.');
      delay(3000);
      goto er3;
    End;
  clrscr;
  assign(fil, name+'.test');
{$i-}
  reset(fil);
{$i+}
  If ioresult<>0 Then
    // обработка исключения если файл теста не найден
    Begin
      clrscr;
      textcolor(lightred);
      write('Файл ');
      normvideo;
      write(' " ', name+'.test', ' " ');
      textcolor(lightred);
      writeln('не найден.');
      normvideo;
      writeln('Возврат через 3 сек.');
      delay(3000);
      goto er3;
    End;
  While Not eof(fil) Do
    Begin
      inc(num);
      textcolor(yellow);
      writeln('Вопрос ', num);
      normvideo;
      Repeat
        readln(fil, s);
        If s='.' Then break
        Else
          writeln(s);
      Until  false;
      readln(fil, s);
      If s[1]<>'#' Then
        Begin
          clrscr;
          textcolor(lightred);
          writeln('Ошибка в файле теста.');
          normvideo;
          writeln('Возврат через 3 сек.');
          delay(3000);
          goto er3;
        End;
      er2:
           writeln;
      write('Ваш ответ -> ');
      readln(otv);
      If (otv='') Then
        Begin
          goto er2;
        End;
      If (s[2]=otv) Then inc(kol);
      delay(500);
      clrscr;
    End;
  close(fil);
  If num=0 Then
    Begin
      textcolor(lightred);
      write('Ошибка: файл ');
      normvideo;
      write(' " ', name+'.test', ' " ');
      textcolor(lightred);
      writeln('пуст.');
      normvideo;
      writeln('Возврат через 3 сек.');
      delay(3000);
      goto er3;
    End;
  textcolor(lightblue);
  writeln('Результаты теста: ');
  normvideo;
  writeln('Всего вопросов: ', num, '. ');
  writeln('Правильных ответов: ', kol, '. ');
  write('Ваша оценка: ');
  If kol=num Then
    Begin
      writeln('Отлично.');
      ocenka := '5';
    End
  Else If kol/num>=0.8 Then
         Begin
           writeln('Хорошо.');
           ocenka := '4';
         End
  Else If kol/num>=0.6 Then
         Begin
           writeln('Удовлетворительно.');
           ocenka := '3';
         End
  Else
    Begin
      writeln('Плохо');
      ocenka := '2';
    End;
  Begin
    writeln(result, 'Фамилия: '+fam);
    writeln(result, 'Имя: '+im);
    writeln(result, 'Класс: '+kl);
    writeln(result, 'Тест: " ', name+'.test' , ' " ');
    writeln(result, 'Количество вопросов: ', num, '. ');
    writeln(result, 'Правильных ответов: ', kol, '. ');
    writeln(result, 'Оценка: ', ocenka, '. ');
    writeln(result, 'в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ');
  End;
  close(result);
  readln;
  halt;
End.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.286 из 5
Похожие ответы