Р. А. Юсупов, С. Н. Искандарова, Ш. Мирзанова C/C++ тилида топшириқ ва масалалар Самарқанд – 2013 йил


Download 1.35 Mb.
bet99/105
Sana13.04.2023
Hajmi1.35 Mb.
#1353566
TuriУчебник
1   ...   95   96   97   98   99   100   101   102   ...   105
Bog'liq
CPP masalalari1


Часть II. Решения 219
char fname[40]; // имя файла теста
FILE* f; // файл теста
int VsegoVopr =0; // количество вопросов теста
int PravOtv =0; // количество правильных ответов
// для текущего вопроса
int nOtv; // количество альтернативных ответов
int Prav; // номер правильного ответа
int Otv; // номер ответа, выбранного пользователем
int р; // процент правильных ответов
char St[80]; // строка файла теста
int i; // счетчик циклов
if ( large )
{
puts("\nHe задан файл вопросов теста!");
puts("Командная строка: test ИмяФайлаТестаХп");
return;
}
strcpy{fname,argv[l]); // имя файла из командной строки
// Открыть файл в режиме чтения (г) текста (t)
if ((f = fopen(fnaine, "rt")) == NULL)
{
printf("Ошибка открытия файла %s", fname);
getch();
retxim;
}
clrscr0;
puts("ХпСейчас Вам будет предложен тест.");
puts("К каждому вопросу дается несколько \
вариантов ответа.");
puts("Вы должны ввести номер правильного ответа");
puts("и нажать клавишу \n");
printf
220 C/C+-i- в задачах и примерах
("Для начала тестирования нажмите ");
getch();
textbackground(BLUE);
clrscrО;
while (!feof(f))
{
VsegoVopr++;
fgets(st, 80, f); // читаем из файла вопрос
printf("\n%s\n", St); // вопрос на экран
fscanf(f,"%i %i", &nOtv, &Prav);// кол-во вариантов
// ответа
//и номер прав, ответа
fgets(st,80,f); // дочитать конец предыдущей строки
//читаем и выводим альтернативные ответы
for (1 = 1; 1 <= nOtv; l+-f)
{
fgets (st, 80, f);
printf("%1. %s", 1, st);
}
printf("\пВаш выбор ->");
scanf("%1", &Otv);
if (Otv == Prav) PravOtv++;
}
// обработка результата тестирования
// вычислим процент правильных ответов
р = 100 * PravOtv / VsegoVopr;
printf("\пВаша оценка - ");
if (р == 100) puts("ОТЛИЧНО!");
if (р >= 99 && р <= 80) puts("ХОРОШО.");
if (р >= 60 && р <= 7 9) puts("УДОВЛЕТВОРИТЕЛЬНО.");
if (р < 60) puts("ПЛОХО!\п");
puts("\nДля завершения нажмите ");
getch();

Download 1.35 Mb.

Do'stlaringiz bilan baham:
1   ...   95   96   97   98   99   100   101   102   ...   105




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling