From d28fcce40548e793a5d60aa7626882ea56041c35 Mon Sep 17 00:00:00 2001 From: mosalehrabbani <155375059+mosalehrabbani@users.noreply.github.com> Date: Thu, 16 May 2024 10:37:47 +0330 Subject: [PATCH 01/11] Add classes --- Answers/Library/src/Admin.java | 2 ++ Answers/Library/src/Book.java | 2 ++ Answers/Library/src/Cli.java | 2 ++ Answers/Library/src/Library.java | 2 ++ Answers/Library/src/NormalUser.java | 2 ++ Answers/Library/src/Rent.java | 2 ++ Answers/Library/src/User.java | 2 ++ 7 files changed, 14 insertions(+) create mode 100644 Answers/Library/src/Admin.java create mode 100644 Answers/Library/src/Book.java create mode 100644 Answers/Library/src/Cli.java create mode 100644 Answers/Library/src/Library.java create mode 100644 Answers/Library/src/NormalUser.java create mode 100644 Answers/Library/src/Rent.java create mode 100644 Answers/Library/src/User.java diff --git a/Answers/Library/src/Admin.java b/Answers/Library/src/Admin.java new file mode 100644 index 0000000..2eaaa0a --- /dev/null +++ b/Answers/Library/src/Admin.java @@ -0,0 +1,2 @@ +public class Admin { +} diff --git a/Answers/Library/src/Book.java b/Answers/Library/src/Book.java new file mode 100644 index 0000000..85cafd9 --- /dev/null +++ b/Answers/Library/src/Book.java @@ -0,0 +1,2 @@ +public class Book { +} diff --git a/Answers/Library/src/Cli.java b/Answers/Library/src/Cli.java new file mode 100644 index 0000000..02164a1 --- /dev/null +++ b/Answers/Library/src/Cli.java @@ -0,0 +1,2 @@ +public class Cli { +} diff --git a/Answers/Library/src/Library.java b/Answers/Library/src/Library.java new file mode 100644 index 0000000..7453be2 --- /dev/null +++ b/Answers/Library/src/Library.java @@ -0,0 +1,2 @@ +public class Library { +} diff --git a/Answers/Library/src/NormalUser.java b/Answers/Library/src/NormalUser.java new file mode 100644 index 0000000..e528d39 --- /dev/null +++ b/Answers/Library/src/NormalUser.java @@ -0,0 +1,2 @@ +public class NormalUser { +} diff --git a/Answers/Library/src/Rent.java b/Answers/Library/src/Rent.java new file mode 100644 index 0000000..7d8502d --- /dev/null +++ b/Answers/Library/src/Rent.java @@ -0,0 +1,2 @@ +public class Rent { +} diff --git a/Answers/Library/src/User.java b/Answers/Library/src/User.java new file mode 100644 index 0000000..52dda73 --- /dev/null +++ b/Answers/Library/src/User.java @@ -0,0 +1,2 @@ +public class User { +} From 8e35a154070a35c3e6d5cca112f411b59a75eb47 Mon Sep 17 00:00:00 2001 From: mosalehrabbani <155375059+mosalehrabbani@users.noreply.github.com> Date: Thu, 16 May 2024 10:40:14 +0330 Subject: [PATCH 02/11] add Add clases --- Answers/Library/.gitignore | 29 +++++++ Answers/Library/.idea/.gitignore | 3 + Answers/Library/.idea/misc.xml | 6 ++ Answers/Library/.idea/modules.xml | 8 ++ Answers/Library/.idea/uiDesigner.xml | 124 +++++++++++++++++++++++++++ Answers/Library/.idea/vcs.xml | 6 ++ Answers/Library/Library.iml | 11 +++ Answers/Library/src/MyAPP.java | 5 ++ 8 files changed, 192 insertions(+) create mode 100644 Answers/Library/.gitignore create mode 100644 Answers/Library/.idea/.gitignore create mode 100644 Answers/Library/.idea/misc.xml create mode 100644 Answers/Library/.idea/modules.xml create mode 100644 Answers/Library/.idea/uiDesigner.xml create mode 100644 Answers/Library/.idea/vcs.xml create mode 100644 Answers/Library/Library.iml create mode 100644 Answers/Library/src/MyAPP.java diff --git a/Answers/Library/.gitignore b/Answers/Library/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/Answers/Library/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/Answers/Library/.idea/.gitignore b/Answers/Library/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/Answers/Library/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/Answers/Library/.idea/misc.xml b/Answers/Library/.idea/misc.xml new file mode 100644 index 0000000..07115cd --- /dev/null +++ b/Answers/Library/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Answers/Library/.idea/modules.xml b/Answers/Library/.idea/modules.xml new file mode 100644 index 0000000..26f9df2 --- /dev/null +++ b/Answers/Library/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Answers/Library/.idea/uiDesigner.xml b/Answers/Library/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/Answers/Library/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Answers/Library/.idea/vcs.xml b/Answers/Library/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/Answers/Library/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Answers/Library/Library.iml b/Answers/Library/Library.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Answers/Library/Library.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Answers/Library/src/MyAPP.java b/Answers/Library/src/MyAPP.java new file mode 100644 index 0000000..bb8d6a6 --- /dev/null +++ b/Answers/Library/src/MyAPP.java @@ -0,0 +1,5 @@ +public class MyAPP { + public static void main(String[] args) { + + } +} \ No newline at end of file From abcb096ed62a63eac786fe6cadc8d6278163173d Mon Sep 17 00:00:00 2001 From: mosalehrabbani <155375059+mosalehrabbani@users.noreply.github.com> Date: Thu, 16 May 2024 10:57:22 +0330 Subject: [PATCH 03/11] Add variables --- Answers/Library/src/Admin.java | 8 +++++++- Answers/Library/src/Book.java | 12 ++++++++++++ Answers/Library/src/MyAPP.java | 4 +--- Answers/Library/src/NormalUser.java | 2 -- Answers/Library/src/NormalUsers.java | 14 ++++++++++++++ Answers/Library/src/User.java | 3 +++ 6 files changed, 37 insertions(+), 6 deletions(-) delete mode 100644 Answers/Library/src/NormalUser.java create mode 100644 Answers/Library/src/NormalUsers.java diff --git a/Answers/Library/src/Admin.java b/Answers/Library/src/Admin.java index 2eaaa0a..f1778ce 100644 --- a/Answers/Library/src/Admin.java +++ b/Answers/Library/src/Admin.java @@ -1,2 +1,8 @@ -public class Admin { +import java.util.ArrayList; + +public class Admin extends User{ + String password; + static ArrayList adminArray = new ArrayList<>(); + final String manegerPass = "DonNotHoldaGrudge"; + } diff --git a/Answers/Library/src/Book.java b/Answers/Library/src/Book.java index 85cafd9..891f170 100644 --- a/Answers/Library/src/Book.java +++ b/Answers/Library/src/Book.java @@ -1,2 +1,14 @@ +import java.util.ArrayList; + public class Book { + static ArrayList booksArray = new ArrayList<>(); + String title,author,subtitle; + int uniquebookID; + boolean availabilityStatus; + public Book(String C_title,String C_author,boolean C_availabilityStatus,String C_subtitle){ + title=C_title; + author=C_author; + availabilityStatus=C_availabilityStatus; + subtitle=C_subtitle; + } } diff --git a/Answers/Library/src/MyAPP.java b/Answers/Library/src/MyAPP.java index bb8d6a6..f6e6295 100644 --- a/Answers/Library/src/MyAPP.java +++ b/Answers/Library/src/MyAPP.java @@ -1,5 +1,3 @@ public class MyAPP { - public static void main(String[] args) { - } -} \ No newline at end of file +} diff --git a/Answers/Library/src/NormalUser.java b/Answers/Library/src/NormalUser.java deleted file mode 100644 index e528d39..0000000 --- a/Answers/Library/src/NormalUser.java +++ /dev/null @@ -1,2 +0,0 @@ -public class NormalUser { -} diff --git a/Answers/Library/src/NormalUsers.java b/Answers/Library/src/NormalUsers.java new file mode 100644 index 0000000..f70d8a0 --- /dev/null +++ b/Answers/Library/src/NormalUsers.java @@ -0,0 +1,14 @@ +import java.util.ArrayList; + +public class NormalUsers extends User { + String registeryDate; + String password; + String rentBooks = ""; + static ArrayList normalUsersArray = new ArrayList<>(); + public NormalUsers(String C_name , String C_pass, String C_registryDate){ + name=C_name; + password=C_pass; + registeryDate=C_registryDate; + } + +} diff --git a/Answers/Library/src/User.java b/Answers/Library/src/User.java index 52dda73..2b9fe68 100644 --- a/Answers/Library/src/User.java +++ b/Answers/Library/src/User.java @@ -1,2 +1,5 @@ public class User { + String name; + int uniqueID; + String number; } From d3b7398844a214a808c65f079b2bbb569a32af4a Mon Sep 17 00:00:00 2001 From: mosalehrabbani <155375059+mosalehrabbani@users.noreply.github.com> Date: Thu, 16 May 2024 11:02:22 +0330 Subject: [PATCH 04/11] add book function --- Answers/Library/src/Book.java | 82 +++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/Answers/Library/src/Book.java b/Answers/Library/src/Book.java index 891f170..8ac14f6 100644 --- a/Answers/Library/src/Book.java +++ b/Answers/Library/src/Book.java @@ -1,4 +1,8 @@ +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; import java.util.ArrayList; +import java.util.Scanner; public class Book { static ArrayList booksArray = new ArrayList<>(); @@ -11,4 +15,82 @@ public Book(String C_title,String C_author,boolean C_availabilityStatus,String C availabilityStatus=C_availabilityStatus; subtitle=C_subtitle; } + + public static void copyFileOnBook() { + try { + File books = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\books.txt"); + books.createNewFile(); + Scanner reader = new Scanner(books); + while (reader.hasNextLine()) { + String[] copy = reader.nextLine().split("#"); + boolean status = false; + if (copy[2].equals("false")){ + status = false; + } + else if (copy[2].equals("true")){ + status = true; + } + Book book =new Book(copy[0],copy[1],status,copy[3]); + book.uniquebookID = Integer.parseInt(copy[4]); + Book.booksArray.add(book); + } + reader.close(); + } catch (Exception e) { + System.out.println("sorry"); + } + } + public static void copyBookOnFile() { + try { + FileWriter writer = new FileWriter("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\books.txt"); + for (int i=0 ; i< booksArray.size(); i++){ + writer.write((booksArray.get(i).title)+"#"+(booksArray.get(i).author)+"#"); + if (booksArray.get(i).availabilityStatus){ + writer.write("true"+"#"); + } + else { + writer.write("false"+"#"); + } + writer.write(booksArray.get(i).subtitle+"#"+booksArray.get(i).uniquebookID+"\n"); + } + + writer.close(); + } catch (IOException e) { + System.out.println("sorry"); + throw new RuntimeException(e); + } + + + } + + public static void getAvailableBooks(){ + System.out.println("Available books are : "); + for (int i =0 ; i< Book.booksArray.size();i++){ + if(Book.booksArray.get(i).availabilityStatus){ + System.out.println(Book.booksArray.get(i).title); + } + } + + + } + + public static int getBookID(String title){ + for(int i=0 ; i< Book.booksArray.size();i++){ + if(Book.booksArray.get(i).title.equals(title)){ + return i ; + } + + + } + return (-1); + } + + public static boolean checkBookName(String name){ + for(int i=0; i Date: Thu, 16 May 2024 11:07:02 +0330 Subject: [PATCH 05/11] add rent function --- Answers/Library/src/Rent.java | 59 +++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/Answers/Library/src/Rent.java b/Answers/Library/src/Rent.java index 7d8502d..1ab98db 100644 --- a/Answers/Library/src/Rent.java +++ b/Answers/Library/src/Rent.java @@ -1,2 +1,61 @@ +import java.io.File; +import java.util.ArrayList; +import java.util.Scanner; + public class Rent { + public static void rent(int bookID, int userID) { + NormalUsers.normalUsersArray.get(userID).rentBooks = NormalUsers.normalUsersArray.get(userID).rentBooks + Book.booksArray.get(bookID).title + "#"; + Book.booksArray.get(bookID).availabilityStatus = false; + } + public static void copyRentFile() { + try { + ArrayList rentArray = new ArrayList<>(); + File rent = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\rent.txt"); + Scanner reader = new Scanner(rent); + while (reader.hasNextLine()) { + rentArray.add(reader.nextLine()); + } + } catch (Exception e) { + System.out.println("sorry"); + } + } + public static boolean checkRent(int bookID) { + return Book.booksArray.get(bookID).availabilityStatus; + } + public static boolean returnRent(String bookName){ + int bookID=Book.getBookID(bookName); + if(bookID == (-1)){ + System.out.println("The desired book was not found"); + return false; + } + if (Book.booksArray.get(bookID).availabilityStatus){ + System.out.println("This book had not been rented"); + return false; + } + Book.booksArray.get(bookID).availabilityStatus = true; + for ( int i=0 ; i< NormalUsers.normalUsersArray.size() ;i++){ + String[] rentbook = NormalUsers.normalUsersArray.get(i).rentBooks.split("#"); + for (int j=0 ; j < rentbook.length ; j++){ + if (rentbook[j].equals(bookName)){ + NormalUsers.normalUsersArray.get(i).rentBooks = NormalUsers.normalUsersArray.get(i).rentBooks.replace(bookName,""); + return true; + } + } + } + System.out.println("eror rented book not found"); + return false; + } + + public static void returnAllBooks(int userID){ + int rentbooks = NormalUsers.normalUsersArray.get(userID).rentBooks.split("#").length; + int rentedbooks = Book.booksArray.size(); + for (int i=0 ; i< rentbooks ; i++){ + for(int j=0 ; j< rentedbooks;j++){ + if (NormalUsers.normalUsersArray.get(userID).rentBooks.split("#")[i].equals(Book.booksArray.get(j).title)){ + Book.booksArray.get(j).availabilityStatus = true; + } + } + } + } } + From 54410296ba82b83b495b3610a435e4b497f4ff84 Mon Sep 17 00:00:00 2001 From: mosalehrabbani <155375059+mosalehrabbani@users.noreply.github.com> Date: Thu, 16 May 2024 11:09:30 +0330 Subject: [PATCH 06/11] add normal user function --- Answers/Library/src/NormalUsers.java | 65 ++++++++++++++++++++++++++++ Answers/Library/src/Rent.java | 2 +- 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/Answers/Library/src/NormalUsers.java b/Answers/Library/src/NormalUsers.java index f70d8a0..fd8becf 100644 --- a/Answers/Library/src/NormalUsers.java +++ b/Answers/Library/src/NormalUsers.java @@ -1,4 +1,8 @@ +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; import java.util.ArrayList; +import java.util.Scanner; public class NormalUsers extends User { String registeryDate; @@ -10,5 +14,66 @@ public NormalUsers(String C_name , String C_pass, String C_registryDate){ password=C_pass; registeryDate=C_registryDate; } + public static void copyFileOnNormalUser() { + try { + File normalUsers = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\normalUsers.txt"); + normalUsers.createNewFile(); + Scanner reader = new Scanner(normalUsers); + while (reader.hasNextLine()) { + String[] copy = reader.nextLine().split("#"); + NormalUsers normalUser = new NormalUsers(copy[0],copy[1],copy[2]); + normalUser.uniqueID= Integer.parseInt(copy[3]); + for(int i=3 ; i< copy.length;i++){ + normalUser.rentBooks = copy[i] + "#"; + } + normalUsersArray.add(normalUser); + } + reader.close(); + } catch (Exception e) { + System.out.println("sorry"); + } + } + public static void copyNormalUserOnFile() { + try { + FileWriter writer = new FileWriter("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\normalUsers.txt"); + for (int i=0 ; i< normalUsersArray.size(); i++){ + writer.write((normalUsersArray.get(i).name)+"#"+(normalUsersArray.get(i).password)+"#"+normalUsersArray.get(i).registeryDate+"#"+normalUsersArray.get(i).uniqueID+"#"); + for(int j=0; j< normalUsersArray.get(i).rentBooks.split("#").length;j++){ + writer.write(normalUsersArray.get(i).rentBooks.split("#")[j]+"#"); + } + writer.write("\n"); + } + writer.close(); + } catch (IOException e) { + System.out.println("sorry"); + throw new RuntimeException(e); + } + + + } + public static int getUserID(String name){ + for(int i=0 ; i< NormalUsers.normalUsersArray.size();i++){ + if(NormalUsers.normalUsersArray.get(i).name.equals(name)){ + return i ; + } + + + } + return (-1); + } + public static boolean checkPass(int userID, String userPass){ + if(NormalUsers.normalUsersArray.get(userID).password.equals(userPass)) { + return true; + } + return false; + } + public static boolean checkUsers(String name){ + for(int i=0; i Date: Thu, 16 May 2024 11:13:23 +0330 Subject: [PATCH 07/11] cli function --- Answers/Library/src/Cli.java | 236 +++++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) diff --git a/Answers/Library/src/Cli.java b/Answers/Library/src/Cli.java index 02164a1..c423401 100644 --- a/Answers/Library/src/Cli.java +++ b/Answers/Library/src/Cli.java @@ -1,2 +1,238 @@ +import java.util.Date; +import java.util.Random; +import java.util.Scanner; + public class Cli { + String massage; + Random rand = new Random(); + Date date=new Date(); + Scanner scan = new Scanner(System.in); + public boolean formatCheck(String command,int number ){ + int counter=0; + String editor=""; + for (int i=0 ; i")){ counter++; } + if (counter != number){ + return false; + } + return true; + } + public String editor(String sentens) { + String[] sen = sentens.split(""); + String edit =""; + boolean check=false; + for(int i=0;i")){ + check = !check; + } + if(sen[i].equals(">")){ + edit=edit+"#"; + } + if(check){ + edit=edit+sen[i]; + continue; + } + } + String res =edit.replace("<",""); + return res; + } + public String getMassage (){ + System.out.println("Enter your command : "); + massage = scan.nextLine(); + return massage; + } + public boolean massageCompile () + { + String[] compile = massage.split(" "); // maybe book name have space" " + if (!(compile[0].equals("lib"))){ + System.out.println("wrong command."); + return false; + } + if((compile[1].equals("rent")) && (compile.length == 3)){ + System.out.println("Sorry, I don't know who to rent the book to \nit's project bug"); + return false; + } + switch (compile[1]){ + case "add": + switch (compile[2]){ + case "book": + if (!formatCheck(massage,6)){ + System.out.println("wrong command."); + return false; + } + // + // + // we most make that defensive + // + // + String[] choose = editor(massage).split("#"); + if(Book.checkBookName(choose[0])){ + System.out.println("There is a book with this name.\nPlease choose another name or give it a number"); + return false; + } + Book book = new Book(choose[0],choose[1],true,choose[2]); + book.uniquebookID= Math.abs(rand.nextInt()%date.getSeconds()); + Book.booksArray.add(book); + return true; + case "member": + if (!formatCheck(massage,4)){ + System.out.println("wrong command."); + return false; + } + // + // + // we most make that defensive + // + // + choose = editor(massage).split("#"); + if(NormalUsers.checkUsers(choose[0])){ + System.out.println("There is a user with this name.\nPlease choose another name"); + return false; + } + Date today = new Date(); + NormalUsers normalUsers = new NormalUsers(choose[0],choose[1],today.toString()); + normalUsers.uniqueID = Math.abs(rand.nextInt()%date.getSeconds()); + NormalUsers.normalUsersArray.add(normalUsers); + return true; + case "admin": + if (!formatCheck(massage,6)){ + System.out.println("wrong command."); + return false; + } + // + // + // we most make that defensive + // + // + choose = editor(massage).split("#"); + if(Admin.checkAdmins(choose[0])){ + System.out.println("There is a admin with this name.\nPlease choose another name"); + return false; + } + Admin admin =new Admin(choose[0],choose[1]); + if (!choose[2].equals(admin.manegerPass)){ + System.out.println("You do not have access to add admin"); + return false; + } + Admin.adminArray.add(admin); + return true; + + + default: + System.out.println("wrong command."); + return false; + + } + case "get": + switch (compile[2]){ + case "hrs": + System.out.println("The library is active from 7:00 to 20:00 "); + return true; + case "available": + switch (compile[3]){ + case "books": + Book.getAvailableBooks(); + return true; + default: + System.out.println("wrong command."); + return false; + } + } + case "rent": + String password; + int userID,bookID ; + if (!formatCheck(massage,6)){ + System.out.println("wrong command."); + return false; + } + // + // + // we most make that defensive + // + // + String[] choose = editor(massage).split("#"); + userID=NormalUsers.getUserID(choose[1]); + if (userID == (-1)){ + System.out.println("The desired user was not found"); + return false; + } + bookID = Book.getBookID(choose[0]); + if (bookID == (-1)){ + System.out.println("The desired book was not found"); + return false; + } + password = choose[2]; + if(!(NormalUsers.checkPass(userID,password))){ + System.out.println("The user's password is incorrect"); + return false; + } + if(!(Rent.checkRent(bookID))){ + System.out.println("The desired book has been rented"); + return false; + } + Rent.rent(bookID,userID); + return true; + + case "remove" : + switch (compile[2]){ + case "member": + String name; + if (!formatCheck(massage,2)){ + System.out.println("wrong command."); + return false; + } + // + // + // we most make that defensive + // + // + choose = editor(massage).split("#"); + name = choose[0]; +// String adminName = editor(compile[4]); +// if(Admin.getAdminID(adminName) == (-1)){ +// System.out.println("The desired admin was not found"); +// return false; +// } // :(((((((((( +// password = editor(compile[5]); +// if(!(Admin.checkAdminPass(Admin.getAdminID(adminName),password))){ +// System.out.println("The admin's password is incorrect"); +// return false; +// } + Rent.returnAllBooks(NormalUsers.getUserID(name)); + NormalUsers.normalUsersArray.remove(NormalUsers.getUserID(name)); + return true; + default: + System.out.println("wrong command."); + return false; + } + + + case "return" : + String bookName; + if (!formatCheck(massage,2) ){ + System.out.println("wrong command."); + return false; + } + // + // + // we most make that defensive + // + // + choose = editor(massage).split("#"); + bookName = choose[0]; + if(Rent.returnRent(bookName)){ + System.out.println("The return of the book was well done"); + return true; + } + return false; + default: + System.out.println("wrong command."); + return false; + + + } + + + + } } From fc9d6115bd1befa431c36353aa3d873adaacb000 Mon Sep 17 00:00:00 2001 From: mosalehrabbani <155375059+mosalehrabbani@users.noreply.github.com> Date: Thu, 16 May 2024 11:17:03 +0330 Subject: [PATCH 08/11] add functions --- Answers/Library/src/Admin.java | 61 ++++++++++++++++++++++++++++++++ Answers/Library/src/Library.java | 2 ++ 2 files changed, 63 insertions(+) diff --git a/Answers/Library/src/Admin.java b/Answers/Library/src/Admin.java index f1778ce..39caa32 100644 --- a/Answers/Library/src/Admin.java +++ b/Answers/Library/src/Admin.java @@ -1,8 +1,69 @@ +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; import java.util.ArrayList; +import java.util.Scanner; public class Admin extends User{ String password; static ArrayList adminArray = new ArrayList<>(); final String manegerPass = "DonNotHoldaGrudge"; + public Admin(String C_name,String C_pass){ + name=C_name; + password=C_pass; + } + public static void copyFileOnAdmin() { + try { + + File admins = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\admins.txt"); + admins.createNewFile(); + Scanner reader = new Scanner(admins); + while (reader.hasNextLine()) { + String[] copy = reader.nextLine().split("#"); + Admin admin = new Admin(copy[0],copy[1]); + adminArray.add(admin); + + } + reader.close(); + } catch (Exception e) { + System.out.println("sorry"); + } + } + public static void copyAdminOnFile() { + try { + FileWriter writer = new FileWriter("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\admins.txt"); + for (int i=0 ; i< adminArray.size(); i++){ + writer.write((adminArray.get(i).name)+"#"+(adminArray.get(i).password)+"\n"); + writer.close(); + } + } catch (IOException e) { + System.out.println("sorry"); + throw new RuntimeException(e); + } + + + } + public static int getAdminID(String name){ + for(int i=0 ; i< Admin.adminArray.size();i++){ + if(Admin.adminArray.get(i).name.equals(name)){ + return i ; + } + } + return (-1); + } + public static boolean checkAdminPass(int adminID, String adminPass){ + if(Admin.adminArray.get(adminID).password.equals(adminPass)) { + return true; + } + return false; + } + public static boolean checkAdmins(String name){ + for(int i=0; i Date: Thu, 16 May 2024 11:18:01 +0330 Subject: [PATCH 09/11] my app function --- Answers/Library/src/MyAPP.java | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/Answers/Library/src/MyAPP.java b/Answers/Library/src/MyAPP.java index f6e6295..d9d0722 100644 --- a/Answers/Library/src/MyAPP.java +++ b/Answers/Library/src/MyAPP.java @@ -1,3 +1,40 @@ +import java.util.Scanner; + public class MyAPP { + public static void main(String[] args) { + System.out.println("Hello, welcome to merciful Aryaan library"); + Scanner scan = new Scanner(System.in); + Book.copyFileOnBook(); + Admin.copyFileOnAdmin(); + NormalUsers.copyFileOnNormalUser(); + Cli cli =new Cli(); + lable:while (true) { + String massage = cli.getMassage(); + if(massage.equals("exit")){ + break lable; + } + if(cli.massageCompile()){ + String answer; + while (true) { + System.out.println("do you have an other command ? y/n "); + answer = scan.next(); + if (answer.equals("y")) { + continue lable; + } else if (answer.equals("n")) { + break lable; + } else { + System.out.println("wrong command."); + continue ; + } + } + + } + } + System.out.println("Thank you for choosing our Library Management System. We're excited to provide you with an efficient and user-friendly platform for all your library needs. Happy reading!\n"); + Book.copyBookOnFile(); + Admin.copyAdminOnFile(); + NormalUsers.copyNormalUserOnFile(); + } + } From b4e43cfebfa807ba44925e619825bbdcbef080d2 Mon Sep 17 00:00:00 2001 From: mosalehrabbani <155375059+mosalehrabbani@users.noreply.github.com> Date: Thu, 16 May 2024 11:34:59 +0330 Subject: [PATCH 10/11] correction file addres --- Answers/Library/.idea/.name | 1 + .../Library/.idea/inspectionProfiles/Project_Default.xml | 6 ++++++ Answers/Library/src/Admin.java | 4 ++-- Answers/Library/src/Book.java | 4 ++-- Answers/Library/src/NormalUsers.java | 4 ++-- Answers/Library/src/Rent.java | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 Answers/Library/.idea/.name create mode 100644 Answers/Library/.idea/inspectionProfiles/Project_Default.xml diff --git a/Answers/Library/.idea/.name b/Answers/Library/.idea/.name new file mode 100644 index 0000000..23ad590 --- /dev/null +++ b/Answers/Library/.idea/.name @@ -0,0 +1 @@ +NormalUsers.java \ No newline at end of file diff --git a/Answers/Library/.idea/inspectionProfiles/Project_Default.xml b/Answers/Library/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..41078ee --- /dev/null +++ b/Answers/Library/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/Answers/Library/src/Admin.java b/Answers/Library/src/Admin.java index 39caa32..0201834 100644 --- a/Answers/Library/src/Admin.java +++ b/Answers/Library/src/Admin.java @@ -15,7 +15,7 @@ public Admin(String C_name,String C_pass){ public static void copyFileOnAdmin() { try { - File admins = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\admins.txt"); + File admins = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Lib\\Library-Management-System\\Answers\\Library\\src\\admins.txt"); admins.createNewFile(); Scanner reader = new Scanner(admins); while (reader.hasNextLine()) { @@ -31,7 +31,7 @@ public static void copyFileOnAdmin() { } public static void copyAdminOnFile() { try { - FileWriter writer = new FileWriter("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\admins.txt"); + FileWriter writer = new FileWriter("C:\\Users\\MSI\\OneDrive\\Desktop\\Lib\\Library-Management-System\\Answers\\Library\\src\\admins.txt"); for (int i=0 ; i< adminArray.size(); i++){ writer.write((adminArray.get(i).name)+"#"+(adminArray.get(i).password)+"\n"); writer.close(); diff --git a/Answers/Library/src/Book.java b/Answers/Library/src/Book.java index 8ac14f6..2b10929 100644 --- a/Answers/Library/src/Book.java +++ b/Answers/Library/src/Book.java @@ -18,7 +18,7 @@ public Book(String C_title,String C_author,boolean C_availabilityStatus,String C public static void copyFileOnBook() { try { - File books = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\books.txt"); + File books = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Lib\\Library-Management-System\\Answers\\Library\\src\\books.txt"); books.createNewFile(); Scanner reader = new Scanner(books); while (reader.hasNextLine()) { @@ -41,7 +41,7 @@ else if (copy[2].equals("true")){ } public static void copyBookOnFile() { try { - FileWriter writer = new FileWriter("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\books.txt"); + FileWriter writer = new FileWriter("C:\\Users\\MSI\\OneDrive\\Desktop\\Lib\\Library-Management-System\\Answers\\Library\\src\\books.txt"); for (int i=0 ; i< booksArray.size(); i++){ writer.write((booksArray.get(i).title)+"#"+(booksArray.get(i).author)+"#"); if (booksArray.get(i).availabilityStatus){ diff --git a/Answers/Library/src/NormalUsers.java b/Answers/Library/src/NormalUsers.java index fd8becf..0c53bda 100644 --- a/Answers/Library/src/NormalUsers.java +++ b/Answers/Library/src/NormalUsers.java @@ -16,7 +16,7 @@ public NormalUsers(String C_name , String C_pass, String C_registryDate){ } public static void copyFileOnNormalUser() { try { - File normalUsers = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\normalUsers.txt"); + File normalUsers = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Lib\\Library-Management-System\\Answers\\Library\\src\\normalUsers.txt"); normalUsers.createNewFile(); Scanner reader = new Scanner(normalUsers); while (reader.hasNextLine()) { @@ -35,7 +35,7 @@ public static void copyFileOnNormalUser() { } public static void copyNormalUserOnFile() { try { - FileWriter writer = new FileWriter("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\normalUsers.txt"); + FileWriter writer = new FileWriter("C:\\Users\\MSI\\OneDrive\\Desktop\\Lib\\Library-Management-System\\Answers\\Library\\src\\normalUsers.txt"); for (int i=0 ; i< normalUsersArray.size(); i++){ writer.write((normalUsersArray.get(i).name)+"#"+(normalUsersArray.get(i).password)+"#"+normalUsersArray.get(i).registeryDate+"#"+normalUsersArray.get(i).uniqueID+"#"); for(int j=0; j< normalUsersArray.get(i).rentBooks.split("#").length;j++){ diff --git a/Answers/Library/src/Rent.java b/Answers/Library/src/Rent.java index 1c6cd74..a13dd8c 100644 --- a/Answers/Library/src/Rent.java +++ b/Answers/Library/src/Rent.java @@ -10,7 +10,7 @@ public static void rent(int bookID, int userID) { public static void copyRentFile() { try { ArrayList rentArray = new ArrayList<>(); - File rent = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Library\\Library-Management-System\\Answers\\Library\\src\\rent.txt"); + File rent = new File("C:\\Users\\MSI\\OneDrive\\Desktop\\Lib\\Library-Management-System\\Answers\\Library\\src\\rent.txt"); Scanner reader = new Scanner(rent); while (reader.hasNextLine()) { rentArray.add(reader.nextLine()); From 0db644b99e367e315bee47c8c40c2c6b0847eed5 Mon Sep 17 00:00:00 2001 From: mosalehrabbani <155375059+mosalehrabbani@users.noreply.github.com> Date: Thu, 16 May 2024 13:03:54 +0330 Subject: [PATCH 11/11] add command Guide --- Answers/Library/.idea/.name | 2 +- Answers/Library/src/MyAPP.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Answers/Library/.idea/.name b/Answers/Library/.idea/.name index 23ad590..4856afe 100644 --- a/Answers/Library/.idea/.name +++ b/Answers/Library/.idea/.name @@ -1 +1 @@ -NormalUsers.java \ No newline at end of file +MyAPP.java \ No newline at end of file diff --git a/Answers/Library/src/MyAPP.java b/Answers/Library/src/MyAPP.java index d9d0722..072bafb 100644 --- a/Answers/Library/src/MyAPP.java +++ b/Answers/Library/src/MyAPP.java @@ -2,7 +2,16 @@ public class MyAPP { public static void main(String[] args) { - System.out.println("Hello, welcome to merciful Aryaan library"); + System.out.println("Hello, welcome to merciful Aryaan library\n"); + System.out.println("You can use the following commands:\n"); + System.out.println("- `lib add book `: Add a new book to the library.\n" + + "- `lib get hrs`: Retrieve library operating hours.\n" + + "- `lib rent `: Rent a book from the library.\n" + + "- `lib add member `: Add a new member to the library.\n" + + "- `lib rent `: Rent a book for a specific member.\n" + + "- `lib get available books`: View available books for rental.\n" + + "- `lib remove member `: Remove a member from the library (admin privilege required).\n" + + "- `lib return `: Return a rented book to the library.\n"); Scanner scan = new Scanner(System.in); Book.copyFileOnBook(); Admin.copyFileOnAdmin();