[c++] implementacja metod kolejki FIFO
Ostatnio zmodyfikowano 2015-01-23 19:28
Wooojtas Temat założony przez niniejszego użytkownika |
[c++] implementacja metod kolejki FIFO » 2015-01-23 19:28:35 Witam, pisze projekt zaliczeniowy z kolejki FIFO i napotkałem problem w metodzie do usuwania elementu który jest na pierwszym miejscu w kolejce. Czy mógłby mi ktoś powiedzieć co jest nie tak z tą częścią kodu? Program się kompiluje, ale metoda kol.wydawanie niczego nie usuwa. Drugim problemem jest wyświetlanie pierwszego elementu kolejki. Metoda działa ale zwraca tylko ostatni atrybut klasy(int cena) Będę wdzięczny za każdą pomoc! kolejka.h #include <iostream> #include <cstdio> #include "PelnaException.h" #pragma once #define pojemnosc 4
using namespace std;
template < class T > class kolejka { public: kolejka( int = pojemnosc ); ~kolejka(); void dodawanie( T ); T wydawanie( T & ); T front(); void oproznij(); bool pusta(); bool pelna(); private: int rozmiar; T * values; int poczatek; int koniec; int pozycja; };
template < class T > kolejka < T >::kolejka( int x ) { rozmiar = x; values = new T[ rozmiar ]; poczatek = 0; koniec = 0; pozycja = 0; }
template < class T > bool kolejka < T >::pusta() { if( koniec == poczatek ) return 1; else return 0; }
template < class T > bool kolejka < T >::pelna() { if(( koniec + 1 ) % rozmiar == poczatek ) return 1; else return 0; }
template < class T > void kolejka < T >::dodawanie( const T a ) { if( !kolejka < T >::pelna() ) { koniec =(( koniec + 1 ) % rozmiar ); values[ koniec ] = a; } else throw new PelnaException(); }
template < class T > T kolejka < T >::wydawanie( T & val ) { if( kolejka < T >::pusta() ) { cout << "kolejka pusta" << endl; } else { val = values[ poczatek ]; poczatek =(( poczatek + 1 ) % rozmiar ); } return val; }
template < class T > void kolejka < T >::oproznij() { poczatek = koniec = rozmiar - 1; }
template < class T > T kolejka < T >::front() { return values[ poczatek ]; }
template < class T > kolejka < T >::~kolejka() { delete[] values; }
definicja klasy: class Lanczyk : public Mjensko { private: string Zupa; int CenaLanczu; public: Lanczyk(); Lanczyk( string mieso, string dodatek, int kal, string zupka, int cena ); ~Lanczyk(); void setZupa( string zupka ); void setCenaLanczu( int cena ); string getZupa(); int getCenaLanczu(); friend bool operator <( const Lanczyk & cena1, const Lanczyk & cena2 ); friend ostream & operator <<( ostream & output, const Lanczyk & D ); void DrukujLanczyk(); }; main: #include <iostream> #include <string> #include <conio.h> #include <fstream> #include <queue> #include "mjensko.h" #include "lanczyk.h" #include "kolejka.h" #include "PelnaException.h"
using namespace std;
int main() { Lanczyk A( "eskalopki", "frytki", 1200, "cebulowa", 25 ); Lanczyk B( "gicz", "ziemniaczki", 1500, "cebulowa", 21 ); kolejka < Lanczyk > kol; kol.dodawanie( B ); kol.dodawanie( A ); cout << kol.front() << endl; kol.wydawanie(); }; |
|
« 1 » |