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

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

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

Описать работу ателье - C++

01.06.2010, 15:19. Просмотров 460. Ответов 4
Метки нет (Все метки)

Уважаемые господа програмисты, просто зачыпаюсь, хоть и год учил с++ всёравно ноль.
Мне нужен код к очереди, а желательно всю прогу если можно.)))

Смысл в очереди в том, что у нас есть ателье, в нем есть мастер и клиенты
мастер принмает заказы в таком порядке :
сначало обычные впринципе до 20 заказов в день
если появляются срочные заказы их ставят в очередь 1, и тоже самое с очень срочными.
Но если срочных набирается 4 заказа, то мастер сделав 4 срочных делает 2 обычных заказа.

Вот такая очередь.
Очено прошу помогите, надо сегодня очень срочтно, если завтро не покажу, то выгонят из института...
Пожалуйста очень прошу
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2010, 15:19     Описать работу ателье
Посмотрите здесь:

C++ Описать работу междугородной телефонной станции - картотека абонентов
C++ Как описать метод класса? Как двумя способами описать инлайнируемый метод класса? Что такое this?
Попроавить работу C++
Про работу с БМП C++
Классы (Описать класс, реализующий тип данных «вещественная матрица» и работу с ними) C++
C++ Описать класс, реализующий тип данных «вещественная матрица» и работу с ними
C++ Объясните работу кода
Переделать работу с текстовыми файлами под работу с двоичными файлами C++
C++ Описать класс, реализующий стек и работу с ним
Описать класс, реализующий стек и работу с ним C++
C++ Объясните работу ф-ии memmove
Придумать и описать создание списка или стека или очереди. И работу с ними. C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
01.06.2010, 15:53     Описать работу ателье #2
Цитата Сообщение от Angellord Посмотреть сообщение
надо сегодня очень срочтно, если завтро не покажу, то выгонят из института...
При таком подходе только во фриланс. Тут помогают тем, кто сам что-то делает. Да и програмка у Вас не в пару десятков строчек получится...
Angellord
0 / 0 / 0
Регистрация: 01.06.2010
Сообщений: 5
01.06.2010, 15:56  [ТС]     Описать работу ателье #3
Да то что у меня сделано, это лудше никому не показывать вообще))) там такое, да и ошибок 30+
Mr.X
Эксперт С++
 Аватар для Mr.X
3021 / 1677 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
02.06.2010, 00:06     Описать работу ателье #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
//Смысл в очереди в том, что у нас есть ателье, в нем есть мастер и клиенты
//мастер принмает заказы в таком порядке :
//сначало обычные впринципе до 20 заказов в день
//если появляются срочные заказы их ставят в очередь 1, и тоже самое с очень срочными.
//Но если срочных набирается 4 заказа, то мастер сделав 4 срочных делает 2 обычных заказа.
//Вот такая очередь.
#include <queue>
#include <iostream>
 
enum T_prior_val
{
    EMPTY,
    OCHEN_SROCHN,
    SROCHN,
    OBYCHN
};
 
struct T_order
{
    int  ind_;
    int  prioritet_;
    T_order(int ind = 0, int prioritet = 0) : ind_(ind), prioritet_(prioritet)
    {}
};
 
typedef std::queue<T_order>  T_orders;
 
void input_orders
    (
        T_orders&  OCHEN_SROCHN_orders,
        T_orders&  SROCHN_orders,
        T_orders&  OBYCHN_orders
    )
{
    std::cout << "Введите приоритеты заказов:"       << std::endl
              << OCHEN_SROCHN << " - очень срочный;" << std::endl
              << SROCHN       << " - срочный;"       << std::endl
              << OBYCHN       << " - обычный;"       << std::endl
              << EMPTY        << " - конец ввода;"   << std::endl;
 
    int  cur_order_ind  = 1;
    int  cur_prioritet  = EMPTY;
    for(;;)
    {
        std::cout << "Заказ #" << cur_order_ind << ": ";
        std::cin >> cur_prioritet;
        switch(cur_prioritet)
        {
        case OCHEN_SROCHN:
            OCHEN_SROCHN_orders.push(T_order(cur_order_ind++, cur_prioritet));
            break;
        case SROCHN:
            SROCHN_orders.push(T_order(cur_order_ind++, cur_prioritet));
            break;
        case OBYCHN:
            OBYCHN_orders.push(T_order(cur_order_ind++, cur_prioritet));
            break;
        case EMPTY:
            return;
        default:
            return;           
        }//switch(cur_prioritet)
    }//for(;;)
}
 
void print_order(const T_order&  order)
{
    std::cout << "Заказ # " << order.ind_;
    switch(order.prioritet_)
    {
    case OCHEN_SROCHN:
        std::cout << " (очень срочный)";
        break;
    case SROCHN:
        std::cout << " (срочный)";
        break;
    case OBYCHN:
        std::cout << " (обычный)";
        break;
    case EMPTY:
        return;
    default:
        return;           
    }//switch(order.prioritet_)
    std::cout << std::endl;
}
 
void  orders_processing
    (
        T_orders&  OCHEN_SROCHN_orders,
        T_orders&  SROCHN_orders,
        T_orders&  OBYCHN_orders
    )
{
    std::cout << std::endl
              << "Очередность обработки заказов: " << std::endl;
    const int  MAX_SROCHN_PODRYAD  = 4;
    const int  MAX_OBYCHN_PODRYAD  = 2;
    const int  MAX_ORDER_COUNT    = 20;        
    int        order_count = 0;
    while(!OCHEN_SROCHN_orders.empty())
    {
        print_order(OCHEN_SROCHN_orders.front());
        OCHEN_SROCHN_orders.pop();
        if(++order_count == MAX_ORDER_COUNT) return;
    }
 
    while(!SROCHN_orders.empty() || !OBYCHN_orders.empty())
    {
        for(int srochn_order_count = 0; 
            srochn_order_count < MAX_SROCHN_PODRYAD; ++srochn_order_count)
        {
            if(!SROCHN_orders.empty())
            {
                print_order(SROCHN_orders.front());
                SROCHN_orders.pop();
                if(++order_count == MAX_ORDER_COUNT) return;           
            }
        }//for(int srochn_order_count = 0; srochn_order_count < MAX_SROCHN_PODRYAD;...
 
        for(int obychn_order_count = 0; 
            obychn_order_count < MAX_OBYCHN_PODRYAD; ++obychn_order_count)
        {
            if(!OBYCHN_orders.empty())
            {
                print_order(OBYCHN_orders.front());
                OBYCHN_orders.pop();
                if(++order_count == MAX_ORDER_COUNT) return;           
            }
        }//for(int obychn_order_count = 0; obychn_order_count < MAX_OBYCHN_PODRYAD;...
    }//while(!SROCHN_orders.empty())  
}
 
int main()
{
    std::locale::global(std::locale("rus"));
    T_orders  OCHEN_SROCHN_orders;
    T_orders  SROCHN_orders;
    T_orders  OBYCHN_orders;
 
    input_orders
        (
            OCHEN_SROCHN_orders,
            SROCHN_orders,
            OBYCHN_orders
        );
 
    orders_processing
        (
            OCHEN_SROCHN_orders,
            SROCHN_orders,
            OBYCHN_orders
        );
 
    return 0;
}
Angellord
0 / 0 / 0
Регистрация: 01.06.2010
Сообщений: 5
02.06.2010, 09:48  [ТС]     Описать работу ателье #5
Mr.X,
Огромнейшое тебе спасибо!!!!! выручил.....О_о
Я так рад, просто не описать!!!

Добавлено через 18 минут
И ещё если не сложно, туда надо добавить in.txt для автоматич ввода данных
и out.txt где будут все результаты......
я как понял всё надо в main но что-то неполучается((((
Yandex
Объявления
02.06.2010, 09:48     Описать работу ателье
Ответ Создать тему
Опции темы

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