Dobrý den,
byl mi zadán projekt, simulace obchodu. Jedná se o dynamické pole front(struktur), kde členy jsou struktury. Něco jsem spatlal, respektive začal patlat, ale narazil jsem na pro mně těžko překonatelný problém. V následujícím kódu, ve fci Put(), mi VS vypisuje undeclared identifier pro Head a Tail. Nutno říci, že jsem se dozvěděl co je to fronta a struktura zhruba dva týdny zpátky a nevím moc co a jak, ale než jsem si šel pro čaj, tak to běhalo :D Kdybyste mi někdo poradili, kde by asi mohla být chyba, byl bych velmi vděčný.
#include <iostream>
#include "i2.h"
using namespace std;
void Put(int &ID); //deklarace funkce vlozeni zakaznika do fronty
bool IsEmpty(); //deklarace zkousky plnosti vsech pokladen
void Put(int &ID) //vlozeni noveho zakaznika
{
Zakaznik * newZakaznik = new Zakaznik; //nastaveni pointeru na dalsiho zakaznika
newZakaznik->ID = ID; //nastaveni id noveho zakaznika
newZakaznik->PP = P - (ID%P); //nastaveni poctu polozek
newZakaznik->Next = NULL; //nastaveni ukazatele na NULL
ID--;
if(Head == NULL) //pokud je fronta prazdna
{
Head=newZakaznik; //pak dej do headu novou polozku
Tail=newZakaznik; //a do tailu taky, cimz ma fronta jednoho zakaznika
}
else //pokud ne,
{
Tail->Next=newZakaznik; //tak dej do ukazatele na dalsi polozku novou polozku (???)
Tail = newZakaznik; //a do ocasu primo novou polozku (???)
}
}
bool IsEmpty() //zkouska plnosti
{
int a = 5; //kontrolni promenna
for(int x = 0; x < N ; x++) //for na prochazeni pokladen
{
if(Pokladny[x].Head==NULL) //pokud je head null
if(Pokladny[x].Tail==NULL) //a tail null
a--; //sniz kontrolni promennou
}
return a == 0; //vrat stav pokladen
}
void main (void)
{
cout << "Vitejte v simulaci obchodu." << endl;
cout << "Pocet pokladen: " << N << endl;
cout << "Maximalni pocet polozek v kosiku: " << P << endl;
cout << "Pocet zakazniku: " << M << endl;
int ID = M; //z const int na int
for(int x = 0; x < N ; x++) //for na prochazeni polem pokladen
{
Pokladny[x].Head=NULL; //nacpe do headu pokladny NULL
Pokladny[x].Tail=NULL; //nacpe do tailu pokladny NULL
}
do
{
//vygenwrovat noveho zakaznika s radym ID a vrazit ho do fronty s nejmensim poctem zakazniku
//Put();
//ubrat polozku zakaznikovi v kazde fronte
//Dec();
//zkontrolovat zakazniky a pokud ma nekdo v kosiku nulu, tak vyhodit
//Check(); ve spojeni s Get();
cout << "la";
break;
}
while(IsEmpty()==1);
cout << "Simulace byla uspesne ukoncena. Dosli zakaznici i trpelivost programatora.";
getchar();
}
i2.h:
const int N = 5; //pocet pokladen
const int P = 10; //max pocet polozek v kosiku
const int M = 100; //pocet zakazniku
struct Zakaznik
{
int ID; //cislo zakaznika
int PP; //pocet polozek v kosiku
Zakaznik * Next; //pointer na dalsiho zakaznika
};
struct Pokladna
{
Zakaznik * Head; //head fronty
Zakaznik * Tail; //tail fronty
};
Pokladna * Pokladny = new Pokladna[N-1]; //dynamicke pole pokladen