0
点赞
收藏
分享

微信扫一扫

模拟图书管理系统

穆熙沐 2022-04-13 阅读 83
java
import java.util.Scanner;
/**
 * Library class
 *  图书管理系统
 * @author Huanghao
 * @date 2022/04/09
 */
public class Library {
    /**图书名称*/
    static String[] names = new String[6];
    /**图书状态 0表示可借阅,1表示已借出*/
    static int[] states = new int[6];
    /**借出日期*/
    static int[] dates = new int[6];
    /**借出次数*/
    static int[] counts = new int[6];
    /**接收键盘输入*/
    static Scanner input = new Scanner(System.in);

    /**
     * 程序入口
     * @param args
     */
    public static void main(String[] args) {
        init();
        System.out.println("欢迎使用迷你图书管理器");
        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("--------------------------");
            System.out.println("请选择:");
            int item = input.nextInt();
            if(item<1||item>6){
                System.out.println("谢谢使用");
                return;
            }
            switch (item){
                case 1:
                    System.out.println("---> 新增图书");
                    addbook();
                    break;
                case 2:
                    System.out.println("---> 查看图书");
                    showBook();
                    break;
                case 3:
                    System.out.println("---> 删除图书");
                    delBook();
                    break;
                case 4:
                    System.out.println("---> 借出图书");
                    lendBook();
                    break;
                case 5:
                    System.out.println("---> 归还图书");
                    restoredBook();
                    break;
                case 6:
                    System.out.println("---> 系统即将退出.....");
                    return;
                default:
            }
            System.out.println("**************************");
            System.out.println("输入0返回:");
            int num = input.nextInt();
            if(num!=0){
                System.out.println("谢谢使用.....");
                break;
            }
        }
    }

    /**
     * 初始化图书列表
     */
    private static void init(){
        names[0] = "三国演义";
        states[0] = 1;
        counts[0] = 20;
        dates[0] = 2;

        names[2] = "水浒传";
        counts[2] = 10;

        names[3] = "西游记";
        counts[3] = 15;
    }
    /**
     * 判断图书是否存在 返回下标 不存在-1
     * @param name
     * @return
     */
    private static int hasBook(String name){
    for (int i = 0; i < names.length; i++) {
        if(names[i]!=null && names[i].equals(name)){
            return i;
        }
    }
    return -1;
}
    /**
     * 新增图书
     */
    private static void addbook() {
        System.out.println("请输入图书名称:");
        String name = input.next();
        int index = hasBook(name);
        if(index==-1) {
            for (int i = 0; i < names.length; i++) {
                if(names[i]==null) {
                    names[i] = name;
                    System.out.println("新增《" + name + "》成功!");
                    return;
                }
            }
        }else {
            System.out.println("该书已经存在了,新增失败....");
        }
        if(names[names.length-1]!=null){
            System.out.println("书架已满,不能再进行新增操作");
        }
    }

    /**
     * 查看图书
     */
    private static void showBook() {
        System.out.println("序号\t状态\t\t名称\t\t借出日期\t借出次数");
        int num = 1;
        for (int i = 0; i < names.length; i++) {
            if(names[i]!=null){
                System.out.println(num+"\t"+(states[i]==0?"可借阅":"已借出")+"\t"+names[i]+"\t"+dates[i]+"\t\t"+counts[i]);
                num++;
            }
        }
    }

    /**
     * 删除图书
     */
    private static void delBook() {
        System.out.println("请输入要删除图书的名称:");
        String name = input.next();
        int index = hasBook(name);
        while(true){
            if(index==-1){
                System.out.println("删除的图书不存在,无法删除");
                break;
            }
            if(states[index]==1){
                System.out.println("该图书被借出了,不支持删除操作");
                break;
            }
            System.out.println(name+"图书删除成功");
            names[index] = null;
            dates[index] = 0;
            counts[index] = 0;
            break;
        }
    }

    /**
     * 借出图书
     */
    private static void lendBook() {
        System.out.println("请输入图书名称:");
        String name = input.next();
        int index = hasBook(name);
        if(index==-1){
            System.out.println("该图书还没有入库,请等待系统更新...");
            return;
        }
        if(states[index]==1){
            System.out.println("该图书已经被借走了,请过几天再来");
            return;
        }
        System.out.print("请输入借出日期:(1-30)");
        int date = input.nextInt();
        while(true){
            if(date>30||date<1){
                System.out.print("必须大于等于1且小于等于30的数字,请重新输入:");
                date = input.nextInt();
                continue;
            }
            System.out.println("借出《"+name+"》成功!");
            break;
        }
        dates[index] = date;
        states[index] = 1;
        counts[index]++;
    }

    /**
     * 归还图书
     */
    private static void restoredBook() {
        System.out.println("请输入归还图书名称:");
        String name = input.next();
        int index = hasBook(name);
        if(index == -1){
            System.out.println("该图书还没有入库,请等待系统更新...");
            return;
        }
        if(states[index] ==0){
            System.out.println("该图书没有被借出!无法进行归还操作。");
            return;
        }
        System.out.print("请输入归还日期");
        int endDate = input.nextInt();
        while(true){
            if(endDate<=dates[index] || endDate>30){
                System.out.print("归还日期必须大于借出日期且小于30,请重新输入:");
                endDate = input.nextInt();
                continue;
            }
            System.out.println("归还《"+name+"》成功!");
            System.out.println("借出日期:"+dates[index]);
            System.out.println("归还日期:"+endDate);
            System.out.println("应付租金(元):"+(endDate-dates[index])*1.0);
            break;
        }
        dates[index] = 0;
        states[index] = 0;
    }
}
举报

相关推荐

0 条评论