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

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

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

Программа "Тест" - C++

21.11.2012, 03:00. Просмотров 428. Ответов 4
Метки нет (Все метки)

Доброго времени суток...
Задание получил вот такое..
"Написать программу - Тест по истории. Программа задает пользователю вопрос, на который пользователь отвечает. После 3х неудачных ответов, программа задает следующий вопрос. Тест должен состоять из 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
 
void main ()
{
int q=0,w=0,r=0,t=0;
string st ("otvet");
string a;
cout<<"vopros1?"<<endl;
cin>>a;
while (st!=a)
{
q++;
cout<<"vopros1?"<<endl;
cin>>a;
if(q==2){break;}}
 
string st1 ("otvet");
string b;
cout<<"vopros2?"<<endl;
cin>>b;
while (st1!=b)
{
w++;
cout<<"vopros2?"<<endl;
cin>>b;
if(w==2){break;}}
 
string st2 ("otvet");
string c;
cout<<"vopros3?"<<endl;
cin>>c;
while (st2!=c)
{
r++;
cout<<"vopros3?"<<endl;
cin>>c;
if(r==2){break;}}
 
string st3 ("otvet");
string d;
cout<<"vopros4?"<<endl;
cin>>d;
while (st3!=d)
{
t++;
cout<<"vopros4?"<<endl;
cin>>d;
if(t==2){break;}}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2012, 03:00     Программа "Тест"
Посмотрите здесь:

Программа "задумывает" число и предлагает пользователю его угадать C++
Замените в слове "му" на "а", а букву "ы" на "ца". C++
C++ Программа, заменяющая "-" на "_"
C++ Заменитье буквы "a" и "o" в слове на "A" и "O".
C++ Замените буквы "а" и "о" в слове на "А" и "О".
C++ тестовая программа не компилируется = "error: 'mainfunc' was not declared in this scope|"
что дальше? (программа вводит информацию из ведомости и печатает фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими) C++
Программа "Аэрофлот", тема "Структура" C++
C++ Программа "Тест по истории"
Определить иерархию классов для варианта "тест, экзамен, выпускной экзамен, испытание" C++
C++ Отсортировать struct. (дайте тест, который "сломает" мой код)
Структура "Тест" с полями: C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ps10n1ck
54 / 48 / 2
Регистрация: 10.11.2010
Сообщений: 132
21.11.2012, 05:27     Программа "Тест" #2
Примерно так будет выглядеть задача, если что непонятно, спрашивай - отпишу:

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
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <string>
 
using std::cin;
using std::cout;
using std::endl;
using std::string;
 
typedef unsigned int uint;
 
int main(){
 
// всего вопросов
const uint nTotalQuestions = 4;
 
// динамическое выделение памяти под вопросы
string *pQuestions = new string[nTotalQuestions];
// динамическое выделение памяти под ответы
string *pAnswers = new string[nTotalQuestions];
// ответ
string Answer;
 
// рейтинг пользователя
uint nRating = 0;
 
// максимальное кол. очков за правильный ответ
const uint nMaxPointsPerQuestion = 3;
 
// кол. попыток для ответа на вопрос
const uint nTotalAttemptsPerQuestion = 3;
 
// инициализация вопросов (тут вписываешь свои вопросы)
pQuestions[0] = "Question 1";
pQuestions[1] = "Question 2";
pQuestions[2] = "Question 3";
pQuestions[3] = "Question 4";
 
// инициализация ответов (тут вписываешь свои ответы)
pAnswers[0] = "Answer1";
pAnswers[1] = "Answer2";
pAnswers[2] = "Answer3";
pAnswers[3] = "Answer4";
 
// счетчик вопросов
uint nQuestionCounter = 0;
// счетчик ответов
uint nAnswerCounter;
 
// начинаем задавать вопросы
while(nQuestionCounter < nTotalQuestions){
    // выводим вопрос
    cout << pQuestions[nQuestionCounter] << endl;
 
    // для каждого вопроса обновляем счетчик ответов
    nAnswerCounter = 0;
    // цикл ответов
    while(nAnswerCounter < nTotalAttemptsPerQuestion){
        // вводим ответ
        cout << "Enter your answer: ";
        cin >> Answer;
        // если ответ верный, прибавляем кол. рейтинга 
        // (алгоритм можешь придумать свой)
        // и завершаем цикл ввода ответов на данный вопрос
        if(pAnswers[nQuestionCounter] == Answer){
            nRating += (nMaxPointsPerQuestion - nAnswerCounter);
            break;
        }
        ++nAnswerCounter;
    }
    cout << endl;
    ++nQuestionCounter;
}
 
// вывод рейтинга
cout << "Your rating: " << nRating << endl;
 
// удаляем память выделенную под вопросы и ответы
delete [] pAnswers;
delete [] pQuestions;
return 0;
}
[img]http://s019.***********/i604/1211/60/5d75e8b8d428t.jpg[/img]
Paradox10
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 42
21.11.2012, 14:09  [ТС]     Программа "Тест" #3
ps10n1ck , а не мог бы ты объяснить,как ты сделал именно рейтинг ??? Своими словами, или построчно...Я просто только учусь))) И код написанный тобой, с трудом прочитал))))

p.s сам алгоритм не вижу в коде...
ps10n1ck
54 / 48 / 2
Регистрация: 10.11.2010
Сообщений: 132
21.11.2012, 14:50     Программа "Тест" #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
while(nAnswerCounter < nTotalAttemptsPerQuestion){
        // вводим ответ
        cout << "Enter your answer: ";
        cin >> Answer;
        // если ответ верный, прибавляем кол. рейтинга 
        // (алгоритм можешь придумать свой)
        // и завершаем цикл ввода ответов на данный вопрос
        if(pAnswers[nQuestionCounter] == Answer){
            nRating += (nMaxPointsPerQuestion - nAnswerCounter);
            break;
        }
        ++nAnswerCounter;
    }
запускаем цикл проверки ответов, далее вводим ответ и сохраняем его в Answer, после делаем проверку ответа, если ответ верный - считаем сам рейтинг:
C++
1
nRating += (nMaxPointsPerQuestion - nAnswerCounter);
тут ничего сложного, просто берется максимальное кол. балов за правильный ответ(в самом начале кода задается) и отнимается по 1 баллу за каждую попытку, если попытка первая, то просто отнимается 0 - ничего не меняется. Это самый простой рейтинг, можно выдумать какой угодно, но смысл будет тот же, просто добавятся прочие вычисления.
C++
1
2
3
nRating += (nMaxPointsPerQuestion - nAnswerCounter);
это то же самое, что и 
nRating = nRating + (nMaxPointsPerQuestion - nAnswerCounter);
nRating - рейтинг, который хранит просто сумму баллов, которые считаются в цикле вопросов
C++
1
2
3
while(nQuestionCounter < nTotalQuestions){
.....
}
Paradox10
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 42
21.11.2012, 14:55  [ТС]     Программа "Тест" #5
ps10n1ck - Вот теперь все понятно..Огромное тебе спасибо..)
Yandex
Объявления
21.11.2012, 14:55     Программа "Тест"
Ответ Создать тему
Опции темы

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