Cześć, to mój pierwszy post, więc nie bądźcie surowi;)
Piszę program, który ma dodawać i wyjmować książki z półki. Coś jest nie tak, jak próbuję wydrukować książki na półce nic się nie dzieje. Możecie mi pomóc? Co robię źle?
Klasa Bookshelf:
public class Bookshelf {
String name;
int size;
Books[] books;
int freeSpace;
public Bookshelf(String name, int size){
books=new Books[size];
this.name=name;
freeSpace=size;
}
public void put(Books b){
if (freeSpace>0){
freeSpace-=1;
b.setBookshelf(this);
for(int i=0;i<size;i++){
if (books[i]!=null) continue;
books[i]=b;
}
}
else
{System.out.println("No free space.");
}
}
public void take(Books b){
freeSpace+=1;
b.setBookshelf(null);
for(int i=0;i<size;i++){
if (books[i].equals(b)==false) continue;
books[i]=null;
}
}
public void booksOnTheShelf(){
System.out.println(name + " shelf: ");
for(int i=0;i<size;i++){
System.out.println(books[i].getName());
}
}
}
Klasa Book:
public class Books {
String author;
String title;
Bookshelf bookshelf;
public Books(String author, String title, Bookshelf bookshelf){
this.author=author;
this.title=title;
this.bookshelf=bookshelf;
}
public void setBookshelf(Bookshelf b) {
bookshelf = b;
}
public String getName(){
return title;
}
}
Klasa Main:
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
Books[] books={new Books("Tolkien", "Lord of the Rings",null), new Books("Martin", "Game of Thrones",null), new Books("Grzędowicz", "Pan lodowego ogrodu",null)};
Bookshelf[] bookshelf={new Bookshelf("First",2), new Bookshelf("Second",2)};
int decision=0;
Scanner sc=new Scanner(System.in);
do{
System.out.println("What you want to do? 1 - Insert a book, 2 - Take a book, 3 - What is on the shelf?, 4 - Exit");
decision=sc.nextInt();
sc.nextLine();
switch(decision){
case 1:
System.out.println("Which book do you want to insert? Choose a number.");
for(int i=0;i<books.length;i++){
System.out.println(i+" "+books[i].getName());
}
int decision2=sc.nextInt();
System.out.println("Which shelf?");
int decision3=sc.nextInt();
bookshelf[decision3-1].put(books[decision2]);
break;
case 2:
System.out.println("Which book do you want to take? Choose a number.");
for(int i=0;i<books.length;i++){
System.out.println(i+books[i].getName());
}
int decision4=sc.nextInt();
books[decision4].bookshelf.take(books[decision4]);
break;
case 3:
System.out.println("Which shelf?");
int decyzja5=sc.nextInt();
sc.nextLine();
bookshelf[decyzja5-1].booksOnTheShelf();
break;
case 4:
break;
}
}
while(decision!=4);
sc.close();
}
}