package user;
import book.BookList;
import operation.IOPeration;
public abstract class User {
private String name;
public IOPeration[] operations;
public User(String name) {
this.name = name;
}
public abstract int menu();
public void doIoperation(int choice, BookList bookList){
this.operations[choice].work(bookList);
}
}
AdminUser类——管理员
继承于User类
登录过来之后,会继承 ioPeration 数组,接下来对数组进行=初始化
将要实现的功能所对应的类都初始化到 ioPeration 数组中,方便后续通过下标进行访问操作
image.png|480
重写菜单 menu() 的实现方法
创建一个 choice 成员变量
用来接收用户输入的数字
返回接收的数字
代码(user.User.AdminUser)
代码语言:javascript代码运行次数:0运行复制
package user;
import operation.*;
import java.util.Scanner;
public class AdminUser extends User{
public AdminUser(String name) {
super(name);
this.operations = new IOPeration[]{
new ExitOperation(),
new FindOperation(),
new AddOperation(),
new DelOperation(),
new ShowOperation()
};
}
@Override
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;
}
}
NormalUser类——普通用户
继承与User类
登录过来之后,会继承 ioPeration 数组,接下来对数组进行=初始化
将要实现的功能所对应的类都初始化到 ioPeration 数组中,方便后续通过下标进行访问操作
image.png
重写菜单 menu() 的实现方法
创建一个 choice 成员变量
用来接收用户输入的数字
返回接收的数字
代码(user.User.NormalUser)
代码语言:javascript代码运行次数:0运行复制
package user;
import operation.*;
import java.util.Scanner;
public class NormalUser extends User{
public NormalUser(String name) {
super(name);
this.operations = new IOPeration[]{
new ExitOperation(),
new FindOperation(),
new BorrowOperation(),
new ReturnOperation()
};
}
@Override
public 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 sc = new Scanner(System.in);
int choice = sc.nextInt();
return choice;
}
}
package operation;
import book.Book;
import book.BookList;
import java.util.Scanner;
public class DelOperation implements IOPeration {
@Override
public void work(BookList bookList) {
System.out.println("删除图书");
System.out.println("输入你想要删除的图书名:");
Scanner sc = new Scanner(System.in);
String bookName = sc.nextLine();
int number = bookList.getUsedSize();
for (int i = 0; i < number; i++) {
Book book = bookList.getBook(i);
if (book.getName().equals(bookName)) {
}
}
}
}
实例化一个 Book 类对象 book,用来接收 bookList 通过下标依次调用 getBook() 方法所得到的书籍的信息
打印出每一个 book 的信息
代码(operation.ShowOperation)
代码语言:javascript代码运行次数:0运行复制
package operation;
import book.Book;
import book.BookList;
public class ShowOperation implements IOPeration{
@Override
public void work(BookList bookList) {
System.out.println("显示图书......");
int currentSize = bookList.getUsedSize();
for (int i = 0; i < currentSize; i++) {
Book book = bookList.getBook(i);
System.out.println(book);
}
}
}
package operation;
import book.Book;
import book.BookList;
public class ExitOperation implements IOPeration{
@Override
public void work(BookList bookList) {
System.out.println("退出系统");
int number = bookList.getUsedSize();
for (int i = 0; i < number; i++) {
bookList.setBooks(i,null);
}
System.exit(0);
}
}
发布评论