![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 21.06.2011
Сообщений: 4
|
![]()
С++
объясните пжлста как работает, и что для чего используется вот задание: имеется поток для 3 очередей. Заявки отсортированы по времени поступления в каждую очередь. НАписать прогу печатающую порядокв котором эти заявки будут обслуженны. Время обслуживания заявок одинаковое. формат вых файла: кол-во заявок в первой очереди, список моментов времени в которые они возникают, анологично для 2й и 3й. В вых файл для каждой обслуженной заявки печатается номер очереди и время прихода заявки вход выход 3 1 1 1 2 2 5 1 5 7 1 7 2 2 10 2 3 11 10 1 11 #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; } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Народ объясните пжл как это работает???????? | PRIVIDENIE18 | Помощь студентам | 5 | 29.05.2011 13:23 |
Множества, объясните как работает программа | ilyas22 | Помощь студентам | 4 | 06.06.2010 12:17 |
Объясните как работает PaintBox. | NIQK | Компоненты Delphi | 1 | 11.12.2009 17:46 |
Паскаль. рекурсия. числа. объясните, как работает код | [silver beast] | Помощь студентам | 2 | 21.01.2009 05:00 |
Объясните, как работает функция strlen() | TheWanderer | Общие вопросы C/C++ | 9 | 25.11.2008 22:46 |