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

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

Восстановить пароль Регистрация
 
Dimon 128500
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 9
14.11.2010, 22:05     Интерфейс класса очереди с приоритетами. Найдите ошибки. #1
Помогите найти ошибки в моей программе. Текст задания ниже.
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.11.2010, 22:05     Интерфейс класса очереди с приоритетами. Найдите ошибки.
Посмотрите здесь:

C++ Реализация в виде класса очереди с приоритетом.
C++ Очередь С++ Проблема с удалением элементов класса очереди
C++ Функция добавления и увеличения элемента из очереди с приоритетами
Шаблон класса "очередь с приоритетами" C++
C++ Интерфейс функции и класса
C++ Создание класса очереди
C++ Найдите ошибки
C++ Использование очереди (queue) одного класса в другом

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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