Форум программистов, компьютерный форум, киберфорум
Наши страницы

Разработать программу, реализующую алгоритм очереди (20 элементов) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести максимальное и минимальное значения http://www.cyberforum.ru/cpp-beginners/thread590849.html
Даны действительные числа X,Y,Z. Вывести максимальное и минимальное число. Есть уже работающая программа, но преподаватель сказал что она сложная и её надо упростить.И должна быть наподобии той что...
C++ сумму элементов в тех строках, которые не содержат отрицательных элементов #include <iostream> #include <fstream> #include <iomanip> using namespace std; void init (int matrix, int size); void init1 (int **matrix1, int size); void zapol ( int matrix, int size) ... http://www.cyberforum.ru/cpp-beginners/thread590843.html
Найти путь к файлу C++
ОБХОД ГРАФА В ШИРИНУ Задание: Требуется найти путь к файлу, указанному в первой строке входного файла. Структура каталогов задана следующим образом. Вершиной является диск С:\. Он содержит...
C++ Подсчитать число вхождений в предложение используемых букв
С клавиатуры вводится предложение, слова в котором разделены символом подчеркивания «_». Подсчитайте число вхождений в предложение используемых букв, запишите результат в строку (парами: буква -...
C++ Задача на строки в тексте http://www.cyberforum.ru/cpp-beginners/thread590818.html
Написать программу, которая считывает с клавиатуры несколько строк текста и печатает таблицу, показывающую, сколько раз в тексте встречаются одинаковые слова.
C++ Программа зависает при загрузке файла Добрый день. Недавно я написал свою первую программу. Возникла проблема, с которой я не могу разобраться. Программа работает нормально, если запускать ее через компилятор. Но при запуске .exe файла... подробнее

Показать сообщение отдельно
Kovrik15
2 / 2 / 0
Регистрация: 24.05.2012
Сообщений: 30

Разработать программу, реализующую алгоритм очереди (20 элементов) - C++

29.05.2012, 22:55. Просмотров 2078. Ответов 10
Метки (Все метки)

Здравствуйте!
Есть такое задание:
Кликните здесь для просмотра всего текста
Разработать программу, реализующую алгоритм очереди (20 элементов). Задача решается в двух вариантах: статическом (на основе массива структур) и динамическом. Реализовать алгоритм кольцевой очереди на основе динамического списка. В качестве элемента очереди выбрать структуру, соответствующую индивидуальному варианту.
Предусмотреть заполнение очереди из файла (подготовить файл на 20 элементов).
Предусмотреть многоуровневое меню:
1) Заполнение очереди
a) с консоли (циклически)
b) из файла (выбор файла, тек. папка, любая папка)
2) Удаление элемента из очереди (циклически)
a) безвозвратно
b) с сохранением в файл
3) Очистка очереди (с выводом удаляемых элементов)
a) безвозвратно
b) с сохранением в файл
4) Вывод элементов, содержащихся в очереди
a) на экран
b) в файл
5) Вывод количества элементов в очереди
6) Сдвиг всех элементов очереди к началу при наличии пустых мест в начале очереди (для статического варианта)
7) Выход
Реализовать алгоритм обработки исключений.

сделал первые 2 пункта, без считывания из файла, но вдруг возник вопрос или правильно делаю...
Обьясните пожалуйста что значит статический и динамический вариант. Как реализовать алгоритм кольцевой очереди на основе динамического списка? это значит вводим элемент очереди, 1-й удаляется, а тот который ввели помещается в конец?

вот код того что получилсь
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
148
149
150
151
152
153
154
155
156
157
#include "stdafx.h"
#include <iostream>
#include <cmath>
using namespace std;
const int n=1;
 
struct tovar
{
    int nomer;
    char naim[10];
    char edizm[10];
    int kolvo;
    int cena;
};
 
 
void vvod(int n,tovar* tov);
//void consol();
void consolVvod(int n,tovar* tov);
void vivodFile(int n,tovar* tov);
void vivodFile();
void vivodEkran(int n,tovar* tov);
//void delElem();
//void clean();
void vyvodElem(int n,tovar* tov);
//void vyvodColich();
//void sdvig();
void FromFile();
void main()
 
{
    setlocale(LC_ALL,"Russian");
 
    tovar* tov=new tovar[n];
    char deistv;
 
 
 
    while (true)
{
    system("cls");      
    cout<<"\n"; 
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  1  |Заполнение очереди:                    |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  2  |Удаление элемента из очереди;          |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  3  |Очистка очереди;                       |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  4  |Вывод элементов содержащихся в очереди;|\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  5  |Вывод количества элементов в очереди;  |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  6  |Сдвиг элементов очереди к началу;      |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"                 |  7  |Выход;                                 |\n";
cout<<"                 |-----|---------------------------------------|\n";
cout<<"\n";
cin>>deistv;
switch(deistv)
    {
    case '1': vvod(n,tov);break;
//  case '2': delElem();break;
//  case '3': clean(); break;
    case '4': vyvodElem(n,tov);break;
//  case '5': vyvodColich();break;
//  case '6': sdvig();break;
    case '7': exit(0);
    }
}
    
}
 
 
void vvod(int n,tovar* tov)
{
    
    char vibor;
    cout<< " 1 - с консоли \n";
    cout<< " 2 - из файла \n" ;
    cin>>vibor;
    switch(vibor)
    {
    case '1': consolVvod(n,tov);break;
    case '2': FromFile();break;
    }
}
 
void consolVvod(int n,tovar* tov)
{
 
    //cout<<"Введите размер массива:" ;cin>>n;
//    tovar* tov=new tovar[n];
    for(int i=0;i<n;i++)
    {
        cout<<"Введите номер: ";cin>>tov[i].nomer;
        cout<<"Введите наименование: ";cin>>tov[i].naim;
        cout<<"Введите единици измерения: ";cin>>tov[i].edizm;
        cout<<"Введите количество: ";cin>>tov[i].kolvo;
        cout<<"Введите цену: ";cin>>tov[i].cena;
        cout<<endl;
    }
}
 
void FromFile()
{   
    
   }
 
void vyvodElem(int n,tovar* tov)
{
 
    char VibViv;
    cout<< "Выберите куда выводить элементы \n";
    cout<< "1 - на экран \n";
    cout<< "2 - в файл \n";
    cin>>VibViv;
    switch(VibViv)
    {
    case '1': vivodEkran(n,tov);break;
    case '2': vivodFile(n,tov);break;
    }
}
void vivodEkran(int n,tovar* tov)
{
    cout<<"Список товара:\n";
    for(int i=0;i<n;i++)
    {
      cout<<"Номер:            |"<<tov[i].nomer<<";\n";
      cout<<"Наименование:     |"<<tov[i].naim<<";\n";
      cout<<"Еденицы измерения:|"<<tov[i].edizm<<";\n";
      cout<<"Количество:       |"<<tov[i].kolvo<<";\n";
      cout<<"Цена:             |"<<tov[i].cena<<";\n";
      cout<<endl;
    }
    system("pause");
}
void vivodFile(int n,tovar* tov)
{
    FILE *f;
 f=fopen("Tovar.txt","w");  
for (int i = 0; i < n; i++)
        {
            fprintf(f,"%i",tov[i].nomer);
            fprintf(f," \n");
            fputs(tov[i].naim,f);
            fprintf(f,"\n ");
            fputs(tov[i].edizm,f);
            fprintf(f,"\n ");
            fprintf(f,"%i",tov[i].kolvo);
            fprintf(f,"\n ");
            fprintf(f,"%i",tov[i].cena);
            fprintf(f,"\n ");
            fprintf(f,"\n ");
        }
fclose(f);
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru