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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов http://www.cyberforum.ru/cpp-beginners/thread191305.html
эту задачу простым языком в Delphi Дана целочисленная квадратная матрица. Определить: 1.) сумму элементов в тех столбцах, которые не содержат отрицательных элементов; 2.) минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. через консоль... если можете помогите:) плиз
C++ Найти сумму цифр заданного числа помогите, пожалуйста, с двумя задачками. 1 написать программу для нахождения суммы цифр заданного трехзначного числа. 2 написать программу для для вычисления суммы кубов чисел от k до x, где k,x - вводятся с клавиатуры и k<x. http://www.cyberforum.ru/cpp-beginners/thread191294.html
графика C++
пытался искать в интернете, дома всю литературу перерыл.. ничего так и не нашел. подскажите, покажите, обьясните. как рисовать в с++? мне надо сделать фон и провести пару линий по монитору. извиняюсь если тема уже была, я не нашел.
масив C++
всем привет! очень нужна ваша помощь. 1) нужно заполнить двухмерную матрицу нулями над главной диагональю. 2) найти номер первого рядка двухмерной матрицы, который имеет хотя бы один ноль. заранее благодарю. С++
C++ Вывести на экран 1 000 000 чисел http://www.cyberforum.ru/cpp-beginners/thread191266.html
Вывести на экран попорядку 1 000 000 чисел с максимальной скоростью выполнения операции. (С++)
C++ Завис Borland Как достать программу с которой я работал? http://pc-help.tomsk.ru/i/101114230507.jpg В папке BIN только экзешник и файлы проекта! подробнее

Показать сообщение отдельно
Dimon 128500
0 / 0 / 0
Регистрация: 09.05.2010
Сообщений: 9
14.11.2010, 22:05     Интерфейс класса очереди с приоритетами. Найдите ошибки.
Помогите найти ошибки в моей программе. Текст задания ниже.
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru