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

подкорректировать код(логин и пароль) - C++

06.12.2013, 16:18. Просмотров 682. Ответов 12
Метки нет (Все метки)

Доброго времени суток господа. Помогите подкорректировать код пожалуйста. Нужно что бы в данном коде было несколько вариантов логинов и паролей(например 4),и что бы при вводе правильной комбинации мне выводило сообщение только о правильной авторизации. И исправить кол-во попыток на 3.
Вот прилагаю сам код,нашел на этом же форуме(спасибо за него Joker_94).
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
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
char c=3;
int l, p;
int main()    
   {
const int log=123, pass=100;
                          setlocale(LC_ALL, "Russian");
    system("cls");
m1:
cout<<"Введите логин:";
cin>>l;
system ("cls");
cout<<"Введите пароль:";
cin>>p;
   system ("cls");
{
if (l==log && p==pass)
{
cout<<"Все верно!Вы авторизированы!\n";
} 
else c--;
      while (c>=0)
       {   
  
   cout<<"Вы ошиблись, повторите ввод\n Попыток ввода осталось "<<c+1<<" попыток\n";
   goto m1;
  
       }
if (c<=0)
{
printf("В доступе отказано! Количество попыток ограничено!!"); 
}
goto m;
 
}
m:
getch();
system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 16:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос подкорректировать код(логин и пароль) (C++):

Логин и пароль
Программа после введения правильных данных выдает &quot;Добро пожаловать!&quot; ...

Меню логин пароль
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ ...

Логин и пароль из файла
Только начал изучать си и не могу разобрать что за ошибка с проверкой...

C++ Проверка логин\пароль
Доброго времени суток! В консольном приложении планирую сделать запрос...

Авторизация логин-пароль
Программа содержит массив строк, каждая из которых представляет собой запись об...

Логин и пароль прочитать из файла
Помогите составить программу, к которой когда входишь, допустим, под...

12
Raali
639 / 343 / 74
Регистрация: 06.07.2013
Сообщений: 1,107
Завершенные тесты: 1
06.12.2013, 16:57 #2
создай ассоциативный массив(std::map<std::string,std::string> , либо как у тебя std::map<int,int>) со сколько угодно логинами и паролями, делов на 2 строчки

Добавлено через 6 минут
Цитата Сообщение от vitalya_gap Посмотреть сообщение
И исправить кол-во попыток на 3.
уменьшить "c" на 1 изначаьлно
0
vitalya_gap
0 / 0 / 2
Регистрация: 13.10.2013
Сообщений: 34
07.12.2013, 12:51  [ТС] #3
Цитата Сообщение от Raali Посмотреть сообщение
создай ассоциативный массив(std::map<std::string,std::string> , либо как у тебя std::map<int,int>) со сколько угодно логинами и паролями, делов на 2 строчки

Добавлено через 6 минут

уменьшить "c" на 1 изначаьлно
Понимаешь в чем дело..Я в программировании,как электрик в хирургии)Так что для меня это проблемненько)Ну щас "попробую попробовать"..

Добавлено через 9 часов 0 минут
Не получается у меня самому тут сделать то что было сказано выше...Помогите кто нибудь кто может пожалуйста)

Добавлено через 9 часов 58 минут
пожалуйста)
0
vitalya_gap
0 / 0 / 2
Регистрация: 13.10.2013
Сообщений: 34
08.12.2013, 13:59  [ТС] #4
Сделайте пожалуйста кто может,очень нужно..
0
uhx
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 304
08.12.2013, 14:05 #5
Буквально недавно этот код писал в другой теме:
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
#include <iostream>
#include <conio.h>
using namespace std;
int main(int argc,char* argv[]){
    setlocale(0,"");
    char true_dat[10][20]={
        "Dmitriy123", "12345",
        "uhx", "54321",
        "User3", "1983"
    };
    cout<<"Введите логин: ";
    char login[256],password[256];
    gets(login); // Используем для получения всей строки, т.к. в логине могут быть и пробелы, но в принципе, если вы их вставлять не собираетесь - то можно юзать и cin
    cout<<"Введите пароль: ";
    gets(password);
    for(int i=0;i<10;i+=2){
        if(!strcmp(login,true_dat[i])){ // Сравниваем строку логина с каждой четной ячейкой (логин) в массиве, если 0 (strcmp возвращает 0), то дальше проверяем ячейку правее (+1), на совпадение с паролем.
            cout<<"Login - True";
        if(!strcmp(password,true_dat[i+1]))
            cout<<"\nPassword - True!";
        else cout<<"\nIncorrect password!";
        }
    }
    getch();
}
1
vitalya_gap
0 / 0 / 2
Регистрация: 13.10.2013
Сообщений: 34
08.12.2013, 14:24  [ТС] #6
Цитата Сообщение от uhx Посмотреть сообщение
Буквально недавно этот код писал в другой теме:
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
#include <iostream>
#include <conio.h>
using namespace std;
int main(int argc,char* argv[]){
    setlocale(0,"");
    char true_dat[10][20]={
        "Dmitriy123", "12345",
        "uhx", "54321",
        "User3", "1983"
    };
    cout<<"Введите логин: ";
    char login[256],password[256];
    gets(login); // Используем для получения всей строки, т.к. в логине могут быть и пробелы, но в принципе, если вы их вставлять не собираетесь - то можно юзать и cin
    cout<<"Введите пароль: ";
    gets(password);
    for(int i=0;i<10;i+=2){
        if(!strcmp(login,true_dat[i])){ // Сравниваем строку логина с каждой четной ячейкой (логин) в массиве, если 0 (strcmp возвращает 0), то дальше проверяем ячейку правее (+1), на совпадение с паролем.
            cout<<"Login - True";
        if(!strcmp(password,true_dat[i+1]))
            cout<<"\nPassword - True!";
        else cout<<"\nIncorrect password!";
        }
    }
    getch();
}
Большое Вам спасибо,но мне бы именно тот код который я приложил,только в исправленном варианте..(
0
HidForce
57 / 57 / 24
Регистрация: 17.11.2012
Сообщений: 1,602
08.12.2013, 14:37 #7
vitalya_gap, здесь надо не исправлять, здесь надо все заново писать. Код, который вы предоставили, просто ужасен!
0
vitalya_gap
0 / 0 / 2
Регистрация: 13.10.2013
Сообщений: 34
08.12.2013, 14:53  [ТС] #8
Цитата Сообщение от HidForce Посмотреть сообщение
vitalya_gap, здесь надо не исправлять, здесь надо все заново писать. Код, который вы предоставили, просто ужасен!
Блин,это очень плохо...мне просто нужен код не похожий на тот который предложил uhx
0
HidForce
57 / 57 / 24
Регистрация: 17.11.2012
Сообщений: 1,602
08.12.2013, 14:57 #9
vitalya_gap, то есть? А какой нужен?
0
vitalya_gap
0 / 0 / 2
Регистрация: 13.10.2013
Сообщений: 34
08.12.2013, 15:05  [ТС] #10
HidForce, просто такая ситуация,что предложенный код был написан для моего одногрупника,и нам предстоит сдавать эту задачу одному преподавателю...Вариантов он не дал,но при этом сказал "если будет похоже не засчитаю!".Есть ли возможность сделать так что бы этот код отличался от начальной версии не только логинами и паролями?
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
#include <iostream>
#include <conio.h>
using namespace std;
int main(int argc,char* argv[]){
    setlocale(0,"");
    char true_dat[10][20]={
        "Dmitriy123", "12345",
        "uhx", "54321",
        "User3", "1983"
    };
    cout<<"Введите логин: ";
    char login[256],password[256];
    gets(login); // Используем для получения всей строки, т.к. в логине могут быть и пробелы, но в принципе, если вы их вставлять не собираетесь - то можно юзать и cin
    cout<<"Введите пароль: ";
    gets(password);
    for(int i=0;i<10;i+=2){
        if(!strcmp(login,true_dat[i])){ // Сравниваем строку логина с каждой четной ячейкой (логин) в массиве, если 0 (strcmp возвращает 0), то дальше проверяем ячейку правее (+1), на совпадение с паролем.
            cout<<"Login - True";
        if(!strcmp(password,true_dat[i+1]))
            cout<<"\nPassword - True!";
        else cout<<"\nIncorrect password!";
        }
    }
    getch();
}
0
uhx
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 304
08.12.2013, 15:07 #11
Цитата Сообщение от vitalya_gap Посмотреть сообщение
HidForce, просто такая ситуация,что предложенный код был написан для моего одногрупника,и нам предстоит сдавать эту задачу одному преподавателю...Вариантов он не дал,но при этом сказал "если будет похоже не засчитаю!".Есть ли возможность сделать так что бы этот код отличался от начальной версии не только логинами и паролями?
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
#include <iostream>
#include <conio.h>
using namespace std;
int main(int argc,char* argv[]){
    setlocale(0,"");
    char true_dat[10][20]={
        "Dmitriy123", "12345",
        "uhx", "54321",
        "User3", "1983"
    };
    cout<<"Введите логин: ";
    char login[256],password[256];
    gets(login); // Используем для получения всей строки, т.к. в логине могут быть и пробелы, но в принципе, если вы их вставлять не собираетесь - то можно юзать и cin
    cout<<"Введите пароль: ";
    gets(password);
    for(int i=0;i<10;i+=2){
        if(!strcmp(login,true_dat[i])){ // Сравниваем строку логина с каждой четной ячейкой (логин) в массиве, если 0 (strcmp возвращает 0), то дальше проверяем ячейку правее (+1), на совпадение с паролем.
            cout<<"Login - True";
        if(!strcmp(password,true_dat[i+1]))
            cout<<"\nPassword - True!";
        else cout<<"\nIncorrect password!";
        }
    }
    getch();
}
Хах, я так и подумал, что у вы как минимум одногрупники Через 40 минут доиграю в доту и перепишу немного иначе, если этого не сделает никто другой.
1
vitalya_gap
0 / 0 / 2
Регистрация: 13.10.2013
Сообщений: 34
08.12.2013, 15:10  [ТС] #12
uhx, Спасибо,буду благодарен..Удачной игры(накажи всех раков)
0
uhx
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 304
08.12.2013, 16:42 #13
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
#include <iostream>
using namespace std;
int p=3;
int main(){
    setlocale(0,"");
    bool cont=false;
    char database[10][20] = {"User1", "123", "User2", "1234", "User3", "12345"};
    char login[20],password[20];
    while(p > 0){
        p--;
        system("cls");
        cout<<"Введите логин: ";
        cin>>login;
        cout<<"\nВведите пароль: ";
        cin>>password;
        for(int i=0;database[i][0];i+=2){
            if(!strcmp(login,database[i])){
                if(!strcmp(password,database[i+1]))
                    cont=true;
            }
        }
        if(!cont) cout<<"Логин или пароль неверны.\nКоличество попыток: "<<p;
        else break;
        system("pause>>void");
    }
    if(cont){
        system("cls");
        cout<<"Вход выполнен успешно.";
    }
    else cout<<"\nВы исчерпали лимит попыток!";
system("pause>>void");
}
1
08.12.2013, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2013, 16:42
Привет! Вот еще темы с решениями:

Программа, которая запрашивает логин и пароль из файла
Всем привет, написал программу, которая запрашивает логин и пароль из функции...

Подкорректировать код (сортировка распределением)
Вечер добрый, знатоки. Компилятор ошибку не отлавливает. Ошибка логическая и...

Можете немного подкорректировать код?
Данная программы выводит на экран такой треугольник: 1 12 123 1234 ......

Вычисление sin. Подкорректировать код.
#include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt;...


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

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

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