图书管理系统Java(ArrayList版)

需求:

利用面向对象的思想设计一个图书管理系统。图书的属性有:编号,书名,作者,价格。要求提供如下功能:

1、提供操作菜单,可以选择要进行的操作。

2、可以添加图书,添加图书时,编号需要唯一,添加成功,返回到菜单。

3、可以查询图书,显示所有图书信息,然后返回到菜单。

4、可以根据书名,查询单本图书信息,显示信息后,返回到菜单。

5、可以删除图书,通过编号删除,删除成功后,返回到菜单。

6、可以修改图书的信息,但编号不可以修改,修改成功后,返回到菜单。

7、可以退出系统,结束程序运行。

运行展示

书类实现:

//利用面向对象的思想设计一个图书管理系统。
// 图书的属性有:编号,书名,作者,价格。要求提供如下功能:
public class Books {
    private int serNum;
    private String title;
    private String author;
    private double price;

    public Books() {
    }

    public Books(int serNum, String title, String author, double price) {
        this.serNum = serNum;
        this.title = title;
        this.author = author;
        this.price = price;
    }

    public int getSerNum() {
        return serNum;
    }

    public void setSerNum(int serNum) {
        this.serNum = serNum;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getAuthor() {
        return author;
    }

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

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public void show(){
        System.out.println("编号:"+serNum+"  书名:《" + title + "》  作者:" + author + "  价格:" + price);
    }

}

 测试类实现:

import java.util.ArrayList;
import java.util.Scanner;
/*
* 1、提供操作菜单,可以选择要进行的操作。
2、可以添加图书,添加图书时,编号需要唯一,添加成功,返回到菜单。
3、可以查询图书,显示所有图书信息,然后返回到菜单。
4、可以根据书名,查询单本图书信息,显示信息后,返回到菜单。
5、可以删除图书,通过编号删除,删除成功后,返回到菜单。
6、可以修改图书的信息,但编号不可以修改,修改成功后,返回到菜单。
7、可以退出系统,结束程序运行。
*
*
* */
public class DemoBooks {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Books> list = new ArrayList<>();
        while (true) {
            System.out.println("===========图书馆里系统============");
            System.out.println("1.添加图书");
            System.out.println("2.查询图书");
            System.out.println("3.查询单本");
            System.out.println("4.删除图书");
            System.out.println("5.修改图书");
            System.out.println("6.退出系统");
            System.out.println("请输入序号:(1-6)");
            int choice = sc.nextInt();
            boolean aNull = isNull(list);
            switch (choice) {
                case 1:
//                    System.out.println("添加图书");
                    addBoo(sc,list);
                    break;
                case 2:
//                    System.out.println("查询所有图书");
                    if(aNull){
                        lookBooks(list);
                    }else {
                        System.out.println("请先添加图书!");
                    }
                    break;
                case 3:
//                    System.out.println("查询单本图书");
                    if(aNull){
                        lookDanBook(list,sc);
                    }else {
                        System.out.println("请先添加图书!");
                    }
                    break;
                case 4:
//                    System.out.println("删除图书");
                    if(aNull){
                        reBook(list,sc);
                    }else {
                        System.out.println("请先添加图书!");
                    }
                    break;
                case 5:
//                    System.out.println("修改图书");
                    if(aNull){
                        changBook(list,sc);
                    }else {
                        System.out.println("请先添加图书!");
                    }
                    break;
                case 6:
                    System.out.println("欢迎使用");
                    System.exit(0);
                default:
                    System.out.println("输入有误,请输入(1-6)");
                    break;
            }
        }
    }
    //    判断集合是否 有值
    public static boolean isNull(ArrayList<Books> list){
        if(list.size() == 0 || list == null){
//            没有值
            return false;
        }
        return true;
    }
//    判断是否存在
    public static int isHave(ArrayList<Books> list,int id){
        for (int i = 0; i < list.size(); i++) {
//            如果存在
            if (id == list.get(i).getSerNum()){
                return i;
            }
        }
//        不存在返回 -1
        return -1;
    }
    //    添加图书
    public static void addBoo(Scanner sc, ArrayList<Books> list) {
        int id = 0;
        while (true) {
            System.out.println("请输入图书编号:");
            id = sc.nextInt();
            int index = isHave(list, id);
            if(index == -1){
                break;
            }else {
                System.out.println("该图书编号已经存在,请重新输入!");
            }
        }
        System.out.println("请输入图书的书名:");
        String name = sc.next();
        System.out.println("请输入图书的作者:");
        String author = sc.next();
        System.out.println("请输入图书的价格:");
        double price = sc.nextDouble();
        Books b1 = new Books(id,name,author,price);
        list.add(b1);
        System.out.println("添加成功!");
    }
//    查看所有图书
    public static void lookBooks(ArrayList<Books> list){
//        System.out.println("================================");
//        System.out.println("   编号   书名    作者    价格");
        for (int i = 0; i < list.size(); i++) {
            list.get(i).show();
        }
    }
//    查看单个图书  根据编号查找
    public static void lookDanBook(ArrayList<Books> list,Scanner sc){
        System.out.println("请输入要查看的图书编号:");
        int lookBookId = sc.nextInt();

//        查找是否存在  存在 返回索引  不存在 -1
        int index = isHave(list, lookBookId);
        if(index != -1){
//            System.out.println("   编号   书名    作者    价格");
            list.get(index).show();
        }else {
            System.out.println("您要查找的图书不存在!");
        }
    }
//    删除图书
    public static void reBook(ArrayList<Books> list,Scanner sc){
        System.out.println("请输入要删除的图书编号:");
        int reId = sc.nextInt();
//        进行判断是否存在  存在  返回但前值  不存在 -1
        int index = isHave(list, reId);
        if(index != -1){
            Books b1 = list.get(index);
            list.remove(b1);
            System.out.println("删除成功!!");
        }else {
            System.out.println("您要删除的图书不存在!");
        }
    }
//    修改图书
    public static void changBook(ArrayList<Books> list, Scanner sc){
        System.out.println("请输入要修改的图书编号:");
        int changeId = sc.nextInt();
//        进行判断是否存在  存在  返回但前值  不存在 -1
        int index = isHave(list, changeId);
        if(index != -1){
            System.out.println("请输入该图书新的图书名:");
            String newName = sc.next();
            System.out.println("请输入改图书新的作者:");
            String newAuthor = sc.next();
            System.out.println("请输入该图书新的价格:");
            double newPrice = sc.nextDouble();
            Books b1 = new Books(changeId,newName,newAuthor,newPrice);
            list.set(index,b1);
            System.out.println("修改成功!");
        }else {
            System.out.println("您输入的图书不存在!!");
        }
    }

}

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Java图书管理系统无数据库是一种简化图书管理系统,它不依赖于数据库的存储和管理。通常情况下,该系统会使用文本文件或者其他数据结构来存储图书信息。 在这个系统中,我们可以通过Java编程语言来实现图书的增删改查等基本功能。首先,我们需要创建一个图书类,该类包含图书的各种属性,如书名、作者、出日期等。然后,我们可以通过添加、删除、修改图书对象来对图书进行管理。 为了实现数据的持久化,我们可以将图书信息存储在文本文件中。通过Java的文件读写操作,我们可以将图书对象的信息写入文件或者从文件中读取出来。例如,可将每本图书的信息保存在一行中,根据特定的分隔符来区分不同属性的值。这样,我们可以通过读取文件来获取图书的详细信息。 此外,我们还可以通过Java的集合类来管理图书。可以使用ArrayList等数据结构来存储图书对象,进行增删改查等操作。通过遍历集合,我们可以获取、修改和删除图书对象。 虽然Java图书管理系统无数据库相对简单,但它依然可以满足基本的图书管理需求。然而,由于无数据库的限制,该系统可能在并发操作、数据查询和数据存储等方面存在一些不足。因此,在实际应用中,我们通常会选择使用数据库来支持更复杂和高效的图书管理系统。 ### 回答2: Java图书管理系统无数据库是一种基于Java语言编写的图书管理系统,不依赖于任何数据库的存储和管理。该系统可以实现图书的信息管理、借阅管理、归还管理等功能。 系统的核心是一个基于文件的存储机制。通过Java的文件操作类,系统可以将图书的信息以文本的形式存储在本地的文件中。每本图书的信息包括书名、作者、出社、出日期等基本信息,通过文件的读写操作,可以实现图书的增加、删除、修改和查询等功能。 系统的用户界面采用图形化界面,利用Java Swing等工具进行设计和实现。用户可以通过界面进行图书的查询、借阅和归还操作。查询功能可以根据图书的书名、作者等进行模糊查询,方便用户找到所需的图书信息。借阅和归还功能可以通过用户的借阅记录和归还记录来进行管理,包括借阅期限的控制和逾期罚款的处理等。 系统还可以实现图书馆管理员的管理功能。管理员可以对图书的信息进行添加、删除和修改,可以通过借阅记录进行借阅情况的审核和归还情况的处理。管理员也可以生成统计报表,包括图书的借阅数量、流通率等信息,以便对图书管理工作进行分析和评估。 尽管该系统没有使用数据库,但通过文件的存储和读写操作,可以实现基本的图书管理功能。然而,相比于基于数据库的图书管理系统,该系统的数据存储和查询效率较低,并且无法实现复杂的数据关联和查询操作。因此,在实际应用中,对于大规模和高效的图书管理系统,还是建议使用数据库来进行数据的存储和管理。 ### 回答3: Java图书管理系统无数据库是一种不涉及数据库操作的图书管理系统。在这个系统中,图书的信息以数据结构的形式存储在内存中,不需要额外的数据库来存储数据。 该系统可以使用Java的集合类来存储图书信息,比如使用ArrayList来存储所有图书的对象,并通过定义类来描述图书的属性和方法。每本图书可以有不同的属性,比如书名、作者、出日期等等。通过将这些属性封装在图书类中,可以方便地对图书进行管理和操作。 在图书管理系统中,可以实现一些基本的功能,比如图书的添加、删除、修改和查询。可以通过用户输入来实现这些功能,比如添加图书时,需要用户提供图书的相关信息,并将这些信息封装成图书对象,然后添加到集合中。删除图书时,可以根据图书的某个属性来查找并删除相应的图书对象。修改图书时,可以找到要修改的图书对象,并修改相应的属性值。查询图书时,可以根据图书的某个属性进行查找,并将满足条件的图书对象展示给用户。 除了基本的图书管理功能,还可以扩展该系统,添加其他功能。比如可以实现借阅功能,记录用户借阅图书的信息;可以实现用户登录功能,限制只有登录用户才能进行图书管理操作;还可以实现图书排序功能,根据某个属性对图书进行排序。 总之,无数据库Java图书管理系统利用内存中的数据结构来存储和管理图书信息,通过一些基本的功能和扩展功能,可以实现对图书的管理和操作。尽管相比数据库功能有所限制,但在某些资源有限的环境下,无数据库图书管理系统仍可以提供基本的图书管理功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

華同学.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值