Создать программу тестирования на 20 вопросов - C (СИ)
Формулировка задачи:
Написать программу на языке программирования Си, которая тестирует пользователя по заданной в варианте теме.
Тест должен содержать как минимум 20 вопросов, подсчитывать количество верно выбранных ответов и выставлять оценку согласно установленным критериям:
- оценка 5 («отлично») соответствует 95% правильных ответов (для 20 вопросов это 19 правильных ответов);
- оценка 4 («хорошо») соответствует 75% правильных ответов (для 20 вопросов это 15 правильных ответов);
- оценка 3 («удовлетворительно») соответствует 55% правильных ответов (для 20 вопросов это 11 правильных ответов).
По окончании теста должно выводиться сообщение с оценкой и количеством правильно выбранных ответов.
В тесте должны быть представлены вопросы трех типов:
- с одним правильным ответом;
- с несколькими правильными ответами;
- со свободным ответом.
Обязательна реализация тестирующей программы с использованием подпрограмм для выполнения отдельных действий.
Предусмотреть защиту от ввода ошибочных данных.
Тест на тему «Серебряный век русской литературы»
Тестирующая программа содержит базу вопросов по заданной теме (≥40 вопросов), из которой при запуске программы случайным образом выбираются N вопросов (число N задает пользователь); вопросы теста, варианты ответов и правильные ответы организованы в виде файла/файлов; результаты тестирования сохраняются в отдельном файле; имеется возможность пропустить текущий вопрос с последующим возвратом к нему; обязательно наличие редактора теста для добавления/удаления/изменения вопросов теста.
В блокноте есть вопросы и ответы. Нужно только написать программу.P.S. Всё выше описанное это чтобы были в курсе о чём писать. Буду благодарен за помощь.
Решение задачи: «Создать программу тестирования на 20 вопросов»
textual
Листинг программы
#include "stdafx.h"
#include "stdlib.h"
#include "locale.h"
#include "string.h"
void main()
{
int i=0,prav=0,neprav=0;
FILE *R,*V,*O,*S;
char a[50],b[1000],c[1000],d[100],e[1000];
setlocale(LC_ALL,"rus");
printf("\n Тест на тему "Серебряный век русской литературы"");
R = fopen("F:\\Test\\Lion\\Result.txt","wt");
fprintf(R,"%s",a);
fclose(R);
system("cls");
V=fopen("F:\\Test\\Lion\\Voprosy.txt","r");
O=fopen("F:\\Test\\Lion\\Otvety.txt","r");
S=fopen("F:\\Test\\Lion\\Pr.txt","r");
while((!feof(V))&&(!feof(O)))
{
fgets(b,1000,V);
fgets(c,1000,O);
printf("%s\n%s",b,c);
printf("\n Ответ: ");
scanf("%s",&d);
fscanf(S,"%s",&e);
if (strcmp(d,e)==0){ prav++;}
else {neprav++;}
}
printf("Верные ответы %d\n",prav);
printf("Неверные ответы %d\n",neprav);
fclose(O);
fclose(V);
system("color F0");
system("pause");
}