简单图书管理系统
book包
1.Book 类
package book;
public class Book {
public String name;
public String author;
public int price;
public String type;
//是否借出
public boolean isBorrowed;
public Book(String name, String author, int price, String type) {
this.name = name;
this.author = author;
this.price = price;
this.type = type;
}
@java.lang.Override
public java.lang.String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
", type='" + type + '\'' +
" "+((isBorrowed==true)?"已经被借出":"未被借出")+
//", isBorrowed=" + isBorrowed +
'}';
}
}
2.BookList 类
package book;
public class BookList {
public Book[] books=new Book[10];
/**
* 有效数据个数
*/
public int size;
public BookList(){
books[0]=new Book("三国演义","罗贯中",13,"小说");
books[1]=new Book("红楼梦","曹雪芹",16,"小说");
books[2]=new Book("西游记","施耐庵",20,"小说");
this.size=3;
}
public void setBooks(int pos,Book book)
{
this.books[pos]=book;
}
public Book getBook(int pos){
return books[pos];
}
public int getSize()
{
return size;
}
public void setSize(int size) {
this.size = size;
}
}
opertion包
1.IOperation 接口类
package opertion;
import book.BookList;
import java.util.Scanner;
public interface IOperation {
Scanner scanner = new Scanner(System.in);
void work(BookList bookList);
}
2.AddOperation 类
package opertion;
import book.Book;
import book.BookList;
public class AddOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("添加书籍");
System.out.println("请输入图书的名字");
String name = scanner.next();
System.out.println("请输入图书的作者");
String author = scanner.next();
System.out.println("请输入图书的价格");
int price = scanner.nextInt();
System.out.println("请输入图书的类型");
String type = scanner.next();
Book book = new Book(name,author,price,type);
//没有考虑满的情况
bookList.books[bookList.getSize()]=book;
bookList.setSize(bookList.getSize()+1);
System.out.println("添加成功");
}
}
3.BorrowOperation 类
package opertion;
import book.Book;
import book.BookList;
public class BorrowOperation implements IOperation {
@Override
public void work(BookList bookList) {
System.out.println("BorrowOperation");
System.out.println("输入需要借阅书籍的名称");
String name = scanner.next();
//不会从bookList-》进行删除-》isBorrowed true
//1、找这本书 是否存在
int i=0;
for(;i<bookList.getSize();i++){
if(bookList.getBook(i).name.equals(name)){
break;
}
}
if (i >= bookList.getSize()) {
System.out.println("没有这么书");
return;
}
//2、他是否被借出 false 可以借
Book book =bookList.getBook(i);
if(book.isBorrowed){
System.out.println("已经被借出");
}else{
book.isBorrowed=true;
System.out.println("借书成功");
}
}
}
4.DelOperation 类
package opertion;
import book.Book;
import book.BookList;
public class DelOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("DelOperation");
System.out.println("输入需要删除书籍的名称");
String name = scanner.next();
//不会从bookList-》进行删除-》isBorrowed true
//1、找这本书 是否存在
int i=0;
for(;i<bookList.getSize();i++){
if(bookList.getBook(i).name.equals(name)){
break;
}
}
if (i >= bookList.getSize()) {
System.out.println("没有这么书");
return;
}
//2、挪书的位置
for (int j=i;j<bookList.getSize();j++){
Book book=bookList.getBook(j+1);
bookList.setBooks(j+1,book);
}
bookList.setSize(bookList.getSize()-1);
System.out.println("删除成功!");
}
}
5.DisplayOperation 类
package opertion;
import book.BookList;
public class DisplayOperation implements IOperation {
@Override
public void work(BookList bookList) {
System.out.println("DisplayOperation");
for (int i = 0; i < bookList.getSize(); i++) {
System.out.println(bookList.getBook(i));
}
}
}
6.ExitOperation 类
package opertion;
import book.BookList;
public class ExitOperation implements IOperation {
@Override
public void work(BookList bookList) {
System.out.println("byebye");
System.exit(0);
}
}
7.FindOperation 类
package opertion;
import book.BookList;
public class FindOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("FindOperation");
System.out.println("输入需要借阅书籍的名称");
String name = scanner.next();
//不会从bookList-》进行删除-》isBorrowed true
//1、找这本书 是否存在
int i=0;
for(;i<bookList.getSize();i++){
if(name.equals(bookList.getBook(i).name)){
System.out.println(bookList.getBook(i));
break;
}
}
if (i >= bookList.getSize()) {
System.out.println("没有这本书");
return;
}else {
System.out.println("查找书籍成功!");
}
}
}
8.ReturnOperation 类
package opertion;
import book.Book;
import book.BookList;
public class ReturnOperation implements IOperation{
@Override
public void work(BookList bookList) {
System.out.println("ReturnOperation");
System.out.println("输入需要归还书籍的名称");
String name = scanner.next();
int i=0;
for(;i<bookList.getSize();i++){
if(bookList.getBook(i).name.equals(name)){
break;
}
}
if (i >= bookList.getSize()) {
System.out.println("没有这本书");
return;
}
Book book =bookList.getBook(i);
if(book.isBorrowed){
book.isBorrowed=false;
System.out.println("归还成功");
}else{
System.out.println("未被借出");
}
}
}
user包
1.User抽象类
package user;
import book.BookList;
import opertion.IOperation;
public abstract class User{
protected String name;
protected IOperation[] operations;
public abstract int menu();
public void doOperation(int choice, BookList bookList){
operations[choice].work(bookList);
}
}
2.Admin 类
package user;
import opertion.*;
import java.util.Scanner;
public class Admin extends User{
public Admin(String name){
this.name=name;
this.operations=new IOperation[] {
new ExitOperation(),
new FindOperation(),
new AddOperation(),
new DelOperation(),
new DisplayOperation()
};
}
@Override
public int menu() {
System.out.println("=============================");
System.out.println("Hello " + this.name + ", 欢迎使用图书管理系统!");
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;
}
}
3.NormalUser 类
package user;
import opertion.*;
import java.util.Scanner;
public class NormalUser extends User{
public NormalUser(String name){
this.name=name;
this.operations=new IOperation[]{
new ExitOperation(),
new FindOperation(),
new BorrowOperation(),
new ReturnOperation(),
new DisplayOperation()
};
}
@Override
public int menu() {
System.out.println("=============================");
System.out.println("Hello " + this.name + ", 欢迎使用图书管理系统!");
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;
}
}
main方法类
import book.BookList;
import user.Admin;
import user.NormalUser;
import user.User;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
BookList bookList=new BookList();
User user=login();
while(true){
int choice=user.menu();
user.doOperation(choice,bookList);
}
}
public static User login(){
System.out.println("请输入名字:");
Scanner scanner=new Scanner(System.in);
String name=scanner.nextLine();
System.out.println("请输入你的身份:(0:普通用户,1:管理员)");
int choice=scanner.nextInt();
if(choice==0){
return new NormalUser(name);
}else if(choice==1){
return new Admin(name);
}
return null;
}
}