Программа-тест, оператор switch

Уровень сложности:

Составить программу-тест в MVS на языке программирования С++: на экране по очереди появляются вопросы (вопросы выбираются программистом), с вариантами ответов. В конце работы программа выдает количество заработанных баллов по результатам ответа.

Решение данной задачи неоднозначно, у каждого программиста мозг работает по своему. Поэтому код будет отличаться в любом случае, даже если вы тоже в программе используете операторы выбора if и оператор множественного выбора switch. Кстати, среду программирования выбирайте на свое усмотрение, не обязательно использовать Microsoft Visual Studio. Результат работы программы у вас должен получиться такой:

// switch_test.cpp: определяет точку входа для консольного приложения.

#include "stdafx.h"
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    int  answer1, answer2, answer3, answer_case = 0;  // вспомогательные переменные
    cout << "1)How many cat lives? \nanswers: \n-> 5 lives \n-> 7 lives \n-> 9 lives\nyour answer: "; // Сколько жизней у кошки?
    cin >> answer1;
    cout << "\n2)How many centimeters in a meter? \nanswers: \n-> 10 centimeters \n-> 100 centimeters \n-> 1000 centimeters\nyour answer: "; // Сколько сантиметров в одном метре?
    cin >> answer2;
    cout << "\n2)The speed of sound? \nanswers: \n-> 340 m/s \n-> 320 m/s \n-> 240 m/s \nyour answer: "; //Скорость звука?
    cin >> answer3;
    if (answer1 == 9) answer_case ++; // проверяем ответ на первый вопрос
    if (answer2 == 100) answer_case ++; // проверяем ответ на второй вопрос
    if (answer3 == 340) answer_case ++; // проверяем ответ на третий вопрос
    cout << "\nRating = ";
    switch (answer_case) // определяем количество баллов, по пятибальной системе
    {
    case 1: {cout << "2 balla\n"; break;}
    case 2: {cout << "4 balla\n"; break;}
    case 3: {cout << "5 ballov\n"; break;}
    default : cout << "0 ballov\n";
    }
    system("pause");
    return 0;
}

Вопросы формируются оператором cout, после чего, операторы выбора if анализируют ответы, инкрементируют переменную answer_case, если ответ правильный, в противном случае значение в этой переменной не меняется. Далее в операторе множественного выбора switch определяется количество заработанных балов. Ниже, смотрим результат работы программы:

CppStudio.com

1)How many cat lives?
answers:
-> 5 lives
-> 7 lives
-> 9 lives
your answer: 9

2)How many centimeters in a meter?
answers:
-> 10 centimeters
-> 100 centimeters
-> 1000 centimeters
your answer: 100

2)The speed of sound?
answers:
-> 340 m/s
-> 320 m/s
-> 240 m/s
your answer: 340

Rating = 5 ballov

Следующие статьи помогут вам в решении данной задачи:
Автор: admin
Дата: 11.09.2012
Поделиться:

Комментарии

  1. odto11

    odto11

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int iChoice = 0;
        float fRating = 0;
    
        cout << "\t\tПрограмма-тест, оператора switch\n\n";
    
        cout << "Сколько жизней у кошки?";
        cout << "Ответы:\n";
        cout << "-> 5 жизней\n-> 7 жизней\n-> 9 жизней";
        cout << "\nВаш ответ: ";
        cin >> iChoice;
    
        switch(iChoice)
        {
            case 5:
            fRating = 0;
            break;
            case 7:
            fRating = 0;
            break;
            case 9:
            fRating = 5;
            break;
        }
    
        cout << "\nСколько сантиметров в метре?\n";
        cout << "Ответы:\n";
        cout << "-> 10 сантиметров\n-> 100 сантиметров\n-> 1000 сантиметров";
        cout << "\nВаш ответ: ";
        cin >> iChoice;
    
        switch(iChoice)
        {
            case 10:
            fRating = fRating + 0;
            break;
            case 100:
            fRating = fRating + 5;
            break;
            case 1000:
            fRating = fRating + 0;
            break;
        }
    
        cout << "\nКакова скорость звука?\n";
        cout << "Ответы:\n";
        cout << "-> 330 м/с\n-> 320 м/с\n-> 230 м/с";
        cout << "\nВаш ответ: ";
        cin >> iChoice;
    
        switch(iChoice)
        {
            case 330:
            fRating = fRating + 5;
            break;
            case 320:
            fRating = fRating + 0;
            break;
            case 230:
            fRating = fRating + 0;
            break;
        }
    
        cout << fRating << endl;
       cout << "\nВы заработали = " << fRating/3 << " баллов!";
    
        return 0;
    }

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.