Java图书管理系统

问题遇到的现象和发生背景

1.操作完成以后,不会返回上一级菜单
2.如何实现管理员菜单的额外功能
3.请教一下注册功能怎么写

用代码块功能插入代码,请勿粘贴截图

import book.;
import caozuo.
;
import user.*;
import java.util.Scanner;
public class Main {
public static User login(){
System.out.println("欢迎来到图书管理系统");
System.out.println("请输入你的姓名");
Scanner scanner=new Scanner(System.in);
String name=scanner.nextLine();
System.out.println("1.用户登录 2.管理员登录");
int user=scanner.nextInt();
if (user==1){
return new Normaluser(name);
}else {
return new adminstrator(name);
}
}
public static void main(String[] args) {
Booklist booklist=new Booklist();
User user=login();
while(true) {
int choice=user.menu();
Userlist Userlist = null;
user.docaozuo(choice,booklist,Userlist);
}
}
}
package book;

public class Book {
private String name;//书名
private String ISBN;//序列号
private String author;//作者

    private boolean isBorrowd;

public boolean isBorrowd() {
    return isBorrowd;
}

public void setBorrowd(boolean borrowd) {
    isBorrowd = borrowd;
}

public Book() {

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getISBN() {
        return ISBN;
    }

    public void setISBN(String ISBN) {
        this.ISBN = ISBN;
    }

    public String getWriter() {
        return author;
    }

    public void setWriter(String author) {
        this.author = author;
    }


public Book(String name, String ISBN, String author) {
    this.name = name;
    this.ISBN = ISBN;
    this.author = author;
}

@Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", ISBN='" + ISBN + '\'' +
                ", author='" + author + '\'' +
                ",isBorrowed="+
                ((isBorrowd==true)?"已被借阅":"未被借阅")+
                '}';
    }
}

package book;

public class Booklist
{
Book book[]=new Book[100];
private int usedsize;
public Booklist()
{
book[0]=new Book("西游记","1","吴承恩");
book[1]=new Book("三国演义","2","罗贯中");
book[2]=new Book("红楼梦","3","曹雪芹");
usedsize=3;
}

public int getUsedsize() {
    return usedsize;
}

public void setUsedsize(int usedsize) {
    this.usedsize = usedsize;
}

public Book getBook(int pos) {
    return book[pos];
}
public void setBook(int pos, Book book) {
    this.book[pos]=book;
}

}
package caozuo;
import book.*;
import java.util.Scanner;
public class addbook implements IOcaozuo
{

@Override
public void work(Booklist booklist) {
    System.out.println("添加图书");
    Scanner scanner=new Scanner(System.in);
    System.out.println("请输入添加书籍的名称");
    String name=scanner.nextLine();
    System.out.println("请输入书籍序列号");
    String ISBN=scanner.nextLine();
    System.out.println("请输入作者名称");
    String author=scanner.nextLine();
    Book book=new Book(name,ISBN,author);
    booklist.setBook(booklist.getUsedsize(),book);
    System.out.println("添加成功!");
    booklist.setUsedsize(booklist.getUsedsize()+1);
        }
    }

package caozuo;
import java.util.Scanner;
import book.Booklist;

public class borrowbook implements IOcaozuo{
@Override
public void work(Booklist booklist) {
System.out.println("借阅图书");
System.out.println("请输入你要借阅书籍的名称");
Scanner scanner=new Scanner(System.in);
String name=scanner.nextLine();
int size=booklist.getUsedsize();
for (int i=0;i<size;i++){
if (booklist.getBook(i).getName().equals(name)){
booklist.getBook(i).setBorrowd(true);
System.out.println("借阅成功");
return;
}
}
System.out.println("未找到相关书籍");
}
}
package caozuo;
import user.*;
import java.util.Scanner;

public class adduser implements POcaozuo {
@Override
public void work(Userlist userlist) {
System.out.println("添加用户");
Scanner scanner=new Scanner(System.in);
System.out.println("请输入添加用户的名称");
String name=scanner.nextLine();
System.out.println("请输入添加用户的学号");
String ID=scanner.nextLine();
System.out.println("请输入添加用户的电话");
String telephone=scanner.nextLine();
System.out.println("请输入添加用户的地址");
String address=scanner.nextLine();
Usermessage usermessage1=new Usermessage(name,ID, telephone,address);
userlist.setUsermessage(userlist.getUsedsize1(),usermessage1);
System.out.println("添加成功!");
userlist.setUsedsize1(userlist.getUsedsize1()+1);

}

}

package caozuo;
import java.util.Scanner;

import book.Book;
import book.Booklist;

public class deletebook implements IOcaozuo
{
@Override
public void work(Booklist booklist) {
System.out.println("删除图书");
System.out.println("请输入你要删除的书籍序列号");
Scanner scanner=new Scanner(System.in);
String ISBN=scanner.nextLine();
int size=booklist.getUsedsize();
boolean key=false;
for (int i=0;i<size-1;i++){
if (booklist.getBook(i).getISBN().equals(ISBN)||key==true){
Book book=booklist.getBook(i+1);
booklist.setBook(i,book);
System.out.println("该序列号不存在");
}
}
booklist.setUsedsize(booklist.getUsedsize()-1);
System.out.println("删除成功");
}
}
package caozuo;
import java.util.Scanner;
import book.Booklist;

import static java.lang.System.exit;

public class exitcaozuo implements IOcaozuo{
@Override
public void work(Booklist booklist) {
System.out.println("退出系统");
exit(1);
}
}
package caozuo;
import java.util.Scanner;
import book.Booklist;

public class findbook implements IOcaozuo {
@Override
public void work(Booklist booklist) {
System.out.println("查找图书");
System.out.println("请输入想要查找的图书名称");
Scanner scanner=new Scanner(System.in);
String name=scanner.nextLine();
int size= booklist.getUsedsize();
for (int i = 0; i < size; i++) {
if (booklist.getBook(i).getName().equals(name)) {
System.out.println(booklist.getBook(i));
return;
}
}
System.out.println("未找到你想要寻找的书");
}
}

package caozuo;

import book.Booklist;

public interface IOcaozuo
{
void work(Booklist booklist);
}
package caozuo;
import user.Userlist;
import user.Usermessage;
public interface POcaozuo {
void work(Userlist userlist);
}
package caozuo;
import java.util.Scanner;
import book.Booklist;

public class returnbook implements IOcaozuo{
@Override
public void work(Booklist booklist) {
System.out.println("归还图书");
System.out.println("请输入你要归还的图书名称");
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
for (int i = 0; i < booklist.getUsedsize(); i++) {
if (booklist.getBook(i).getName().equals(name)) {
booklist.getBook(i).setBorrowd(true);
System.out.println("归还成功!");
return;
}
}
System.out.println("归还失败,未找到该书籍");
}
}
package user;
import java.util.Scanner;
import caozuo.*;

public class adminstrator extends User{
public adminstrator(String name){
super(name);
this.iOcaozuos=new IOcaozuo[]{
new exitcaozuo(),
new addbook(),
new deletebook(),
new findbook(),
};
}

@Override
public int menu() {
    System.out.println("0.退出系统");
    System.out.println("1.添加图书");
    System.out.println("2.删除图书");
    System.out.println("3.查找图书");
    System.out.println("4.添加用户");
    System.out.println("5.删除用户");
    Scanner scanner=new Scanner(System.in);
    int choice=scanner.nextInt();
    return choice;
}

}
package user;
import caozuo.*;
import java.util.Scanner;
public class Normaluser extends User{
public Normaluser(String name){
super(name);
this.iOcaozuos=new IOcaozuo[]{
new exitcaozuo(),
new findbook(),
new borrowbook(),
new returnbook()

    };
}
@Override
public int menu() {
    System.out.println("0.退出系统");
    System.out.println("1.查找图书");
    System.out.println("2.借阅图书");
    System.out.println("3.归还图书");
    Scanner scanner=new Scanner(System.in);
    int choice=scanner.nextInt();
    return choice;
}

}
package user;

import book.Booklist;
import caozuo.IOcaozuo;
import caozuo.POcaozuo;

public abstract class User {
protected String name;
protected IOcaozuo[] iOcaozuos;
protected POcaozuo[] pOcaozuos;
public User(String name) {
this.name = name;
}

public abstract int menu();
public void docaozuo(int choice, Booklist bookList,Userlist userlist) {
    this.iOcaozuos[choice].work(bookList);
    this.pOcaozuos[choice].work(userlist);
}

}
package user;

public class Userlist
{
Usermessage usermessage[]=new Usermessage[100];
private int usedsize1;
public Usermessage getUsermessage(int pos) {
return usermessage[pos];
}

public int getUsedsize1() {
    return usedsize1;
}

public void setUsedsize1(int usedsize1) {
    this.usedsize1 = usedsize1;
}

public void setUsermessage(int pos,Usermessage usermessage) {
    this.usermessage[pos] = usermessage;
}

public void Usermessage()
{
    Usermessage[] Usermessage = new Usermessage[0];
    Usermessage[0]=new Usermessage("李","214010315","17728870","h3-225");
    Usermessage[1]=new Usermessage("蓝","143010310","13248289","h3-225");
    Usermessage[2]=new Usermessage("骆","16516465","17686096","h2-401");
    usedsize1=3;
}

}
package user;

public class Usermessage {
private String name;//姓名
private String ID;//ID号
private String telephone;//电话
private String address;//地址

public Usermessage(String name, String ID, String telephone, String address) {
    this.name = name;
    this.ID = ID;
    this.telephone = telephone;
    this.address = address;
}

public Usermessage() {

}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getID() {
    return ID;
}

public void setID(String ID) {
    this.ID = ID;
}

public String getTelephone() {
    return telephone;
}

public void setTelephone(String telephone) {
    this.telephone = telephone;
}

public String getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}
@Override
public String toString() {
    return "Usermessage{" +
            "name='" + name + '\'' +
            ", ID='" + ID + '\'' +
            ", telephone'" + telephone + '\'' +
            ",address"+address +'\''+
            '}';
}

}

img

1 返回上一级菜单。
想象菜单是分层次的,
第一层其实是for循环显示菜单,第二层是在循环菜单里面进行操作,在菜单里面调用进行具体操作,返回上一次菜单就是return。

3.添加新用户就是添加新的用户对象,并保存起来就行了。