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

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

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

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

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

textual
Листинг программы
  1. {$mode delphi}
  2.  
  3. Program tester_final;
  4.  
  5. Uses crt;
  6.  
  7. Var
  8.   fil, result: text;
  9.   name, s, otv, ocenka: string;
  10.   fam, im, kl: string;
  11.   kol, num: integer;
  12.  
  13.   Label er1, er2, er3;
  14. Begin
  15.   num := 0;
  16.   kol := 0;
  17.   assign(result, 'result.res');
  18. {$i-}
  19.   append(result);
  20. {$i+}
  21.   If ioresult<>0 Then // обработка исключения если файл не найден
  22.     Begin
  23.       rewrite(result);
  24.       writeln(result, 'Результаты тестирования: ');
  25.       writeln(result, 'в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ');
  26.     End;
  27.   er1:
  28.        textcolor(lightblue);
  29.   writeln('Вводите на английском');
  30.   normvideo;
  31.   write('Фамилия: ');
  32.   readln(fam);
  33.   write('Имя: ');
  34.   readln(im);
  35.   write('Класс: ');
  36.   readln(kl);
  37.   If ((fam='') Or (im='') Or (kl='')) Then
  38.     Begin
  39.       clrscr;
  40.       textcolor(lightred);
  41.       writeln('Вы ввели не все данные.');
  42.       normvideo;
  43.       writeln('Возврат через 3 сек.');
  44.       delay(3000);
  45.       clrscr;
  46.       goto er1;
  47.     End;
  48.   er3:
  49.        clrscr;
  50.   write('Имя файла -> ');
  51.   readln(name);
  52.   If (name='') Then
  53.     Begin
  54.       clrscr;
  55.       textcolor(lightred);
  56.       writeln('Вы не ввели название файла.');
  57.       normvideo;
  58.       writeln('Возврат через 3 сек.');
  59.       delay(3000);
  60.       goto er3;
  61.     End;
  62.   clrscr;
  63.   assign(fil, name+'.test');
  64. {$i-}
  65.   reset(fil);
  66. {$i+}
  67.   If ioresult<>0 Then
  68.     // обработка исключения если файл теста не найден
  69.     Begin
  70.       clrscr;
  71.       textcolor(lightred);
  72.       write('Файл ');
  73.       normvideo;
  74.       write(' " ', name+'.test', ' " ');
  75.       textcolor(lightred);
  76.       writeln('не найден.');
  77.       normvideo;
  78.       writeln('Возврат через 3 сек.');
  79.       delay(3000);
  80.       goto er3;
  81.     End;
  82.   While Not eof(fil) Do
  83.     Begin
  84.       inc(num);
  85.       textcolor(yellow);
  86.       writeln('Вопрос ', num);
  87.       normvideo;
  88.       Repeat
  89.         readln(fil, s);
  90.         If s='.' Then break
  91.         Else
  92.           writeln(s);
  93.       Until  false;
  94.       readln(fil, s);
  95.       If s[1]<>'#' Then
  96.         Begin
  97.           clrscr;
  98.           textcolor(lightred);
  99.           writeln('Ошибка в файле теста.');
  100.           normvideo;
  101.           writeln('Возврат через 3 сек.');
  102.           delay(3000);
  103.           goto er3;
  104.         End;
  105.       er2:
  106.            writeln;
  107.       write('Ваш ответ -> ');
  108.       readln(otv);
  109.       If (otv='') Then
  110.         Begin
  111.           goto er2;
  112.         End;
  113.       If (s[2]=otv) Then inc(kol);
  114.       delay(500);
  115.       clrscr;
  116.     End;
  117.   close(fil);
  118.   If num=0 Then
  119.     Begin
  120.       textcolor(lightred);
  121.       write('Ошибка: файл ');
  122.       normvideo;
  123.       write(' " ', name+'.test', ' " ');
  124.       textcolor(lightred);
  125.       writeln('пуст.');
  126.       normvideo;
  127.       writeln('Возврат через 3 сек.');
  128.       delay(3000);
  129.       goto er3;
  130.     End;
  131.   textcolor(lightblue);
  132.   writeln('Результаты теста: ');
  133.   normvideo;
  134.   writeln('Всего вопросов: ', num, '. ');
  135.   writeln('Правильных ответов: ', kol, '. ');
  136.   write('Ваша оценка: ');
  137.   If kol=num Then
  138.     Begin
  139.       writeln('Отлично.');
  140.       ocenka := '5';
  141.     End
  142.   Else If kol/num>=0.8 Then
  143.          Begin
  144.            writeln('Хорошо.');
  145.            ocenka := '4';
  146.          End
  147.   Else If kol/num>=0.6 Then
  148.          Begin
  149.            writeln('Удовлетворительно.');
  150.            ocenka := '3';
  151.          End
  152.   Else
  153.     Begin
  154.       writeln('Плохо');
  155.       ocenka := '2';
  156.     End;
  157.   Begin
  158.     writeln(result, 'Фамилия: '+fam);
  159.     writeln(result, 'Имя: '+im);
  160.     writeln(result, 'Класс: '+kl);
  161.     writeln(result, 'Тест: " ', name+'.test' , ' " ');
  162.     writeln(result, 'Количество вопросов: ', num, '. ');
  163.     writeln(result, 'Правильных ответов: ', kol, '. ');
  164.     writeln(result, 'Оценка: ', ocenka, '. ');
  165.     writeln(result, 'в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђ');
  166.   End;
  167.   close(result);
  168.   readln;
  169.   halt;
  170. End.

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


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

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

7   голосов , оценка 3.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы