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

Нужна проверка кода (система обмена сообщениями) - C++

Восстановить пароль Регистрация
 
Tatiana_aha
 Аватар для Tatiana_aha
2 / 2 / 0
Регистрация: 01.05.2011
Сообщений: 30
28.04.2013, 06:52     Нужна проверка кода (система обмена сообщениями) #1
есть код C++,компилируется в Mingw/bin при помощи g++. Данный код представляет собой систему обмена сообщениями. Идеальный случай,когда юзер не допускает ошибок при вводе регистрационных данных.
проблема в написании проверки ввода этих самых данных

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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#include "iostream"
#include "locale.h"
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
struct user
{
    string surn;
    string name;
    string login;
    string password;
    string messg;
    string chislo_msg;//кол-во сообщений
};
struct message
{
    string text;
    string recipient;//получатель
    string trans;//отправитель
};
 
//БД системы
class System_DB
{
    public:
struct user users[100];
struct message messages[100];
    int messageInc;
    int userInc;
    System_DB(){messageInc=0;userInc=0;};
    void newuser();
    void enter();//проверить свои сообщения
    void send();//отправить сообщение
    void help();//основное меню
    void switch_();//переключатель
    void list();//список пользователей
};
 
//Список операций ситемы
void System_DB::help()
{   
    cout<<endl<<endl<<"Информационная система мгновенного обмена сообщениями:"<<endl;
    cout<<"Зарегистрироваться в системе  - введите 1"<<endl;
    cout<<"Проверить свои сообщения - введите 2"<<endl;
    cout<<"Отправить сообщение - введите 3"<<endl;
    cout<<"Вывести список пользователей - введите 4"<<endl;
    cout<<"Выйти из системы - введите 5"<<endl;
}
//регистрация пользователя
void System_DB:: newuser()
{
string answer;
    cout<<"\n\nВведите информацию о себе\n";
    cout<<"    Фамилия:  ";
    cin>>users[userInc].surn;
    cout<<"    Имя:  ";
    cin>>users[userInc].name;
    cout<<"    Логин:  ";
    cin>>users[userInc].login;
    cout<<"    Пароль:  ";
    cin>>users[userInc].password;
    userInc++;
        
m:  cout<<"\n\nПродолжить создание профилей? [yes/no]  ";
    cin>>answer;
    if((answer=="yes") || (answer=="y") || (answer=="Yes") || (answer=="Y") )
    {
        newuser();
    }
    else
        if((answer=="no") || (answer=="n") || (answer=="No") || (answer=="N") )
        {   help();
            switch_();
        }
        else
        {   
            cout<<"\nОшибка ввода. Повторите попытку";
            goto m;
        }
        
        help();
        switch_();
}
//список пользователей
void System_DB:: list()
{
for(int i=0; i<userInc; i++)
    {
        cout<<"Фамилия:"<<users[i].surn;
        cout<<endl;
        cout<<"Имя:"<<users[i].name;
        cout<<endl;
        cout<<"Логин:"<<users[i].login;
        cout<<endl; 
        cout<<endl;         
    }
}
//переключатель основного меню
void System_DB::switch_()
{
    int x;
    cin>>x;
    switch(x)
    {
        case 0:   help();                            break;
        case 1:   newuser();                         break;
        case 2:   enter();                           break;
        case 3:   send();                            break;
        case 4:   list();                            break;
        case 5:   cout<<"\nGood Bye!\n"; exit(0);            break;
        default:  cout<<"Ошибка ввода. Повторите выбор.\n";  switch_(); break;
    }
    cout<<"\n";
}
//проверка сообщений
void System_DB:: enter()//в этой функции ДОЛЖНА БЫТЬ ПРОВЕРКА ВВОДА ДАННЫХ
{
    string strinuser;
    cout<<"\n\nВведите логин и пароль\n"<<endl;
    cout<<"Логин:";
    cin>>strinuser; 
    string pass;
    cout<<"Пароль:";
    cin>>pass;
    cout<<endl;
    for(int i=0; i<userInc; i++)
    {
        if(strinuser==users[i].login && pass==users[i].password)
        {   
        cout<<"Вы прошли идентификацию!"<<endl<<endl;
        for(int j=0;j<messageInc;j++)
            {
            if(users[i].login==messages[j].recipient)
                {
                cout<<"Ваше сообщение:"<<messages[j].text<<endl;        
                cout<<"Отправитель:"<<messages[j].trans<<endl;  
                cout<<endl; 
                }
            }
        }
    }
    help();
    switch_();
}
//отправка сообщений
void System_DB :: send() //в этой функции ДОЛЖНА БЫТЬ ПРОВЕРКА ВВОДА ДАННЫХ
{
    cout<<"\n\nВведите логин пользователя, который хочет написать:   "<<endl;
    string strinuser;
    cout<<"    Логин:  ";
    cin>>strinuser; 
    string pass;
    cout<<"    Пароль:  ";
    cin>>pass;
    for(int i=0; i<userInc; i++)
    { 
    if(strinuser==users[i].login && pass==users[i].password)
        {   
            messages[messageInc].trans=users[i].login;
            string thelogin;
            p: cout<<"\n\nВведите логин пользователя, которому хотите написать:   ";
            cin>>thelogin;
            for(int i=0; i<userInc; i++)
                {
                    if(thelogin==users[i].login)
                    {   
                        cout<<"Пользователь найден"<<endl;
                        string answer;
                        cout<<"\n\nВведите текст сообщения\n";
                        cout<<"    Сообщение:  ";
                        cin>>messages[messageInc].text;
                        messages[messageInc].recipient=users[i].login;
                        messageInc++;
                    }
                }
        }       
    
    }
    help();
    switch_();
}
 
int main()
{
    setlocale(LC_ALL, "");
    System_DB user1;
    user1.help();
    user1.switch_();
    return 0;
}
Добавлено через 13 часов 36 минут
когда делаю таким образом:
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
#include "iostream"
#include "locale.h"
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
struct user
{
    string surn;
    string name;
    string login;
    string password;
    string messg;
    string chislo_msg;//кол-во сообщений
};
struct message
{
    string text;
    string recipient;//получатель
    string trans;//отправитель
};
 
//БД системы
class System_DB
{
    public:
struct user users[100];
struct message messages[100];
    int messageInc;
    int userInc;
    System_DB(){messageInc=0;userInc=0;};
    void newuser();
    void enter();//проверить свои сообщения
    void send();//отправить сообщение
    void help();//основное меню
    void switch_();//переключатель
    void list();//список пользователей
};
 
//Список операций ситемы
void System_DB::help()
{   
    cout<<endl<<endl<<"Информационная система мгновенного обмена сообщениями:"<<endl;
    cout<<"Зарегистрироваться в системе  - введите 1"<<endl;
    cout<<"Проверить свои сообщения - введите 2"<<endl;
    cout<<"Отправить сообщение - введите 3"<<endl;
    cout<<"Вывести список пользователей - введите 4"<<endl;
    cout<<"Выйти из системы - введите 5"<<endl;
}
//регистрация пользователя
void System_DB:: newuser()
{
string answer;
    cout<<"\n\nВведите информацию о себе\n";
    cout<<"    Фамилия:  ";
    cin>>users[userInc].surn;
    cout<<"    Имя:  ";
    cin>>users[userInc].name;
    cout<<"    Логин:  ";
    cin>>users[userInc].login;
    cout<<"    Пароль:  ";
    cin>>users[userInc].password;
    userInc++;
        
m:  cout<<"\n\nПродолжить создание профилей? [yes/no]  ";
    cin>>answer;
    if((answer=="yes") || (answer=="y") || (answer=="Yes") || (answer=="Y") )
    {
        newuser();
    }
    else
        if((answer=="no") || (answer=="n") || (answer=="No") || (answer=="N") )
        {   help();
            switch_();
        }
        else
        {   
            cout<<"\nОшибка ввода. Повторите попытку";
            goto m;
        }
        
        help();
        switch_();
}
//список пользователей
void System_DB:: list()
{
for(int i=0; i<userInc; i++)
    {
        cout<<"Фамилия:"<<users[i].surn;
        cout<<endl;
        cout<<"Имя:"<<users[i].name;
        cout<<endl;
        cout<<"Логин:"<<users[i].login;
        cout<<endl; 
        cout<<endl;         
    }
}
//переключатель основного меню
void System_DB::switch_()
{
    int x;
    cin>>x;
    switch(x)
    {
        case 0:   help();                            break;
        case 1:   newuser();                         break;
        case 2:   enter();                           break;
        case 3:   send();                            break;
        case 4:   list();                            break;
        case 5:   cout<<"\nGood Bye!\n"; exit(0);            break;
        default:  cout<<"Ошибка ввода. Повторите выбор.\n";  switch_(); break;
    }
    cout<<"\n";
}
//проверка сообщений
void System_DB:: enter()
{
    string strinuser;
    cout<<"\n\nВведите логин и пароль\n"<<endl;
    cout<<"Логин:";
    cin>>strinuser; 
    string pass;
    cout<<"Пароль:";
    cin>>pass;
    cout<<endl;
    for(int i=0; i<userInc; i++)
    {
        if(strinuser==users[i].login && pass==users[i].password)
        {   
        cout<<"Вы прошли идентификацию!"<<endl<<endl;
        for(int j=0;j<messageInc;j++)
            {
            if(users[i].login==messages[j].recipient)
                {
                cout<<"Ваше сообщение:"<<messages[j].text<<endl;        
                cout<<"Отправитель:"<<messages[j].trans<<endl;  
                cout<<endl; 
                }
            }
        }
    }
    help();
    switch_();
}
//отправка сообщений
void System_DB :: send()
{
    cout<<"\n\nВведите логин пользователя, который хочет написать:   "<<endl;
    string strinuser;
    [B]n: [/B]cout<<"    Логин:  ";
    cin>>strinuser; 
    string pass;
    cout<<"    Пароль:  ";
    cin>>pass;
    for(int i=0; i<userInc; i++)
    { 
    if(strinuser==users[i].login && pass==users[i].password)
        {   
            messages[messageInc].trans=users[i].login;
            string thelogin;
            [B]p:[/B] cout<<"\n\nВведите логин пользователя, которому хотите написать:   ";
            cin>>thelogin;
            for(int i=0; i<userInc; i++)
                {
                    if(thelogin==users[i].login)
                    {   
                        cout<<"Пользователь найден"<<endl;
                        string answer;
                        cout<<"\n\nВведите текст сообщения\n";
                        cout<<"    Сообщение:  ";
                        cin>>messages[messageInc].text;
                        messages[messageInc].recipient=users[i].login;
                        messageInc++;
                    }
                    [B]else
                        cout<<"Пользователь не найден! Повторите попытку"<<endl;
                        goto p;[/B]
                }
        }       
    [B]else
        cout<<"Пользователь не найден! Повторите попытку"<<endl;
        goto n;[/B]
    }
    help();
    switch_();
}
 
int main()
{
    setlocale(LC_ALL, "");
    System_DB user1;
    user1.help();
    user1.switch_();
    return 0;
}
он зацикливает ввод логина и отправку сообщения...помогите,что делаю не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 06:52     Нужна проверка кода (система обмена сообщениями)
Посмотрите здесь:

Система обмена сообщениями C++
Проверка и доработка кода. C++
Система управления сообщениями C++
Создание программы для обмена сообщениями C++
C++ проверка кода на правильность
C++ нужна функция для обмена строк двумерного массива на плюсах
C++ Проверка кода программы
проверка кода, функции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GetVariable
 Аватар для GetVariable
163 / 119 / 5
Регистрация: 17.03.2013
Сообщений: 283
28.04.2013, 07:36     Нужна проверка кода (система обмена сообщениями) #2
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
#include "iostream"
#include "locale.h"
#include <string>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
struct user
{
    string surn;
    string name;
    string login;
    string password;
    string messg;
    string chislo_msg;//кол-во сообщений
};
struct message
{
    string text;
    string recipient;//получатель
    string trans;//отправитель
};
 
//БД системы
class System_DB
{
    public:
struct user users[100];
struct message messages[100];
    int messageInc;
    int userInc;
    System_DB(){messageInc=0;userInc=0;};
    void newuser();
    void enter();//проверить свои сообщения
    void send();//отправить сообщение
    void help();//основное меню
    void switch_();//переключатель
    void list();//список пользователей
};
 
//Список операций ситемы
void System_DB::help()
{   
    cout<<endl<<endl<<"Информационная система мгновенного обмена сообщениями:"<<endl;
    cout<<"Зарегистрироваться в системе  - введите 1"<<endl;
    cout<<"Проверить свои сообщения - введите 2"<<endl;
    cout<<"Отправить сообщение - введите 3"<<endl;
    cout<<"Вывести список пользователей - введите 4"<<endl;
    cout<<"Выйти из системы - введите 5"<<endl;
}
//регистрация пользователя
void System_DB:: newuser()
{
string answer;
    cout<<"\n\nВведите информацию о себе\n";
    cout<<"    Фамилия:  ";
    cin>>users[userInc].surn;
    cout<<"    Имя:  ";
    cin>>users[userInc].name;
    cout<<"    Логин:  ";
    cin>>users[userInc].login;
    cout<<"    Пароль:  ";
    cin>>users[userInc].password;
    userInc++;
        
m:  cout<<"\n\nПродолжить создание профилей? [yes/no]  ";
    cin>>answer;
    if((answer=="yes") || (answer=="y") || (answer=="Yes") || (answer=="Y") )
    {
        newuser();
    }
    else
        if((answer=="no") || (answer=="n") || (answer=="No") || (answer=="N") )
        {   help();
            switch_();
        }
        else
        {   
            cout<<"\nОшибка ввода. Повторите попытку";
            goto m;
        }
        
        help();
        switch_();
}
//список пользователей
void System_DB:: list()
{
for(int i=0; i<userInc; i++)
    {
        cout<<"Фамилия:"<<users[i].surn;
        cout<<endl;
        cout<<"Имя:"<<users[i].name;
        cout<<endl;
        cout<<"Логин:"<<users[i].login;
        cout<<endl; 
        cout<<endl;         
    }
}
//переключатель основного меню
void System_DB::switch_()
{
    int x;
    cin>>x;
    switch(x)
    {
        case 0:   help();                            break;
        case 1:   newuser();                         break;
        case 2:   enter();                           break;
        case 3:   send();                            break;
        case 4:   list();                            break;
        case 5:   cout<<"\nGood Bye!\n"; exit(0);            break;
        default:  cout<<"Ошибка ввода. Повторите выбор.\n";  switch_(); break;
    }
    cout<<"\n";
}
//проверка сообщений
void System_DB:: enter()
{
    string strinuser;
    cout<<"\n\nВведите логин и пароль\n"<<endl;
    cout<<"Логин:";
    cin>>strinuser; 
    string pass;
    cout<<"Пароль:";
    cin>>pass;
    cout<<endl;
    for(int i=0; i<userInc; i++)
    {
        if(strinuser==users[i].login && pass==users[i].password)
        {   
        cout<<"Вы прошли идентификацию!"<<endl<<endl;
        for(int j=0;j<messageInc;j++)
            {
            if(users[i].login==messages[j].recipient)
                {
                cout<<"Ваше сообщение:"<<messages[j].text<<endl;        
                cout<<"Отправитель:"<<messages[j].trans<<endl;  
                cout<<endl; 
                }
            }
        }
    }
    help();
    switch_();
}
//отправка сообщений
void System_DB :: send()
{
    cout<<"\n\nВведите логин пользователя, который хочет написать:   "<<endl;
    string strinuser;
    n: cout<<"    Логин:  ";
    cin>>strinuser; 
    string pass;
    cout<<"    Пароль:  ";
    cin>>pass;
    for(int i=0; i<userInc; i++)
    { 
    if(strinuser==users[i].login && pass==users[i].password)
        {   
            messages[messageInc].trans=users[i].login;
            string thelogin;
            cout<<"\n\nВведите логин пользователя, которому хотите написать:   ";
            cin>>thelogin;
            for(int b=0; b<userInc; b++)
            {
                if(thelogin==users[b].login)
                {   
                    cout<<"Пользователь найден"<<endl;
                    string answer;
                    cout<<"\n\nВведите текст сообщения\n";
                    cout<<"    Сообщение:  ";
                    cin>>messages[messageInc].text;
                    messages[messageInc].recipient=users[b].login;
                    messageInc++;
                    break;
                }
            }
 
            cout<<"Пользователь не найден! Повторите попытку"<<endl;
            break;
        }       
    else
        cout<<"Пользователь не найден! Повторите попытку"<<endl;
        goto n;
    }
    help();
    switch_();
}
 
int main()
{
    setlocale(LC_ALL, "");
    System_DB user1;
    user1.help();
    user1.switch_();
    return 0;
}
отзыв [ссылка удалена]
Tatiana_aha
 Аватар для Tatiana_aha
2 / 2 / 0
Регистрация: 01.05.2011
Сообщений: 30
28.04.2013, 11:12  [ТС]     Нужна проверка кода (система обмена сообщениями) #3
вопрос закрыт.
Yandex
Объявления
28.04.2013, 11:12     Нужна проверка кода (система обмена сообщениями)
Ответ Создать тему
Опции темы

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