金融培训网站源码,海安网站优化,网站需要哪些,东莞海边网站建设工作室꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN … ꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好我是xiaoxie.希望你看完之后,有不足之处请多多谅解让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶个人主页xiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 系列专栏xiaoxie的JAVA系列专栏——CSDN博客●ᴗσσணღ*我的目标:团团等我( ◡̀_◡́ ҂) ( ⸝⸝⸝›ᴥ‹⸝⸝⸝ )欢迎各位→点赞 收藏⭐️ 留言关注互三必回! 一.Book类
首先我们需要先创建一个Book类
public class Book {private String name;private String author;private double price;private String type;private boolean isBorrowed;// 构造函数public Book(String name, String author, double price, String type) {this.name name;this.author author;this.price price;this.type type;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author author;}public double getPrice() {return price;}public void setPrice(double price) {this.price price;}public String getType() {return type;}public void setType(String type) {this.type type;}public boolean isBorrowed() {return isBorrowed;}public void setBorrowed(boolean borrowed) {isBorrowed borrowed;}// 重写toString方法Overridepublic String toString() {return Book{ name name \ , author author \ , price price , type type \ ( (isBorrowed true) ? 已借出 : 未借出 )//, isBorrowed isBorrowed };}
}
二.BookList类
public class BookList {public Book[] List;public int size;public BookList() {List new Book[10];List[0] new Book(西游记, 吴承恩, 10.25, 小说);List[1] new Book(三国演义,罗贯中,20.50,小说);List[2] new Book(红楼梦,曹雪芹,50.9,小说);List[3] new Book(水浒传,施耐庵,15.5,小说);size 4;}public boolean isFull() {return size List.length;}public boolean isEmpty() {return size 0;}public void newLength() {List new Book[size10];}public Book getList(int i) {return List[i];}public int getSize() {return size;}public void setList(Book book , int pos) {List[pos] book;}public void setSize(int size) {this.size size;}
}
三.User类
public abstract class User {public IOperation[] iOperations;public String name;public User(String name) {this.name name;}public abstract int menu();public void doOperation(int choice,BookList bookList) {IOperation operation this.iOperations[choice];operation.work(bookList);}
}
四.管理员类
public class Admin extends User{public Admin(String name) {super(name);this.iOperations new IOperation[]{new ExitOperation(),new FindOperation(),new AddOperation(),new DeleteOperation(),new ShowOperation()};}public int menu() {System.out.println(********管理员菜单********);System.out.println(1.查找图书);System.out.println(2.新增图书);System.out.println(3.删除图书);System.out.println(4.显示图书);System.out.println(0.退出系统);System.out.println(************************);System.out.println(请输入你的操作);Scanner scanner new Scanner(System.in);int choice scanner.nextInt();return choice;}
} 五.普通类
public class NormalUser extends User{public NormalUser(String name) {super(name);this.iOperations new IOperation[] {new ExitOperation(),new FindOperation(),new BorrowedOperation(),new ReturnOperation()};}Overridepublic int menu() {System.out.println(********普通用户菜单********);System.out.println(1.查找图书);System.out.println(2.借阅图书);System.out.println(3.归还图书);System.out.println(0.退出系统);System.out.println(***************************);System.out.println(请输入你的操作);Scanner scanner new Scanner(System.in);int choice scanner.nextInt();return choice;}
}
六.实现操作的接口
public interface IOperation {public void work(BookList bookList);
} 七.各种操作类
import java.util.Scanner;// 添加图书的操作public class AddOperation implements IOperation{Overridepublic void work(BookList bookList) {if(bookList.isFull()) {bookList.newLength();}Scanner scan new Scanner(System.in);System.out.println(请输入你要添加的书名);String name scan.nextLine();System.out.println(请输入你要添加图书的作者);String author scan.nextLine();System.out.println(请输入你要添加图书的价格);double price scan.nextDouble();scan.nextLine();System.out.println(请输入你要添加图书的类型);String type scan.nextLine();Book tmp new Book(name,author,price,type);int count bookList.getSize();for (int i 0; i count; i) {if(tmp.getName().equals(bookList.getList(i).getName())) {System.out.println(请勿重复添加);System.exit(0);}}bookList.setList(tmp,count);bookList.setSize(count1);}
}
import java.util.Scanner;// 借出书籍public class BorrowedOperation implements IOperation {Overridepublic void work(BookList bookList) {Scanner scan new Scanner(System.in);int count1 bookList.getSize();System.out.println(以下是图书馆的书单: );for (int i 0; i count1; i) {if (bookList.getList(i) ! null) {System.out.println(bookList.getList(i));}}System.out.println(请输入你要借阅的图书名字:);String name scan.nextLine();int count bookList.getSize();int i 0;for (; i count; i) {if (bookList.getList(i).getName().equals(name) ) {if(bookList.getList(i).isBorrowed() ) {System.out.println(书已被借走请等归还后再来借阅);return;}bookList.getList(i).setBorrowed(true);System.out.println(借阅成功请于7天时间内归还);return;}}if(i count) {System.out.println(没有找到这本书);}}
}
import java.util.Scanner;//删除书籍的操作public class DeleteOperation implements IOperation {Overridepublic void work(BookList bookList) {if(bookList.isEmpty()) {throw new NullException(书架为空);}Scanner san new Scanner(System.in);System.out.println(请输入你要删除的图书名字);String name san.nextLine();int count bookList.getSize();int i 0;for (; i count; i) {if(bookList.getList(i).getName().equals(name)) {break;}}if(i count) {System.out.println(没有找到这本书);} else {while (i count) {bookList.List[i] bookList.List[i1];}System.out.println(删除成功);bookList.setSize(count-1);}}
}
// 退出操作public class ExitOperation implements IOperation{Overridepublic void work(BookList bookList) {System.exit(0);}
}
import java.util.Scanner;// 通过图书的名字来查找图书public class FindOperation implements IOperation{Overridepublic void work(BookList bookList) {Scanner scan new Scanner(System.in);System.out.println(请输入你要查找的图书名字);String name scan.nextLine();int count bookList.getSize();int i 0;for (; i count; i) {if(bookList.getList(i).getName().equals(name)) {System.out.println(图书信息如下);System.out.println(bookList.getList(i));break;}}if(i count) {System.out.println(没有找到这本书);}}
}
//归还操作
public class ReturnOperation implements IOperation{Overridepublic void work(BookList bookList) {Scanner scan new Scanner(System.in);System.out.println(请输入你要归还的图书名字:);String name scan.nextLine();int count bookList.getSize();int i 0;for (; i count; i) {if (bookList.getList(i).getName().equals(name) bookList.getList(i).isBorrowed()) {bookList.getList(i).setBorrowed(false);System.out.println(归还成功欢迎下次光临);return;}}if(i count) {System.out.println(没有找到这本书);}}
}
//显示图书的操作public class ShowOperation implements IOperation{Overridepublic void work(BookList bookList) {int count bookList.getSize();System.out.println(图书信息如下: );for (int i 0; i count; i) {if (bookList.getList(i) ! null) {System.out.println(bookList.getList(i));}}}
}
//异常
public class NullException extends RuntimeException {public NullException() {}public NullException(String message) {super(message);}
}
八.主函数
public class Main {public static User menu() {int choice 0;String possWord 123456;System.out.println(请输入你的身份);System.out.println(1.管理员 2.普通用户 );Scanner scan new Scanner(System.in);choice scan.nextInt();scan.nextLine();if (choice 1) {System.out.println(请输入密码);int count 3;while (count 0) {String MyPossWord scan.nextLine();if (MyPossWord.equals(possWord)) {count -1;break;} else {--count;System.out.println(密码错误你还有 count 次机会);}}if (count ! -1) {System.out.println(密码输入错误超过3次请您24小时后在来);System.exit(0);}return new Admin(admin);}return new NormalUser(noraluser);}public static void main(String[] args) {BookList bookList new BookList();User user Main.menu();while (true) {int choice user.menu();user.doOperation(choice,bookList);}}
}
九.说明
以上就是java使用面向对象的知识来实现图书管理系统的全部内容了此代码仅仅只是对初学Java的读者有帮助可以通过借鉴此代码再根据自己所学的知识自己构建一个图书管理系统这个 图书管理系统也是差不多涵盖了JavaSE所有内容博主相信你自己下去编写一个图书管理系统会对Java的掌握更上一步。