Witam,
Od 2 tygodni próbuje coś pisać w Javie. Chciałbym poznać Wasze zdanie na temat mojego kodu. Jest to prosta symulacja hotelu.
package pl.kurs.hotel;
import java.util.Scanner;
public class Tester {
public static void main(String[] args) {
int choice = 0;
int nrRoom;
String name;
int counter = 0;
Scanner scanner = new Scanner(System.in);
Room[] p = new Room[20];
Hotel hotel = new Hotel();
for(int i =0;i<p.length;i++){
p[i] = new Room(i);
}
while(true){
System.out.println();
System.out.println("Witaj w hotelu.");
System.out.println("1.Wynajmij pokój.");
System.out.println("2.Zobacz wolne pokoje.");
System.out.println("3.Wynajmowane pokoje(po imieniu).");
System.out.println("4.Czy osoba po podanym imieniu wynajmuje.");
System.out.println("5.Zwolnij wszystkie pokoje wynajmowane przez.");
System.out.println("6.Wyjście.");
System.out.print("Twój wybór: ");
choice = scanner.nextInt();
switch(choice){
case 1:
try{
System.out.print("Podaj numer pokoju: ");
nrRoom = scanner.nextInt();
hotel.rentRoom(p[nrRoom-1]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Za duża liczba...");
}
break;
case 2:
System.out.print("Wolne pokoje: ");
for(int i =0;i<p.length;i++){
hotel.orFree(p[i]);
}
break;
case 3:
System.out.print("Podaj imie: ");
name = scanner.next();
for(int i =0;i<p.length;i++){
if(hotel.rentedRooms(name, p[i])){
counter++;
}
}
System.out.println("Osoba o imieniu " + name + " wynajmuje " + counter + " pokoje.");
for(int i =0;i<p.length;i++){
if(hotel.rentedRooms(name, p[i])){
System.out.print((i+1) + ", ");
}
}
break;
case 4:
System.out.print("Podaj imie: ");
name = scanner.next();
for(int i =0;i<p.length;i++){
if(hotel.orRentRoom(name, p[i])){
counter++;
}
}
if(counter>0){
System.out.println("Osoba " + name + " wynajmuje u nas pokój.");
break;
}if(counter<=0){
System.out.println("Osoba " + name + " nie wynajmuje u nas pokoju.");
}
break;
case 5:
System.out.print("Podaj imie: ");
name = scanner.next();
for(int i =0;i<p.length;i++){
hotel.allFree(name, p[i]);
}
break;
case 6:
System.exit(0);
break;
default: System.out.println("Coś poszło nie tak...");
break;
}
}
}
}
package pl.kurs.hotel;
public class Room {
private int numberRoom;
private String owner;
private boolean isFree;
public Room(int numberRoom){
this.numberRoom = numberRoom;
owner = null;
isFree = true;
}
public Room(){
}
public String getOwner(){
return owner;
}
public int getNumberRoom(){
return numberRoom;
}
public void setOwner(String owner){
this.owner = owner;
}
public boolean getIsFree(){
return isFree;
}
public void setIsFree(boolean isFree){
this.isFree = isFree;
}
}
package pl.kurs.hotel;
import java.util.Scanner;
public class Hotel {
private boolean isFree;
private Scanner scanner = new Scanner(System.in);
private String name;
public void rentRoom(Room p){
if(p.getIsFree()){
System.out.print("Podaj imie: ");
name = scanner.next();
p.setOwner(name);
p.setIsFree(false);
System.out.println("Wynajęty został pokój nr " + (p.getNumberRoom()+1) + " i jego właścicielem jest " + p.getOwner());
}else if(!p.getIsFree()) {
System.out.println("Zajęte.");
} else{
System.out.println("Jakiś bład...");
}
}
public void orFree(Room p){
if(p.getIsFree()){
System.out.print((p.getNumberRoom()+ 1) + ", ");
}
}
public boolean rentedRooms(String name, Room p){
if(name.equals(p.getOwner())){
return true;
} else
return false;
}
public boolean orRentRoom(String name,Room p){
if(name.equals(p.getOwner())){
return true;
} else
return false;
}
public void allFree(String name,Room p){
if(name.equals(p.getOwner())){
p.setOwner(null);
p.setIsFree(true);
}
}
}