Очередь в С++)) помогите исправить
реализовать список в виде очереди. Элементы списка - предмет, оценка, полученная студентом по этому предмету, его фамилия.
ниже у меня есть код, где реализован список в виде стека, мне нужно переделать в очередь.
пишу в Microsoft Visual Studio 2008
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
struct data
{[INDENT]char name[10];
char predmet[10];
int ocenka;[/INDENT]
};
class ochered
{ [INDENT]data *ocher;
public:
int ini ( void )
{ [INDENT]int size;
cout<<"Vvedite razmer novoi ocheredi\n ";
cin>>size;
ocher = new data [size];
return size;[/INDENT] }
//Проверка заполнения очереди
void prov ( int top, int size )
{ [INDENT]if( top == size-1 )
{ [INDENT]cout<<"Ostalsa odin element do zapolneniya ocheredi \n";
getch ();[/INDENT] }[/INDENT] }
//Добавление элемента в конец очереди
int add ( int top, int size )
{ [INDENT]prov ( top, size ) ;
cout<<"Imya stedenta - ";
cin>>ocher[top].name;
cout<<"Predmet - ";
cin>>ocher[top].predmet;
cout<<"Ocenka studenta - ";
cin>>ocher[top].ocenka;
top++;
return top; [/INDENT] }
//Удаление элемента в начале очереди
int dellete (int top)
{ [INDENT]top--;
return top;[/INDENT] }
//Вывод очереди на экран
void out ( int top )
{ [INDENT]int i;
for( i=0; i<=top-1; i++ )
{
[INDENT]cout<<ocher.name<<"\t";
cout<<ocher.predmet<<"\t";
cout<<ocher.ocenka<<"\n";[/INDENT] }[/INDENT] }[/INDENT]};
int main()
{ [INDENT]system("cls");
ochered a;
int n, size, top;
top=0;
n = 0;
size=a.ini();
while(n!=4)
{[INDENT]system("cls");
cout<<"Menu\n";
cout<<"1- Dobavit elementi v ochered\n";
cout<<"2- Udalit 1 element iz ocheredi\n";
cout<<"3- Vivod ocheredi na ekran\n";
cout<<"4- Vihod\n";
cout<<"Vvedite 1, 2, 3, ili 4 ?\n";
cin>>n;
switch (n)
{ [INDENT]case 1:
top=a.add ( top, size );
cout<<"Element dobavlen\n";
getch();
break;
case 2:
top=a.dellete(top);
cout<<"Element udalen\n";
getch();
break;
case 3:
a.out( top );
cout<<"Vse elementi vivedeni\n";
getch ();
break;[/INDENT] }[/INDENT] }[/INDENT] getch();
return 0;
}
реализовать список в виде очереди. Элементы списка - предмет, оценка, полученная студентом по этому предмету, его фамилия.
ниже у меня есть код, где реализован список в виде стека, мне нужно переделать в очередь.
пишу в Microsoft Visual Studio 2008
читать невозможно, привиди код в божеский вид!=\=) и как то определись что тебе надо, реализовать список в виде очереди(для меня это нонсенс), или очередь через список! и в твоем коде, на сколько мне позволил разобрать твой "стиль" я стека вообще ни где не увидел, ни стека, ни списка, вот динамический массив увидел который как бы имитирует стек, но вот список, боже упаси!=))))))
Почитай хотя бы вот это.
Или http://thalion.kiev.ua/attachment.php?id=16
И советую не изобретать велосипед (если, конечно, изобретение этого велосипеда не является целью, скажем, контрольной по программированию), а разобраться с std::list или std::queue (что больше подойдёт -- решай сам).
спэшл фор ю (почитаешь про очереди).
Добавлено:
Извиняюсь, код не разобрал (отступов нету, трудно закрывающие скобки ловить), посему весь мой вышеприведённый наезд про методы класса. А они просто в описании класса сразу и реализованы. Вывод: приведи в порядок код!
struct data
{
char name[10];
char predmet[10];
int ocenka;
};
deque<data> ddata;
//....
data data1;
for(int i = 0;i<5;i++)
{
data1.ocenka = i;
ddata.push_back(data1);
}
//...
for(int=0;i<ddata.size();i++)
{
cout << ddata.ocenka << endl;
}
Ну вот! Мы тут так весело над новичком стебались, как вдруг пришёл iridum и всё испортил!
Я тож люблю постебаться :) в данном случает на д вами :p, и вообще я показал как правильно код оформлять
ОФФ: Мстишь за http://forum.codenet.ru/showthread.php?t=55355 ? :D
Я тож люблю постебаться :) в данном случает над вами :p, и вообще я показал как правильно код оформлять
над бедным новичком постебется препод, когда он принесет ему лабу с STL'ой очередью!!!=)))) iridum - красавчег!=)))
Если препод прошарит в чём подвох :D, я в вузе когда учился, и принёс преподу лабу на плюсах, он у меня спрашивал что какой оператор значит:), это при том что у нас был хороший вуз с преподами совковой закалки, щас такое образование много в каких вузах что капец....
ps. Знаю етсь вузы где Haskell учат, вот зайдёт такой, над ним не постебаешься(( Надо Haskell учить :))
ps. Знаю етсь вузы где Haskell учат, вот зайдёт такой, над ним не постебаешься(( Надо Haskell учить :))
всякое бывает, я девченке лабу писал, сдавала, выходит ржет, я спрашиваю "чего стряслось", она - "не поверишь, препод сказал, что принимает, но что бы в следующий раз так сложно не писала, типа он въехать не может"!=) лаба при чем была, что то типа структура + сортировки + чтение\запись в файл!=)
int dellete (int top)
{[INDENT]top--;
return top;[/INDENT]}
эта часть кода удаляет последний элемент, что характерно для стека, а мне надо, что бы он удалял первый и смещал вверх..... если я не сдам завтра эту и еще с двусвязным списком лабы, мне будет ОООПААА(((
Большая работа. Вы предлагаете за вас её сделать, да ещё и в оперативном порядке? Хоть бы приз какой-нить посулили...
{
[INDENT]for (int i=0; i<top; i++)
[INDENT]ocher=ocher[i+1];[/INDENT]
[/INDENT] top--;
return top;
}
всем спасибо!!
всем спасибо!!
Ну вот видишь и сам зделал, большой нигерский respect!!!, учи STL ато смотреть как хватают звёзды с неба профы програмя на С++ в манере обычного С не особо приятно, хотя каждому своё