1

Тема: Черга С ++

Реалізувати чергу для зберігання і операцій з даними виду:

Найменування пристрою /// Рік випуску /// Вартість

Забезпечити виконання операцій:

• додавання елемента в чергу;
• видалення елемента з черги в порядку запису;
• визначення позиції елемента в черзі;
• видалення всіх елементів із заданим полем;
• роздрукування черзі.

#include "stdafx.h"
#include "iostream"
#include <string>
#include <stdlib.h>

using namespace std;

struct Queue
{
    char ElQueue;
    Queue *Next; 
} *Head, *p;

int symbol = 97;

void Menu();
void AddQueueEnd(Queue *El);
void Show();
void DeleteEl();

int main()
{
    setlocale(LC_ALL, "RUS");
    Head = NULL;
    while (1)
    {
        Menu();
        int k = 0, c = 0;
        cin >> k;
        cout << endl;
        switch (k)
        {
        case 1:
        { 
        cout << "Введiть число елементiв черги, яке потрiбно додати: " << endl;  cin >> c; 
        for (int i = 0; i < c; i++)
        {
            p = new Queue;  p->ElQueue = symbol; ++symbol; p->Next = NULL; AddQueueEnd(p);
        } cout << "Елементи доданi в чергу" << endl; system("pause"); system("cls"); break;
        }
        case 2:
        {
            cout << "Введiть число елементiв черги, яке потрiбно додати: " << endl;  cin >> c;
            for (int i = 0; i < c; i++)
            {
              DeleteEl();
            }  system("pause"); system("cls"); break;
        }
        case 3: { if (Head) Show(); else cout << "Порожнiй" << endl;      
            system("pause"); system("cls"); break; }
        case 4: { exit(0); break; }
        }
    }
    system("PAUSE");
    return 0;
}


void Menu() {
    cout << "Черга: " << endl << endl;
    cout << "1 - Додати n елементiв в чергу" << endl;
    cout << "2 - Видалити n елементiв з черги  " << endl;
    cout << "3 - Вивести чергу" << endl;
    cout << "4 - Вихiд" << endl << endl;
    cout << "Виберiть режим роботи" << endl;
}

void AddQueueEnd(Queue *El)
{
    Queue *temp = new Queue;
    if (Head == NULL) {
        Head = El;  return;
    }
    else temp = Head;
    while (temp->Next != NULL)
    {
        temp = temp->Next;
    }
    temp->Next = El;
}

void Show()
{
    int c= 0;
    Queue *temp = Head; 
    cout << "-----" << endl;
    while (temp != NULL) 
    {
        cout << "Елемент " << temp->ElQueue << '\t' << ++c << "-й зайшов " << c << "-й в черзi на вихiд" << endl ;
        temp = temp->Next; 
    }
    cout << "-----" << endl;
    cout << "Черга iз " << c << " елементiв" << endl;
}

void DeleteEl()
{

        cout << "Елемент " << Head->ElQueue << " - вийшов з черги" << endl;
        Queue *temp = Head->Next;
        delete Head;
        Head = temp;

}

2

Re: Черга С ++

Якщо не секрет - це ваше завдання на навчанні? І скільки ж ви за нього отримали?

3

Re: Черга С ++

це моя задача, яку я повинен здати

4

Re: Черга С ++

Все одно не розумію. Ви домовилися з викладачем використовувати наш форум для складання іспитів? Це, звісно, цікава ідея.

5

Re: Черга С ++

Ні я хочу попросити допомоги, доробити цю задачку.

6

Re: Черга С ++

В мене не реалізовані деякі пункти і
Найменування пристрою /// Рік випуску /// Вартість

7

Re: Черга С ++

Ну так зробіть, як виходить. Можливо, наша допомога і не знадобиться.
Якщо ви взагалі не розумієте, як робити - читайте книжку. І тоді, гадаю, вам рано вказівники та черги вчити, спершу зі структурами розберіться.

8

Re: Черга С ++

Прохання до пана koala. Ви відповідаєте те, що всім зрозуміло. Зрозуміло і те, що в людини немає грошей на комерційне вирішення питання, як немає і часу читати книжку, тому вона звернулася на форум. Може в нього хтось боліє. А може ще щось. Хто знає. А може не розуміє просто, адже і Ви, пане koala, також звертаєтесь на форум, а можете просто почитати книгу.

9

Re: Черга С ++

Серйозно? Немає часу на навчання? Зараз розплачуся. Ходити в університет, значить, час є, а навчатися - ну ні, не склалося. Ви взагалі розумієте, в чому сенс навчання? Ні, не в отриманні оцінок та дипломів комерційним та іншими шляхами, а в отриманні знань. Які знання отримає людина, за яку зробили її завдання на форумі? І який софт така людина потім писатиме? А якщо не писатиме, то нащо йшла на відповідну спеціальність? Тут, знаєте, літаки падають, машини розбиваються і люди рак отримують, не кажу вже про розбиті космічні ракети, через баги в софті. І розробники цього софта, цілком можливо, теж були "нещасними студентами", яким "допомогли". Не кажу вже про витрачання грошей платників податків на таке "навчання".
Ні, все просто: або людина робить завдання сама, а якщо із чимось стикнулася, що не може здолати - питає на форумі; причому "не може" - це не про психофізіологічний стан (втомився, голова болить, набридло), а про складність усвідомлення якоїсь концепції. Або хай змінює спеціальність, програмування - то не для неї.

На питання у формі "я роблю X; виходить код Y; але він чомусь замість того, щоб зробити X, робить Z" я практично завжди намагаюся відповісти по суті. Але тут цього немає і близько; пан Shelleex, якщо ви проглянете його теми, постійно викладає фрагменти коду і чекає, доки цей код допишуть до потрібного йому стану, причому подекуди навіть не пояснює, яким цей стан має бути. Це так не працює, що теж можна легко перевірити по відповідях, які він отримує. Порівняйте із, скажімо, https://replace.org.ua/topic/10252/

Подякували: leofun01, wander, ReAl3

10

Re: Черга С ++

Ну просто на більшість питань Ви відповідаєте так наче Вам щось погане зробили не в залежності хто його задавав. І м'яко кажучи таким чином Ви хочете показати свою зверхність і що Ви розумний. Проте, це не викликає нічого крім спротиву (психологія - насилля породжує сротив). Ну я вам сказав а ви як хочете я повторювати  не буду.   Ви на форумі, водночас, найкращий програміст з усіх, бо по-перше, c++ є накращою та найскоаднішою мовою програмування, а по-друге по Вашим повідомленням видно Ваш високий рівень. Але це не означає, що Ви стали таким одразу і я не вірю в те, що Ви завжди вчилися навідмінно, не списували і так далі і тому подібне. А тому постарайтеся будь-ласка відповідати так, щоб в відповіді був хоч один шматок коду. Я обіцяю, що в моїх подальших відповідях буде хоч шматок коду.

11 Востаннє редагувалося wander (09.04.2019 10:46:32)

Re: Черга С ++

uaLoper написав:

Ну просто на більшість питань Ви відповідаєте так наче Вам щось погане зробили не в залежності хто його задавав.

Впевнений, якби питання хоча б було корректо задано, цього б не було.
Людина не може сформулювати питання (http://xyproblem.info/), що тут вже говорити про написання коду?
Тим більше, ніхто нікому нічого не винен.

uaLoper написав:

І м'яко кажучи таким чином Ви хочете показати свою зверхність і що Ви розумний.

Яка зверхність, тут звичайний заклик до адекватності.
Решта вашого повідомлення така ж вода.

Більше дивує те, що вас зачіпають слова koala, і замість того, щоб оффтопити взяли б та допомогли ТСу.

12

Re: Черга С ++

uaLoper написав:

Ну просто на більшість питань Ви відповідаєте так наче Вам щось погане зробили не в залежності хто його задавав. І м'яко кажучи таким чином Ви хочете показати свою зверхність і що Ви розумний. Проте, це не викликає нічого крім спротиву (психологія - насилля породжує сротив). Ну я вам сказав а ви як хочете я повторювати  не буду.   Ви на форумі, водночас, найкращий програміст з усіх, бо по-перше, c++ є накращою та найскоаднішою мовою програмування, а по-друге по Вашим повідомленням видно Ваш високий рівень. Але це не означає, що Ви стали таким одразу і я не вірю в те, що Ви завжди вчилися навідмінно, не списували і так далі і тому подібне. А тому постарайтеся будь-ласка відповідати так, щоб в відповіді був хоч один шматок коду. Я обіцяю, що в моїх подальших відповідях буде хоч шматок коду.

Прихований текст

так пан koala і є розумний, в будь-якому випадку значно розумніший за вас, і причиною цьому є як життєвий досвід, так і час витрачений на вивчення певних наук. І ваша думка про "хочете показати свою зверхність" обумовлена лише вашою високою самооцінкою, котра була натуральним чином занижена, коли біля мізерного карлика, котрий уособлює собою ваші знання та досвід, поставили гіганта.
Тому, якщо не хочете, аби надалі ваша срака горіла-палала - не корчте з себе того, ким ви не є, більше мовчіть, та більше слухайте розумних людей, і пишіть щось лише тоді, коли подумали над цим кілька разів. Бо у вас явно проблеми з порядком виклику функцій  "думай" та "говори".

13 Востаннє редагувалося koala (09.04.2019 14:17:46)

Re: Черга С ++

Я реально в шоці
Тут чи то Голохвастов, чи то Ньютон такий вимальовується...

14

Re: Черга С ++

uaLoper написав:

Проте, це не викликає нічого крім спротиву (психологія - насилля породжує сротив).

Саме так. Криво поставлене запитання від людини, яка чекає, поки зроблять за неї і навіть не сильно намагається зробити звоє запитання зрозумілішим — це насилля над моїм світоглядом. Насилля породжує спротив™ і я щонайменше на такі запитання не відповідаю, можу відреагувати і як koala. Якщо ж я бачу, що людина дійсно хоче розібратися-дізнатися, я можу витратити на докладну відповідь доволі багато часу. Як приклад можете подивитися тут.

uaLoper написав:

Але це не означає, що Ви стали таким одразу і я не вірю в те, що Ви завжди вчилися навідмінно, не списували і так далі і тому подібне.

Не поширюйте свій власний досвід на інших людей.
І не робіть логічні хиби. З «не стали таким одразу» аж ніяк не випливає «списували і так далі і тому подібне».
Навпаки, якщо на кожному кроці не «списували і так далі і тому подібне», то кроки до «стали таким» швидші і впевненіші.