Programowanie obiektowe w C++ – System rezerwacji biletów w kinie cz. II
Gościnie autorem wpisu jest Adam Sawicki.
Zgodnie z obietnicą przystępujemy do budowy klasy Kino
, trzymającej pieczę nad obiektami klasy Miejsce
.
Zróbmy małe założenie. Wcześniej ustaliliśmy, że liczba miejsc w kinie jest stała. Przyjmijmy, że jest ich 30. Tablica będzie doskonałą strukturą, przechowującą te obiekty. Przeistoczmy w kod to, co do tej pory powiedzieliśmy:
class Kino { private: // te składniki klasy będą prywatne static const int ilosc_miejsc = 30; // przyjęta ilość miejsc Miejsce wszystkie_miejsca[ilosc_miejsc]; // tablica przechowująca obiekty Miejsce public: // te składniki klasy będą publiczne Kino() // konstruktor domyślny { // co powinno się tutaj znaleźć? } };
Umieśćmy powyższy kod pod kodem klasy Miejsce
.
Ilość miejsc została zdefiniowana i zainicjalizowana jako stała statyczna klasy, aby umożliwić definicję tablicy wszystkie_miejsca
.
Konstruktor domyślny powinien utworzyć 30
niezarezerwowanych miejsc z odpowiednio przypisanymi numerami.
Kino() { int i = 0; for(i = i; i < ilosc_miejsc; i++) { wszystkie_miejsca[i] = miejsce("","",i+1,false); // utwórz obiekt miejsce o numerze i+1 } }
Od teraz każdy obiekt Kino
będzie zawierał 30
obiektów Miejsce
ponumerowanych od 1
do 30
. Przekonajmy się o tym na własne oczy :-) Uzupełnijmy klasę Kino
o metodę wyswietl_wszystkie_miejca:
void wyswietl_wszystkie_miejsca() { int i = 0; for(i = i; i < ilosc_miejsc; i++) { wszystkie_miejsca[i].wypisz(); } cout << endl << "Wszystkich miejsc: " << ilosc_miejsc << endl; }
W funkcji głównej zadeklarujmy obiekt klasy Kino
:
Kino kino;
i zobaczmy jak wygląda stan miejsc:
kino.wyswietl_wszystkie_miejsca();
Kod możemy umieścić tuż przed wyświetleniem menu głównego. Po skompilowaniu i uruchomieniu programu widzimy, że w kinie dostępnych jest 30
wolnych miejsc. Oczywiście podczas rozbudowy programu wyświetlenie miejsc można usunąć. Była to tylko dla nas tymczasowa informacja.
Mamy ładne menu, klasę Miejsce
i klasę Kino
. Nic nie stoi już na przeszkodzie, aby zacząć uzupełniać nasze menu, obecnie wyglądające tak:
switch(znak) //operator sterujący { case '1': cout << "Dodaj rezerwacje" << endl; break; case '2': cout << "Anuluj rezerwacje" << endl; break; case '3': cout << "Sprawdz miejsce" << endl; break; case '4': cout << "Wyswietl wszystkie miejsca" << endl; break; case '5': cout << "Wyswietl wolne miejsca" << endl; break; case '6': cout << "Wyswietl zarezerwowane miejsca" << endl; break; }
Opcja numer 4
jest idealnym miejscem na wywołanie metody wyswietl_wszystkie_miejsca
. Po modyfikacji wygląda ona następująco:
case '4': kino.wyswietl_wszystkie_miejsca(); break;
Jednak nie zadziała to zgodnie z naszymi założeniami. Po wywołaniu metody wyswietl_wszystkie_miejsca()
obiektu kino
program wykona:
system("cls"); wyswietl_menu_glowne();
Tym samym z powrotem powrócimy do menu głównego. W związku z tym proponuję napisanie dodatkowej funkcji
void czekaj_na_klawisz() { cout << endl << "(Wcisnij dowolny przycisk, aby wyjsc)" << endl; getchar(); }
Kod umieśćmy na samym początku, pod using namespace std;
.
Wstawienie jej dowolnym miejscu kodu spowoduje jego zatrzymanie, umożliwiając mam przeczytanie informacji podanej przez program.
Teraz opcja numer 4:
case '4' kino.wyswietl_wszystkie_miejsca(); czekaj_na_klawisz() break;
daje nam mozliwość szybkiego podglądu stanu rezerwacji.
W bardzo podobny sposób zmodyfikujemy opcje 5 i 6. Wystarczy niewielki if
dodany do metody wyswietl_wszystkie_miejsca
i po robocie.
void wyswietl_wolne_miejsca() { int i = 0; int wolne = 0; // dodajmy informację o ilości wolnych miejsc for(i = i; i < ilosc_miejsc; i++) // sprawdźmy wszystkie 30 miejsc { if(!wszystkie_miejsca[i].jestZarezerwowane()) // sprawdżmy czy miejsce jest wolne { wszystkie_miejsca[i].wypisz(); wolne++; } } cout << endl << "Wolnych miejsc: " << wolne << endl; } void wyswietl_zarezerwowane_miejsca() { int i = 0; int zarezerwowane = 0; // dodajmy informację o ilości zarezerwowanych miejsc for(i = i; i < ilosc_miejsc; i++) { if(wszystkie_miejsca[i].jestZarezerwowane()) // sprawdzamy czy miejsce jest zarezerwowane { wszystkie_miejsca[i].wypisz(); zarezerwowane++; } } cout << endl << "Zarezerwowanych miejsc: " << zarezerwowane << endl; }
Ale cóż to za metoda jestZarezerwowane()
? Zdziwienie jest uzasadnione ponieważ jeszcze jej nie napisaliśmy a już chcemy użyć. Dlatego jak najszybciej uzupełnijmy klasę Miejsce
o brakujące linijki aby nie narazić się naszemu kompilatorowi :-)
bool jestZarezerwowane() { return zarezerwowane; }
Po uzupełnieniu funkcji switch
nasz program coraz bardziej nabiera charakteru ;-)
switch(znak) //operator sterujący { case '1': cout << "Dodaj rezerwacje" << endl; break; case '2': cout << "Anuluj rezerwacje" << endl; break; case '3’: cout << "Sprawdz miejsce" << endl; break; case '4': kino.wyswietl_wszystkie_miejsca(); czekaj_na_klawisz(); break; case '5': kino.wyswietl_wolne_miejsca(); czekaj_na_klawisz(); break; case '6': kino.wyswietl_zarezerwowane_miejsca(); czekaj_na_klawisz(); break; }
Pora na dokonanie pierwszej rezerwacji w systemie. Jej etapy będą następujące:
- wybór miejsca
- sprawdzenie czy miejsce istnieje
- jeżeli tak, sprawdzenie czy miejsce jest wolne
- pobranie imienia
- pobranie nazwiska
Dodajmy do klasy Kino
metodę dodaj_rezerwacje
oraz wybierz_miejsce
:
void dodaj_rezerwacje() { cout << "Dodaj rezerwacje:" << endl << endl << endl; // informacja, co będziemy robić wyswietl_wolne_miejsca(); // skorzystajmy z gotowej funkcji aby zobaczyć jakie miejsca są dostępne wybierz_miejsce(); // tej funkcji jeszcze nie mamy. Tutaj wybierzemy i sprawdzimy miejsce. if(wybrane_miejsce != 0){ // jeżeli wybrane miejsce istnieje wszystkie_miejsca[wybrane_miejsce-1].rezerwuj(); // dokonajmy rezerwacji } czekaj_na_klawisz(); } //Jako że funkcja wybierz_miejsce jest niezdefiniowana, dodajmy ją jako metodę klasy Kino: void wybierz_miejsce() { cout << "Wybierz numer miejsca (lub 0 aby wyjsc):" << endl << endl; // informacja dla użytkownika cin >> wybrane_miejsce; // prośba o podanie numeru miejsca if(wybrane_miejsce < 0 || wybrane_miejsce > ilosc_miejsc) // sprawdzamy czy miejsce istnieje { // jeżeli podany numer miejsca leży poza dostępnym zakresem if(wybrane_miejsce != 0) // jeżeli wybrany numer jest różny od 0 { wybrane_miejsce = 0; // informacja, że nie wybrano miejsca cout<<"Nie ma takiego miejsca"<<endl<<endl; // informacja dla użytkownika } } }
Kod ten pobiera numer miejsca od użytkownika. Jeżeli nie należy on do zakresu dostępnych miejsc i jest różny od 0, podawany jest odpowiedni komunikat. Numer 0 będzie informacją, ze żadne z miejsc nie zostało wybrane.
Uzupełnijmy funkcję switch
:
case '1': kino.dodaj_rezerwacje(); break;
Od teraz kino może obsługiwać klientów bez obawy o brak wolnych miejsc. Dodatkowym ułatwieniem będzie możliwość sprawdzenia stanu wybranego miejsca. Przyda się to w przypadku rozbudowy kina, kiedy ogarnięcie wzrokiem listy wszystkich rezerwacji nie będzie już tak wygodne. Wzbogaćmy klasę Kino
o odpowiednią metodę:
void sprawdz_miejsce() { cout << "Sprawdz rezerwacje:" << endl << endl << endl; // informacja dla użytkownik wybierz_miejsce(); // wybieramy miejsce if(wybrane_miejsce != 0) // jeżeli wybrany numer jest OK { wszystkie_miejsca[wybrane_miejsce-1].wypisz(); // wypiszmy informację o wybranym miejscu } czekaj_na_klawisz(); // pozwól przeczytać informację }
Funkcja po prostu wypisuje informację o wybranym przez nas miejscu.
Dobrze, miejsca zarezerwowane, obsługa kina kończy przygotowania do seansu a w powietrzu już unosi się zapach popcornu. Pech chciał, że panu Jankowi zepsuł się samochód i niestety nie dotrze na seans na czas. Jedyne co pozostaje to anulować rezerwację. Ehh…tej opcji jeszcze nie mamy. Ale to kwestia chwili. Napisanie metody anuluj_rezerwacje
dla klasy Kino
będzie bardzo proste. Tym bardziej, że klasa Miejsce
już takową posiada. Wystarczy tylko wybrać odpowiednią metodę:
void anuluj_rezerwacje() { cout << "Anuluj rezerwacje:" << endl << endl << endl; // informacja dla użytkownika wyswietl_zarezerwowane_miejsca(); // pokaż listę zajętych miejsc wybierz_miejsce(); // wybierzmy jedno z nich if(wybrane_miejsce != 0) // jeżeli wybór jest OK { wszystkie_miejsca[wybrane_miejsce-1].anuluj_rezerwacje(); // anulujemy rezerwację } czekaj_na_klawisz(); // pozwólmy przeczytać informację }
Opcje wyboru są kompletne:
switch(znak) //operator sterujący czyli jakaś zmienna zawierająca liczbę np. typu int { case '1': kino.dodaj_rezerwacje(); break; case '2': kino.anuluj_rezerwacje(); break; case '3': kino.sprawdz_miejsce(); break; case '4': kino.wyswietl_wszystkie_miejsca(); czekaj_na_klawisz(); break; case '5': kino.wyswietl_wolne_miejsca(); czekaj_na_klawisz(); break; case '6': kino.wyswietl_zarezerwowane_miejsca(); czekaj_na_klawisz(); break; }
Teraz kino może przyjąć dodatkową osobę na miejsce pana Janka :-)
Oto nasz system w całości:
#include <iostream> #include <stdio.h> using namespace std; void wyswietl_menu_glowne() // funkcja bez argumentów { cout << "System rezerwacji miejsc - Singlekino.pl" << endl << endl; // tworzymy menu cout << "Wybierz opcje:" << endl << endl; cout << "1 - Dodaj rezerwacje" << endl; cout << "2 - Usun rezerwacje" << endl; cout << "3 - Sprawdz miejsce" << endl; cout << "4 - Wyswietl wszystkie rezerwacje" << endl; cout << "5 - Wyswietl wolne miejsca" << endl; cout << "6 - Wyswietl zarezerwowane miejsca" << endl; cout << "7 - Zamknij system" << endl; } void czekaj_na_klawisz() { cout << endl << "(Wcisnij dowolny przycisk, aby wyjsc)" << endl; getchar(); } class Miejsce // słowo class i nazwa klasy, w tym przypadku data { // otwieramy nawias klamrowy public: // składniki klasy będą publiczbe char imie[20]; // składniki klasy char nazwisko[20]; int numer; bool zarezerwowane; Miejsce() { strcpy(imie, ""); strcpy(nazwisko, ""); numer = 0; zarezerwowane = false; } Miejsce(char t_imie[], char t_nazwisko[], int t_numer, bool t_zarezerwowane) { strcpy(imie, t_imie); strcpy(nazwisko, t_nazwisko); numer = t_numer; zarezerwowane = t_zarezerwowane; } void rezerwuj() { if(zarezerwowane) { cout << "Miejsce jest juz zarezerwowane."; } else { cout << "Podaj imie: "; cin >> imie; cout << "Podaj nazwisko: "; cin >> nazwisko; zarezerwowane = true; cout << endl << "Miejsce " << numer << " zostalo zarezerwowane dla: " << imie << " " << nazwisko << "."; } } void anuluj_rezerwacje() { if(zarezerwowane) { strcpy(imie, ""); strcpy(nazwisko, ""); zarezerwowane = false; cout << "Rezerwacja anulowana." << endl; } else { cout << "Nie ma takiej rezerwacji." << endl; } } void wypisz() // funkcja wypisująca { if(zarezerwowane) { cout << "Numer: " << numer << ", " << imie << " " << nazwisko << endl; } else { cout << "Numer: " << numer << " - miejsce wolne" << endl; } } bool jestZarezerwowane() { return zarezerwowane; } }; // zamykamy nawias klamrowy i dajemy ŚREDNIK ! class Kino // słowo class i nazwa klasy, w tym przypadku Kino { private: //składniki klasy będą prywatne static const int ilosc_miejsc = 30; //stała int wybrane_miejsce; Miejsce wszystkie_miejsca[ilosc_miejsc]; public: // składniki klasy będą publiczbe Kino() // konstruktor domyślny { wybrane_miejsce = 0; int i = 0; for(i = i; i < ilosc_miejsc; i++) { wszystkie_miejsca[i] = Miejsce("", "", i+1, false); } } void wybierz_miejsce() { cout << "Wybierz numer miejsca (lub 0 aby wyjsc):" << endl << endl; cin >> wybrane_miejsce; if(wybrane_miejsce < 0 || wybrane_miejsce > ilosc_miejsc) { if(wybrane_miejsce != 0) { wybrane_miejsce = 0; cout << "Nie ma takiego miejsca" << endl << endl; } } } void wyczysc_miejsce() { wybrane_miejsce = 0; } void wyswietl_wszystkie_miejsca() { int i = 0; for(i = i; i < ilosc_miejsc; i++) { wszystkie_miejsca[i].wypisz(); } cout << endl << "Wszystkich miejsc: " << ilosc_miejsc << endl; } void wyswietl_wolne_miejsca() { int i = 0; int wolne = 0; for(i = i; i < ilosc_miejsc; i++) { if(!wszystkie_miejsca[i].jestZarezerwowane()) { wszystkie_miejsca[i].wypisz(); wolne++; } } cout << endl << "Wolnych miejsc: " << wolne << endl; } void wyswietl_zarezerwowane_miejsca() { int i = 0; int zarezerwowane = 0; for(i = i; i < ilosc_miejsc; i++) { if(wszystkie_miejsca[i].jestZarezerwowane()) { wszystkie_miejsca[i].wypisz(); zarezerwowane++; } } cout << endl << "Zarezerwowanych miejsc: " << zarezerwowane << endl; } void dodaj_rezerwacje() { cout << "Dodaj rezerwacje:" << endl << endl << endl; wyswietl_wolne_miejsca(); wybierz_miejsce(); if(wybrane_miejsce != 0){ wszystkie_miejsca[wybrane_miejsce-1].rezerwuj(); } czekaj_na_klawisz(); } void anuluj_rezerwacje() { cout << "Anuluj rezerwacje:" << endl << endl << endl; wyswietl_zarezerwowane_miejsca(); wybierz_miejsce(); if(wybrane_miejsce != 0) { wszystkie_miejsca[wybrane_miejsce-1].anuluj_rezerwacje(); } czekaj_na_klawisz(); } void sprawdz_miejsce() { cout << "Sprawdz rezerwacje:" << endl << endl << endl; wybierz_miejsce(); if(wybrane_miejsce != 0) { wszystkie_miejsca[wybrane_miejsce-1].wypisz(); wyczysc_miejsce(); } czekaj_na_klawisz(); } }; // zamykamy nawias klamrowy i dajemy ŚREDNIK ! int main() { Kino kino; // obiekt typu Kino char znak; // tu zapiszemy wciśnięty klawisz //kino.wyswietl_wszystkie_miejsca(); wyswietl_menu_glowne(); znak =getchar(); // program pobiera znak while(znak!='7') //jeśli nie wybraliśmy 3, czyli nie chcemy kończyć to: { switch(znak) //operator sterujący czyli jakaś zmienna zawierająca liczbę np. typu int { case '1': kino.dodaj_rezerwacje(); break; case '2': kino.anuluj_rezerwacje(); break; case '3': kino.sprawdz_miejsce(); break; case '4': kino.wyswietl_wszystkie_miejsca(); czekaj_na_klawisz(); break; case '5': kino.wyswietl_wolne_miejsca(); czekaj_na_klawisz(); break; case '6': kino.wyswietl_zarezerwowane_miejsca(); czekaj_na_klawisz(); break; } wyswietl_menu_glowne(); znak = getchar();// jeszcze raz dokonujemy wyboru } // tutaj pętla zawraca i jeszcze raz sprawdza warunek return 0; }
Właściciel kina już planuje budowę kolejnych sal :-)
Adam Sawicki – programista aplikacji internetowych, obserwator nowych trendów w świecie startup’ów i technologii webowych. Autor kursu C++ dla początkujących www.cpp.jcom.pl.
Przy wywoływaniu tego konstruktora w pętli :
wszystkie_miejsca[i] = miejsce(„”,””,i+1,false);
kompilator zgłasza błąd, że w deklaracji konstruktora jest (char _[], char _[], int, bool) a przy wywoływaniu char jest bez kwadratowych nawiasów [ ] , jak to obejść?
Mógłbyś wkleić fragment kodu z którym masz problem?
Pozdrawiam,
Łukasz
Kino()
{
int i = 0;
for(i = i; i < ilosc_miejsc; i++) { wszystkie_miejsca[i] = miejsce("","",i+1,false); // utwórz obiekt miejsce o numerze i+1 } }Ten fragment : miejsce("","",i+1,false) nie działa dla deklaracji konstruktora :Miejsce(char t_imie[], char t_nazwisko[], int t_numer, bool t_zarezerwowane) { strcpy(imie, t_imie); strcpy(nazwisko, t_nazwisko); numer = t_numer; zarezerwowane = t_zarezerwowane; }ale po przerobieniu kodu tak aby pracował na typie string imie zamiast na typie char imie[30] itd wszystko działa jak należy :)
W jaki sposób to przerobiłeś?
Kod na stronie nie kompiluje się poprawnie, dla przyszłych osób, poniżej kody po kilku poprawkach który się kompiluje:
#include
#include
#include
using namespace std;
void wyswietl_menu_glowne() // funkcja bez argumentów
{
cout << "System rezerwacji miejsc – Singlekino.pl" << endl << endl; // tworzymy menu
cout << "Wybierz opcje:" << endl << endl;
cout << "1 – Dodaj rezerwacje" << endl;
cout << "2 – Usun rezerwacje" << endl;
cout << "3 – Sprawdz miejsce" << endl;
cout << "4 – Wyswietl wszystkie rezerwacje" << endl;
cout << "5 – Wyswietl wolne miejsca" << endl;
cout << "6 – Wyswietl zarezerwowane miejsca" << endl;
cout << "7 – Zamknij system" << endl;
}
void czekaj_na_klawisz()
{
cout << endl << "(Wcisnij dowolny przycisk, aby wyjsc)" <imie = t_imie;
this->nazwisko = t_nazwisko;
numer = t_numer;
zarezerwowane = t_zarezerwowane;
}
void rezerwuj()
{
if (zarezerwowane)
{
cout << "Miejsce jest juz zarezerwowane.";
}
else
{
cout <> imie;
cout <> nazwisko;
zarezerwowane = true;
cout << endl << "Miejsce " << numer << " zostalo zarezerwowane dla: " << imie << " " << nazwisko << ".";
}
}
void anuluj_rezerwacje()
{
if (zarezerwowane)
{
imie = "-";
nazwisko = "-";
zarezerwowane = false;
cout << "Rezerwacja anulowana." << endl;
}
else
{
cout << "Nie ma takiej rezerwacji." << endl;
}
}
void wypisz() // funkcja wypisująca
{
if (zarezerwowane)
{
cout << "Numer: " << numer << ", " << imie << " " << nazwisko << endl;
}
else
{
cout << "Numer: " << numer << " – miejsce wolne" << endl;
}
}
bool jestZarezerwowane()
{
return zarezerwowane;
}
}; // zamykamy nawias klamrowy i dajemy ŚREDNIK !
class Kino // słowo class i nazwa klasy, w tym przypadku Kino
{
private: //składniki klasy będą prywatne
static const int ilosc_miejsc = 30; //stała
int wybrane_miejsce;
Miejsce wszystkie_miejsca[ilosc_miejsc];
public: // składniki klasy będą publiczbe
Kino() // konstruktor domyślny
{
wybrane_miejsce = 0;
int i = 0;
for (i = i; i < ilosc_miejsc; i++)
{
wszystkie_miejsca[i] = Miejsce("", "", i + 1, false);
}
}
void wybierz_miejsce()
{
cout << "Wybierz numer miejsca (lub 0 aby wyjsc):" << endl <> wybrane_miejsce;
if (wybrane_miejsce ilosc_miejsc)
{
if (wybrane_miejsce != 0) {
wybrane_miejsce = 0;
cout << "Nie ma takiego miejsca" << endl << endl;
}
}
}
void wyczysc_miejsce()
{
wybrane_miejsce = 0;
}
void wyswietl_wszystkie_miejsca()
{
int i = 0;
for (i = i; i < ilosc_miejsc; i++)
{
wszystkie_miejsca[i].wypisz();
}
cout << endl << "Wszystkich miejsc: " << ilosc_miejsc << endl;
}
void wyswietl_wolne_miejsca()
{
int i = 0;
int wolne = 0;
for (i = i; i < ilosc_miejsc; i++)
{
if (!wszystkie_miejsca[i].jestZarezerwowane())
{
wszystkie_miejsca[i].wypisz();
wolne++;
}
}
cout << endl << "Wolnych miejsc: " << wolne << endl;
}
void wyswietl_zarezerwowane_miejsca()
{
int i = 0;
int zarezerwowane = 0;
for (i = i; i < ilosc_miejsc; i++)
{
if (wszystkie_miejsca[i].jestZarezerwowane())
{
wszystkie_miejsca[i].wypisz();
zarezerwowane++;
}
}
cout << endl << "Zarezerwowanych miejsc: " << zarezerwowane << endl;
}
void dodaj_rezerwacje()
{
cout << "Dodaj rezerwacje:" << endl << endl << endl;
wyswietl_wolne_miejsca();
wybierz_miejsce();
if (wybrane_miejsce != 0) {
wszystkie_miejsca[wybrane_miejsce – 1].rezerwuj();
}
czekaj_na_klawisz();
}
void anuluj_rezerwacje()
{
cout << "Anuluj rezerwacje:" << endl << endl << endl;
wyswietl_zarezerwowane_miejsca();
wybierz_miejsce();
if (wybrane_miejsce != 0) {
wszystkie_miejsca[wybrane_miejsce – 1].anuluj_rezerwacje();
}
czekaj_na_klawisz();
}
void sprawdz_miejsce()
{
cout << "Sprawdz rezerwacje:" << endl << endl << endl;
wybierz_miejsce();
if (wybrane_miejsce != 0) {
wszystkie_miejsca[wybrane_miejsce – 1].wypisz();
wyczysc_miejsce();
}
czekaj_na_klawisz();
}
}; // zamykamy nawias klamrowy i dajemy ŚREDNIK !
int main()
{
Kino kino; // obiekt typu Kino
char znak; // tu zapiszemy wciśnięty klawisz
//kino.wyswietl_wszystkie_miejsca();
wyswietl_menu_glowne();
znak = getchar(); // program pobiera znak
while (znak != '7') //jeśli nie wybraliśmy 3, czyli nie chcemy kończyć to:
{
switch (znak) //operator sterujący czyli jakaś zmienna zawierająca liczbę np. typu int
{
case '1':
kino.dodaj_rezerwacje();
break;
case '2':
kino.anuluj_rezerwacje();
break;
case '3':
kino.sprawdz_miejsce();
break;
case '4':
kino.wyswietl_wszystkie_miejsca();
czekaj_na_klawisz();
break;
case '5':
kino.wyswietl_wolne_miejsca();
czekaj_na_klawisz();
break;
case '6':
kino.wyswietl_zarezerwowane_miejsca();
czekaj_na_klawisz();
break;
}
wyswietl_menu_glowne();
znak = getchar();// jeszcze raz dokonujemy wyboru
} // tutaj pętla zawraca i jeszcze raz sprawdza warunek
return 0;
}