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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Описать структуру с именем NOTE http://www.cyberforum.ru/cpp-beginners/thread850152.html
Помогите с программой пожалуйста. А. Описать структуру с именем NOTE, содержащую следущие поля: Фамилия, имя; Номер телефона; День рождения(массив из трех чисел). Ввести с клавиатуры данные о 10 абонентах, записи упорядочить по трем первым цыфрам номера телефона; Б. Написать программу, выполняющую следующие действия: Вывод на экран информации о человеке, чья фамилия введенна с клавиатуры;...
C++ Заполнение массива числами Здравствуйте, есть набор чисел (3, 3.5, 4 ,4.5, 5) требуется заполнить массив который заполняется случаными образом этими числами. как это сделать? http://www.cyberforum.ru/cpp-beginners/thread850139.html
C++ Определитель матрицы - нужен полноценный пример
Ребята, нужен код на C++, поиск определителя матрицы n-го порядка, ну скажем что самое простое( помоему по методу гаусса ). Здесь уже видел несколько кусочков, но нужен полный код, если кому не тяжело. Ну скажем в Microsoft Visual C++ чтобы скомпилировалась.
C++ Сортировка вставками двухсвязного списка
По заданию требуется отсортировать список по возрастанию. Организовал структуру списка,функцию по добавлению и удалению элементов, но застрял на сортировке,пытался сделать по соответствующему алгоритму для массивов,вот что получилось: struct List_t { int mInfo; // значение,хранящееся в данном узле List_t* mpNext; //указатель на следующий узел списка List_t* mpPrev; //указатель на...
C++ Подпрограмма для обнаружения корней квадратного тричлена http://www.cyberforum.ru/cpp-beginners/thread850124.html
Доброго дня, нужно написать подпрограмму для обнаружения корней квадратного тричлена. #include <math.h> #include <iostream.h> void koef(double a, double c); void D(double a,double b,double c); int main(void) { double a,b,c; cout<<"Wwedit koeficienty truczlena\n"; cout<<"\na=";
C++ Поиск первой гласной в массиве char и возврат ее номера Подскажите, пожалуйста, реализацию на с++ следующей задачи: найти первую по счету гласную в массиве типа char и записать ее номер в переменную. подробнее

Показать сообщение отдельно
Tatiana_aha
 Аватар для Tatiana_aha
2 / 2 / 0
Регистрация: 01.05.2011
Сообщений: 30
28.04.2013, 06:52     Нужна проверка кода (система обмена сообщениями)
есть код 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;
}
он зацикливает ввод логина и отправку сообщения...помогите,что делаю не так?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru