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

Программа входа в систему - C++

Восстановить пароль Регистрация
 
Joker_94
0 / 0 / 0
Регистрация: 11.09.2013
Сообщений: 11
08.10.2013, 01:04     Программа входа в систему #1
Наткнулся вот на такую програмку, нужно сделать так, чтобы в функции администратора можно было менять пароль не только одному юзеру, тоесть, чтобы после смены пароля не выкидало в меню входа в аккаунт, А можно было сменить пароль еще раз, еще одному юзеру.

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include <string>    // Позволяет работать со строками
#include <iostream>  // Отвечает за ввод/вывод
#include <conio.h>   // Обработка пауз
#include "windows.h" // Заголовочный файл от библиотеки
#include <stdio.h>   // Oпределения макросов
#include <stdlib.h>  // Pабота с памятью, преобразования между строками и числами
using namespace std; // Cтандартное пространство имен 
 
struct Auth // Структура
{
    string login;   // обявление логина, типа стринг 
    string password;// обявление пароля, типа стринг
};
void ChangePass (Auth *val, int user);  //  функция не возвращает значения
int main ()   
{
     setlocale(LC_ALL, "Russian");
     bool correctPass = false;
     Auth Base[5];                      // Заносим в память даные
     Base[1].login    = "User2";
     Base[1].password = "2222";
     Base[0].login    = "User1";
     Base[0].password = "1111";
     Base[2].login    = "User3";
     Base[2].password = "3333";
     Base[3].login    = "User4";
     Base[3].password = "4444";
     Base[4].login    = "1";
     Base[4].password = "1";
  for (int i = 0; i <= 3; i++)  // цикл, работает пока i <= 3
  {
       if (i == 3)              // закритие программы когда i = 3
        {
            system("cls");
            cout<<"ДОСТУП ЗАБЛОКИРОВАН! Вы использовали 3 попытки"<<"\n";
            getch();
            exit(EXIT_FAILURE);
        }
        int activeUser;           
        string bufLogin, bufPassword;
 
        cout << "Введите логин:" << "\n";
        cin >> bufLogin;
        cout << "Введите пароль:"<<"\n";
        cin >> bufPassword;
 
        system("cls");
 
        for (int j = 0; j < 5; j++)
        {
            if (Base[j].login == bufLogin && Base[j].password == bufPassword) // при верном вводе переход в меню смены пароля
            {
                i = -1;
                correctPass = true;
                activeUser = j;
                break;
            }
            else
            {
                correctPass = false;
            }
        }
        if(correctPass)
        {
            cout << "Добро пожаловать " << Base[activeUser].login << "!" << endl;
            cout << "Для доступа в меню смены паролей нажмите [1] \n " << endl;
 
            if (getch() - 48 == 1) // конвертация стринга в инт/*/код символа '1' в ASCII кодировке = 49. Чтобы получить из символа единички, его численное представление надо от кода символа отнять 48.
            {
                system("cls");
                ChangePass(Base, activeUser); // меняем пароль, з базы загружаем активного юзера
            }
            system("cls");
        }
        else
        {
            system("cls");
            cout << "Неверный логин или пароль" << endl;
            cout << "у вас осталось " << 2 - i << " попиток!" << endl;
            getch();
            system("cls");
        }
    }
    getch();
    return 0;
}
void ChangePass (Auth *val, int user) // функция адимнистратора, меню смены паролей всем пользователям
{
 
    int choise = -1;
 
    if (user == 5 - 1)
    {
        cout << "У вас есть доступ администратора." << endl;
        for(int i = 0; i <= 4; i++)
        {
            cout << i + 1 << ") " << val[i].login << endl;
        }
        while((choise < 1) || (choise > 5))
        {
            cout << "Введите номер пользователя, пароля какого вы хотите изменить" << endl;
            cin >> choise;
        }
        system("cls");
        cout << "Введите новый пароль для пользователя" << val[choise - 1].login << endl;
        cin >> val[choise - 1].password;
        cout << "Успешно";  
    }
    else
    {
         cout << "Введите новый пароль:" << endl;
         cin >> val[user].password;
    }
}
Вот часть программы которую нужно поменять
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
void ChangePass (Auth *val, int user) // функция адимнистратора, меню смены паролей всем пользователям
{
 
    int choise = -1;
 
    if (user == 5 - 1)
    {
        cout << "У вас есть доступ администратора." << endl;
        for(int i = 0; i <= 4; i++)
        {
            cout << i + 1 << ") " << val[i].login << endl;
        }
        while((choise < 1) || (choise > 5))
        {
            cout << "Введите номер пользователя, пароля какого вы хотите изменить" << endl;
            cin >> choise;
        }
        system("cls");
        cout << "Введите новый пароль для пользователя" << val[choise - 1].login << endl;
        cin >> val[choise - 1].password;
        cout << "Успешно";  
    }
    else
    {
         cout << "Введите новый пароль:" << endl;
         cin >> val[user].password;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 01:04     Программа входа в систему
Посмотрите здесь:

Программа перевода в двоичную систему счисления C++
C++ Программа для перевода из 8-чной в 10-чную систему вычесления
Программа имитации входа в систему C++
C++ Программа, имитирующая файловую систему
C++ Консольное приложение. Имитация входа в систему.
Создайте имитацию входа в систему! C++
C++ Программа входа и регистрации
как сделать программу, чтобы она запрашивала пароль до входа в систему C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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