图书管理系统(对象+集合)

//图书类

package 对象和集合.图书管理系统;

public class Book {
    //  // 图书相关信息,最多只能存储6个图书信息
    //        String[] name = new String[6]; // 图书名称
    //        int[] state = new int[6]; // 借阅状态,0:可借阅 ;1:已借出
    //        int[] date = new int[6]; // 借出日期
    //        int[] count = new int[6]; // 借出次数
    private String name;
    private int state;
    private int date;
    private int count;

    public Book() {
    }

    public Book(String name, int state, int date, int count) {
        this.name = name;
        this.state = state;
        this.date = date;
        this.count = count;
    }


    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return state
     */
    public int getState() {
        return state;
    }

    /**
     * 设置
     * @param state
     */
    public void setState(int state) {
        this.state = state;
    }

    /**
     * 获取
     * @return date
     */
    public int getDate() {
        return date;
    }

    /**
     * 设置
     * @param date
     */
    public void setDate(int date) {
        this.date = date;
    }

    /**
     * 获取
     * @return count
     */
    public int getCount() {
        return count;
    }

    /**
     * 设置
     * @param count
     */
    public void setCount(int count) {
        this.count = count;
    }

    public String toString() {
        return "Book{name = " + name + ", state = " + state + ", date = " + date + ", count = " + count + "}";
    }



}

// 功能类

package 对象和集合.图书管理系统;

import java.util.List;
import java.util.Scanner;

public class Test {
    /**
     * 归还图书
     * @param books
     */
    public static final Scanner SC = new Scanner(System.in);
    public static void returnBook(List<Book> books) {
        see(books);
        System.out.println("请输入归还的图书名");
        String okName = SC.next();
        for (int i = 0; i < books.size(); i++) {
            if ( books.get(i).getName().equals(okName) && books.get(i).getState() == 0) {
                //可以
                System.out.println("图书还没有借出!!");
                System.out.println("是否继续(y/n)");
                String command = SC.next();
                switch (command) {
                    case "y":
                        returnBook(books);
                    default:
                        return;
                }
            } else if ( books.get(i).getName().equals(okName) && books.get(i).getState() == 1) {
                books.get(i).setState(0); // 将借阅状态修改为可借阅
                System.out.print("请输入归还日期:");
                int redate = SC.nextInt();
                while (redate < books.get(i).getDate() || redate > 31) { // 归还日期不能小于借出日期,也不能大于31
                    if (redate <books.get(i).getDate()) {
                        System.out.println("归还日期不能小于借出日期,请重新输入:");
                    } else {
                        System.out.println("一个月只有31天,请重新输入:");
                    }
                    redate = SC.nextInt();
                }
                books.get(i).setState(0);
              int change=redate-books.get(i).getDate();
                System.out.println("付租金:"+change+"元");
                see(books);
                return;
            }
        }
    }

    /**
     * 借书
     * @param books
     */
    public static void lendBook(List<Book> books) {
        //定义一个是否可以借
        see(books);
        System.out.println("请输入你要借的图书名:");
        String okName = SC.next();
        for (int i = 0; i < books.size(); i++) {
            if (books.get(i).getName().equals(okName) && books.get(i).getState() == 0) {
                //可以借了
                System.out.println("请输入你借书的日期(1-31)");
                int date =SC.nextInt();
                while (date<1||date>31){
                    System.out.println("输入错误请重新输入!");
                    date =SC.nextInt();
                }
                books.get(i).setState(1);
                books.get(i).setDate(date);
                System.out.println(books.get(i).getDate());
                books.get(i).setCount(books.get(i).getCount()+1);
                System.out.println("成功借"+"《"+books.get(i).getName()+"》");
                return;
            } else if (books.get(i) != null && books.get(i).getName().equals(okName) &&books.get(i).getState() == 1) {
                System.out.println("图书还在借阅中!");
                System.out.println("是否继续(y/n)");
                String command = SC.next();
                switch (command) {
                    case "y":
                        lendBook(books);
                    default:
                        return;
                }
            }
        }
    }
    /**
     * 删除数组
     * @param books
     */
    public static void deleteBook(List<Book> books) {
        //定义一个是否可以删除
        see(books);
        System.out.println("请输入你要删除的图书名:");
        String okName =SC.next();
        for (int i = 0; i < books.size(); i++) {
            if (books.get(i).getName().equals(okName)&&books.get(i).getState()==0){
                //可以删除了
                books.remove(i);
                System.out.println("删除成功!");
                break;
            }else if (books.get(i).getName().equals(okName)&&books.get(i).getState()==1){
                System.out.println("图书还在借阅中不能删除!");
                System.out.println("是否继续(y/n)");
                String command=SC.next();
                switch (command){
                    case "y":
                        continue;
                    default:
                        return;
                }
            }
        }
    }
    /**
     * 查看数组
     * @param books
     */
    public static void see(List<Book> books) {
        System.out.println("---------查看图书-------------");
        System.out.println("序号\t\t名称\t\t状态\t\t借出日期\t\t借出次数");
        for (int i = 0; i < books.size(); i++) {
                String state=books.get(i).getState()==0?"可借阅":"已借出";
                String date =books.get(i).getDate()+"日";
                String count =books.get(i).getCount()+"次";
                System.out.println((i+1)+"\t"+"《"+books.get(i).getName()+"》"+"\t"+state+"\t\t"+date+"\t\t"+count);
        }
    }

    /**
     * 新增图书
     * @param sc
     */
    public static void newBook(List<Book> books, Scanner sc)  {
        System.out.println("----------------新曾图书---------------");
        //遍历到空
        for (int i = 0; i < books.size(); i++) {
                //可以插入了
                System.out.println("请输入你要新增的书名:");
                String name=SC.next();
                for (int j = 0; j < books.size(); j++) {
                        if (books.get(j).getName().equals(name)) {
                            System.out.println("图书已存在!请重新输入!");
                            return;
                        }
                Book book =new Book(name,0,0,0);
                books.add(book);
                System.out.println("添加成功");
                return;
            }
        }
    }
}

// 主类
package 对象和集合.图书管理系统;

import java.util.ArrayList;
import java.util.List;

public class BookSystem {


    public static void main(String[] args) {
        //定义数组存book对象
        //  // 图书相关信息,最多只能存储6个图书信息
        //        String[] name = new String[6]; // 图书名称
        //        int[] state = new int[6]; // 借阅状态,0:可借阅 ;1:已借出
        //        int[] date = new int[6]; // 借出日期
        //        int[] count = new int[6]; // 借出次数
        Book book = new Book();
        List<Book> books = new ArrayList<>();
        books.add( new Book("金色花", 1, 1, 15));
        books.add( new Book("白色花", 0, 0, 9));
        books.add( new Book("红色花", 0, 0, 0));
        //循环条件
        int num = 1;
        do {
            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("请选择:");
            int choose = Test.SC.nextInt();
            switch (choose) {
                case 1:
                    //新增图书
                    Test.newBook(books, Test.SC);
                    break;
                case 2:
                    //查看图书
                    Test.see(books);
                    break;
                case 3:
                    //删除图书
                    Test.deleteBook(books);
                    break;
                case 4:
                    Test.lendBook(books);
                    //借出图书

                    break;
                case 5:
                    Test.returnBook(books);
                    //归还图书
                    break;
                case 6:
                    //退出系统
                    System.out.println("谢谢您的使用欢迎下次光临!!");
                    return;
                default:
                    System.out.println("输入错误!");
            }
            System.out.print("输入0返回");
            num = Test.SC.nextInt();
            while (num != 0) {
                num = Test.SC.nextInt();
                System.out.println("输入错误重新输入!");
            }
        } while (num == 0);
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值