利用面向对象的思想设计一个图书管理系统。

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

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

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

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

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

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

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

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

代码如下:

public class Book {
    private String bookId;
    private String name;
    private String author;
    private double price;

    public Book() {
    }

    public Book(String bookId, String name, String author, double price) {
        this.bookId = bookId;
        this.name = name;
        this.author = author;
        this.price = price;
    }

    public String getBookId() {
        return bookId;
    }

    public void setBookId(String bookId) {
        this.bookId = bookId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

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

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

public class Test {
    public static void main(String[] args) {
        // 创建集合用于存储图书信息
        ArrayList<Book> list = new ArrayList<>();
        // 键盘录入
        Scanner sc = new Scanner(System.in);
        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:退出系统");

            String type = sc.next();

            switch (type) {
                case "1":
                    // 添加
                    addBook(list);
                    break;
                case "2":
                    // 查看所有图书
                    findAllBooks(list);
                    break;
                case "3":
                    // 查询某本图书
                    findBookByName(list);
                    break;
                case "4":
                    // 修改图书
                    updateBook(list);
                    break;
                case "5":
                    // 删除图书
                    deleteBook(list);
                    break;
                case "6":
                    System.out.println("感谢使用,再见");
                    System.exit(0); // 退出系统
                default:
                    System.out.println("选择有误,请重新输入");
                    break;
            }

        }
    }

    // 删除图书
    private static void deleteBook(ArrayList<Book> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您要删除的图书编号:");
        String id = sc.next();
        for (int i = 0; i < list.size(); i++) {
            Book b = list.get(i);
            if (id.equals(b.getBookId())) { // 编号存在
                // 删除图书并结束方法
                list.remove(i);
                System.out.println("~~~删除成功~~~");
                return;
            }
        }
        System.out.println("没有该编号的图书信息");
    }

    // 修改图书
    private static void updateBook(ArrayList<Book> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您要修改的图书编号:");
        String id = sc.next();
        for (int i = 0; i < list.size(); i++) {
            Book b = list.get(i);
            if (id.equals(b.getBookId())) { // 编号存在
                System.out.println("请输入修改后图书的名称:");
                String name = sc.next();
                System.out.println("请输入修改后图书的作者:");
                String author = sc.next();
                System.out.println("请输入修改后图书的价格:");
                double price = sc.nextDouble();
                Book newBook = new Book(id, name, author, price);
                // 更新数据
                list.set(i, newBook);
                System.out.println("~~~修改成功~~~");
                return;
            }
        }
        // 如果编号不存在
        System.out.println("没有该编号的图书信息");
    }

    // 根据图书的名称查询图书信息
    private static void findBookByName(ArrayList<Book> list) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您要查询的图书名称:");
        String name = sc.next();
        for (int i = 0; i < list.size(); i++) {
            Book b = list.get(i);
            if (name.equals(b.getName())) {
                System.out.println("编号\t" + "书名\t" + "作者\t" + "价格");
                System.out.println(b.getBookId() + "\t" + b.getName() + "\t" + b.getAuthor() + "\t" + b.getPrice());
                return;
            }
        }
        System.out.println("没有该名称图书信息");
    }

    // 查看所有图书信息
    private static void findAllBooks(ArrayList<Book> list) {
        if (list == null || list.size() == 0) {
            System.out.println("尚无图书信息");
            return;
        }
        System.out.println("编号\t" + "书名\t" + "作者\t" + "价格");
        for (int i = 0; i < list.size(); i++) {
            Book b = list.get(i);
            System.out.println(b.getBookId() + "\t" + b.getName() + "\t" + b.getAuthor() + "\t" + b.getPrice());
        }
    }

    // 查询编号是否存在
    public static boolean isExist(ArrayList<Book> list, String bookId) {
        // 遍历,如果发现相同id,返回true,
        for (int i = 0; i < list.size(); i++) {
            if (bookId.equals(list.get(i).getBookId())) {
                return true;
            }
        }
        // 如果没有,返回false
        return false;
    }

    // 添加图书
    public static void addBook(ArrayList<Book> list) {
        // 键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入图书信息:");
        System.out.println("编号:");
        String bookId;
        while (true) {
            bookId = sc.next();
            // 查询编号是否存在
            if (isExist(list, bookId)) {
                System.out.println("该编号已经存在,请重新输入");
            } else {
                break;
            }
        }
        System.out.println("名称:");
        String name = sc.next();
        System.out.println("作者:");
        String author = sc.next();
        System.out.println("价格:");
        double price = sc.nextDouble();
        // 将信息封装到图书对象
        Book b = new Book(bookId, name, author, price);
        // 添加到集合
        list.add(b);
        System.out.println("~~~添加成功~~~");
    }
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值