项目1第五课——图书管理系统测试管理员功能

  上节课我们把管理员和书籍容器搞定了,这节课我们就来测试下他们的功能,顺便把管理员登录做一下。

 

Login:

package com.bookmanagement;



import java.util.Scanner;



public class Login {



    public static void main(String[] args) {

        printMenu();

        int choose = 0;

        boolean flag = true;



        //Scannner类对象可以从控制套获取通过键盘输入的数据

        //这个scanner对象只需要构造一次即可多次调用

        Scanner scanner = new Scanner(System.in);

        //选择登录用户的类型

        do {





            choose = scanner.nextInt();



            switch (choose)

            {

                case 1:

                    flag = false;

                    Admin admin = loginAdmin();

                    AdminSystem managerSystem = toManager(admin);

                    break;

                case 2:

                    flag = false;

                    break;

                default:

                    System.out.print("请输入1或2: ");

                    break;

            }

        }while (flag);





    }



    private static Admin loginAdmin() {

        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入管理员用户名: ");

        String username = scanner.next();

        System.out.print("请输入管理员密码: ");

        String password = scanner.next();

        Admin admin = Admin.getInstance();

        if (admin.getUsername().equals(username) && admin.getPassword().equals(password))

        {

            System.out.println("登录成功");

            return admin;

        }

        else

        {

            System.out.println("登录失败");

            loginAdmin();

        }

        return null;

    }



    public static void printMenu()

    {

        System.out.println("请选择管理员或用户登录:");

        System.out.println("1.管理员");

        System.out.println("2.用户");

        System.out.print("请选择: ");

    }



    public static AdminSystem toManager(Admin admin)

    {

        return new AdminSystem(admin);

    }

}

 

AdminSystem:

package com.bookmanagement;



import java.util.Collection;

import java.util.Scanner;



public class AdminSystem {



    private BookContainer bookContainer = BookContainer.getInstance();

    private Admin admin = null;



    public AdminSystem(Admin admin)

    {

        this.admin = admin;

        printAdminSystemMenu();

        chooseOption();

    }



    private void printAdminSystemMenu() {

        System.out.println("1.录入书籍信息");

        System.out.println("2.删除书籍信息");

        System.out.println("3.修改书籍信息");

        System.out.println("4.查询书籍信息");

    }



    private void chooseOption()

    {

        int choose = 0;

        boolean flag = true;

        Scanner scanner = new Scanner(System.in);



        do {

            System.out.print("请输入您想要使用的功能: ");

            choose = scanner.nextInt();

            switch (choose)

            {

                case 1:

                    toAddBook();

                    break;

                case 2:

                    toDeleteBook();

                    break;

                case 3:

                    toUpdateBook();

                    break;

                case 4:

                    toFindBook();

                    break;

                default:

                    break;



            }

        }while (flag);

    }



    public void toAddBook()

    {

        Scanner scanner = new Scanner(System.in);

        String bookId = null;



        do {

            System.out.print("请输入书籍的编号: ");

            bookId = scanner.next();

        }while (bookContainer.isBookExist(bookId)); //这里要判断系统里是否已经存在相同的书籍id

        //这里就用书籍容器完成,毕竟是系统内部操作





        System.out.print("请输入书名: ");

        String name = scanner.next();



        System.out.print("请输入作者: ");

        String author = scanner.next();



        System.out.println("请输入出版日期: ");

        String publishDate = scanner.next();



        Book book = new Book(bookId,name,author,publishDate);

        //添加书籍由管理员来完成

        admin.insertBook(book);

        System.out.println("添加完成");

        printAdminSystemMenu();

        chooseOption();



    }



    public void toDeleteBook()

    {

        Scanner scanner = new Scanner(System.in);



        System.out.println("请输入要删除的书籍的id");

        String bookId = scanner.next();



        if (bookContainer.isBookExist(bookId))

        {

            admin.delete(bookId);

            System.out.println("删除完成");

        }

        else

        {

            System.out.println("未找到该书籍");

        }

        System.out.println("是否继续删除书籍(Y/N): ");

        String choose = scanner.next();

        if (choose.equals("y") || choose.equals("Y"))

            toDeleteBook();

        else

        {

            printAdminSystemMenu();

            chooseOption();

        }

    }



    public void toUpdateBook()

    {

        Scanner scanner = new Scanner(System.in);



        System.out.println("请输入要删除的书籍的id");

        String bookId = scanner.next();



        if (bookContainer.isBookExist(bookId))

        {

            System.out.print("请输入书名: ");

            String name = scanner.next();



            System.out.print("请输入作者: ");

            String author = scanner.next();



            System.out.println("请输入出版日期: ");

            String publishDate = scanner.next();



            Book book = new Book(bookId,name,author,publishDate);

            admin.uodateBookInfo(book);

        }

        else

        {

            System.out.println("未找到该书籍");

        }



        printAdminSystemMenu();

        chooseOption();

    }



    public void toFindBook()

    {

        System.out.println("请选择:");

        System.out.println("1.查看所有书籍");

        System.out.println("2.根据id查找书籍");

        int choose;

        Scanner scanner = new Scanner(System.in);

        boolean flag = true;

        do {

            choose = scanner.nextInt();



            switch (choose)

            {

                case 1:

                    flag = false;

                    Collection<Book> allBooks = admin.findAllBooks();

                    for (Book book : allBooks)

                    {

                        System.out.println(book);

                    }

                    System.out.println("输入任意字符串返回主菜单...");

                    scanner.next();

                    printAdminSystemMenu();

                    chooseOption();

                    break;

                case 2:

                    flag = false;

                    System.out.print("请输入要查找书籍的编号: ");

                    String bookId = scanner.next();

                    Book book = admin.findBookById(bookId);

                    if (book == null)

                        System.out.println("书籍不存在");

                    else

                        System.out.println(book);

                    System.out.println("输入任意字符串返回主菜单...");

                    scanner.next();

                    printAdminSystemMenu();

                    chooseOption();

                    break;

                default:

                    break;

            }



        }while (flag);



    }

}

 

BookContainer.isBookExist:

 

public boolean isBookExist(String bookId)

{

    return books.containsKey(bookId);

}

 

不美观的地方大家可以自行修改

猜你喜欢

转载自blog.csdn.net/qq_40061421/article/details/83115449