Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 04.10.2018
Сообщений: 84
1

Как struct Queue и его операции превратить в классы, то есть нужно сделать тоже самое, но через классы

23.10.2018, 14:35. Просмотров 1173. Ответов 1
Метки нет (Все метки)

Как struct Queue и его операции превратить в классы, то есть нужно сделать тоже самое, но используя соотвественно классы
И как осуществить их взаимодействие с главной программой?

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
#include "stdafx.h"
#include <locale.h>
#include <iostream>
#include <Windows.h>
using namespace std;
 
 
 
const int N = 10; //Размер очереди
 
struct Queue
{
    int data[N]; //Массив данных
    int last; //Указатель на начало
};
 
//Создание очереди
void Creation(Queue *Q)
{
    Q->last = 0;
}
 
//Добавление элемента
void Add(Queue *Q)
{
    if (Q->last == N)
    {
        SetColor(Red, Black);
        cout << "Очередь заполнена!";
        SetColor(Black, Black);
        return;
    }
 
    int value;
    cout << "элемент: ";
    cin >> value;
    Q->data[Q->last++] = value;
    
    cout << "Элемент добавлен в очередь!" << endl;
    
}
 
//Добавление элемента
void DAdd(Queue *Q, int n)
{
    Q->data[Q->last++] = n;
}
 
//Удаление элемента
void Delete(Queue *Q)
{
    for (int i = 0; i<Q->last && i<N; i++) //Смещение элементов
        Q->data[i] = Q->data[i + 1]; Q->last--;
}
 
//Вывод начального элемента
int Top(Queue *Q)
{
    return Q->data[0];
}
 
int main()
{
    setlocale(LC_ALL, "Rus");
    int mas[N];
    int a, E1, E2;
    Queue Q;
    Creation(&Q);
 
    cout << "Введите " << N << " элементов в очередь: " << endl;
    for (int i = 0; i < N; i++)
    {
        cout << endl << "Введите " << i + 1 << "-й ";
        Add(&Q);
    }
 
    cout << endl << "Введите число E1, которое будет заменено на число E2: ";
    cout << endl << "E1: ";
    cin >> E1;
    cout << "E2: ";
    cin >> E2;
 
    for (int i = 0; i < N; i++)
    {
        int n = Top(&Q);
        if (n == E1) 
            n = E2;
        mas[i] = n;
        Delete(&Q);
    }
 
    for (int i = N - 1; i >= 0; i--)
    {
        DAdd(&Q, mas[i]);
    }
    
    cout << endl << endl << "Измененная очередь:" << endl;
    
    for (int i = 0; i < N; i++)
    {
        int n = Top(&Q);
    
        cout << n << " ";
        Delete(&Q);
        
    }
    cout << endl;
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2018, 14:35
Ответы с готовыми решениями:

Как сделать что бы самое длинное слово и самое короткое тоже выводились
Как сделать что бы самое длинное слово и самое короткое тоже выводились? using System; ...

Операции с матрицами (+,-,*) через классы и вывод в листбокс
нужно чтобы в создавалась только одна матрица в классе и далее было сложение summa = m1+m2; (где m1...

Как сделать сохранение/загрузку данных из бинарного файла через классы?
Есть класс Students. class Students{ public: void save(); void load(); ~Students();

Задать базовый класс и классы-потомки на его основе, реализующие операции с данными
1. Задать базовый класс и классы-потомки на его основе, реализующие операции с данными, в...

1
442 / 329 / 171
Регистрация: 01.07.2015
Сообщений: 1,162
23.10.2018, 14:59 2
Лучший ответ Сообщение было отмечено Fretr30 как решение

Решение

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
#include <locale.h>
#include <iostream>
#include <Windows.h>
using namespace std;
 
const int N = 10; //Размер очереди
 
class Queue {
 public:
  Queue() : last_(0) {}
 
  void Add() {
    if (last_ == N) {
      cout << "Очередь заполнена!";
 
      return;
    }
 
    int value;
    cout << "элемент: ";
    cin >> value;
 
    data_[last_++] = value;
 
    cout << "Элемент добавлен в очередь!" << endl;
  }
 
  void Add(int n) { data_[last_++] = n; }
 
  void Delete() {
    for (int i = 0; i < last_ && i < N; ++i)
      data_[i] = data_[i + 1];
 
    --last_;
  }
 
  int Top() {
    return data_[0];
  }
 
 private:
  int data_[N];
  int last_;
};
 
int main() {
  setlocale(LC_ALL, "Rus");
  int mas[N];
  int a, E1, E2;
  Queue Q;
 
  cout << "Введите " << N << " элементов в очередь: " << endl;
  for (int i = 0; i < N; i++) {
    cout << endl << "Введите " << i + 1 << "-й ";
    Q.Add();
  }
 
  cout << endl << "Введите число E1, которое будет заменено на число E2: ";
  cout << endl << "E1: ";
  cin >> E1;
  cout << "E2: ";
  cin >> E2;
 
  for (int i = 0; i < N; i++) {
    int n = Q.Top();
    if (n == E1)
      n = E2;
    mas[i] = n;
    Q.Delete();
  }
 
  for (int i = N - 1; i >= 0; i--) {
    Q.Add(mas[i]);
  }
 
  cout << endl << endl << "Измененная очередь:" << endl;
 
  for (int i = 0; i < N; i++) {
    int n = Q.Top();
 
    cout << n << " ";
    Q.Delete();
 
  }
  cout << endl;
  system("pause");
  return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2018, 14:59

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Нужно реализовать программу через классы
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms,...

Как сделать тоже самое только с 10 переменными?
Помогите, плз. Есть три типа переменных CN, F и Result; У каждого из CN есть определенное...

Как сделать тоже самое, но чтоб в TP Работало?
Вот вариант обработки функции выделения n-го слова. TP lowercase не распознаёт... Как переделать? ...

Как сделать тоже самое ток на php?
public string GetHTML() { string html, row1 = &quot;&quot;, row2 = &quot;&quot;; ...


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

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

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