+ 2
Управление Очередью
Вы работаете над системой управления очередью и вам нужно создать класс для хранения данных очереди, которыми являются идентификаторы клиентов (целые числа). Вы создаете класс Queue, который имеет атрибут size и массив для хранения данных очереди. У класса есть метод remove() для удаления переднего элемента очереди и метод print() для вывода очереди. Вам нужно создать метод add() для класса Queue, который будет принимать элемент и добавлять его в конец очереди. Код должен быть полностью рабочим, чтобы объявление Очереди и манипуляционный код в main() работали. Решение: void add(){} Объясните какой элемент он должен принимать?
7 Answers
+ 5
Принимает целое число, записывает его в динамический массив *queue (в очередь) под индексом size. Увеличивает этот индекс на 1 при добавлении нового елемента в очередь. То бишь, если ты встал в очередь из 2-х, ты 3-й, да и очередь уже из 3-х..
void add(int a){
queue[size]=a;
size++;
}
Вобще тут еще не хватает деструктора, который бы удалял этот массив, но условие задачи просто написать функцию добавления в очередь...
+ 6
Ваш класс очереди активен и работает в компании по обслуживанию клиентов. Компания открывает новый филиал и просит вас сделать для них еще одну версию Очереди. Единственное отличие - это способ отображения очереди: каждое число на новой строке. Вы решили создать новый класс с именем Queue2 , который является производным от класса Queue и переопределяет метод print (), выводя каждый элемент очереди на новую строку.
+ 5
//ваш код
Queue operator+(Queue &obj) {
Queue res;
for(int i=0;i<this->size;i++) {
res.add(this->queue[i]);
}
for(int i=0;i<obj.size;i++) {
res.add(obj.queue[i]);
}
return res;
}
+ 3
#include <iostream>
using namespace std;
class Queue {
int size;
int* queue;
public:
Queue() {
size = 0;
queue = new int[100];
}
void remove() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
else {
for (int i = 0; i < size - 1; i++) {
queue[i] = queue[i + 1];
}
size--;
}
}
void print() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
for (int i = 0; i < size; i++) {
cout<<queue[i]<<" <- ";
}
cout <<endl;
}
//ваш код
int add(int rt){
queue [size]=rt;
size++;
return queue[size] ;
}
};
int main() {
Queue q;
q.add(42); q.add(2); q.add(8); q.add(1);
q.print();
q.remove();
q.add(128);
q.print();
q.remove();
q.remove();
q.print();
return 0;
}
0
Спс все работает!
0
Обявляем функцию add в классе Queue
void add(int o){
if(o!=0){ //проверяем пришо ли что то
queue [size]=o; //используя переменную size заполняем массив
}
size++; // увеличиваем переменную что бы понимать сколько массивов заполнено и для заполнения следючшей ячейки массива
}
- 2
#include <iostream>
using namespace std;
class Queue {
int size;
int* queue;
public:
Queue() {
size = 0;
queue = new int[100];
}
void remove() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
else {
for (int i = 0; i < size - 1; i++) {
queue[i] = queue[i + 1];
}
size--;
}
}
void print() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
for (int i = 0; i < size; i++) {
cout<<queue[i]<<" <- ";
}
cout <<endl;
}
//ваш код
void add()
};
int main() {
Queue q;
q.add(42); q.add(2); q.add(8); q.add(1);
q.print();
q.remove();
q.add(128);
q.print();
q.remove();
q.remove();
q.print(