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

Защита от дурака - C++

Восстановить пароль Регистрация
 
TecktoTrance
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 13
06.03.2013, 19:29     Защита от дурака #1
Здравствуйте уважаемые форумчане! я к вам, и вот по какому делу)
Вот есть у меня задача:
Даны два целых числа А и В. Вывести в порядке убывания все целые числа, расположенные между А и В,
не включая сами эти числа, а также количество 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;
 
}
Все вроде хорошо, только вот не могу сделать чтоб была защита от введенных пользователем символов, то есть, если он вводит в меню не верный число то его сразу возвращает с предупреждением в начало, а я хотел бы еще дополнить тем что бы если пользователь начинает по клавиатура бить как по пианино, вводя символы, его тоже возвращало к конкретному месту.
Спасибо =)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 19:29     Защита от дурака
Посмотрите здесь:

C++ Защита от дурака. Разбор кода
Защита от дурака C++
защита от дурака C++
Защита от дурака (пустое значение в названии) C++
C++ Защита от дурака
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
instagib
122 / 85 / 3
Регистрация: 14.02.2011
Сообщений: 341
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;
 
}
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
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;
    }
vyachesmine
7 / 7 / 1
Регистрация: 19.02.2013
Сообщений: 22
07.03.2013, 00:48     Защита от дурака #4
TecktoTrance, попробуй, где требуется защита от дурака использовать while или do while (как нравится), а условием выхода из цикла пропиши ввод верных параметров.
Yandex
Объявления
07.03.2013, 00:48     Защита от дурака
Ответ Создать тему
Опции темы

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