Witam.
Zaznaczam że w javie jestem zielony.
Mam projekt do zrobienia, który ma służyć rezerwacjom w kinie.
Oto kod:
import java.util.Scanner;
public class main {
public static void wyswietl_menu_glowne(){ //Menu główne
System.out.print("System rezerwacji miejsc\n");
System.out.print("Wybierz opcje:\n\n");
System.out.print("1) Dodaj rezerwacje\n");
System.out.print("2) Usuń rezerwacje\n");
System.out.print("3) Sprawdz miejsce\n");
System.out.print("4) Wyswietl wszystkie miejsca\n");
System.out.print("5) Wyswietl wolne miejsca\n");
System.out.print("6) Wyswietl zarezerwowane miejsca\n");
System.out.print("0) Zamknij system\n");
}
public static void main(String[] args) {
Miejsce rezerwacja = new Miejsce();
Sala sala = new Sala();
Kino kino = new Kino();
// Miejsce testowe
//rezerwacja.wypisz();
//rezerwacja.rezerwuj();
//rezerwacja.wypisz();
//rezerwacja.anuluj_rezerwacje();
//rezerwacja.wypisz();
// Koniec miejsca testowego
String wybor;
int numer_sali;
Scanner odczyt = new Scanner(System.in);
wyswietl_menu_glowne();
wybor = odczyt.nextLine();
while(wybor != "0"){
switch(wybor){
case "1":
System.out.print("Dodaj rezerwacje\n");
break;
case "2":
System.out.print("Usun rezerwacje\n");
break;
case "3":
System.out.print("Sprawdz rezerwacje\n");
break;
case "4":
System.out.print("Podaj numer sali: \n");
numer_sali = odczyt.nextInt();
numer_sali = numer_sali - 1;
if((numer_sali <= 4) && (numer_sali >= 0)){
kino.wszystkie_sale[numer_sali].wyswietl_wszystkie_miejsca();
}
else{
System.out.print("Nie ma takiej sali.\n");
}
System.out.print("Wciśnij dowolny przycisk by powrócić do menu.\n");
wyswietl_menu_glowne();
break;
case "5":
System.out.print("Wyswietl wolne miejsca\n");
break;
case "6":
System.out.print("Wyswietl zarezerwowane miejsca\n");
break;
}
wybor = odczyt.nextLine();
}
}
import java.util.Scanner;
class Miejsce {
public
String imie,
nazwisko;
int numer;
Boolean rezerwacja;
Miejsce(){ //Konstruktor domyślny
imie ="";
nazwisko ="";
numer = 0;
rezerwacja = false;
}
Miejsce(String _imie, String _nazwisko, int _numer, Boolean _rezerwacja){ //Konstruktor
imie = _imie;
nazwisko = _nazwisko;
numer = _numer;
rezerwacja = _rezerwacja;
}
void rezerwuj(){ //Funkcja rezerwująca
if (rezerwacja == true){
System.out.print("Miejsce jest już zarezerwowane.\n");
}
else{
Scanner odczyt = new Scanner(System.in);
System.out.print("Podaj imię.\n");
imie = odczyt.nextLine();
System.out.print("Podaj nazwisko.\n");
nazwisko = odczyt.nextLine();
rezerwacja = true;
System.out.print("Miejsce "+ numer + " zostało zarezerwowane dla: "
+ imie + " " + nazwisko +"\n");
}
}
void anuluj_rezerwacje(){ //Funkcja anulująca
if (rezerwacja == true){
imie = "";
nazwisko = "";
rezerwacja = false;
System.out.print("Rezerwacja anulowana.\n");
}
else{
System.out.print("Nie ma takiej rezerwacji.\n");
}
}
void wypisz(){ //Funkcja wypisująca
if (rezerwacja == true){
System.out.print("Numer: " + numer + ", " + imie + " " + nazwisko + "\n");
}
else{
System.out.print("Numer: " + numer + " - miejsce wolne\n");
}
}
};
class Sala {
private
final int ilosc_miejsc = 30;
Miejsce[] wszystkie_miejsca = new Miejsce[ilosc_miejsc];
public
Sala(){
for(int i = 0; i < ilosc_miejsc; i++){
wszystkie_miejsca[i] = new Miejsce("","",i+1, false);
}
}
void wyswietl_wszystkie_miejsca(){
for(int i = 0; i < ilosc_miejsc; i++){
wszystkie_miejsca[i].wypisz();
}
System.out.print("Wszystkich miejsc :" + ilosc_miejsc + "\n");
}
}
class Kino {
private
final int ilosc_sal = 5;
Sala[] wszystkie_sale = new Sala[ilosc_sal];
public
Kino(){
for( int i = 0; i > ilosc_sal; i++){
wszystkie_sale[i] = new Sala();
}
}
}
Problem jest taki, że gdy próbuje wypisać wszystkie miejsca z wybranej sali dostaje error:
Exception in thread "main" java.lang.NullPointerException
at main.main(main.java:56)