Dzień dobry wszystkim. Mam mały problem ze swoim programem. Otóż mój program, który odzwierciedla automat do gier wywala mi cały czas błąd przy listach: " "Lista" has been not declared " (Lista to nazwa struktury). Ogólnie listy robię po to aby tworzyc i wczytywać ranking graczy. O to kod:
Oto funkcje odpowiedzialne za ranking w pliku implementacji:
void wczytaj(Lista *&g)
{
string linia;
ifstream plik("baza.txt");
if(!plik.good())
{
g=0;
cout<<"blad pliku"<<endl;
return;
}
Lista *a=0;
while(!plik.eof())
{
int wynik;
string imie;
getline(plik,linia);
wynik=atoi(linia.c_str());
getline(plik,imie);
if(g==0)
{
dodaj(g,wynik,imie);
a=g;
}
else
{
dodaj(a->next,wynik,imie);
a=a->next;
}
}
plik.close();
}
void dodaj(Lista *&g,int wynik,string imie)
{
Lista *p=g;
g=new Lista;
g->punkty=wynik;
g->imie=imie;
g->next=p;
}
void dodaj_gracza(Lista *g,int wynik, string imie)
{
while(g->next)
{
g=g->next;
}
dodaj(g->next,wynik,imie);
}
void zapisz_liste(Lista *g)
{
ofstream plik("baza.txt");
if(!plik.good())
{
cout<<"blad pliku"<<endl;
return;
}
do
{
plik<<g->punkty<<endl;
plik<<g->imie<<endl;
g=g->next;
}
while(g->next);
plik<<g->punkty<<endl;
plik<<g->imie<<endl;
plik.close();
}
void wyswietl_liste(Lista *g)
{
int a=1;
while(g!=0)
{
cout<<a<<". Imie gracza:"<<g->imie<<" "<<"Zetony: "<<g->punkty<<endl;
g=g->next;
a++;
}
}
void usun_liste(Lista *&g)
{
while(g)
{
Lista *pom=g;
g=g->next;
delete pom;
}
}
Oto plik nagłówkowy:
#ifndef OPERACJE_H
#define OPERACJE_H
#include"interfejs.h"
#include<string>
using namespace std;
struct Lista
{
string imie;
int punkty;
Lista *next;
};
struct Rolka
{
int Wylosowana;
int RolkaID;
};
int dodawanie(int zetony_posiadane, int wygrane_zetony, int postawione_zetony);
int odejmowanie(int zetony, int postawione_zetony);
void losowanie(Rolka A[]);
int porownanie(Rolka A[]);
int przelicznik(int wartosc, int postawiona_kwota);
void wczytaj(Lista *&g);
void dodaj(Lista *&g,int wynik,string imie);
void dodaj_gracza(Lista *g,int wynik, string imie);
void wyswietl_liste(Lista *g);
void usun_liste(Lista *&g);
#endif // OPERACJE_H
A to jest plik nagłówkowy, modułu w którym wywołuje tworzenie listy:
#ifndef INTERFEJS_H
#define INTERFEJS_H
#include"operacje.h"
using namespace std;
void menu_glowne(int &liczba,int &zeton,Lista *&g);
#endif // INTERFEJS_H