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

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

Войти
Регистрация
Восстановить пароль
 
Dimon 128500
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 9
#1

Интерфейс класса очереди с приоритетами. Найдите ошибки. - C++

14.11.2010, 22:05. Просмотров 815. Ответов 0
Метки нет (Все метки)

Помогите найти ошибки в моей программе. Текст задания ниже.
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
/*   Ниже приведен интерфейс класса очереди с приоритетами, который функционирует следующим
   образом. В очередь могут быть добавлены элементы, каждому элементу при добавлении
   присваивается один из трех уровней приоритета (low, normal, high)
     Элементы из очереди извлекаются в соответствии с их приоритетами (сначала извлекаются
   элементы с приоритетом high, потом normal, потом low), элементы с одинаковыми приоритетами
   извлекаются из очереди в порядки их поступления. 
     В очереди также может происходить операция акселерации – все элементы с приоритетом low
   находящиеся в момент акселерации в очереди увеличивают свой приоритет до high и «обгоняют»
   элементы с приоритетом normal.
*/
 
#include <iostream>
#include <stdio.h>
#include <list>
#include <time.h>
#include <ctime>
#include <conio.h>
 
using namespace std;
 
typedef enum 
{
    LOW, 
    NORMAL,
    HIGH 
} ElementPriority;
 
  string QueueElement;
 
  typedef struct 
    {
    string str;
    enum ElementPriority;
    }DataStruct; 
  
  list<DataStruct>v;
  list<DataStruct>::iterator Iter;
 
class QueueWithPriority
{
    // Конструктор, создает пустую очередь
   QueueWithPriority();
 
    // Деструктор
   ~QueueWithPriority();
 
    // Добавить в очередь элемент element с приоритетом priority
    void PutElementToQueue(string &QueueElement, ElementPriority priority);
 
    // Получить элемент из очереди  метод должен возвращать элемент с наибольшим приоритетом,   
    который был добавлен в очередь раньше других
    void GetElementFromQueue();
 
    // Выполнить акселерацию
    void Accelerate();
 
    int x;
    string temp;
    
};
 
QueueWithPriority::QueueWithPriority() {}
 
QueueWithPriority::~QueueWithPriority()
 
void QueueWithPriority::PutElementToQueue(string &QueueElement, ElementPriority priority)
   {
    DataStruct a;
    a.str = QueueElement;
    a.ElementPriority=priority;
    v.push_back(a);
    }
 
void QueueWithPriority::GetElementFromQueue()
{
  DataStruct a;
  for (Iter = v.begin(); Iter != v.end(); Iter++) {if (a.ElementPriority==HIGH) print(*Iter); cout<<"\n";}
  for (Iter = v.begin(); Iter != v.end(); Iter++) {if (a.ElementPriority==NORMAL) print(*Iter); cout<<"\n";}
  for (Iter = v.begin(); Iter != v.end(); Iter++) {if (a.ElementPriority==LOW) print(*Iter); cout<<"\n";}
}
 
void QueueWithPriority::Accelerate()
{
 cout<<"After Accelerate: "<<"\n";
 for (Iter = v.begin(); Iter != v.end(); Iter++)
   {
    if (a.ElementPriority==LOW) a.ElementPriority=HIGH;
    print(*Iter); cout<<"\n";
   }
}
 
void print(DataStruct a) {cout<<"QueueElement: "<<a.str<<" Priority: "<<a.ElementPriority<<endl;}
 
int main()
{
 
string temp="__";
int priority;
 
while (temp.size()!=0)
    {
    cout<<"Vvedite element";
    cin>>temp;
    cout<<"Vvedite prioritet elementa (0,1,2)";
    cin>>priority;
    PutElementToQueue(string temp, ElementPriority priority)
    }
    GetElementFromQueue();
    Accelerate();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2010, 22:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Интерфейс класса очереди с приоритетами. Найдите ошибки. (C++):

Ошибка в очереди с приоритетами - C++
Здравствуйте, не работает ни пуш, ни поп. Помогите найти ошибку) struct s_i { string s; size_t ind; s_i(string s_, size_t...

Функция добавления и увеличения элемента из очереди с приоритетами - C++
У меня еще одна проблема:( нужно написать функцию добавления и увеличения элемента из очереди с приоритетами. При необходимости можно...

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

Шаблон класса "очередь с приоритетами" - C++
Здравствуйте, небходимо создать шаблон класса &quot;очередь с приоритетами&quot;. При добавлении элемента в такую очередь его номер определяется его...

Создание класса очереди - C++
Создать класс, реализующую очередь целых чисел типа FIFO. Данные класса: массив очереди, указатели на начало очереди и на конец очереди....

Реализация в виде класса очереди с приоритетом. - C++
День добрый, возникла проблема с представлением требования от задачи: если разбирать по компонентом, то я понимаю что они из себя...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.11.2010, 22:05
Привет! Вот еще темы с ответами:

Интерфейс функции и класса - C++
Часто встречаются понятия как интерфейс функции и класса.Если я правильно понимаю,то интерфейс функции-это её прототип:возвращаемое...

Очередь С++ Проблема с удалением элементов класса очереди - C++
Разбираюсь с очередью. Не могу понять, где совершил ошибку: при компиляции компилятор ругается на необработанное исключение при удалении...

Использование очереди (queue) одного класса в другом - C++
Использование очереди (queue) одного класса в другом проблема в следующем есть класс Hospital, в котором созданы 2 очереди class...

Найдите ошибки - C++
Мне нужно написать программу,которая создает текстовый файл в папке проекта,в нем должен находится текс,который я ввожу,а именно название...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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