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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fifa068
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 93
#1

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

30.03.2013, 09:20. Просмотров 766. Ответов 3
Метки нет (Все метки)

Всем привет! есть условие: Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети. Сообщение содержит IP адрес получателя, передаваемый текст. Очередь обладает функциями добавления сообщений в очередь, изменение статуса сообщения вне зависимости от положения в очереди.

программу я почти сделал, но я не пойму как изменить статус сообщения вне зависимости от положения очереди. помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 09:20     Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети
Посмотрите здесь:
C++ Объекты классов, взаимодействуют между собой посредством передачи сообщений
C++ 5.2 Реализовать представление очереди. Работу со структурами организовать в виде текстового меню
C++ Чат по сети между двумя компами
Реализовать функцию вычисления количества дней между двумя датами. C++
Реализовать функцию, перемещающую текст находящийся между первыми двумя запятыми в строке, в начало текста C++
Расчет компьютерной сети C++
Написать курсовую работу на тему: Основы компьютерной графики C++
C++ Вывести содержимое очереди на экран двумя столбцами
Посчитать, хватит ли поросятам тугриков для подключения к компьютерной сети (задача acmp №57) C++
Реализовать представление очереди. C++
C++ Игра в кости: реализовать мини-казино; реализовать возможность игры 2 человек между собой
C++ Разработать библиотеку процедур для приёма-передачи данных по сети на основе протокола UDP

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ded_Vasilij
231 / 213 / 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
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.03.2013, 10:15     Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети #4
Цитата Сообщение от fifa068 Посмотреть сообщение
программу я почти сделал
Смешно. Почти.
А где добавление/извлечение из очереди ?
Про булевы типы слышали?
Почему функцию называете классом?
Где хранятся ip-адреса?
Список вопросов можно продолжить.
Yandex
Объявления
30.03.2013, 10:15     Реализовать работу очереди передачи сообщений между двумя ПК в компьютерной сети
Ответ Создать тему
Опции темы

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