Java图书管理简单代码示例

本文介绍了如何用Java编程实现一个简单的图书管理系统,包括书籍和图书管理员类的设计,以及如何通过ArrayList存储书籍信息,管理员具有添加和删除书籍的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.构思和分类

  说到图书管理系统,我们首先要想到的对象是 书籍,再而就想到 图书管理员 和 读者,所以今天我们写 图书管理代码,就分为两个类 书籍(Book)、图书管理员(Librarian),关于读者类,到时候我会写一个图书管理系统,那时候我再仔细地讲解一下。

我们来了解一下这两个类的属性和行为。

(1)书籍(Book): 书籍的名字(name)、书籍的作者(author)、书号(id)、数量(number)

(2)图书管理员(Librarian):管理员的账号(account)、添加书籍(librarianAdd)、删除书籍(librarianDelete)

当然书籍我们还可以细分成科学类书籍、文学类书籍、艺术类书籍等等,不过今天我就不再细分了。

2.代码示例

  我们先写一个书籍类(Book)

class Book {
    public int id;
    public String name;
    public String author;
    public int number;
    public String information() {
        return "书号:" + id + ",书名:" + name + ",作者:" + author + ",书的数量:" + number;
    }
    public Book( int id, String name, String author, int number) {
        this.id = id;
        this.name = name;
        this.author = author;
        this.number = number;
    }
}

在书籍类中,我们定义了四个公共成员,因为书籍的信息是可以供他人查看的,我们通过 information() 方法返回书籍的信息。

图书管理员类(Librarian)

class Librarian {
    private String account;

    public void setAccount(String account) {
        this.account = account;
    }

    private String getAccount() {
        return account;
    }
    // 添加书籍
    public Book librarianAdd() {
        // 判断是不是管理员
        if( getAccount().equals("123456789") ) {

            Scanner s = new Scanner(System.in);
            // 如果operate为1,新加的书是一本文学书
            System.out.println("输入书籍信息:");
            return new Book( s.nextInt(), s.next(), s.next(), s.nextInt());
        }
        else {
            System.out.println("你还不是管理员,无法进行操作");
            return null;
        }
    }

    // 删除书籍
    public void librarianDelete( ArrayList<Book> library) {

        if( getAccount().equals("123456789") ) {
            Scanner s = new Scanner(System.in);
            System.out.println("输入要删除书籍的书号:");
            int id = s.nextInt();
            int locate = 0;
            for( Book t : library) {
                if( t.id == id ) {
                    break;
                }
                locate++;
            }
            library.remove(locate);
        }
        else {
            System.out.println("你还不是管理员,无法进行操作");
        }

    }
}

我们在 图书管理员类(Librarian) 中定义了一个私有成员 acount(账号),因为管理员的账号是保密的只有管理员才知道,这样就起到了保密作用,有一个公共方法 setAccount() 用来接收用户输入的账号,有一个私有方法 getAccount() 用来得到用户输入的账号,且此方法只能在 图书管理员类(Librarian) 中使用。

然后我们有俩个公共方法 librarianAdd()、librarianDelete(),用来增加书籍和删除书籍, 我们可以清晰地在代码中看到,在添加或删除书籍之前,我们会先判断该账号是否是图书管理员的账号,如果是则可以进行下一步操作,如果不是则输出 "你还不是管理员,无法进行操作" 来提示用户。

主类(Main)

import java.util.Scanner;
import java.util.ArrayList;

public class Main {
    public static void main(String[] arr) {
        Scanner s = new Scanner(System.in);

        ArrayList<Book> library = new ArrayList<>();

        System.out.println("输入 1 进入存书界面, 输入 0 退出程序");
        int operate1 = s.nextInt();

        while( operate1 != 0 ) {


            System.out.println("输入管理员账号:");
            String account = s.next();

            System.out.println("输入 A 存入书籍, 输入 B 删除书籍");
            String operate2 = s.next();
            Librarian Alice = new Librarian();
            Alice.setAccount(account);
            if( operate2.equals("A") ) {
                library.add(Alice.librarianAdd());
            }
            else {
                Alice.librarianDelete(library);
            }
            System.out.println("输入 1 进入存书界面, 输入 0 退出程序");
            operate1 = s.nextInt();
        }
        for( Book t : library) {
            System.out.println(t.information());
        }
    }
}

在主类中我们创建了一个书籍类(Book)的动态数组(ArrayList),用来存书籍信息。关于java动态数组(ArrayList),我先来解释一下它是如何使用的,和它有何配套的操作方法。

ArrayList 是 Java 中常用的动态数组容器类

导入类:import java.util.ArrayList

创建ArrayList对象:ArrayList<数据类型> list = new ArrayList<>();

添加元素:list.add(添加的元素);

访问元素:list.get(访问元素的位置)

修改元素:list.set(修改元素位置,修改后元素)

删除元素:list.remove(删除位置)

遍历:for (String fruit : list) {
    System.out.println(fruit);
}

3.代码综合

import java.util.Scanner;
import java.util.ArrayList;

public class Main {
    public static void main(String[] arr) {
        Scanner s = new Scanner(System.in);

        ArrayList<Book> library = new ArrayList<>();

        System.out.println("输入 1 进入存书界面, 输入 0 退出程序");
        int operate1 = s.nextInt();

        while( operate1 != 0 ) {


            System.out.println("输入管理员账号:");
            String account = s.next();

            System.out.println("输入 A 存入书籍, 输入 B 删除书籍");
            String operate2 = s.next();
            Librarian Alice = new Librarian();
            Alice.setAccount(account);
            if( operate2.equals("A") ) {
                library.add(Alice.librarianAdd());
            }
            else {
                Alice.librarianDelete(library);
            }
            System.out.println("输入 1 进入存书界面, 输入 0 退出程序");
            operate1 = s.nextInt();
        }
        for( Book t : library) {
            System.out.println(t.information());
        }
    }
}

class Book {
    public int id;
    public String name;
    public String author;
    public int number;
    public String information() {
        return "书号:" + id + ",书名:" + name + ",作者:" + author + ",书的数量:" + number;
    }
    public Book( int id, String name, String author, int number) {
        this.id = id;
        this.name = name;
        this.author = author;
        this.number = number;
    }
}

class Librarian {
    private String account;

    public void setAccount(String account) {
        this.account = account;
    }

    private String getAccount() {
        return account;
    }
    // 添加书籍
    public Book librarianAdd() {
        // 判断是不是管理员
        if( getAccount().equals("123456789") ) {

            Scanner s = new Scanner(System.in);
            // 如果operate为1,新加的书是一本文学书
            System.out.println("输入书籍信息:");
            return new Book( s.nextInt(), s.next(), s.next(), s.nextInt());
        }
        else {
            System.out.println("你还不是管理员,无法进行操作");
            return null;
        }
    }

    // 删除书籍
    public void librarianDelete( ArrayList<Book> library) {

        if( getAccount().equals("123456789") ) {
            Scanner s = new Scanner(System.in);
            System.out.println("输入要删除书籍的书号:");
            int id = s.nextInt();
            int locate = 0;
            for( Book t : library) {
                if( t.id == id ) {
                    break;
                }
                locate++;
            }
            library.remove(locate);
        }
        else {
            System.out.println("你还不是管理员,无法进行操作");
        }

    }
}


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值