Форум программистов, компьютерный форум CyberForum.ru

Сделать тесты небольшие - C++

Восстановить пароль Регистрация
 
FIN7
 Аватар для FIN7
2 / 2 / 0
Регистрация: 09.02.2013
Сообщений: 168
26.02.2014, 17:50     Сделать тесты небольшие #1
Вот вообщем код который задает значения и нужно вписать ответ и если правильно пишет правильно если нет пишет нет и пишет ответ:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
    srand(time(0));
    setlocale(LC_ALL, "rus");
    int num1, num2, result;
    num1 = rand() % 8 + 2;
    num2 = rand() % 8 + 2;
    cout << "Сколько будет?\n" << num1 << " * " << num2 << " = ";
    cin >> result;
    if (result == num1*num2)
        cout << "Правильно!\n";
    else
        cout << "Не правильно! " << num1 << "*" << num2 << "=" << num1*num2 << "\n";
    system("pause");
    return 0;
}
Нужно сделать что бы вопросы не повторялись

Сделать что бы это было тестом, тоесть задается первый вопрос пишем ответ, после этого 2 вопрос пишем ответ, ну и допустим 5 тестов, пишем ответы, и в конце показывает сколько правильных ответов и сколько не правильных, и те что не правильные показать и написать правильный ответ
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2014, 17:50     Сделать тесты небольшие
Посмотрите здесь:

Небольшие вопросы C++
switch есть небольшие затруднения C++
Небольшие изменение в коде C++
требуется написать небольшие программки C++
Небольшие задачи с массивами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
26.02.2014, 17:55     Сделать тесты небольшие #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int buf=0;
while(buf<5)
{
num1 = rand() % 8 + 2;
    num2 = rand() % 8 + 2;
    cout << "Сколько будет?\n" << num1 << " * " << num2 << " = ";
    cin >> result;
    if (result == num1*num2)
        cout << "Правильно!\n";
    else
        cout << "Не правильно! " << num1 << "*" << num2 << "=" << num1*num2 << "\n";
buf++;
}
FIN7
 Аватар для FIN7
2 / 2 / 0
Регистрация: 09.02.2013
Сообщений: 168
26.02.2014, 17:59  [ТС]     Сделать тесты небольшие #3
Amandosov, а как теперь сделать что бы ответ был не после каждого вопроса а в конце? и что бы в конце ответы показывало только к не правильным ответам, и показывало сколько правильных ответов. Я думаю через массивы надо сделать, но не знаю точно как...массивы только начал учить
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
26.02.2014, 18:14     Сделать тесты небольшие #4
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
int main()
{
 
    srand(time(0));
    setlocale(LC_ALL, "rus");
    int count = 5;
    int neg_answ = 0, pos_answ = 0;
    while (count > 0)
    {
        int num1, num2, result;
        num1 = rand() % 8 + 2;
        num2 = rand() % 8 + 2;
        std::cout << "Сколько будет?\n" << num1 << " * " << num2 << " = ";
        std::cin >> result;
        if (result == num1*num2)
        {
            std::cout << "Правильно!\n";
            ++pos_answ;
        }
        else
        {
            std::cout << "Не правильно! " << num1 << "*" << num2 << "=" << num1*num2 << "\n";
            ++neg_answ;
        }
        --count;
    }
    std::cout << "Правильных ответов  " << pos_answ << "\n";
    std::cout << "Неправильных ответов  " << neg_answ << "\n";
    system("pause>>null");
    return 0;
}
Добавлено через 25 секунд
Цитата Сообщение от FIN7 Посмотреть сообщение
Amandosov, а как теперь сделать что бы ответ был не после каждого вопроса а в конце? и что бы в конце ответы показывало только к не правильным ответам, и показывало сколько правильных ответов. Я думаю через массивы надо сделать, но не знаю точно как...массивы только начал учить
Это там не реализовано ещё.

Добавлено через 11 минут
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
int main()
{
 
    srand(time(0));
    setlocale(LC_ALL, "rus");
    int count = 5;
    std::string *neg_answ = new std::string[5];
    std::string *pos_answ = new std::string[5];
    int pos = 0, neg = 0, i = 0, j = 0;
    while (count > 0)
    {
        int num1, num2, result;
        num1 = rand() % 8 + 2;
        num2 = rand() % 8 + 2;
        std::cout << "Сколько будет?\n" << num1 << " * " << num2 << " = ";
        std::cin >> result;
        if (result == num1*num2)
        {
            std::cout << "Правильно!\n";
            ++pos;
        }
        else
        {
            std::cout << "Не правильно! ";// << num1 << "*" << num2 << "=" << num1*num2 << "\n";
            ++neg;
            std::string temp1, temp2, result;
            std::stringstream ss1;
            ss1 << num1;
            ss1 >> temp1;
            std::stringstream ss2;
            ss2 << num2;
            ss2 >> temp2;
            std::stringstream ss3;
            ss3 << num2*num1;
            ss3 >> result;
            neg_answ[i] = std::string ("Правильный ответ выражения " + temp1 + "*" + temp2 + " это " + result);
            ++i;
        }
        --count;
    }
    std::cout << "Правильных ответов  " << pos << "\n";
    std::cout << "Неправильных ответов  " << neg << "\n";
    for (int i = 0; i < neg; ++i)
        std::cout << neg_answ[i] << "\n";
    system("pause>>null");
    return 0;
}
Добавлено через 2 минуты
Только там нужно удалить пару ненужных переменных.
C++
1
    std::string *pos_answ = new std::string[5];
и
C++
1
j = 0;
FIN7
 Аватар для FIN7
2 / 2 / 0
Регистрация: 09.02.2013
Сообщений: 168
26.02.2014, 18:19  [ТС]     Сделать тесты небольшие #5
А как сделать что бы не повторялось?
Изображения
 
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
26.02.2014, 18:20     Сделать тесты небольшие #6
А хз. У меня ничего не повторяется с тем же кодом. о_О
Я ещё долго думала, что у Вас там повторяется. У меня все вопросы разные.
FIN7
 Аватар для FIN7
2 / 2 / 0
Регистрация: 09.02.2013
Сообщений: 168
26.02.2014, 18:23  [ТС]     Сделать тесты небольшие #7
Тамика, щас исправлю..понял уже вроде бы
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
26.02.2014, 18:23     Сделать тесты небольшие #8
Сделать тесты небольшие
FIN7
 Аватар для FIN7
2 / 2 / 0
Регистрация: 09.02.2013
Сообщений: 168
26.02.2014, 23:04  [ТС]     Сделать тесты небольшие #9
Тамика, почему ошибку выдает?
Миниатюры
Сделать тесты небольшие  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2014, 11:33     Сделать тесты небольшие
Еще ссылки по теме:

C++ 2 небольшие функции
C++ Помогите написать две небольшие программы по блок схемам
C++ Разработка двоичного калькулятора (небольшие недочеты)

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

Или воспользуйтесь поиском по форуму:
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
27.02.2014, 11:33     Сделать тесты небольшие #10
А хидерок кто будет включать?
#icnlude <sstream>
Yandex
Объявления
27.02.2014, 11:33     Сделать тесты небольшие
Ответ Создать тему
Опции темы

Текущее время: 16:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru