• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z listami, jednoręki bandyta

0 głosów
166 wizyt
pytanie zadane 22 kwietnia 2017 w C i C++ przez Mechatron96 Nowicjusz (220 p.)

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

 

1 odpowiedź

+1 głos
odpowiedź 22 kwietnia 2017 przez Dexterim Dyskutant (8,370 p.)
Do pliku z definicjami funkcji dopisz #include<operacje.h>

Podobne pytania

0 głosów
2 odpowiedzi 367 wizyt
pytanie zadane 22 maja 2017 w C i C++ przez Mechatron96 Nowicjusz (220 p.)
+2 głosów
2 odpowiedzi 633 wizyt
0 głosów
0 odpowiedzi 394 wizyt
pytanie zadane 19 grudnia 2016 w C i C++ przez mzcmc Użytkownik (620 p.)

93,424 zapytań

142,420 odpowiedzi

322,637 komentarzy

62,782 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...