JavaCore-OOP-4-图书管理系统(完善版V2)

来源:互联网 发布:淘宝申请代付在哪里看 编辑:程序博客网 时间:2024/06/05 02:05

话说

上一篇博客的图书管理系统目前来看,勉强满意,但是还缺乏用户验证。这篇主要在原来基础上增加权限验证,增加后,单纯就功能而言,差强人意啦。

目标:
1、用户对图书进行增、删、改的时候,需要管理员权限;
2、购买图书会提示登录,没有账号提示注册;
3、只有管理员有权限对用户进行查、删、改操作。

这个管理员,当然就是小美我啦。
开发环境:Eclipse( Oxygen Release Milestone 7)

目录


一、整体效果图
二、Book类
三、User类
四、接口
五、测试类(核心)
六、总结


一、整体效果图

这里写图片描述

对图书及用户CUD操作做了权限验证。

这里写图片描述

管理员方可以操作;管理员忘记密码?哈哈,直接后台改代码咯~

这里写图片描述

用户购买图书,必须存在账号,未存在提示注册。

这里写图片描述

注册成功后,即可购买。当然用管理员账号什么都可以做啦。

这里写图片描述

修改、删除用户都类似,不在赘述。

二、Book类

这个跟之前一样。

package com.hmc.bookmanagement;/****2017年11月26日*User:Meice*下午7:48:14*/public class Book {    private int book_id;    private String book_name;    private double book_price;    private String book_author;    public Book() {}    public Book(int book_id,String book_name,double book_price,String book_author) {        this.book_id = book_id;        this.book_name = book_name;        this.book_price = book_price;        this.book_author = book_author;    }    public void setBook_id(int book_id) {        this.book_id = book_id;    }    public int getBook_id() {        return book_id;    }    public void setBook_name(String book_name) {        this.book_name = book_name;    }    public String getBook_name() {        return book_name;    }    public void setBook_price(double book_price) {        this.book_price = book_price;    }    public double getBook_price() {        return book_price;    }    public void setBook_author(String book_author) {        this.book_author = book_author;    }    public String getBook_author() {        return book_author;    }    public String toString() {        return "Book{"+book_id+"\t"+book_name+"\t"+book_price+"\t"+book_author+"}";    }}

三、User类

User类是新增的

package com.hmc.bookmanagement;/****2017年11月27日*User:Meice*下午9:11:11*/public class User {    private int user_id;    private String username;    private String password;    public User() {}    public User(int user_id,String username,String password) {        this.user_id = user_id;        this.username = username;        this.password = password;    }    public int getUser_id() {        return user_id;    }    public void setUser_id(int user_id) {        this.user_id = user_id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    @Override    public String toString() {        return "User [user_id=" + user_id + ", username=" + username + ", password=" + password + "]";    }}

四、接口

接口跟之前一样:

package com.hmc.bookmanagement;/****2017年11月26日*User:Meice*下午7:46:47*/public interface BookManagementI {    public void showAllBook();    public void addBook(Book book);    public void delBook(String book_name);    public void editBook(String book_name);    public void buyBook();}

五、测试类(核心)

BookManagementSystemImpl

这个变化很大,原来400来行代码,现在800来行,增加了权限验证及各种异常处理。当然CURD代码思路都是一样,如果用泛型还可以简化。不过这次就完善到这里。

package com.hmc.bookmanagement;import java.text.DecimalFormat;import java.util.Arrays;import java.util.InputMismatchException;import java.util.Scanner;import org.junit.Test;/****2017年11月26日*User:Meice*下午7:54:26*/public class BookManagementSystemImpl implements BookManagementI {    static BookManagementSystemImpl bms = new BookManagementSystemImpl();    //用数组作为容器,存放书籍    Book[] BookList = new Book[100];    //定义购书车,存放购买清单    Book[] buiedBooks = new Book[20];    //定义数组,存放待删除信息    User[] waitDelUserList = new User[20];    //定义购买总金额totalPrice    double totalPrice = 0;    //定义数组,用于存放用户信息    User[] UserList = new User[20];    public BookManagementSystemImpl() {        Book book1 = new Book(1, "《笑傲江湖》", 23.33, "金庸");        Book book2 = new Book(2, "《红楼梦续集》", 33.455, "曹雪芹");        Book book3 = new Book(3, "《悲惨世界》", 45.456, "雨果");        Book book4 = new Book(4, "《战争与和平》", 67.899, "托尔斯泰");        Book book5 = new Book(5, "《宝贝,宝贝》", 45.782, "周国平");        BookList[0] = book1;        BookList[1] = book2;        BookList[2] = book3;        BookList[3] = book4;        BookList[4] = book5;        //初始化管理员用户        User user = new User(0, "Meice", "123");        UserList[0] = user;    }    public static void main(String[] args) {        do {            bms.welcomeEnter();            switch(bms.getChooseNumber()) {            case 1:                //TODO showAllBook()                bms.showAllBook();                break;            case 2:                //TODO addBook()                //根据用户选择,是否使用管理员权限                if(bms.isContinue("【用户管理员】方有权限执行【新增】操作,使用管理员权限(y/n)?", "请输入用户名:", "")) {                    //权限验证                    if(bms.isAdmin(bms.getOneUser(""))) {                        bms.addBook(bms.getOneBook());                    }                }                break;            case 3:                //TODO delBook()                if(bms.isContinue("【用户管理员】方有权限执行【删除】操作,使用管理员权限(y/n)?", "请输入用户名:", "")) {                    if(bms.isAdmin(bms.getOneUser(""))) {                        bms.showAllBook();                        bms.delBook(bms.getOneBookName("请输入【待删除】图书的【图书名称】:"));                    }                }                break;            case 4:                //TODO editBook()                if(bms.isContinue("【用户管理员】方有权限执行【编辑】操作,使用管理员权限(y/n)?", "请输入用户名:", "")) {                    if(bms.isAdmin(bms.getOneUser(""))) {                        bms.showAllBook();                        bms.editBook(bms.getOneBookName("请输入【待修改】图书的【图书名称】:"));                    }                }                break;            case 5:                //TODO buyBook()                //购买之前,提示用户登陆,如果是非老用户,提示注册:                if(bms.isContinue("购买操作需要登录奥~已注册(y/n)?", "请输入【已存在】用户名:","")) {                    //用户存在方可执行购买操作                    if(bms.isOneUserExist(bms.getOneUser(""))) {                        bms.showAllBook();                        bms.buyBook();                    }else {                        System.out.println("此用户不存在,请重新选择其他操作:");                    }                }else {                    //执行注册用户功能                    bms.addUser(bms.getOneUser("请输入【注册】用户名:"));                }                break;            case 6:                //查看用户列表                if(bms.isContinue("【用户管理员】方有权限执行【查看用户列表】操作,使用管理员权限(y/n)?", "请输入用户名:", "")) {                    if(bms.isAdmin(bms.getOneUser(""))) {                        bms.showUsers();                    }                }                break;            case 7:                //修改用户                if(bms.isContinue("【用户管理员】方有权限执行【修改】操作,使用管理员权限(y/n)?", "请输入用户名:", "")) {                    //判断用户权限                    if(bms.isAdmin(bms.getOneUser(""))) {                        bms.showUsers();                        bms.updateUser(bms.getUserIds("请输入【待修改用户】编号:"));                    }                }                break;            case 8:                //删除用户                if(bms.isContinue("【用户管理员】方有权限执行【删除】操作,使用管理员权限(y/n)?", "请输入用户名:", "")) {                    //判断用户权限                    if(bms.isAdmin(bms.getOneUser(""))) {                        bms.showUsers();                        bms.delUser(bms.getUserIds("请输入【待删除用户】编号【多个请以英文逗号间隔】:"));                    }                }                break;            case 9:                //TODO Exit                System.out.println("谢谢惠顾!期待下次光临! *.* ");                break;            default:                //TODO others                System.out.println("此序号不存在,请重新选择:");                break;            }        }while(bms.isContinue("是否继续(y/n)?","","谢谢惠顾!期待下次相逢 *.* "));    }    /**     * 方法1:欢迎界面     * welcomeEnter()     */    public void welcomeEnter() {        System.out.println("****************************欢迎进入图书管理系统********************************");        System.out.println("1.查看图书列表\n2.新增图书\n3.删除图书\n4.编辑图书\n5.购买图书");        System.out.println("==后台用户管理==");        System.out.println("6.查看用户列表\n7.修改用户\n8.删除用户\n9.退出");        System.out.println("*************************************************************************");    }    /**     * 方法2:返回选择序号     * getChooseNumber()     */    public int getChooseNumber() {        System.out.println("请输入选择的序号:");        try {            return new Scanner(System.in).nextInt();        }catch(InputMismatchException e) {            System.out.println("输入有误,请重新输入:");            try {                return new Scanner(System.in).nextInt();            }catch(InputMismatchException e2) {                System.out.println("多次输入有误,求助于管理员【小美】吧!");                return 6;            }        }    }    /**     * 方法3:显示图书列表     */    @Override    @Test    public void showAllBook() {        System.out.println("****************************图书列表*************************************");        if(bms.getBooksCount()==0) {            System.out.println("图书已售罄,期待下次光临 *.* ");        }else {            System.out.println("图书编号\t图书名称\t\t\t价格\t\t作者");        }        for(int i=0;i<BookList.length;i++) {            if(BookList[i]!=null) {                System.out.println(BookList[i].getBook_id()+"\t"+BookList[i].getBook_name()+"\t\t"+BookList[i].getBook_price()+"\t\t"+BookList[i].getBook_author());            }        }        System.out.println("**********************************************************************");    }    /**     * 方法4:是否继续     * isContinue()     */    public boolean isContinue(String startInfo,String continueInfo,String notContinueInfo) {        System.out.println(startInfo);        String choice = new Scanner(System.in).next();        if("y".equals(choice)|| "Y".equals(choice)) {            System.out.println(continueInfo);            return true;        }else if("n".equals(choice)|| "N".equals(choice)) {            System.out.println(notContinueInfo);            return false;        }else {            System.out.println("输入有误,请重新输入:y/Y表示继续,n/N表示终止操作:");            String choice2 = new Scanner(System.in).next();            if("y".equals(choice2)|| "Y".equals(choice2)) {                System.out.println(continueInfo);                return true;            }else if("n".equals(choice)|| "N".equals(choice)) {                System.out.println(notContinueInfo);                return false;            }else {                System.out.println("连续多次输入有误,求助于管理员【小美】吧!");                return false;            }        }    }    /**     * 方法5:新增图书     */    @Override    public void addBook(Book book) {        //输出新增图书        System.out.println("****************************待新增图书信息**********************************");        System.out.println("图书编号\t图书名称\t\t\t价格\t\t作者");        System.out.println(book.getBook_id()+"\t"+book.getBook_name()+"\t\t"+book.getBook_price()+"\t\t"+book.getBook_author());        System.out.println("************************************************************************");        //判断是否新增        if(bms.isContinue("请核实新增图书信息,确认新增(y/n)?","恭喜您!新增成功! *.* ","未执行新增操作,请选择其他操作:")) {            for(int i=0;i<BookList.length;i++) {                if(BookList[i]!=null) {                    if(i==bms.getBooksCount()-1) {                        BookList[i+1] = book;                        //System.out.println("恭喜您!新增成功! *.* ");                        //没有break;就会数组越界101 或者所有null值全部添加同一本书                        break;                    }                }            }        }else {            //已经做了处理notContinueInfo        }    }    /**     * 方法6:获取书籍数量     * getBooksCount()     */    public int getBooksCount() {        int count =0;        for(int i=0;i<BookList.length;i++) {            if(BookList[i]!=null) {                count ++;            }        }        return count;    }    /**     * 方法7:获得一本书     * getOneBook()     */    public Book getOneBook() {        System.out.println("请输入新增图书名称:");        String book_name = new Scanner(System.in).next();        System.out.println("请输入新增图书价格:");        double book_price = new Scanner(System.in).nextDouble();        System.out.println("请输入图书作者:");        String book_author = new Scanner(System.in).next();        Book book = new Book(bms.getBooksCount()+1, book_name, book_price, book_author);        return book;    }    //测试书籍数量    @Test    public void test01() {        System.out.println(getBooksCount());    }    /**     * 方法8:删除图书     *      */    @Override    public void delBook(String book_name) {        //判断该书名是否存在        if(bms.isBookNameExist(book_name)) {            //输出待删除图书信息            Book book = bms.returnOneBookByBookName(book_name);            System.out.println("****************************待删除图书信息**********************************");            System.out.println("图书编号\t图书名称\t\t\t价格\t\t作者");            System.out.println(book.getBook_id()+"\t"+book.getBook_name()+"\t\t"+book.getBook_price()+"\t\t"+book.getBook_author());            System.out.println("***********************************************************************");            //确认是否执行删除操作            if(bms.isContinue("请核实删除信息,确认删除(y/n)?","恭喜!删除成功! *.* ", "未执行删除操作,请选择其他操作")) {                //直接执行删除操作,判断是否存在交给另外的方法                for(int i=0;i<BookList.length;i++) {                    if(BookList[i]!=null) {                        if(book_name.equals(BookList[i].getBook_name())) {                            BookList[i] = null;                            //System.out.println("恭喜您!删除成功!*.* ");                            break;                        }                    }                }            }else {                //已经处理            }        }else {            System.out.println("此本书不存在,请重新输入...");        }    }    /**     * 方法9:判断book_name是否存在     * isBookNameExist()     */    public boolean isBookNameExist(String book_name) {        boolean flag = false;        for(int i=0;i<BookList.length;i++) {            if(BookList[i]!=null) {                if(book_name.equals(BookList[i].getBook_name())) {                    flag = true;                    //避免flag在发生变化,已经证明存在了,就可以了                    break;                }                else {                    //System.out.println("此书不存在,请重新选择操作:"); 这里输出信息就不合适,会多次输出 目的只是判断是否存在                    flag = false;                }            }        }        return flag;    }    /**     * 方法10:根据书名返回一本书     * returnOneBookByBookName()      */    public Book returnOneBookByBookName(String book_name) {        for(int i=0;i<BookList.length;i++) {            if(BookList[i]!=null) {                if(book_name.equals(BookList[i].getBook_name())) {                    return BookList[i];                }            }        }        //因为这个方法是建立在一定有这本书的基础上,所以其他情况可以返回null        return null;    }    /**     * 方法11:获取一本书名     * getOneBookName()     */    public String getOneBookName(String info) {        //这里不要写死,灵活变化,删除提示输入要删除的图书名称;修改类似        //System.out.println("请输入图书名称:");        System.out.println(info);        return new Scanner(System.in).next();    }    /**     * 方法12:编辑图书     */    @Override    public void editBook(String book_name) {        //在书本存在的前提下执行操作        if(bms.isBookNameExist(book_name)) {            System.out.println("请输入修改后的价格:");            double book_price = new Scanner(System.in).nextDouble();            System.out.println("请输入修改后的作者:");            String book_author = new Scanner(System.in).next();            //输出图书信息            System.out.println("****************************待修改图书信息**********************************");            System.out.println("图书名称\t\t\t价格\t\t作者");            System.out.println(book_name+"\t\t"+book_price+"\t\t"+book_author);            System.out.println("***********************************************************************");            //确认是否修改            if(bms.isContinue("请核对修改信息,确认修改(y/n)?", "恭喜!修改成功!","未执行修改操作,请选择其他操作:")) {                //执行修改操作                for(int i=0;i<BookList.length;i++) {                    if(BookList[i]!=null) {                        if(book_name.equals(BookList[i].getBook_name())) {                            BookList[i].setBook_price(book_price);                            BookList[i].setBook_author(book_author);                            //System.out.println("恭喜您!修改成功! *.* ");                        }                    }                }            }else {                //已处理            }        }else {            System.out.println("书本不存在,请选择其他操作:");        }    }    /**     * 方法13:购买图书     */    @Override    public void buyBook() {        //处理NumberFormatException        try {            System.out.println("请输入购买图书序号【购买多本请以英文逗号分隔】:");            String strId = new Scanner(System.in).next();            String[] strIds = strId.split(",");            //在图书存在的前提下在把图书清空并且在输出购买清单            if(isBookExitByBookIds(strId)) {                //遍历判断id是否相等,如果相等,就设置为空                for(int i=0;i<BookList.length;i++) {                    if(BookList[i]!=null) {                        for(int j=0;j<strIds.length;j++) {                            if(BookList[i].getBook_id()==Integer.parseInt(strIds[j])) {                                buiedBooks[i] = BookList[i];                                totalPrice +=BookList[i].getBook_price();                                BookList[i] = null;                                //确保只输出一次                                if(j==(strIds.length-1)) {                                    System.out.println("恭喜您!购买成功! *.* ");                                }                                //这里一定要跳出内存循环,否则空指针                                break;                            }                        }                    }                }                //输出购买信息                System.out.println("****************************购买图书清单**********************************");                System.out.println("图书编号\t图书名称\t\t\t价格\t\t作者\t总金额");                for(int i=0;i<buiedBooks.length;i++) {                    if(buiedBooks[i]!=null) {                        System.out.println(buiedBooks[i].getBook_id()+"\t"+buiedBooks[i].getBook_name()+"\t\t"+buiedBooks[i].getBook_price()+"\t\t"+buiedBooks[i].getBook_author());                    }                }                //格式化总金额                DecimalFormat df = new DecimalFormat("#.00");                System.out.println("\t\t\t\t\t\t\t"+df.format(totalPrice)+"元");                System.out.println("***********************************************************************");            }else {                System.out.println("该图书不存在,请重新选择操作:");            }        }catch(NumberFormatException e) {            System.out.println("输入有误,请重新操作:");        }    }    /**     * 方法14:根据图书Id判断图书是否存在     * IsBookExistByBookIds()     * 单本、多本都可以搞定!     */    public boolean isBookExitByBookIds(String strId) {        boolean flag = false;        String[] strIds = strId.split(",");        for(int i=0;i<BookList.length;i++) {            if(BookList[i]!=null) {                for(int j=0;j<strIds.length;j++) {                    if(BookList[i].getBook_id()==Integer.parseInt(strIds[j])) {                        flag = true;                        //中断循环                        break;                    }else {                        //这里不要在做任何判断,这个很重要;否则又判断回去了,感谢Debug模式,不要太自信自己的判断                        //flag = false;                    }                }            }        }        //如果2id存在,1本不存在,也视为不存在处理;但是后台已经清空        return flag;    }    //==============================================================================    //以下新增用户权限验证功能    /**     * 方法15:验证管理员权限     * isAdmin()      */    public boolean isAdmin(User user) {        if("Meice".equals(user.getUsername())&&"123".equals(user.getPassword())) {            System.out.println("欢迎管理员【"+user.getUsername()+"】:");            return true;        }else {            System.out.println("遗憾,您权限不足,请求助管理员【小美】童鞋吧!");            return false;        }    }    /**     * 方法16:得到一个用户     * getOneUser()     * info类似:此操作需要管理员权限,请输入用户名:     * 还可以类似:空串     */    public User getOneUser(String info) {        System.out.println(info);        String username = new Scanner(System.in).next();        System.out.println("请输入用户密码:");        String password = new Scanner(System.in).next();        User user = new User(getUsersCount(), username, password);        return user;    }    /**     * 方法17:获取用户数量     * getUsersCount()     * 便于user_id自增     */    @Test    public int getUsersCount() {        int usersCount = 0;        for(int i=0;i<UserList.length;i++) {            if(UserList[i]!=null) {                usersCount ++;            }        }        return usersCount;    }    /**     * 方法18:添加注册用户     *      */    public void addUser(User user) {        //遍历数组,把数组添加进去        for(int i=0;i<UserList.length;i++) {            //第一个null值处理下            if(getUsersCount()==0) {                //输出注册用户信息                System.out.println("********************待注册用户**************************");                System.out.println("用户编号\t\t用户名\t\t用户密码");                System.out.println(user.getUser_id()+"\t\t"+user.getUsername()+"\t\t"+user.getPassword());                System.out.println("******************************************************");                //让用户确认是否注册                if(isContinue("请核对以上待注册信息,确认注册(y/n)?","恭喜您!热烈您成为图书管理系统【第一个用户】!!! *.*", "未执行新增操作,请选择其他操作:")) {                    UserList[0]=user;                    //System.out.println("恭喜您!热烈您成为图书管理系统【第一个用户】!!! *.* ");                }else {                    break;                }            }else {                if(UserList[i]!=null) {                    //输出注册用户信息                    System.out.println("********************待注册用户**************************");                    System.out.println("用户编号\t\t用户名\t\t用户密码");                    System.out.println(user.getUser_id()+"\t\t"+user.getUsername()+"\t\t"+user.getPassword());                    System.out.println("******************************************************");                    //让用户确认是否注册                    if(isContinue("请核对以上待注册信息,确认注册(y/n)?","恭喜您!注册成功! *.* ", "未执行注册操作,请选择其他操作:")) {                        UserList[getUsersCount()] = user;                    //  System.out.println("恭喜您!注册成功! *.* ");                        //添加以后,马上终止,否则要么最后越界,要么Null值全部添加为了同一个用户                        break;                    }else {                        break;                    }                }            }        }    }    /**     * 方法19:判断用户是否存在     * 单个用户     * isOneUserExist()     */    public boolean isOneUserExist(User user) {        for(int i=0;i<UserList.length;i++) {            if(UserList[i]!=null) {                if(user.getUsername().equals(UserList[i].getUsername()) &&user.getPassword().equals(UserList[i].getPassword()) ) {                    return true;                }            }        }        return false;    }    /**     * 方法20:查看用户列表     * showUsers     *后台查看,也需要权限验证     */    public void showUsers() {        //如果有用户在显示,否则提示暂无用户”        System.out.println("********************用户列表*****************************");        if(getUsersCount()>0) {            //遍历显示用户            System.out.println("用户编号\t\t用户名\t\t用户密码");            for(int i=0;i<UserList.length;i++) {                if(UserList[i]!=null) {                    System.out.println(UserList[i].getUser_id()+"\t\t"+UserList[i].getUsername()+"\t\t"+                            UserList[i].getPassword());                }            }        }else {            System.out.println("暂无用户\n请先【增加】几个\"用户\"吧!");        }        System.out.println("******************************************************");    }    /**     * 方法21:修改用户     */    public void updateUser(String user_id) {        //逻辑类似删除用户 不过编辑是一次编辑一个        //有用户的前提下执行操作        if(getUsersCount()>=1) {            //确保用户存在前提下执行            if(isOneUserIdExist(user_id)) {                //输出修改后的信息                System.out.println("请输出修改后的用户名:");                String username= new Scanner(System.in).next();                System.out.println("请输入修改后的密码:");                String password = new Scanner(System.in).next();                System.out.println("********************待修改用户***************************");                System.out.println("用户编号\t\t用户名\t\t用户密码");                System.out.println(user_id+"\t\t"+username+"\t\t"+password);                System.out.println("******************************************************");                //根据用户选择,是否执行修改操作                if(isContinue("请核对以上待修改信息,确认修改(y/n)?", "","未执行修改操作,请选择其他操作:")) {                    for(int i=0;i<UserList.length;i++) {                        if(UserList[i]!=null) {                            if(UserList[i].getUser_id() == Integer.parseInt(user_id)) {                                UserList[i].setUsername(username);                                UserList[i].setPassword(password);                                System.out.println("恭喜您!修改成功! *.* ");                            }                        }                    }                }else {                }            }else {                System.out.println("用户不存在,请选择其他操作:");            }        }    }    /**     * 方法22:判断单个用户是否存在     * IsOneUserExist()     */    public boolean isOneUserIdExist(String user_id) {        //处理NumberFormatException        try {            int user_id2 = Integer.parseInt(user_id);            for(int i=0;i<UserList.length;i++) {                if(UserList[i]!=null) {                    if(UserList[i].getUser_id()==user_id2) {                        return true;                    }                }            }        }catch(NumberFormatException e) {            //System.out.println("输入格式有误,请重新选择操作:");        }        return false;    }    /**     * 方法23:删除用户     */    public void delUser(String user_id) {        String[] user_ids = user_id.split(",");        //输出用户待删除信息            //首先要有用户            if(getUsersCount()>=1) {                //其次user_id存在在输出待删除信息                if(isOneUserIdExist(user_id)) {                    System.out.println("********************待删除用户**************************");                    System.out.println("用户编号\t\t用户名\t\t用户密码");                    for(int i=0;i<UserList.length;i++) {                        if(UserList[i]!=null) {                            for(int j=0;j<user_ids.length;j++) {                                if(UserList[i].getUser_id()==Integer.parseInt(user_ids[j])) {                                    System.out.println(UserList[i].getUser_id()+"\t\t"+UserList[i].getUsername()+"\t\t"+UserList[i].getPassword());                                }                            }                        }                    }                    System.out.println("******************************************************");                    //用户确认是否执行删除操作                    if(isContinue("请核对删除信息,确认删除(y/n)?","", "未执行删除操作,请选择其他操作:")) {                        //执行删除操作                        for(int i=0;i<UserList.length;i++) {                            if(UserList[i]!=null) {                                for(int j=0;j<user_ids.length;j++) {                                    if(UserList[i].getUser_id()==Integer.parseInt(user_ids[j])) {                                        //存进待删除列表                                        waitDelUserList[i] = UserList[i];                                        UserList[i] = null;                                        //确保只输出一次                                        if(j==user_ids.length-1) {                                            System.out.println("恭喜您!删除成功! *.* ");                                        }                                        //跳出内存循环                                        break;                                    }                                }                            }                        }                    }else {                        //不做处理                    }                }else {                    System.out.println("用户不存在奥!请选择其他操作:");                }            }    }    /**     * 方法24:获取用户输入user_id     * getUserIds()     * 用户输入单个字符或者连续输入多个(在删除的时候)都可以     */    public String getUserIds(String info) {        //必须在有用户的前提下再执行:        if(getUsersCount()>=1) {            System.out.println(info);            //处理NumberFormatException            try {                return new Scanner(System.in).next();            }catch(NumberFormatException e) {                System.out.println("输入格式有误:请重新输入用户编号:");                try {                    return new Scanner(System.in).next();                }catch(NumberFormatException e2) {                    System.out.println("连续多次输入有误,请重新选择:");                    return "";                }            }        }else {            return "";        }    }    /**     * 问题:     * 1.Exception in thread "main" java.util.InputMismatchException——try catch 多个;     * 2.Exception in thread "main" java.lang.NumberFormatException:购买图书,出现中文逗号或者其他 ——try catch     * 3.图书售罄提示     * 4.根据多个Id,判断图书是否存在,还有bug,不准确     * 5.如果管理员忘记密码,可以初始化一下(当然直接改代码就可以了)     */}

六、总结


1、在下不能只顾着自己发表博客,记录是好习惯,更重要的是应该多看看同类型的文章,快速借鉴学习主题差不多的文章的优点,这样成长才更快;

2、博客还是时断时续的,我希望博客不要停,这是我的一项有着战略意义的习惯;

3、我应该有更快、更高、更强的意志和决心,这个冬天真冷。上海的冬天真冷。


原创粉丝点击