Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
RyukChris
0 / 0 / 0
Регистрация: 03.04.2013
Сообщений: 9
#1

Исправить код тестирования - C++

09.05.2014, 00:09. Просмотров 219. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста!!!
Программа должна выставлять оценку по следующему правилу:
отлично — за правильные ответы на все вопросы, хорошо — если
испытуемый правильно ответил не мене чем на 80% вопросов, удов-
летворительно — если правильных ответов более 60%, и неудов-
летворительно — если правильных ответов меньше 60%.

Не работает((((

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include "stdio.h"
#include "conio.h"
#include "string.h"
using namespace std;
 
void main(int argc, char* argv[])
{
    char fname[40]; // имя файла теста
    FILE* f; // файл теста
    int VsegoVopr = 0; // количество вопросов теста
    int PravOtv = 0; // количество правильных ответов
    // для текущего вопроса
    int nOtv; // количество альтернативных ответов
    int Prav; // номер правильного ответа
    int Otv; // номер ответа, выбранного пользователем
    int p; // процент правильных ответов
    char st[80]; // строка файла теста
    int i; // счетчик циклов
    if ( !argc )
    {
        puts("\nНе задан файл вопросов теста!");
        puts("Командная строка: test ИмяФайлаТеста\n");
        return;
    }
    strcpy(fname,argv[1]); // имя файла из командной строки
    // Открыть файл в режиме чтения (r) текста (t)
    if ((f = fopen(fname, "rt")) == NULL)
    {
        printf("Ошибка открытия файла %s", fname);
        getch();
        return;
    }
    system("cls");
    puts("\nСейчас Вам будет предложен тест.");
    puts("К каждому вопросу дается несколько вариантов ответа.");
    puts("Вы должны ввести номер правильного ответа");
    puts("и нажать клавишу <Enter>\n");
    printf
    ("Для начала тестирования нажмите <Enter>");
    getch();
    system("cls");
    while (!feof(f))
    {
        VsegoVopr++;
        fgets(st, 80, f); // читаем из файла вопрос
        printf("\n%s\n", st); // вопрос на экран
        fscanf(f,"%i %i", &nOtv, &Prav);// кол-во вариантов
        // ответа
        // и номер прав. ответа
        fgets(st,80,f); // дочитать конец предыдущей строки
        //читаем и выводим альтернативные ответы
        for (i = 1; i <= nOtv; i++)
        {
            fgets(st, 80, f);
            printf("%i. %s", i, st);
        }
        printf("\nВаш выбор ->");
        scanf("%i", &Otv);
        if (Otv == Prav) PravOtv++;
    }
    // обработка результата тестирования
    // вычислим процет правильных ответов
    p = 100 * PravOtv / VsegoVopr;
    printf("\nВаша оценка - ");
    if (p == 100) puts("ОТЛИЧНО!");
    if (p >= 99 && p <= 80) puts("ХОРОШО.");
    if (p >= 60 && p <= 79) puts("УДОВЛЕТВОРИТЕЛЬНО.");
    if (p < 60) puts("ПЛОХО!\n");
    puts("\nДля завершения нажмите <Enter>");
    getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.05.2014, 00:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Исправить код тестирования (C++):

Исправить код - C++
Форумчане,знатоки плюсов,очень прошу помочь испраивть код.Сам только начинаю разбираться,поэтому нужна помошь. Часть ошибок...

Исправить код - C++
Исправлял код и не могу исправить выделенное(в коде). Помогите чем-нибудь заменить данные строки(сделать более просто без iFile). В самом...

Исправить код - C++
//#include&lt;iostream.h&gt; #include&quot;time.h&quot; #include&lt;string&gt; using namespace std; const double price=0.0025; const int N=3; const...

исправить код - C++
я сделал задание,а преподавателю не понравилось(( Говорит исправь нахождение степени и определение знака. помогите если можете#include...

Исправить код - C++
t=s; while ((k = strstr(t, &quot;*&quot;)) != NULL &amp;&amp; isdigit(*(k + 1))) { strcpy (s1, t+1); *(t+1)='\0'; strcat (s, &quot; &quot;); ...

Исправить код - C++
В общем тема такая. Есть код программы на c++ который выполняет следующие функции: создает линейный односвязный список,из списка удаляет...

1
nmcf
5685 / 4996 / 1703
Регистрация: 14.04.2014
Сообщений: 20,379
09.05.2014, 09:39 #2
C++
1
2
3
4
5
6
7
8
9
float VsegoVopr = 0;
float PravOtv = 0;
float p;
if (p == 100) puts("ОТЛИЧНО!");
else
    if (p >= 80) puts("ХОРОШО.");
    else
        if (p >= 60) puts("УДОВЛЕТВОРИТЕЛЬНО.");
        else puts("ПЛОХО!\n");
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2014, 09:39
Привет! Вот еще темы с ответами:

исправить на код С - C++
Здравствуйте, исправте пожалуйста программу на код С, кто может. Условие:Даны натуральное число n, действительные числа Х1,...,Хn(n&gt;=2)....

Исправить код - C++
#include &lt;iostream&gt; using namespace std; int main () { setlocale(0, &quot;&quot;); double x, i = 0; // инициализируем счетчик...

Исправить код - C++
Здравствуйте, я решал задачу: Предположим, что уже построен и задан указателем P двунаправленный список, элементами которого являются...

Исправить код - C++
void main () { const int size= 10; int a; srand(time(NULL)); for (int i = 0; i &lt; size; i++) a = rand() % 11 - 5; for...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.