Наткнулся вот на такую програмку, нужно сделать так, чтобы в функции администратора можно было менять пароль не только одному юзеру, тоесть, чтобы после смены пароля не выкидало в меню входа в аккаунт, А можно было сменить пароль еще раз, еще одному юзеру.
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;
}
} |
|