目录
一.book包
book包底下有两个类
一个是book类,另一个是book list类
具体代码以下实现:
package book;
public class book {
private String name;
private int price;
private String author;
private String isBrow="未借阅";
public book(String name, int price, String author) {
this.name = name;
this.price = price;
this.author = author;
}
public void setName(String name) {
this.name = name;
}
public void setPrice(int price) {
this.price = price;
}
public void setAuthor(String author) {
this.author = author;
}
public void setBrow(String brow) {
isBrow = brow;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
public String getAuthor() {
return author;
}
public String isBrow() {
return isBrow;
}
@Override
public String toString() {
return "book{" +
"name='" + name + '\'' +
", price=" + price +
", author='" + author + '\'' +
", isBrow=" + isBrow +
'}';
}
}
package book;
public class Booklist {
book[] Book=new book[10];//最多存十本书
private int MaxSize;
public void setBook(int pos,book Book){
this.Book[pos]=Book;
}
public Booklist() {
Book[0]=new book("三国演义",32,"吴承恩");
Book[1]=new book("水浒传",21,"曹雪芹");
Book[2]=new book("西游记",21,"大鹏");
MaxSize=3;
}
public book getBook(int pos)
{
return Book[pos];
}
public int getMaxSize() {
return MaxSize;
}
public void setMaxSize(int maxSize) {
MaxSize = maxSize;
}
}
2.operation包也就是操作包
包底下有operation接口以及增删查操作,退出系统操作 和借阅图书操作以及归还图书操作和展示所有图书操作,其中每一个操作都是一个class文件
package Operation;
import book.Booklist;
public interface IOoperation {
void work(Booklist booklist);//操作
}
package Operation;
import book.Booklist;
import book.book;
import java.util.Scanner;
public class addOperation implements IOoperation {
public void work(Booklist booklist) {
System.out.println("增加图书");
System.out.println("请输入书本的名称:");
Scanner scanner=new Scanner(System.in);
String name=scanner.nextLine();
System.out.println("请输入书籍的作者");
String author=scanner.nextLine();
System.out.println("请输入书籍的价格");
int price=scanner.nextInt();
book Book=new book(name,price,author);
int currentSize=booklist.getMaxSize();
booklist.setBook(currentSize,Book);
booklist.setMaxSize(currentSize+1);
System.out.println("添加书籍成功!");
}
}
package Operation;
import book.Booklist;
import java.util.Scanner;
public class BorrowOperation implements IOoperation{
@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.getMaxSize() ; i++) {
if(booklist.getBook(i).getName().equals(name))
{
if( booklist.getBook(i).isBrow().equals("已经借出"))
{
System.out.println("这本书已经被借走了");
break;
}
else {
booklist.getBook(i).setBrow("已经借出");
System.out.println("借书成功!");
break;
}
}
else
System.out.println("没有找到这本书");
}
}
}
package Operation;
import book.Booklist;
import java.util.Scanner;
public class DelOperation implements IOoperation{
public void work(Booklist booklist){
System.out.println("删除图书");
Scanner scanner=new Scanner(System.in);
System.out.println("请输入要删除书籍的姓名");
String name=scanner.nextLine();
for (int i = 0; i <booklist.getMaxSize() ; i++) {
if(booklist.getBook(i).getName().equals(name)) {
int index = i;
booklist.setBook(i, booklist.getBook(booklist.getMaxSize() - 1));
booklist.setBook(booklist.getMaxSize()-1, null);
booklist.setMaxSize(booklist.getMaxSize() - 1);
System.out.println("删除成功");
break;
}else{
System.out.println("没有这本书");
}
}
}
}
package Operation;
import book.Booklist;
public class DisplayOperation implements IOoperation{
@Override
public void work(Booklist booklist) {
System.out.println("展示图书");
for (int i = 0; i <booklist.getMaxSize() ; i++) {
System.out.println(booklist.getBook(i));
}
}
}
package Operation;
import book.Booklist;
public class ExitOperation implements IOoperation{
@Override
public void work(Booklist booklist) {
System.out.println("退出程序");
System.exit(0);
}
}
package Operation;
import book.Booklist;
import java.util.Scanner;
public class FindOperation implements IOoperation{
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.getMaxSize()-1 ; i++) {
if (booklist.getBook(i).getName().equals(name)) {
System.out.println(booklist.getBook(i));
break;
}
else{
System.out.println("没有找到这本书");
}
}
}
}
package Operation;
import book.Booklist;
import java.util.Scanner;
public class returnOperation implements IOoperation{
public void work(Booklist booklist){
System.out.println("归还图书");
Scanner scanner=new Scanner(System.in);
System.out.println("请输入您要归还的图书书籍的名字");
String name=scanner.nextLine();
for (int i = 0; i <booklist.getMaxSize()-1 ; i++) {
if (booklist.getBook(i).getName().equals(name))
{
booklist.getBook(i).setBrow("未借阅");
System.out.println("归还成功");
break;
}
else
{
System.out.println("没有找到这本书");
}
}
}
}
3.User包也就是用户 包
用户包地下有三个class文件一个是最基本的抽象类用户class以及一个普通用户class和一个管理用户class
package Uster;
import Operation.IOoperation;
import book.Booklist;
public abstract class User {
String name;
protected IOoperation[] iOperations;
public User(String name){
this.name=name;
}
public abstract int menu();
public void doOperation(int choice, Booklist booklist){
iOperations[choice].work(booklist );
}
}
package Uster;
import Operation.*;
import java.util.Scanner;
public class NormalUser extends User {
public NormalUser(String name) {
super(name);
this.iOperations=new IOoperation[]{
new ExitOperation(),
new FindOperation(),
new BorrowOperation(),
new returnOperation()
};
}
public int menu(){
System.out.println("欢迎"+name+"用户");
System.out.println("1.查找图书");
System.out.println("2.借阅图书");
System.out.println("3.归还图书");
System.out.println("0.退出系统");
System.out.println("请输入你的操作:");
Scanner scanner=new Scanner(System.in);
int choice=scanner.nextInt();
return choice;
}
}
package Uster;
import Operation.*;
import java.util.Scanner;
public class AdminUser extends User{
public AdminUser(String name) {
super(name);
this.iOperations=new IOoperation[]{
new ExitOperation(),
new FindOperation(),
new addOperation(),
new DelOperation(),
new DisplayOperation()
};
}
public int menu(){
System.out.println("欢迎"+name+"用户");
System.out.println("1.查找图书");
System.out.println("2.增加图书");
System.out.println("3.删除图书");
System.out.println("4.显示图书");
System.out.println("0.退出系统");
System.out.println("请输入你的操作:");
Scanner scanner=new Scanner(System.in);
int choice=scanner.nextInt();
return choice;
}
}
4.Test主包
主函数包含在里面,将所有操作整合在一起,形成一个完整的操作,图书管理系统。
package Test;
import Uster.AdminUser;
import Uster.NormalUser;
import Uster.User;
import book.Booklist;
import java.sql.SQLOutput;
import java.util.Scanner;
public class Test {
public static User login(){
System.out.println("请输入您的姓名:");
Scanner scanner=new Scanner(System.in);
String name= scanner.nextLine();
System.out.println("请输入:1->管理员 2->普通用户");
int choice=scanner.nextInt();
if(choice==1){
return new AdminUser(name);
}else{
return new NormalUser(name);
}
}
public static void main(String[] args){
Booklist booklist=new Booklist();
User user=login();
//动态绑定
while(true){
int choice=user.menu();
user.doOperation(choice,booklist);
}
}
}
5.总结
代码写到这里就完成了,有什么问题可以私信问我
版权声明:本文为qq_53283658原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。