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

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

Войти
Регистрация
Восстановить пароль
 
Zheka91
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
#1

Моделирование очереди банка - C++

19.03.2012, 16:56. Просмотров 849. Ответов 5
Метки нет (Все метки)

мошь кто делал задачку в книге Каррано в разделе очереди, моделирование очереди банка, поделитесь пожалуйста... если нет помогите пожалуйсто...
я вроде пишу по книжке ну что то не так..
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
#include <iostream>
#include <deque>
#include <list>
using namespace std;
 
struct ListItem
{
  int прибытие;
  int обслуживание;
  int отбытие;
  ListItem() : прибытие(0),обслуживание(0),отбытие(0) {}
  ListItem(int пр,int об) : прибытие(пр),обслуживание(об),отбытие(пр+об) {}
};
 
class Queue
{
 private:
  deque<ListItem> bankQueue; 
  list<ListItem> eventList;
  static int currentTime;
 public:
     void simulate()
     {
        int e,r;
        FILE* f=fopen("in.txt","r");
        fscanf(f,"%d %d",&e,&r);
        eventList.push_back(ListItem(e,r));
        while(!eventList.empty())
        {
            ListItem newEvent;
            newEvent=eventList.front();
            if(newEvent.прибытие)
            {
                processArrival(newEvent,f);
            }
            else
            {
                processDeparture(newEvent);
            }
        }
     }
     void processArrival(ListItem newEvent,FILE* f)
     {
         bool atFront = bankQueue.empty();
         bankQueue.push_back(newEvent);
         eventList.pop_back();
         if(atFront)
         {
             int e,r;
            fscanf(f,"%d %d",&e,&r);
            eventList.push_back(ListItem(e,r));
            currentTime+=eventList.front().обслуживание;
         }
         if(!feof(f))
         {
             int e,r;
            fscanf(f,"%d %d",&e,&r);
            eventList.push_back(ListItem(e,r));
         }
     }
    void processDeparture(ListItem newEvent)
    {
        bankQueue.pop_back();
        eventList.pop_back();
        if(!bankQueue.empty())
            currentTime+=bankQueue.front().обслуживание;
    }
 
};
 
 
int main(int argc, char *argv[])
{
  Queue queue;
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2012, 16:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Моделирование очереди банка (C++):

Очереди. Каким образом считать две очереди из одного текстового файла? - C++
Здравстуйте. В задании первый пункт состоит в том, что нужно сформировать две очереди по n элементов с помощью считки данных из...

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

Извлечь из очереди начальные элементы и вывести их значения и новые адреса начала и конца очереди - C++
Дано число N (&gt; 0) и указатели P1 и P2 на начало и конец непустой очереди. Извлечь из очереди N начальных элементов и вывести их значения...

Создание очереди и удаление элемента очереди по усмотрению пользователя - C++
Вот код он создает очередь и должен удалить элемент очереди по усмотрению пользователя проблема заключается в том что при попытки удалить...

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

Очереди. Дан массив. Создать две очереди, первая должна содержать все нечетные, а вторая - все четные - C++
Очереди. Дан массив. Создать две очереди, первая должна содержать все нечетные, а вторая - все четные числа из исходного набора; порядок...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
NoMasters
Псевдослучайный
1753 / 1096 / 72
Регистрация: 13.09.2011
Сообщений: 3,132
19.03.2012, 18:05 #2
Цитата Сообщение от Zheka91 Посмотреть сообщение
я вроде пишу по книжке ну что то не так..
Как минимум кириллица в исходнике.
И не происходит же в программе ничего, ну создан объект дефолтным конструктором, а дальше?
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
19.03.2012, 18:59 #3
Цитата Сообщение от NoMasters Посмотреть сообщение
Как минимум кириллица в исходнике.
Вроде некоторые компиляторы это позволяют (переводя кирилицу при компиляции в свой допустимый набор символов)
Zheka91
4 / 4 / 1
Регистрация: 22.11.2010
Сообщений: 101
19.03.2012, 19:04  [ТС] #4
Цитата Сообщение от NoMasters Посмотреть сообщение
Как минимум кириллица в исходнике.
И не происходит же в программе ничего, ну создан объект дефолтным конструктором, а дальше?
кирилица не мешает.. я просто не пойму чт ваще и как надо писать
Kastaneda
19.03.2012, 20:13
  #5

Не по теме:

Цитата Сообщение от Gepar Посмотреть сообщение
Вроде некоторые компиляторы это позволяют (переводя кирилицу при компиляции в свой допустимый набор символов)
Блин, действительно студия 2010 проголотила. В жизни бы не подумал

Fantom.AS
2 / 1 / 0
Регистрация: 17.11.2010
Сообщений: 121
13.04.2012, 07:46 #6
ппц, тоже по Коррано делаю, разобраться не могу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2012, 07:46
Привет! Вот еще темы с ответами:

Объединить две очереди в одну, как создать две очереди - C++
&quot;Объединить две очереди в одну, чередуя элементы первой и второй очереди. Основной вопрос как создать две очереди? точнее даже три, в...

Алгоритм: Как определить размера банка? - C++
Вот в чём суть: пишу покер дошёл до того, что игроки ставят ставки, игроки которым не хватает денег на ставку ставят столько, сколько есть...

задача: какая банка останется последней? - C++
есть n банок, при первом подходе разбивают первую сначала банку и затем каждую вторую, при втором подходе первую не разбитую и каждую...

Вычислить остаток счета депозита банка - C++
Изначально название темы 'Напишите программу' - Прим. LK. В финансовой расчетной программе необходимо вычислить остаток счета депозита...


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

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

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