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

Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети - C++

Восстановить пароль Регистрация
 
fifa068
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 93
30.03.2013, 09:20     Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети #1
Всем привет! есть условие: Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети. Сообщение содержит IP адрес получателя, передаваемый текст. Очередь обладает функциями добавления сообщений в очередь, изменение статуса сообщения вне зависимости от положения в очереди.

программу я почти сделал, но я не пойму как изменить статус сообщения вне зависимости от положения очереди. помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 09:20     Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети
Посмотрите здесь:

C++ Объекты классов, взаимодействуют между собой посредством передачи сообщений
Реализовать представление очереди. C++
C++ вывести содержимое очереди на экран двумя столбцами.
Реализовать функцию вычисления количества дней между двумя датами. C++
C++ 5.2 Реализовать представление очереди. Работу со структурами организовать в виде текстового меню
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ded_Vasilij
 Аватар для Ded_Vasilij
229 / 211 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
30.03.2013, 09:30     Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети #2
а код где?
fifa068
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 93
30.03.2013, 09:33  [ТС]     Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети #3
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
#include <iostream.h>
 
const int N=10;
 
struct proc{
int prior;
char name[30];               //размерность
};
 
struct QUEUE {               //Структура элемента очереди
proc* arr[N];
int first;
int last;
int count;
};
 
int polniy(QUEUE *pq)          //Класс для выяснения полноты очереди
{
if (pq->count==N)            //очередь заполнена
return 1;
else
return 0;
}
 
int pystaya(QUEUE *pq)   
{
if (pq->count==0)           //очередь пустая
return 1;
else
return 0;
}
 
int wtf(QUEUE *pq)
{
int k = 0;
for (int i = 0; i < N; i++)
if (pq->arr[i] != NULL)
k++;
return k;
}
 
void init(QUEUE *pq)
{
pq->first=0;
pq->last=0;
pq->count=0;
for (int i = 0; i < N; i++)
    pq->arr[i] = NULL;               //Инициализация очереди, т.е. очистка всех значений для последующей корректной работой с очередью 
}
 
void Add(QUEUE *pq)                  //Ввод инфы 
{
proc *nproc;                         //объявление переменной
nproc = new proc;
cout<<"Вводим ip адресс:";cin >> nproc->name;
cout <<"Ваше сообщение: ";cin >> nproc->prior;
pq->arr[pq->last]=nproc;             //Доступ к переменной через указатель
pq->last++;
if (pq->last==N)
for(int i = 0; i < pq->count; i++)
if(pq->arr[i] == 0)
pq->last=i;
if(pq->last == N)
cout << "Err";
pq->count=wtf(pq);
}
 
void Del1(QUEUE *pq)
{
for (int i = 0; i < N; i++)
if(pq->arr[i] != NULL)
if (pq->arr[i]->prior > 30)
{
 cout <<pq->arr[i] -> name;
  cout <<pq->arr[i] -> prior << endl;
}
pq->count=wtf(pq);
}
 
void Del(QUEUE *pq)                     //Удаление сообщения из очереди
{
pq->arr[pq->first] = 0;
pq->first++;
if (pq->first==N)
pq->first=0;
pq->count=wtf(pq);
}
 
void Show(QUEUE *pq)                   //ввод данных в сообщение для очереди!
{
for (int i = 0; i < N; i++)
if (pq->arr[i] != NULL)
{
cout <<"Вводим ip aдрес:"<< pq->arr[i]->name<< endl;
cout <<"Ваше сообщение: " << pq->arr[i]->prior << endl <<endl;
}
}
 
int main()                 // Меню
{
 
QUEUE q;
init(&q);
char otv, otv1;
do
{
cout << "1.Добавление сообщения " << endl <<
        "2. Удаление сообщения из очереди" <<endl <<
        "3. Вывод очереди на экран" << endl <<
        "4. Проверка очереди на пустоту" << endl <<
        "5. Проверка очереди на заполненость" << endl <<
        "0. Выход" << endl;
cout << "Ваше действие: ";cin >> otv;
switch(otv)
{
case '1':
if (polniy(&q)==1)                                      //Проверяем заполнена ли очередь
cout << endl << "Очередь полная" << endl<<endl;
else
{
cout <<endl<< "Ввидите элемент"<< endl;
Add(&q);
cout << endl << "Сообщение успешно добавлено в очередь!" << endl<<endl;
}
break;
case '2':
cout << "1. Удалить сообщение из очереди! " << endl
<< "2. " << endl;
cout << "Choose your destiny - ";cin >> otv1;
switch(otv1)
    {
case '1':
if (pystaya(&q)==1)
cout << endl << "message net" << endl<<endl;
else
{
Del(&q);
cout << endl << " Сообщение удалено из очереди!" << endl<<endl;
}
break;
case '2':
if (pystaya(&q)==1)
cout << endl << "Очередь пустая!" <<endl<<endl;
else
{
Del1(&q);
cout << endl << " Сообщение найдено в очереди" << endl<<endl;
}
break;
default:
cout << endl << "Еrror" << endl;
break;
}
break;
case '3':
if (pystaya(&q)==1)
cout << endl << "Очередь пустая!" << endl<<endl;
else
{
cout << endl << "Элементы очереди:" << endl<<endl;
Show(&q);
cout << endl;
}
break;
case '4':
if (pystaya(&q)==1)
cout << endl << "Очередь пустая" << endl<<endl;
else
cout << endl << "Очередь содержит сообщение" << endl<<endl;
break;
case '5':
if (polniy(&q)==1)
cout << endl << "Очередь полная!" <<endl<<endl;
else
cout << endl << "Возможно добавить сообщение!" << endl<<endl;
break;
case '0':
break;
default:
cout << endl << "Еrror enter" <<endl<<endl;
break;
}
}while(otv!='0');
cin.get();
 
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
30.03.2013, 10:15     Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети #4
Цитата Сообщение от fifa068 Посмотреть сообщение
программу я почти сделал
Смешно. Почти.
А где добавление/извлечение из очереди ?
Про булевы типы слышали?
Почему функцию называете классом?
Где хранятся ip-адреса?
Список вопросов можно продолжить.
Yandex
Объявления
30.03.2013, 10:15     Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети
Ответ Создать тему
Опции темы

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