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

Регистрация и вход в программу С++

02.03.2017, 00:49. Просмотров 2495. Ответов 1
Метки нет (Все метки)

Нужно реализовать авторизацию для входа в систему (без регистрации на входе, т.к создание новых уч записей выполняет администратор после входа в свой аккаунт).
Код работает, но когда регистрирую новых пользователей , данный не сохраняются в текстовом документе, и войти через новый логин и пароль не получается. Прошу помочь исправить ошибки. C++
Вот мой код:


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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include <iostream>
#include <string>
#include <iostream>
#include <fstream>
 
using namespace std;
 
 
bool check(string, string);
bool check_1(string, string);
void read(string, string );
void admin();
void vhod();
void login();
void register_1();
struct Users
{
    string login_new;
    string password_new;
}
users[100];
 
void main()
{
    setlocale(LC_ALL, "rus");
    cout << "1 - Вход от имени пользователя" << endl;
    cout << "2 - Вход от имени администратора" << endl;
    int a;
    cin >> a;
    switch (a)
    {
 
    case 1: vhod();
    case 2: admin();
 
 
    }
 
}
void vhod()
{
    
    bool flag = false;
 
    string login, password;
    cout << "Введите логин: " << endl;
    cin >> login;
    cout << "Введите пароль: " << endl;
    cin >> password;
    flag = check(login, password);
    if (flag == true)
    {
        cout << "Вы вошли в систему!" << endl;
    }
    else
    {
        system("cls");
        cout << "Неверный пароль. Попробуйте еще раз." << endl;
        main();
        
    }
    
    
    system("pause");
 
 
 
}
 
 
bool check(string login, string password)
 
{
    
    if  (login == "lera_burko" && password == "valerka1997")
    {
        return true;
    }
    else
    {
        return false;
    }
} 
////////////////////////////////////////////////////////////////////////////////////
 
void admin()
{
    bool flag_1 = false;
 
    string login_admin, password_admin;
    cout << "Введите логин: " << endl;
    cin >> login_admin;
    cout << "Введите пароль: " << endl;
    cin >> password_admin;
 
    flag_1 = check_1(login_admin, password_admin);
    if (flag_1 == true)
    {
        cout << "Вы вошли в систему от имени администратора!" << endl;
    }
    else
    {
        system("cls");
        cout << "Неверный пароль. Попробуйте еще раз." << endl;
        main();
    }
 
    /////////////////////////////////////////////////////////////////////////////////////
    cout << "1 - Зарегестрировать нового пользователя: " << endl;
    cout << "2 - Выйти: " << endl;
    int a1;
    cin >> a1;
    switch (a1)
    {
    case 1: register_1();
    case 2: main();
    }
 
    }
    bool check_1(string login_admin, string password_admin)
    {
        if (login_admin == "andreiburko99" && password_admin == "android1999")
        {
            return true;
        }
        else
        {
            return false;
        }
    } 
 
    ////////////////////////////////////////////////////////////////////////////////////////////
    void register_1()
    {
        string login_new, password_new;
        cout << "Введите логин нового пользователя: " << endl;
        cin >> login_new;
        cout << "Введите пароль нового пользователя: " << endl;
        cin >> password_new;
        ofstream fout("users.txt", ios::app);
        fout << login_new << "" << password_new << endl;
        cout << "Поздравляем! Регистрация прошла успешно! " << endl;
        main();
    }
 
    void read(string login_new, string password_new)
    {
        ifstream fin("users.txt");
        for (int i = 0; i < 100; i++)    
        {
            fin >> users[1].login_new >> users[1].password_new;
        }
    }
 
    void login()
    {
        string login_new, password_new;
        cout << "Введите логин: " << endl;
        cin >> login_new;
        cout << "Введите пароль: " << endl;
        cin >> password_new;
        read(login_new, password_new);
        for (int i = 0; i < 100; i++)
        {
            if (login_new == users[1].login_new && password_new == users[1].password_new)
            {
                cout << "Вход успешен!" << endl;
            }
        }
    }
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2017, 00:49
Ответы с готовыми решениями:

Создание пароля на вход в программу
я написал программу по программированию, но препод решил усложнить и сказал сделать вход в...

Запароленный вход в программу - найти ошибку в коде авторизация пользователей
Пытаюсь сделать вход в программу от администратора и пользователей. От Администратора вход...

Напишите (консольную) программу, принимающую на вход имя файла и набор параметров. В зависимости от параметров программа должна работать в трёх режима
Вообщем такое же задание Добавлено через 2 минуты Напишите (консольную) программу, принимающую...

Регистрация и Вход
Подскажите пожалуйста как можно реализовать регистрацию пользователя и вход в консольном...

Регистрация/Вход
Все доброго времени суток))) Помогите пожалуйста новичку делаю сайт на joomla и хотелось бы узнать...

1
nonedark2008
1299 / 961 / 296
Регистрация: 28.07.2012
Сообщений: 2,657
02.03.2017, 01:16 2
Цитата Сообщение от Аедрей99 Посмотреть сообщение
C++
1
2
cout << "Поздравляем! Регистрация прошла успешно! " << endl;
main();
Это какая-то сложная рекурсия, сколько раз достаточно попрыгать по пунктам меню, чтобы программа крешнулась от переполнения стека? Лучше придумай что-нибудь нормальное без рекурсии.
Цитата Сообщение от Аедрей99 Посмотреть сообщение
C++
1
for (int i = 0; i < 100; i++)
Да? Пользователей у тебя ровно 100?
Цитата Сообщение от Аедрей99 Посмотреть сообщение
C++
1
fin >> users[1].login_new >> users[1].password_new;
1 => i. Да и в остальных циклах похожий хлам.

Не по теме:

А твой мат в коде я бы оценил баном. Да и сам код нужно выделять тегами [CPP][/CPP] для подсветки синтаксиса и форматирования

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2017, 01:16

Регистрация и вход
Здравствуйте, я учусь на 3 курсе, не могу сделать программу. Вот условие: Разработать программу,...

Не работает регистрация и вход
Нарыл материала, начал писать, подтачивать под свой сайт. Решил сделать отдельную папку и получил...

Регистрация и вход в чат
Не могли бы вы мне помочь , изучаю PHP пытаюсь сделать регистрацию и вход в чат...


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

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

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