A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范天星 初级黑马   /  2019-3-11 23:46  /  1198 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package Day9.Practice01.Test;

/*利用面向对象的思想设计一个图书管理系统。图书的属性有:编号,书名,作者,价格。要求提供如下功能:
1、提供操作菜单,可以选择要进行的操作。
2、可以添加图书,添加图书时,编号需要唯一,添加成功,返回到菜单。
3、可以查询图书,显示所有图书信息,然后返回到菜单。
4、可以根据书名,查询单本图书信息,显示信息后,返回到菜单。
5、可以删除图书,通过编号删除,删除成功后,返回到菜单。
6、可以修改图书的信息,但编号不可以修改,修改成功后,返回到菜单。
7、可以退出系统,结束程序运行。*/

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

public class Test04 {

    public static void main(String[] args) {

        ArrayList<Library> array = new ArrayList<Library>();
        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 退出系统");
            System.out.println("----------------------------------");

            String s = sc.nextLine();
            switch (s) {
                case "1":
                    //2、可以添加图书,添加图书时,编号需要唯一,添加成功,返回到菜单。
                    addBook(array);
                    break;
                case "2":
                    //3、可以查询图书,显示所有图书信息,然后返回到菜单。
                    showLibrary(array);
                    break;
                case "3":
                    //4、可以根据书名,查询单本图书信息,显示信息后,返回到菜单。
                    searchBook(array);
                    break;
                case "4":
                    //4、可以删除图书,通过编号删除,删除成功后,返回到菜单。
                    deleteBook(array);
                    break;
                case "5":
                    //6、可以修改图书的信息,但编号不可以修改,修改成功后,返回到菜单。
                    updateBook(array);
                    break;
                case "6":
                    //可以退出系统,结束程序运行。
                    System.out.println("谢谢使用!");
                    System.out.println("----------------------------------");
                    System.exit(0);
            }
        }
    }

    private static void updateBook(ArrayList<Library> array) {
        if (array.size() == 0) {
            System.out.println("系统无任何图书信息,请添加后使用!");
            System.out.println();
            return;
        }
        int sig = 0;
        System.out.println("请输入图书编号:");
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        for (int i = 0; i < array.size(); i++) {
            Library b = array.get(i);
            if (b.getSid().equals(s)) {
                sig++;
                array.remove(i);
                addBook(array);
            }
        }
        if (sig == 0) {
            System.out.println("输入有误,请确认编号信息!");
        }
    }

    private static void deleteBook(ArrayList<Library> array) {
        if (array.size() == 0) {
            System.out.println("系统无任何图书信息,请添加后使用!");
            System.out.println();
            return;
        }
        int sig = 0;
        System.out.println("请输入图书编号:");
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        for (int i = 0; i < array.size(); i++) {
            Library b = array.get(i);
            if (b.getSid().equals(s)) {
                sig++;
                array.remove(i);
                System.out.println("删除成功!");
            }
        }
        if (sig == 0) {
            System.out.println("输入有误,请确认编号信息!");
        }
    }

    private static void searchBook(ArrayList<Library> array) {
        if (array.size() == 0) {
            System.out.println("系统无任何图书信息,请添加后使用!");
            System.out.println();
            return;
        }
        Library b = new Library();
        Scanner sc = new Scanner(System.in);
        System.out.println("1 书名查询");
        System.out.println("2 编号查询");
        System.out.println("3 作者查询");
        System.out.println("4 价格查询");
        String a = sc.next();
        int sig = 0;
        switch (a) {
            case "1":
                System.out.println("请输入书名:");
                String name = sc.next();
                for (int i = 0; i < array.size(); i++) {
                    b = array.get(i);
                    if (b.getBookName().equals(name)) {
                        sig++;//使用sig标识,当程序识别到输入的nama时,sig的值加一
                        System.out.println("书名" + "\t" + "编号" + "\t" + "作者" + "\t" + "价格" + "\t");
                        System.out.println(b.getBookName() + "\t" + b.getSid() + "\t" + b.getAuthor() + "\t" + b.getPrice() + "\t");
                    } else {
                    }
                }
                if (sig == 0) {
                    System.out.println("输入有误,请确认书名后查询!");
                }
                System.out.println();
                break;

            case "2":
                System.out.println("请输入编号:");
                String sid = sc.next();
                for (int i = 0; i < array.size(); i++) {
                    b = array.get(i);
                    if (b.getSid().equals(sid)) {
                        sig++;//使用sig标识,当程序识别到输入的sid时,sig的值加一
                        System.out.println("书名" + "\t" + "编号" + "\t" + "作者" + "\t" + "价格" + "\t");
                        System.out.println(b.getBookName() + "\t" + b.getSid() + "\t" + b.getAuthor() + "\t" + b.getPrice() + "\t");
                    } else {
                    }
                }
                if (sig == 0) {
                    System.out.println("输入有误,请确认编号信息后查询!");
                }
                System.out.println();
                break;

            case "3":
                System.out.println("请输入作者名:");
                String author = sc.next();
                for (int i = 0; i < array.size(); i++) {
                    b = array.get(i);
                    if (b.getAuthor().equals(author)) {
                        System.out.println("书名" + "\t" + "编号" + "\t" + "作者" + "\t" + "价格" + "\t");
                        break;
                    } else {
                    }
                }
                for (int i = 0; i < array.size(); i++) {
                    b = array.get(i);
                    if (b.getAuthor().equals(author)) {
                        sig++;//使用sig标识,当程序识别到输入的sid时,sig的值加一
                        System.out.println(b.getBookName() + "\t" + b.getSid() + "\t" + b.getAuthor() + "\t" + b.getPrice() + "\t");
                    } else {
                    }
                }
                if (sig == 0) {
                    System.out.println("输入有误,请确认作者信息后查询!");
                }
                System.out.println();
                break;

            case "4":
                System.out.println("请输入价格:");
                String price = sc.next();
                for (int i = 0; i < array.size(); i++) {
                    b = array.get(i);
                    if (b.getPrice().equals(price)) {
                        System.out.println("书名" + "\t" + "编号" + "\t" + "作者" + "\t" + "价格" + "\t");
                        break;
                    } else {
                    }
                }
                for (int i = 0; i < array.size(); i++) {
                    b = array.get(i);
                    if (b.getPrice().equals(price)) {
                        sig++;//使用sig标识,当程序识别到输入的sid时,sig的值加一
                        System.out.println("书名" + "\t" + "编号" + "\t" + "作者" + "\t" + "价格" + "\t");
                        System.out.println(b.getBookName() + "\t" + b.getSid() + "\t" + b.getAuthor() + "\t" + b.getPrice() + "\t");
                    } else {
                    }
                }
                if (sig == 0) {
                    System.out.println("输入有误,请确认价格信息后查询!");
                }
                System.out.println();
                break;
            default:
                System.out.println("输入有误,请重新输入");
                break;
        }
    }

    private static void showLibrary(ArrayList<Library> array) {

        if (array.size() == 0) {
            System.out.println("系统无任何图书信息,请添加后使用!");
            System.out.println();
            return;
        }
        Library b = new Library();
        System.out.println("书名" + "\t" + "编号" + "\t" + "作者" + "\t" + "价格" + "\t");
        for (int i = 0; i < array.size(); i++) {
            b = array.get(i);
            System.out.println(b.getBookName() + "\t" + b.getSid() + "\t" + b.getAuthor() + "\t" + b.getPrice());
        }
    }

    private static void addBook(ArrayList<Library> array) {

        Scanner sc = new Scanner(System.in);
        Library b = new Library();

        while (true) {
            System.out.println("请输入书名:");
            String bookName = sc.nextLine();
            if (bookName.length() == 0) {
            } else {
                b.setBookName(bookName);
                break;
            }
        }
        while (true) {
            System.out.println("请输入编号:");
            String sid = sc.nextLine();
            if (dulp(array, sid)) {
            } else {
                b.setSid(sid);
                break;
            }
        }
        while (true) {
            System.out.println("请输入作者:");
            String author = sc.nextLine();
            if (author.length() == 0) {
                System.out.println("作者不得为空,请重新输入!");
            } else {
                b.setAuthor(author);
                break;
            }
        }

        while (true) {
            System.out.println("请输入价格:");
            String price = sc.nextLine();
            if (price.length() == 0) {
                System.out.println("价格不得为空,请重新输入!");
            } else {
                b.setPrice(price);
                break;
            }
        }

        array.add(b);
        System.out.println("书籍信息添加成功!");
        System.out.println();
    }

    private static boolean dulp(ArrayList<Library> array, String sid) {

        if (sid.length() == 0) {
            System.out.println("编号不得为空,请重新输入!");
            return true;
        }
        for (int i = 0; i < array.size(); i++) {
            Library b = array.get(i);
            if (b.getSid().equals(sid)) {
                System.out.println("编号重复,请重新输入!");
                return true;
            }
        }
        return false;

    }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马