Java项目图书馆管理系统

本文详细描述了一个图书管理系统的实现过程,包括管理员和借阅人角色的功能,如增加图书、查找图书、删除图书、显示图书、借阅和归还等操作的Java代码实现。
摘要由CSDN通过智能技术生成

如果我们想制作一个项目那么我们需要知道项目的目的,我们这个图书管理系统则我为大家一一讲解。

首先我们制作系统时,需要靠清楚对象,以及作用,管理员作用是增加图书,查找图书,删除图书,显示图书,退出图书而借用人的作用是查找图书,借阅图书,归还图书,退出图书。我们了解了需求,则可以开始写代码了。

首先写管理员的权利:

package user;

import Book.*;

import java.util.Scanner;

public  class AdminUser extends User{
    public AdminUser(String name) {
        super(name);
        this.iOperation=new IOperation[]{
                new FindOperation(),
                new AddOperation(),
                new DelOperation(),
                new ShowOperation(),
                new ExitOperation()
        };
    }
    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;
    }
}

首先是增加图书的代码

package Book;

import java.util.Scanner;

public class AddOperation implements IOperation{

    @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 author=scanner.nextLine();
        System.out.println("请输入你要新增图书的价格");
        int price = scanner.nextInt();
        System.out.println("请输入你要新增图书的类型");
        String type=scanner.next();
        Book book=new Book(name,author,price,type);
        int currenSize=bookList.getUsedSize();
        for (int i = 0; i < currenSize; i++) {
            Book tmp=bookList.getBook(i);
            if(tmp.getName().equals(name)){
                System.out.println("存在这本书,不能重复添加");
                return;
            }

        }
        bookList.setBook(book,currenSize);
        bookList.setUsedSize(currenSize+1);
    }

}

其次是查找图书的代码

package Book;

import java.util.Scanner;

public class FindOperation implements IOperation{

    @Override
    public void work(BookList bookList) {
        System.out.println("查找图书");
        System.out.println("请写出你要查找的图书的书名");
        Scanner scanner=new Scanner(System.in);
        String name=scanner.nextLine();
        int currentSize=bookList.getUsedSize();
        for (int i = 0; i < currentSize ; i++) {
            Book book=bookList.getBook(i);
            if(book.getName().equals(name)){
                System.out.println("存在这本书,信息如下");
                System.out.println(book);
                return;
            }

        }
        System.out.println("没有你要找的这本书,书名为:"+name);
    }
}

然后是删除图书的代码

package Book;

import java.util.Scanner;

public class DelOperation implements IOperation{

    @Override
    public void work(BookList bookList) {
        System.out.println("删除图书");
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入你要删除图书的书名");
        int currentSize=bookList.getUsedSize();
        int index=-1;
        String name=scanner.nextLine();
        int i=0;
        for (; i < currentSize ; i++) {
            Book book=bookList.getBook(i);
            if(book.getName().equals(name)){
                index=i;
                break;
            }
        }
        if(i>=currentSize){
            System.out.println("没有你要删除的图书");
            return;
        }
        for (int j = index; j <currentSize-1 ; j++) {
            Book book=bookList.getBook(j+1);
            bookList.setBook(book,j);

        }
        bookList.setBook(null,currentSize-1);
        bookList.setUsedSize(currentSize-1);
    }
}

然后是显示图书的代码

package Book;

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 Book;

public class ExitOperation implements IOperation{

    @Override
    public void work(BookList bookList) {
        System.out.println("退出系统");
        System.exit(0);
    }
}

然后写借阅人的权利:

package user;

import Book.*;

import java.util.Scanner;

public  class NormalUser extends User{
    public NormalUser(String name) {
        super(name);
        this.iOperation=new IOperation[]{
                new FindOperation(),
                new BorrowOperation(),
                new ReturnOperation(),
                new ExitOperation()

        };
    }
    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 scanner=new Scanner(System.in);
        int choice=scanner.nextInt();
        return choice;
    }
}

其次是借阅图书的代码

package Book;

import java.util.Scanner;

public class BorrowOperation implements IOperation{

    @Override
    public void work(BookList bookList) {
        System.out.println("借阅图书");
        System.out.println("请写出你要借阅的图书的书名");
        Scanner scanner=new Scanner(System.in);
        String name=scanner.nextLine();
        int currentSize=bookList.getUsedSize();
        for (int i = 0; i < currentSize ; i++) {
            Book book=bookList.getBook(i);
            if(book.getName().equals(name)){
               book.setBorrowed(true);
                System.out.println("借阅成功");
                return;
            }

        }
        System.out.println("没有你要借阅的图书:"+name);
    }
}

然后是归还图书的代码

package Book;

import java.util.Scanner;

public class ReturnOperation implements IOperation{

    @Override
    public void work(BookList bookList) {
        System.out.println("归还图书");
        System.out.println("借阅图书");
        System.out.println("请写出你要归还的图书的书名");
        Scanner scanner=new Scanner(System.in);
        String name=scanner.nextLine();
        int currentSize=bookList.getUsedSize();
        for (int i = 0; i < currentSize ; i++) {
            Book book=bookList.getBook(i);
            if(book.getName().equals(name)){
               book.setBorrowed(false);
                System.out.println("归还成功");
                return;
            }

        }
        System.out.println("没有你要归还的图书:"+name);
    }
}

代码我们都写好了,然后开始制作开头的封面

首先是输入你的身份

然后进入对应身份的菜单

import Book.BookList;
import user.AdminUser;
import user.NormalUser;
import user.User;
import java.util.Scanner;
public class Main  {
    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);
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值