Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 21.06.2011
Сообщений: 8
1

Объяснить как работает программа

21.06.2011, 08:42. Показов 648. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
объясните пжлста как работает, и что для чего используется
вот задание: имеется поток для 3 очередей. Заявки отсортированы по времени поступления в каждую очередь. НАписать прогу печатающую порядокв котором эти заявки будут обслуженны. Время обслуживания заявок одинаковое. формат вых файла: кол-во заявок в первой очереди, список моментов времени в которые они возникают, анологично для 2й и 3й. В вых файл для каждой обслуженной заявки печатается номер очереди и время прихода заявки

вход
3
1
5
7
2
2
10
11

выход
1 1
2 2
1 5
1 7
2 10
3 11


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
#include "stdafx.h"
using namespace std;
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
 
system("cls"); //Очищает содержимое экрана
char* Fname = "input.txt";
ifstream myin(in_Fname);
if (!myin.is_open()) // если нет файла прога закрывается
{
exit(1);
};
int startnum=0;
int tNum=0;
//создаем очереди
queue <int> FirstQ,SecondQ,ThirdQ;
int NumQueue=0;
//заносим данные в череди
while (!myin.eof())
{
myin>>startnum;
for (int i=0;i<startnum;++i)
{
if (myin>>tNum)
{
switch (NumQueue)
{
case 0:
FirstQ.push(tNum);
break;
case 1:
SecondQ.push(tNum);
break;
case 2:
ThirdQ.push(tNum);
break;
default:
break;
}
}
}
++NumQueue;
if (NumQueue>2)
break;
}
myin.close();
int OfFirstQ = EndQueue , OfSecondQ = EndQueue , OfThirdQ = EndQueue;
/*подсчитывает результат и выводим*/
do
{
//значение из первой очереди
if (!FirstQ.empty())
{
if (OfFirstQ==EndQueue)
{
OfFirstQ=FirstQ.front();
FirstQ.pop();
}
}
//значение из второй очереди
if (!SecondQ.empty())
{
if (OfSecondQ==EndQueue)
{
OfSecondQ=SecondQ.front();
SecondQ.pop();
}
}
//значение из третьей очереди
if (!ThirdQ.empty())
{
if (OfThirdQ==EndQueue)
{
OfThirdQ=ThirdQ.front();
ThirdQ.pop();
}
}
CorrectOutValueAndWrite (OfFirstQ,OfSecondQ,OfThirdQ);
} while (OfFirstQ != EndQueue || OfSecondQ != EndQueue || OfThirdQ != EndQueue);
return 0;
}
 
int CorrectOutValueAndWrite (int &OfFirstQ,int &OfSecondQ,int &OfThirdQ)
{
ofstream myout(out_Fname,ios::app);
if (!myout.is_open())
{
myout.close();
exit(1);
};
if ((OfFirstQ<=OfSecondQ && OfFirstQ<=OfThirdQ && OfFirstQ!=EndQueue && OfSecondQ!=EndQueue && OfThirdQ!=EndQueue) || (OfSecondQ==EndQueue && OfFirstQ<=OfThirdQ && OfFirstQ!=EndQueue) || (OfThirdQ==EndQueue && OfFirstQ<=OfSecondQ && OfFirstQ!=EndQueue) || (OfThirdQ==EndQueue && OfSecondQ==EndQueue && OfFirstQ!=EndQueue))
{
myout<<1<<" "<<OfFirstQ<<endl;
OfFirstQ=EndQueue;
myout.close();
return 0;
}
if ((OfSecondQ<=OfFirstQ && OfSecondQ<=OfThirdQ && OfFirstQ!=EndQueue && OfSecondQ!=EndQueue && OfThirdQ!=EndQueue) || (OfFirstQ==EndQueue && OfSecondQ<=OfThirdQ && OfSecondQ!=EndQueue) || (OfThirdQ==EndQueue && OfSecondQ<=OfFirstQ && OfSecondQ!=EndQueue) || (OfThirdQ==EndQueue && OfSecondQ!=EndQueue && OfFirstQ==EndQueue))
{
myout<<2<<" "<<OfSecondQ<<endl;
OfSecondQ=EndQueue;
myout.close();
return 0;
}
if ((OfThirdQ<=OfFirstQ && OfThirdQ<=OfSecondQ && OfFirstQ!=EndQueue && OfSecondQ!=EndQueue && OfThirdQ!=EndQueue) || (OfSecondQ==EndQueue && OfThirdQ<=OfFirstQ && OfThirdQ!=EndQueue) || (OfFirstQ==EndQueue && OfThirdQ<=OfSecondQ && OfThirdQ!=EndQueue) || (OfThirdQ!=EndQueue && OfSecondQ==EndQueue && OfFirstQ==EndQueue))
{
myout<<3<<" "<<OfThirdQ<<endl;
OfThirdQ=EndQueue;
myout.close();
return 0;
}
myout.close();
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2011, 08:42
Ответы с готовыми решениями:

Объяснить как работает задача
#include &lt;stdio.h&gt; int main(){ int s,l;//S-расстояние км,L-расход топлива в литрах на км....

Объяснить как работает часть кода
Нужна помощь, объяснить как работает часть кода, а именно добавление элементов в двусвязный...

надо объяснить как работает рекурсия тут
int func(int n) { if (!(n % 2)) { return func(n / 2); } else {

Можете объяснить как работает часть этого кода?
Можете объяснить как работает эта часть кода? string s, y, smin = &quot; &quot;; int umin = 10000; while...

0
21.06.2011, 08:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2011, 08:42
Помогаю со студенческими работами здесь

Кто может объяснить алгоритм прораммы.Как она работает?
Кто может объяснить алгоритм прораммы.Как она работает?по пунктам.сначала то, потом то... ...

Кто может объяснить алгоритм программы? Как она работает?
Нужно позарез. Реально помогите кто что знает. Рисую алгоритмы нужно разобраться, плс. коменты...

Можете объяснить, как работает следующая проверка (на ввод букв)?
do { k=scanf_s(&quot;%d&quot;,&amp;mas); if (k==0) { fflush(stdin);...

Объяснить как работает рекурсивная функция и стек вызовов на моем примере
Объясните пожалуйста как работает рекурсивная функция и стек вызовов на моем примере. Здесь...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru