JavaSE阶段练习:图书管理系统

你是知道我的,话不多说,直接上代码


一、User类(暂时没用

//这东西暂时没用
public class User {
    private String ID;
    private String name;
    private int password;
    private boolean isGLY;

    public User(String ID, String name, int password, boolean isGLY) {
        this.ID = ID;
        this.name = name;
        this.password = password;
        this.isGLY = isGLY;
    }

    public User(){};

    public String getID() {
        return ID;
    }

    public void setID(String ID) {
        this.ID = ID;
    }

    public String getName() {
        return name;
    }

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

    public int getPassword() {
        return password;
    }

    public void setPassword(int password) {
        this.password = password;
    }

    public boolean isGLY() {
        return isGLY;
    }

    public void setGLY(boolean GLY) {
        isGLY = GLY;
    }
}

二、Book类

public class Book {
    private String bookName;
    private String author;
    private double prince;
    private String type;
    private boolean isIn;

    @Override
    public String toString() {
        return "书名:'" + bookName + '\'' +
                ", 作者:'" + author + '\'' +
                ", 售价:'" + prince +
                ", 图书类型:'" + type + '\'' +
                ", 在库:" + isIn;
    }

    public Book(String bookName, String author, double prince, String type) {
        this.bookName = bookName;
        this.author = author;
        this.prince = prince;
        this.type = type;
        this.isIn = true;
    }
    public Book(){};

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public String getAuthor() {
        return author;
    }

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

    public double getPrince() {
        return prince;
    }

    public void setPrince(double prince) {
        this.prince = prince;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public boolean isIn() {
        return isIn;
    }

    public void setIn(boolean in) {
        isIn = in;
    }
}

三、直接上主函数

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

public class TsgSys {
    // 图书管理系统
    // 1.定义数据类型: Book图书类,User类
    //登陆界面
    //需要一个账户来记录所有的user
    static ArrayList<User> users = new ArrayList<>();
    //图书列表也写这里
    static ArrayList<Book> books = new ArrayList<>();
    //写这里好像不用传参数了
    static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        defaultLoad();
        //注释的这一部分以后再说吧
//        System.out.println(users.size());
//        while(true){
//            System.out.println("请输入姓名或者ID:输入0退出系统");
//            String userInString = scanner.next();
//            if(userInString.equals("0")){
//                return;
//            }
//            for (User user:users) {
//                if(userInString.equals(user.getID()) || userInString.equals(user.getName())){
//                    if(user.isGLY()){
//                        //进入管理员的界面
//                        System.out.println("欢迎管理员"+user.getName()+"!");
//                    }
//                    if(!user.isGLY()){
//                        //进入普通用户的界面
//                        System.out.println("欢迎"+user.getName()+"!");
//                    }
//                    break;
//                }else{
//                    System.out.println("该用户没有注册!");
//                    //因为是考试,所以添加用户先不做了嗷
//                    break;
//                }
//            }
//        }
        while(true){
            System.out.println("======欢迎来到XXX图书馆登录界面======");
            System.out.println("请输入用户名称:");
            String userName = scanner.next();
            System.out.println("请输入您的身份:1.管理员 2.普通用户 0.退出系统");
            int userType = scanner.nextInt();
            if(userType == 1){
                System.out.println("欢迎管理员"+userName+"登录图书管理系统!");
                //进入管理员的界面

                glyMenu();

            }else if(userType == 2){
                System.out.println("欢迎用户"+userName+"登录图书管理系统!");
                //进入普通用户界面

                yhMenu();

            }else if(userType == 0){
                System.out.println("欢迎下次使用!");
                return;
            }else{
                System.out.println("非法输入,请重新输入!");
            }
        }
    }

    private static void defaultLoad() {
        //准备工作,创建管理员用户和一个普通用户,并添加去
        User idiot = new User("000000", "idiot", 7895123, true);
        User ptr = new User("111111", "普通人", 7895123, false);
        users.add(idiot);
        users.add(ptr);
        //创建一些默认图书,并添加到列表
        Book book1 = new Book("西游记", "吴承恩", 78, "小说");
        Book book2 = new Book("红楼梦", "曹雪芹", 89, "小说");
        Book book3 = new Book("水浒传", "施耐庵", 108, "小说");
        Book book4 = new Book("三国演义", "罗贯中", 33, "小说");
        books.add(book1);
        books.add(book2);
        books.add(book3);
        books.add(book4);
        //可以写到一个静态函数里直接加载?试一试
    }
    private static void glyMenu(){
        System.out.println("======管理员菜单======");
        while(true){
            System.out.println("1.查找图书");
            System.out.println("2.新增图书");
            System.out.println("3.删除图书");
            System.out.println("4.显示图书");
            System.out.println("0.登出账号");
            int userInInt = scanner.nextInt();
            switch (userInInt){
                case 1:
                    System.out.println("查找图书");
                    select();
                    break;
                case 2:
                    System.out.println("新增图书");
                    add();
                    break;
                case 3:
                    System.out.println("删除图书");
                    delete();
                    break;
                case 4:
                    for (Book book:books) {
                        System.out.println(book);
                    }
                    break;
                case 0:
                    System.out.println("Bye!");
                    return;
                default:
                    System.out.println("输入不合法!请重新输入!");
            }
        }
    }
    private static void yhMenu(){
        System.out.println("======用户菜单======");
        while(true){
            System.out.println("1.查找图书");
            System.out.println("2.借阅图书");
            System.out.println("3.归还图书");
            System.out.println("0.登出账号");
            int userInInt = scanner.nextInt();
            switch (userInInt){
                case 1:
                    System.out.println("查找图书");
                    select();
                    break;
                case 2:
                    System.out.println("借阅图书");
                    jBook();
                    break;
                case 3:
                    System.out.println("归还图书");
                    hBook();
                    break;
                case 0:
                    System.out.println("Bye!");
                    return;
                default:
                    System.out.println("输入不合法!请重新输入!");
            }
        }
    }

    private static void select(){
        System.out.println("请输入要查找的书名:");
        String userInString = scanner.next();
        boolean isIn=false;
        for (Book book:books) {
            if(book.getBookName().equals(userInString)){
                System.out.println(book);
                isIn =true;
            }
        }
        if(!isIn){
            System.out.println("未查询到图书,请确实书名!");
        }
    }
    private static void add(){
        System.out.println("请输入要添加的书名:");
        String bookName = scanner.next();
        System.out.println("请输入书的作者:");
        String bookAuthor = scanner.next();
        System.out.println("请输入书的类型:");
        String bookType = scanner.next();
        System.out.println("请输入书的售价:");
        double bookPrice = scanner.nextDouble();
        Book newBook = new Book(bookName, bookAuthor, bookPrice, bookType);
        books.add(newBook);
        System.out.println("添加图书:"+newBook+" 成功!");
    }
    private static void delete(){
        System.out.println("请输入要删除的书名:");
        String userInString = scanner.next();
        Book book;int count = 1;
        for (int i = 0; i < books.size(); i++) {
            book = books.get(i);
            if (book.getBookName().equals(userInString)){
                System.out.println("已查询到第"+count+"本该书名图书");
                if(book.isIn()){
                    books.remove(i);
                    i--;
                    System.out.println("第"+count+"本该书名图书删除成功!");
                }else{
                    System.out.println("第"+count+"本该书名图书被借阅尚未归还,删除失败!");
                }
                count++;
            }
        }
        if (count == 1){
            System.out.println("未查询到该图书:"+userInString+"请确认书名是否无误");
        }

    }
    private static void jBook(){
        System.out.println("请输入要借阅的书名:");
        String userInString = scanner.next();
        int count = 1;
        for (Book book : books) {
            if (book.getBookName().equals(userInString)) {
                System.out.println("已查询到第" + count + "本该书名图书");
                if (book.isIn()) {
                    book.setIn(false);
                    System.out.println("借阅成功!");
                    return;
                } else {
                    System.out.println("第" + count + "本该书名图书被借阅尚未归还,正在为您查找下一本……");
                }
                count++;
            }
        }
        if (count == 1){
            System.out.println("未查询到该图书:"+userInString+"请确认书名是否无误");
        }else{
            System.out.println("所有图书已被借阅,请过段时间再来查询");
        }
    }

    private static void hBook(){
        System.out.println("请输入要归还的书名:");
        String userInString = scanner.next();
        int count = 1;
        for (Book book : books) {
            if (book.getBookName().equals(userInString)) {
                System.out.println("已查询到第" + count + "本该书名图书");
                if (book.isIn()) {
                    count++;
                }else{
                    book.setIn(true);
                    System.out.println("图书归还成功!");
                    return;
                }
                count++;
            }
        }
        if (count == 1){
            System.out.println("未查询到该图书:"+userInString+"请确认书名是否无误");
        }else{
            System.out.println("发生了未知错误,可能有人没有借但是还了或者管理员错误的强行删除了图书记录,归还失败!");
        }
    }
}

虽然用户类暂时没用上,但是如果你不是很熟练的话,直接带着它就行了。
很熟练的可以试着添加一些功能,或者将我写的冗余代码删除掉。
毕竟是刚学完javaSE,两个小时也只能做到这个水平啦

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值