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

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

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

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

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

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

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

Объекты классов, взаимодействуют между собой посредством передачи сообщений - C++
Помогите решить задачку,нужна в инст на комиссионный экзамен. Составить программу реализующую: 1)классы,которые могут содержать...

5.2 Реализовать представление очереди. Работу со структурами организовать в виде текстового меню - C++
Реализовать представление очереди. Работу со структурами организовать в виде текстового меню.

Чат по сети между двумя компами - C++
Всем добра! сложилась такая задачка, компы связаны по сети (кабельно), надо отправить сообщение друг-другу. такая банальная тема, но все...

Реализовать функцию вычисления количества дней между двумя датами. - C++
Помогите пожалуйста реализовать функцию вычисления количества дней между двумя датами. мои наброски int d,m,y,r; ...

Реализовать функцию, перемещающую текст находящийся между первыми двумя запятыми в строке, в начало текста - C++
Реализовать функцию перемещающую текст находящийся между первыми двумя запятыми в строке в начало текста - C++ Срочно!!!!!

Расчет компьютерной сети - C++
Уже 4 дня мучаюсь(сделал наброски, но всё - равно нечего не работает), у кого есть свободное время, можете помочь олуху?!) Рассчитать: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
30.03.2013, 09:30 #2
а код где?
0
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();
 
}
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.03.2013, 10:15 #4
Цитата Сообщение от fifa068 Посмотреть сообщение
программу я почти сделал
Смешно. Почти.
А где добавление/извлечение из очереди ?
Про булевы типы слышали?
Почему функцию называете классом?
Где хранятся ip-адреса?
Список вопросов можно продолжить.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 10:15
Привет! Вот еще темы с ответами:

Написать курсовую работу на тему: Основы компьютерной графики - C++
Помогите пожалуйста написать курсовую работу по Технологии программирования на тему: Основы компьютерной графики. Основные понятия....

Как реализовать отправку сообщений между двумя клиентами (пк)? - C++
кое как разобрался с языком.понятное дело просто синтаксис.без winapi некуда(я виндовщик) и захотел понять как работать с сетями. есть...

Реализовать UDP hole punching для прямой передачи информации между двумя компьютерами, находящимися за NAT - C#
Хочу реализовать UDP hole punching для прямой передачи информации между двумя компьютерами, находящимися за NAT. Пока пытаюсь проверить в...

В качестве линий связи для передачи данных по компьютерной сети могут использоваться - Сети
сетевая карта оптоволокно коаксиальный кабель витая пара


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.03.2013, 10:15
Ответ Создать тему
Опции темы

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