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

Динамические структуры данных: очередь - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дан указатель P1 на вершину непустого стека. Извлечь из стека первый (верхний) элемент и вывести его значение http://www.cyberforum.ru/cpp-beginners/thread1209043.html
Дан указатель P1 на вершину непустого стека. Извлечь из стека первый (верхний) элемент и вывести его значение D и адрес P2 новой вершины. Ес- ли после извлечения элемента стек окажется пустым, то положить P2 = nil. После извлечения элемента из стека освободить память, занимаемую этим элементом
C++ Стек на основе массива (Pascal -> Си++) Здравствуйте! Язык pascal не знаю совсем! Пробовал сам переводить - получилось не очень. Может у кого-нибудь найдется немного времени ? unit Stack_Static; interface type NameStr=string; Procedure Push_S(Name:NameStr; Mark:integer); http://www.cyberforum.ru/cpp-beginners/thread1209038.html
C++ Заменить каждую серию, длина которой больше k, на один наименьший элемент массива
3. Дан массив, состоящий из n элементов. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии – количество этих элементов (длина серии больше 1). Заменить каждую серию, длина которой больше k, на один наименьший элемент массива. Если таких серий нет, то массив оставить без изменений. #include <cstdio> char name = "d:\\data\\serii.txt"; char fname2 =...
C++ Узнать, что программа вылетала с необработанным исключением
Как это сделать? Она все еще висит в процессах, и простым их мониторнгом не отделаться
C++ Не получается скомпилировать файл http://www.cyberforum.ru/cpp-beginners/thread1209024.html
Здравствуйте, я только начинаю разбираться с С++ и написав пару "приветмиров" и решил попробовать выводить инфу не через cout, а через псевдографический интерфейс. Нашёл в гугле библиотеку ncurses. Сделал вот такой маленький файлик main.cpp #include <iostream> #include <ncurses.h> using namespace std; int main(int argc, char *argv) { initscr(); /* Start curses mode ...
C++ Не записывает в файл? Не записывает результат преобразования в файл, пожалуйста помогите! #include <stdio.h>//Подключение библиотеки стандартного ввода-вывода; #include <conio.h>//Подключение библиотеки консольного ввода-вывода; #include <iostream>//Подключение библиотеки потокового ввода-вывода; #include <locale.h>// Подключение библиотеки локализации #include <fstream>//Подключение библиотеки работы с... подробнее

Показать сообщение отдельно
arion007
Сообщений: n/a
15.06.2014, 22:54     Динамические структуры данных: очередь
Всем доброго времени суток)
Задание:
Создать динамическую структуру согласно варианту. В программе должны быть предусмотрены следующие функции:
- Добавить элемент;
- Удалить элемент;
- Просмотр;
- Решение;
- Очистка.
Очередь
Мобильные телефоны: название модели (первое слово в названии - фирма-изготовитель) и цена
Сделать скидку 5 % на телефоны фирмы Nokia
Вопрос:
Как мне сделать так что бы я нашел в этом списке телефоны Nokia ?
что бы сделать с ними операцию из задания
(Сделать скидку 5 % на телефоны фирмы Nokia)
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
char model[25];
char model_sr[25];
int price; 
int max_h = 0;
int g = 0;
const int N = 1000; //размер очереди
struct Queue
{
    int data[N];    //массив данных
    int last;       //указатель на начало
};
void Creation(Queue *Q)
{
    Q->last = 0;
}
//проверка очереди на пустоту
bool Full(Queue *Q) 
{
    if (Q->last == 0) 
    return true;
    else return false;
}
 
// 1) Добавление элемента
void Add(Queue *Q) 
{
    if (Q->last == N)
    {
        cout << "\nОчередь заполнена\n\n"; 
        return;
    }
    cout << "\nМодель: > "; 
    cin >> model[25];
    cout << "\nЦена: > "; 
    cin >> price;
 
    Q->data[Q->last++] = price, model[25];
    cout << endl << "Элемент добавлен в очередь\n\n";
}
 
// 2) удаление элемента
void Delete(Queue *Q) 
{
    for (int i = 0; i < Q->last && i < N; i++) //смещение элементов
    {
        Q->data[i] = Q->data[i + 1];
        Q->last--;
    }
}
 
// 3) (просмотр) - вывод всех элементов очереди
int Top(Queue *Q) 
{
    return Q->data[g];
}
 
// 4) размер очереди
int Size(Queue *Q)  
{
    return Q->last;
}
 
/*
// 5) скидка 5 % на телефоны
int discount(Queue *Q)
{
    
}
*/
 
//----------------------------------------------------------------------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "RUS");
    Queue Q;
    Creation(&Q);
    char number;
    do
{
    cout << "Выберите нужную вам команду:" << endl;
    cout << "1. Добавить элемент" << endl;
    cout << "2. Удалить элемент" << endl;
    cout << "3. Просмотр" << endl;
    cout << "4. Размер очереди" << endl;
    cout << "5. Сделать скидку 5 % на телефоны определённой фирмы" << endl;
    cout << "0. Выход\n\n";
    cout << "Номер команды: "; 
    cin >> number;
    switch (number)
    {
        case '1':
            Add(&Q);
            system("pause");
            system("cls");
            break;
        case '2':
            if (Full(&Q)) 
                cout << endl << "Очередь пуста\n\n";
            else
            {
                Delete(&Q);
                cout << endl << "Элемент удалён из очереди\n\n";
                system("pause");
                system("cls");
            }
            break;
        case '3':
            if (Full(&Q)) 
                    cout << endl << "Очередь пуста\n\n";
            else for (int q = 0; q < Size(&Q); q++) 
            {
                cout << "\nЭлемент в очереди № [" << q << "]=" << Top(&Q);
                g++;
            }
            cout << endl;
            system("pause");
            system("cls");
            break;
        case '4':
            if (Full(&Q)) 
                cout << endl << "Очередь пуста\n\n";
            else cout << "\nРазмер очереди: " << Size(&Q) << "\n\n";
            system("pause");
            system("cls");
            break;
        case '5':
            system("cls");
            cout << "На какую модель сделать скидку в 5% ?";
            cin >> model_sr;
        discount(&Q);
    cout << "скидка 5 % на телефоны фирмы " << endl << "Модель:" << model_sr << endl << "Цена: " << max_h;
                cout << endl << endl;
                break;
            case '0':
                break;
            default: cout << endl << "Команда не верна!\n\n";
                break;
        }
    } 
    while (number != '0');
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru