Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
TecktoTrance
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 13
#1

Защита от дурака

06.03.2013, 19:29. Просмотров 1135. Ответов 3
Метки нет (Все метки)

Здравствуйте уважаемые форумчане! я к вам, и вот по какому делу)
Вот есть у меня задача:
Даны два целых числа А и В. Вывести в порядке убывания все целые числа, расположенные между А и В,
не включая сами эти числа, а также количество N этих чисел. А и В вводит пользователь, А < В.
Предусмотреть возможность повторения действия пользователя несколько раз.

А вот и код:
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
#include <iostream>
using namespace std;
void main(){
    setlocale(LC_ALL,"rus");
    int a,b;
    int sum=0;
    int answer;
    do{
    cout<<"Выберите действие: "<<endl;
    cout<<"1.Запуск программы"<<endl;
    cout<<"2.Выход из программы"<<endl;
    cout<<"Ваше действие: ";cin>>answer;
 
    switch(answer){
    case 1:
    cout<<"Введите числа, при условии что А<B"<<endl;
    cout<<"Введите число А: ";cin>>a;
    cout<<"Введите число В: ";cin>>b;
    if(a>b){
        cout<<"Вы ввели числа(символы) не по условию задания!"<<endl;
    }
    for(int i=b-1;i>a;i--){
        cout<<i<<" ";
        sum++;
        }
    
    cout<<endl<<"Количество выведенных чисел: "<<sum<<endl<<endl;
    sum=0; //сбрасывает счетчик выведенных чисел
    break;
    case 2:
        cout<<"Выход из программы!"<<endl;
        break;
    default:
        cout<<"Вы ввели числа(символы) не по условию задания!"<<endl;
    }}while(answer!=2);
    cout<<"Пока, Пока! ;D"<<endl;
 
}
Все вроде хорошо, только вот не могу сделать чтоб была защита от введенных пользователем символов, то есть, если он вводит в меню не верный число то его сразу возвращает с предупреждением в начало, а я хотел бы еще дополнить тем что бы если пользователь начинает по клавиатура бить как по пианино, вводя символы, его тоже возвращало к конкретному месту.
Спасибо =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 19:29
Ответы с готовыми решениями:

Защита от дурака
Как в этот код добавить защиту от ввода символов? #include &quot;stdafx.h&quot;...

Защита от дурака
Добрый вечер! Помогите проделать защиту от дурака, никак не получается...

Защита от дурака
Вот кусок кода: do { cout &lt;&lt; &quot;Выберите вариант решения:&quot; &lt;&lt; endl; ...

Защита от дурака
Вот только начал изучать С++ помогите составить защиту от дурака пожалуйста,...

Защита от дурака
Помогите, пожалуйста. Программа должна печатать только цифры (а не буквы и...

3
instagib
122 / 85 / 16
Регистрация: 14.02.2011
Сообщений: 340
06.03.2013, 20:03 #2
TecktoTrance,
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
#include <iostream>
#include <ctype.h>
#include <stdlib.h>
#include <string>
using namespace std;
 
bool isnumber(std::string str)
{
    int len = str.length();
    for (int i=0;i<len;i++)
            if (isalpha(str[i])) return false;
 return true;
}
 
int main(){
    setlocale(LC_ALL,"rus");
    int a,b;
    int sum=0;
    int answer;
    string str;
    do{
    cout<<"Выберите действие: "<<endl;
    cout<<"1.Запуск программы"<<endl;
    cout<<"2.Выход из программы"<<endl;
    cout<<"Ваше действие: ";cin>>str;
    if(isnumber(str)) answer = atoi(str.c_str());
    else {
            cout << "ошибка ввода!" << endl;
            continue;
        }
 
    switch(answer){
    case 1:
    cout<<"Введите числа, при условии что А<B"<<endl;
    cout<<"Введите число А: ";cin>>a;
    cout<<"Введите число В: ";cin>>b;
    if(a>b){
        cout<<"Вы ввели числа(символы) не по условию задания!"<<endl;
    }
    for(int i=b-1;i>a;i--){
        cout<<i<<" ";
        sum++;
        }
 
    cout<<endl<<"Количество выведенных чисел: "<<sum<<endl<<endl;
    sum=0; //сбрасывает счетчик выведенных чисел
    break;
    case 2:
        cout<<"Выход из программы!"<<endl;
        break;
    default:
        cout<<"Вы ввели числа(символы) не по условию задания!"<<endl;
    }}while(answer!=2);
    cout<<"Пока, Пока! ;D"<<endl;
 
    return 0;
 
}
1
egor2116
571 / 375 / 215
Регистрация: 20.01.2013
Сообщений: 1,135
06.03.2013, 20:08 #3
Может это поможет
C++
1
2
3
4
5
6
7
8
9
    char b;
 
    while(cin.get(b))
    {
        if(b='a')
       cout<<"Что то делаем"<<endl;
        else
            cout<<"Делаем что то другое"<<endl;
    }
0
vyachesmine
7 / 7 / 0
Регистрация: 19.02.2013
Сообщений: 22
07.03.2013, 00:48 #4
TecktoTrance, попробуй, где требуется защита от дурака использовать while или do while (как нравится), а условием выхода из цикла пропиши ввод верных параметров.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2013, 00:48

Защита от дурака
нужна защита от дурака пытался реализовать с помощью 2 разных способов не...

защита от дурака
Знаю что таких тем уже было много, но в них я ничего полезного не нашел. Так...

защита от дурака как сделать?
void DobvZapis() { int i; int j; char komanda; j = kol; do {...


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

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

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