From 8d77dc632891d87287dd05bc637b254d56bac44c Mon Sep 17 00:00:00 2001 From: Bardia Date: Fri, 10 Mar 2023 23:45:56 +0330 Subject: [PATCH] :D MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit تا اونجایی که تونستم کاملش کردم ولی هنوزم کار داره! --- src/main/java/Book.java | 60 ++++++++ src/main/java/Librarian.java | 49 ++++++- src/main/java/Library.java | 273 ++++++++++++++++++++++++++--------- src/main/java/Main.java | 63 +++++++- src/main/java/User.java | 78 +++++++++- 5 files changed, 443 insertions(+), 80 deletions(-) diff --git a/src/main/java/Book.java b/src/main/java/Book.java index 7cff6f8..96665f3 100644 --- a/src/main/java/Book.java +++ b/src/main/java/Book.java @@ -1,3 +1,63 @@ public class Book { //Book should contain name,author,year of publish and ISBN + private String name; + private String author; + private String year; + private String isbn; + private boolean avaliable = true; + + public boolean isAvaliable() { + return avaliable; + } + + public void setAvaliable(boolean avaliable) { + this.avaliable = avaliable; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public String getIsbn() { + return isbn; + } + + public void setIsbn(String isbn) { + this.isbn = isbn; + } + + @Override + public String toString() { + return "Book{" + + "name='" + name + '\'' + + ", author='" + author + '\'' + + ", year='" + year + '\'' + + ", isbn='" + isbn + '\'' + + ", avaliable=" + avaliable + + '}'; + } + + public void changeStatus(){ + this.avaliable = !this.avaliable; + } } diff --git a/src/main/java/Librarian.java b/src/main/java/Librarian.java index 321ce3a..f2c09e0 100644 --- a/src/main/java/Librarian.java +++ b/src/main/java/Librarian.java @@ -1,10 +1,55 @@ +import java.util.Scanner; + public class Librarian { /* * The librarian should have a username and a password * The librarian should be able to search users, librarians and books - * The librarian should be able to add\remove\update user add\remove\update_ - _ librarian and add\remove\update book + * The librarian should be able to add,remove,update user add,remove,update_ + _ librarian and add,remove,update book */ + // Attributes + private String username; + private String password; + + // Getter & Setter + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + public void changePassword(){ + System.out.println("Enter Your Current Password: "); + Scanner myScanner = new Scanner(System.in); + String Pass = myScanner.nextLine(); + if(Pass.equals(this.getPassword())){ + System.out.println("Enter Your newest Password: "); + String newPass = myScanner.nextLine(); + this.password = newPass; + } + else{ + System.out.println("Wrong Password! " + "\n" + "Do You Want Try Again?!(Yes/No) : "); + String ansewr = myScanner.nextLine(); + if(ansewr.equals("Yes") || ansewr.equals("yes")) + changePassword(); + } + } + @Override + public String toString() { + return "Librarian{" + + "username='" + username + '\'' + + ", password='" + password + '\'' + + '}'; + } } diff --git a/src/main/java/Library.java b/src/main/java/Library.java index 6c34354..6d9f45a 100644 --- a/src/main/java/Library.java +++ b/src/main/java/Library.java @@ -1,3 +1,9 @@ +import javax.jws.soap.SOAPBinding; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Scanner; +import java.util.StringTokenizer; + public class Library { /* * The library should have a list of books. @@ -8,77 +14,200 @@ public class Library { //book related functions - public void addBook(){ - //TODO - } - - public void removeBook(){ - //TODO - } - - public void searchBook(){ - //TODO + // ArrayLists + private HashMapnumberOfBooks = new HashMap(); + private ArrayListBooks = new ArrayList(); + private ArrayListLibrarians = new ArrayList(); + private ArrayListUsers = new ArrayList(); + + // Public Functions + + // Book Related Functions + public void addBook(String name, String author, String year, String isbn){ + if(!this.doesBookExist(isbn)){ + Book myBook = new Book(); + myBook.setName(name); + myBook.setAuthor(author); + myBook.setYear(year); + myBook.setIsbn(isbn); + this.Books.add(myBook); + this.increaseBook(myBook); + } + } + + public void removeBook(String isbn){ + if(this.doesBookExist(isbn)){ + this.Books.remove(this.searchBook(isbn)); + } + } + + public Book searchBook(String isbn){ + Book myTargetBook = new Book(); + if(this.doesBookExist(isbn)){ + for(Book value : this.Books){ + if(isbn.equals(value.getIsbn())){ + myTargetBook = value; + break; + } + } + } + return myTargetBook; + } + + public Book searchBook(String name, String author){ + Book myTargetBook = new Book(); + if(this.doesBookExist(name, author)){ + for(Book value : Books){ + if(name.equals(value.getName()) && author.equals(value.getAuthor())){ + myTargetBook = value; + break; + } + } + } + + return myTargetBook; + } + + public void updateBook(Book myBook){ + if(doesBookExist(myBook.getIsbn())){ + for (Book book : Books) { + if (myBook.getIsbn().equals(book.getIsbn())) { + book.changeStatus(); + break; + } + } + } + else + System.out.println("This Book Is Not Exist!"); + } + + public boolean doesBookExist(String isbn){ + boolean flag = false; + for(Book value : this.Books){ + if(isbn.equals(value.getIsbn())){ + flag = true; + break; + } + } + return flag; + } + + public boolean doesBookExist(String name, String author){ + boolean flag = false; + for(Book value : this.Books){ + if(name.equals(value.getName()) && author.equals(value.getAuthor())){ + flag = true; + break; + } + } + return flag; + } + public void increaseBook(Book ibook){ + int number = numberOfBooks.get(ibook.getName()) + 1; + numberOfBooks.put(ibook.getName(), number); + } + + public void decreaseBook(Book ibook){ + int number = numberOfBooks.get(ibook.getName()) - 1; + if(number >= 0) + numberOfBooks.put(ibook.getName(), number); + } + + //User Related Functions + + public void addUser(String username, String password){ + User myUser = new User(); + if(!this.doesUserExist(username, password)){ + myUser.setUsername(username); + myUser.setPassword(password); + this.Users.add(myUser); + } + } + + public void removeUser(String username, String password){ + if(this.doesUserExist(username, password)){ + this.Users.remove(this.searchUser(username, password)); + } + } + + public User searchUser(String username, String password){ + User myTargetUser = new User(); + if(this.doesUserExist(username, password)){ + for(User value : this.Users){ + if(username.equals(value.getUsername()) && password.equals(value.getPassword())){ + myTargetUser = value; + break; + } + } + } + return myTargetUser; + } + + public void updateUser(User myuser){ + if(this.doesUserExist(myuser.getUsername(), myuser.getPassword())){ + myuser.changePassword(); + } + else + System.out.println("This User Is Not Exist!"); + } + + public boolean doesUserExist(String username, String password){ + boolean flag = false; + for(User value : this.Users){ + if(username.equals(value.getUsername()) && password.equals(value.getPassword())){ + flag = true; + break; + } + } + return flag; + } + + //Librarian Related Functions + + public void addLibrarian(String username, String password){ + if(!this.doesLibrarianExist(username, password)){ + Librarian myLibrarian = new Librarian(); + myLibrarian.setUsername(username); + myLibrarian.setPassword(password); + this.Librarians.add(myLibrarian); + } + } + + public void removeLibrarian(String username, String password){ + if(this.doesLibrarianExist(username, password)){ + this.Librarians.remove(this.searchLibrarian(username, password)); + } + } + + public Librarian searchLibrarian(String username, String password){ + Librarian myTargetLibrarian = new Librarian(); + if(this.doesLibrarianExist(username, password)){ + for(Librarian value : this.Librarians){ + if(username.equals(value.getUsername()) && password.equals(value.getPassword())){ + myTargetLibrarian = value; + break; + } + } + } + return myTargetLibrarian; + } + + public void updateLibrarian(Librarian myLibrarian){ + if(doesLibrarianExist(myLibrarian.getUsername(), myLibrarian.getPassword())){ + myLibrarian.changePassword(); + } + else + System.out.println("This Librarian IS Not Exist!"); + } + + public boolean doesLibrarianExist(String username, String password){ + boolean flag = false; + for(Librarian value : this.Librarians){ + if(username.equals(value.getUsername()) && password.equals(value.getPassword())){ + flag = true; + break; + } + } + return flag; } - - public void updateBook(){ - //TODO - } - - public void doesBookExist(){ - //TODO - } - - public void increaseBook(){ - //TODO - } - - public void decreaseBook(){ - //TODO - } - - //user related functions - - public void addUser(){ - //TODO - } - - public void removeUser(){ - //TODO - } - - public void searchUser(){ - //TODO - } - - public void updateUser(){ - //TODO - } - - public void doesUserExist(){ - //TODO - } - - //librarian related functions - - public void addLibrarian(){ - //TODO - } - - public void removeLibrarian(){ - //TODO - } - - public void searchLibrarian(){ - //TODO - } - - public void updateLibrarian(){ - //TODO - } - - public void doesLibrarianExist(){ - //TODO - } - - } diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 9a347d3..7dc5bf9 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,3 +1,4 @@ +import javax.jws.soap.SOAPBinding; import java.util.Scanner; public class Main { @@ -9,10 +10,68 @@ public class Main { */ public static void main(String[] args) { + Book book = new Book(); + Library library = new Library(); + User user = new User(); + Librarian librarian = new Librarian(); + runMenu(book, library, user, librarian); + } + + public static void runMenu(Book myBook, Library myLibrary, User myUser, Librarian myLibrarian){ + Scanner myScanner = new Scanner(System.in); + System.out.println("Welcome To Our Library"); + System.out.println("Enter Number Of Your Position : \n1: User\n2: Librarian"); + int pos = myScanner.nextInt(); + if(pos == 1){ + System.out.println("Enter Your Command: " + "1: Login" + "\n" + "2: SignUp"); + int command = myScanner.nextInt(); + if(command == 1) + loginUser(myBook, myLibrary, myUser, myLibrarian); + else + signUpUser(myBook, myLibrary, myUser, myLibrarian); + } + //else{ + + + + + + + //} + } + public static void signUpUser(Book myBook, Library myLibrary, User myUser, Librarian myLibrarian){ + Scanner input = new Scanner(System.in); + System.out.println("Enter Your Username: "); + String username = input.nextLine(); + System.out.println("Enter Your Password: "); + String password = input.nextLine(); + myUser.setUsername(username); + myUser.setPassword(password); + if(!myLibrary.doesUserExist(myUser.getUsername(), myUser.getPassword())){ + System.out.println("Ok, You Successfully SignUp!"); + myLibrary.addUser(myUser.getUsername(), myUser.getPassword()); + } + else + System.out.println("This Username Is Already Exist!"); } - public static void runMenu(){ - //TODO: + public static void loginUser(Book myBook, Library myLibrary, User myUser, Librarian myLibrarian){ + Scanner input = new Scanner(System.in); + System.out.println("Enter Your Username: "); + String username = input.nextLine(); + System.out.println("Enter Your Password: "); + String password = input.nextLine(); + myUser.setUsername(username); + myUser.setPassword(password); + if(myLibrary.doesUserExist(myUser.getUsername(), myUser.getPassword())){ + System.out.println("Ok, You Successfully Login!"); + } + else + System.out.println("Your Username or Password Went Wrong!"); + } + public static void logOut(){ + System.out.println("You Logged Out!"); } } + diff --git a/src/main/java/User.java b/src/main/java/User.java index dbe4020..efdc57c 100644 --- a/src/main/java/User.java +++ b/src/main/java/User.java @@ -1,12 +1,82 @@ +import java.util.ArrayList; +import java.util.Scanner; + public class User { //User should have a list of books //User should have a username and a password - public void rentBook(){ - //TODO + // Attributes + private String username; + private String password; + private ArrayListrentBooks = new ArrayList(); + + // Getter & Setter + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + // Public Functions + public void rentBook(Library myLibrary, Book myBook){ + + if(myLibrary.doesBookExist(myBook.getIsbn()){ + if(myBook.isAvaliable()){ + this.rentBooks.add(myBook); + myLibrary.updateBook(myBook); + myLibrary.decreaseBook(myBook); + } + else + System.out.println("This Book Is Not Available!"); + } + else{ + System.out.println("This Book Is Not Exist!"); + } } - public void returnBook(){ - //TODO + public void returnBook(Library myLibrary, Book myBook){ + for(int i = 0; i < rentBooks.size(); i++){ + if(myBook.getIsbn().equals(rentBooks.get(i).getIsbn())){ + rentBooks.remove(i); + break; + } + } + myLibrary.updateBook(myBook); + myLibrary.increaseBook(myBook); + } + + public void changePassword(){ + System.out.println("Enter Your Current Password: "); + Scanner myScanner = new Scanner(System.in); + String Pass = myScanner.nextLine(); + if(Pass.equals(this.getPassword())){ + System.out.println("Enter Your newest Password: "); + String newPass = myScanner.nextLine(); + this.password = newPass; + } + else{ + System.out.println("Wrong Password! " + "\n" + "Do You Want Try Again?!(Yes/No) : "); + String ansewr = myScanner.nextLine(); + if(ansewr.equals("Yes") || ansewr.equals("yes")) + changePassword(); + } + } + @Override + public String toString() { + return "User{" + + "username='" + username + '\'' + + ", password='" + password + '\'' + + ", rentBooks=" + rentBooks + + '}'; } }