Aplikacja Hotel i błędy w liście/funkcji....

0

Witam, od dłuższego czasu siedzę i piszę mały programik sam dla siebie z czystej ciekawości i dla potrenowania. Patrzyłem na różne strony i dalej nie mogę dojść do wniosku o co chodzi, ponieważ mam liczne błędy, a nie potrafię sobie z nimi poradzić (patrz załącznik).
Oczywiście program nie jest dokończony ponieważ brakuje jeszcze kilku rzeczy z którymi uporam się w późniejszym czasie jak uda mi się dokończyć to co już mam.
Gdzie leży problem ? Co zrobiłem nie tak ?

 #include <iostream>
#include <string>
#include <cstdlib>
#include <windows.h>
#include <conio.h>
using namespace std;

struct pokojeigoscie
{
    string imie;
    string nazwisko;
    int nrpokoju;
    string data;
    int PESEL;

    pokojeigoscie *nastepna;
    pokojeigoscie();
};

pokojeigoscie::pokojeigoscie()
{
    nastepna=0;
}

struct lista
{
    pokojeigoscie *pierwsza;
    void dodaj_rezerwacje (string imie, string nazwisko, int nrpokoju,string data,int PESEL);
    void usun_rezerwacje (int nr);
    void wyswietl_liste();
    lista();
};

lista::lista()
{
    pierwsza = 0;
}


void lista::dodaj_rezerwacje(string imie, string nazwisko, int nrpokoju, string data,int PESEL)
{
    pokojeigoscie *nowa= new pokojeigoscie;

    nowa->imie=imie;
    nowa->nazwisko=nazwisko;
    nowa->PESEL=PESEL;
    nowa->nrpokoju=nrpokoju;
    nowa->data=data;

       if (pierwsza==0)
       {
           pierwsza = nowa;
       }
       else
       {
           pokojeigoscie *temp = pierwsza;

           while (temp->nastepna)
           {
               temp= temp->nastepna;
           }

           temp->nastepna = nowa;
           nowa ->nastepna= 0;
       }
}

void lista::wyswietl_liste()
{

    pokojeigoscie *temp= pierwsza;

    while (temp)
    {
        cout<< "Imie:"<<temp->imie<< " Nazwisko: "<<temp->nazwisko<< "PESEL:"<<temp->PESEL << " Numer Pokoju: "<<temp->nrpokoju<< "Data zakonczenia pobytu: "<<temp->data<<endl;
        temp=temp->nastepna;
    }
}

void lista::usun_rezerwacje(int nr)
{
    if (nr==1)
    {
        pokojeigoscie *temp= pierwsza;
        pierwsza= temp-> nastepna;
    }
    if (nr >=2)
    {
        int j=1;
        pokojeigoscie *temp=pierwsza;

        while (temp)
        {
            if ((j+1)==nr) break;

            else
            {
                temp=temp->nastepna;
            }
        }

        if (temp->nastepna->nastepna==0)
        {
            temp->nastepna=0;
        }
        else
        {
         temp->nastepna= temp->nastepna->nastepna;
        }

    }
}



bool logowanie()
{
    string a,b;
   cout<<"Login:";
   cin>>a;
   cout<<"Haslo:";
   cin>>b;
   cout<<endl;

   if ((a=="Admin")&&(b=="Admin"))
    return 1;
   else return 0;

}


int main()
{
    poczatek:
    cout<<"          ***Aplikacja do zarzadzania goscmi i pokojami w hotelu***   "<<endl;

    if (logowanie())
    {
        menu:
            int w;
        cout<< "1. Wyswietl liste gosci i pokoi";
        cout<< "2. Dodaj rezerwacje ";
        cout<< "3. Usun rezerwacje";
        cout<<"Wybieram:"; cin>>w;
        switch(w)
        {
        case 1:
            {
                cout<<"W kazdym pokoju dostepny jest TV oraz radio";
                cout<<"Pokoj nr.1: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.2: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.3: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.4: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.5: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.6: Pokoj dwuosobowy z podwójnym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.7: Pokoj dwuosobowy z podwójnym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.8: Pokoj dwuosobowy z dwoma osobnymi lozkami i jedna lazienka";
                cout<<"Pokoj nr.10: Pokoj dwuosobowy z dwoma osobnymi lozkami i jedna lazienka";
                cout<<"Pokoj nr.11: Pokoj trzyosobowy z jendym podwójnym lozkiem, jednym pojednyczym i jedna lazienka";
                cout<<"Pokoj nr.12: Pokoj trzyosobowy z jendym podwójnym lozkiem, jednym pojednyczym i jedna lazienka";
                cout<<"Pokoj nr.13: Pokoj trzyosobowy z jendym podwójnym lozkiem, jednymloojednyczym i jedna lazienka";
                cout<<"Pokoj nr.14: Pokoj trzyosobowy z 3x pojedyncze lozko i jedna lazienka";
                cout<<"Pokoj nr.15: Pokoj trzyosobowy z 3x pojedyncze lozko i jedna lazienka";
                cout<<"Pokoj nr.16: Pokoj czterosobowy z dwoma podwojnymi lozkami i dwiema lazienkami";
                cout<<"Pokoj nr.17: Pokoj czterosobowy z jednym podwojnym lozkiem, 2x pojedyncze lozko i dwiema lazienkami";
                cout<<"Apartament**** 3x sypialnia goscinna, sypialnia, salon, jacuzzi, 3x lazienka, bar";
                cout<<"Apartament***** 4x sypialnia goscinna, 2x sypialnia, salon, jacuzzi, 4x lazienka, bar, all inclusive";

                cout<<endl;
                cout<<endl;
                cout<<endl;
                cout<<endl;


                    lista::wyswietl_liste()




                cout<<endl;
                cout<<endl;
                cout<<endl;

                cout<<"Jesli chcesz wyjsc do menu glownego wcisnij ESC :";
                if( getch() != 27 ) goto menu;



                break;
            }
        case 2:
            {
                dodaj:
                string i,n,d,num,p;
                cout<<"Podaj imie:"; cin>>i;
                cout<<"Podaj nazwisko:"; cin>>n;
                cout<<"Podaj PESEl:"; cin>>p;
                cout<<"Podaj numer pokoju:"; cin>>num;
                cout<<"Podaj date zakonczenia pobytu (dd.mm.rrrr):"; cin>>d;
                lista::dodaj_rezerwacje(i,n,num,d,p);

                cout<<"Jesli chcesz wyjsc do menu glownego wcisnij ESC lub jesli chcesz dodac kolejnego klienta wisnij * :";
                if( getch() != 27 ) goto menu;
                if( getch() != * ) goto dodaj;


                break;
            }


        }











    }
    else
    {
        system("cls");
        cout<<"Bledne dane!"<<endl;
        Sleep(1500);
        system("cls");
        goto poczatek;
    }


    return 0;
}

screenshot-20170127121731.png

1

sprawdz teraz

#include <iostream>
#include <string>
#include <cstdlib>
#include <windows.h>
#include <conio.h>
using namespace std;
 
struct pokojeigoscie
{
    string imie;
    string nazwisko;
    int nrpokoju;
    string data;
    int PESEL;
 
    pokojeigoscie *nastepna;
    pokojeigoscie();
};
 
pokojeigoscie::pokojeigoscie()
{
    nastepna=0;
}
 
struct lista
{      
       
    pokojeigoscie *pierwsza;
    void dodaj_rezerwacje (string imie, string nazwisko, int nrpokoju,string data,int PESEL);
    void usun_rezerwacje (int nr);
    void wyswietl_liste();
    lista();
};
 
lista::lista()
{
    pierwsza = 0;
}
 
void lista::dodaj_rezerwacje(string imie, string nazwisko, int nrpokoju, string data,int PESEL)
{
    pokojeigoscie *nowa= new pokojeigoscie;
 
    nowa->imie=imie;
    nowa->nazwisko=nazwisko;
    nowa->PESEL=PESEL;
    nowa->nrpokoju=nrpokoju;
    nowa->data=data;
 
       if (pierwsza==0)
       {
           pierwsza = nowa;
       }
       else
       {
           pokojeigoscie *temp = pierwsza;
 
           while (temp->nastepna)
           {
               temp= temp->nastepna;
           }
 
           temp->nastepna = nowa;
           nowa ->nastepna= 0;
       }
}
 
void lista::wyswietl_liste()
{
 
    pokojeigoscie *temp= pierwsza;
 
    while (temp)
    {
        cout<< "Imie:"<<temp->imie<< " Nazwisko: "<<temp->nazwisko<< "PESEL:"<<temp->PESEL << " Numer Pokoju: "<<temp->nrpokoju<< "Data zakonczenia pobytu: "<<temp->data<<endl;
        temp=temp->nastepna;
    }
}
 
void lista::usun_rezerwacje(int nr)
{
    if (nr==1)
    {
        pokojeigoscie *temp= pierwsza;
        pierwsza= temp-> nastepna;
    }
    if (nr >=2)
    {
        int j=1;
        pokojeigoscie *temp=pierwsza;
 
        while (temp)
        {
            if ((j+1)==nr) break;
 
            else
            {
                temp=temp->nastepna;
            }
        }
 
        if (temp->nastepna->nastepna==0)
        {
            temp->nastepna=0;
        }
        else
        {
         temp->nastepna= temp->nastepna->nastepna;
        }
 
    }
}
 
bool logowanie()
{
    string a,b;
   cout<<"Login:";
   cin>>a;
   cout<<"Haslo:";
   cin>>b;
   cout<<endl;
 
   if ((a=="Admin")&&(b=="Admin"))
    return 1;
   else return 0;
 
}
 
int main()
{
    poczatek:
    cout<<"          ***Aplikacja do zarzadzania goscmi i pokojami w hotelu***   "<<endl;
 
    if (logowanie())
    {
        menu:
            int w;
        cout<< "1. Wyswietl liste gosci i pokoi";
        cout<< "2. Dodaj rezerwacje ";
        cout<< "3. Usun rezerwacje";
        cout<<"Wybieram:"; cin>>w;
        switch(w)
        {
        case 1:
            {
                cout<<"W kazdym pokoju dostepny jest TV oraz radio";
                cout<<"Pokoj nr.1: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.2: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.3: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.4: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.5: Pokoj jednoosobowy z pojedynczym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.6: Pokoj dwuosobowy z podwójnym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.7: Pokoj dwuosobowy z podwójnym lozkiem i jedna lazienka";
                cout<<"Pokoj nr.8: Pokoj dwuosobowy z dwoma osobnymi lozkami i jedna lazienka";
                cout<<"Pokoj nr.10: Pokoj dwuosobowy z dwoma osobnymi lozkami i jedna lazienka";
                cout<<"Pokoj nr.11: Pokoj trzyosobowy z jendym podwójnym lozkiem, jednym pojednyczym i jedna lazienka";
                cout<<"Pokoj nr.12: Pokoj trzyosobowy z jendym podwójnym lozkiem, jednym pojednyczym i jedna lazienka";
                cout<<"Pokoj nr.13: Pokoj trzyosobowy z jendym podwójnym lozkiem, jednymloojednyczym i jedna lazienka";
                cout<<"Pokoj nr.14: Pokoj trzyosobowy z 3x pojedyncze lozko i jedna lazienka";
                cout<<"Pokoj nr.15: Pokoj trzyosobowy z 3x pojedyncze lozko i jedna lazienka";
                cout<<"Pokoj nr.16: Pokoj czterosobowy z dwoma podwojnymi lozkami i dwiema lazienkami";
                cout<<"Pokoj nr.17: Pokoj czterosobowy z jednym podwojnym lozkiem, 2x pojedyncze lozko i dwiema lazienkami";
                cout<<"Apartament**** 3x sypialnia goscinna, sypialnia, salon, jacuzzi, 3x lazienka, bar";
                cout<<"Apartament***** 4x sypialnia goscinna, 2x sypialnia, salon, jacuzzi, 4x lazienka, bar, all inclusive";
 
                cout<<endl;
                cout<<endl;
                cout<<endl;
                cout<<endl;
                    lista lista_object;
                    lista_object.lista::wyswietl_liste();
 
                cout<<endl;
                cout<<endl;
                cout<<endl;
 
                cout<<"Jesli chcesz wyjsc do menu glownego wcisnij ESC :";
                if( getch() != 27 ) goto menu;
 
                break;
            }
        case 2:
            {
                dodaj:
                string i,n,d;
                int num,p;
                cout<<"Podaj imie:"; cin>>i;
                cout<<"Podaj nazwisko:"; cin>>n;
                cout<<"Podaj PESEl:"; cin>>p;
                cout<<"Podaj numer pokoju:"; cin>>num;
                cout<<"Podaj date zakonczenia pobytu (dd.mm.rrrr):"; cin>>d;
                lista object_lista;
                object_lista.lista::dodaj_rezerwacje(i,n,num,d,p);
 
                cout<<"Jesli chcesz wyjsc do menu glownego wcisnij ESC lub jesli chcesz dodac kolejnego klienta wisnij * :";
                if( getch() != 27 ) goto menu;
                if( getch() != '*' ) goto dodaj;
 
                break;
            }
 
        }
 
    }
    else
    {
        system("cls");
        cout<<"Bledne dane!"<<endl;
        Sleep(1500);
        system("cls");
        goto poczatek;
    }
 
    return 0;
}

1

numer pokoju i pesel były zadeklarowane jako string
poza tym było odwołanie do funkcji "wyswietl_liste" i "dodaj_rezerwacje" bez obiektu
ostatnia rzecz - if( getch() != '*' ) goto dodaj; <-- tu był brak apostrofu

0

Dziękuję, już działa, jeśli będę mieć jeszcze jakiś problem to się zgłoszę ! Pozdrawiam !

0

Nie ma problemu

0

Właśnie mam już problem... wchodzę do opcji nr. 2 i dodaje kilka osób, a później cofam się do menu i wybieram wyświetl listę ale nic nie pokazuje się oprócz listy pokoi

0

Pomoże ktoś ? ;/ Dlaczego nie zapisuje ani nie wyświetla info z listy ? ;/

1 użytkowników online, w tym zalogowanych: 0, gości: 1