【Java】图书管理系统

分享第四条励志语录

这个世界上原本就不存在一夜暴富,成功的路上没有任何捷径,只有踏踏实实,一步一个脚印,才能到达理想的彼岸。我们大部分人都是普通人,没爹可拼,能拼的只有自己。当你有足够的能力时,你就会成为你自己的背景

今天写一篇图书管理系统的代码,里面包含欢迎菜单,欢迎菜单里有:新增图书、查看图书,删除图书,借出图书,归还图书,退出图书六大系统

主要运行如下:

建立四个数组,存储图书信息,并初始化前三本图书: 

 这个系统适合使用do-while循环,并使用switch来写六大功能

 新增图书

查看图书

删除图书

借出图书 

 

 归还图书

退出图书

 


 主要代码如下:

package cn.sun.chihuo01;

import java.util.*;

/**
 * 图书管理系统类MyBookMgr
 * 
 * @author Administrator
 * 
 */
public class MyBook {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        // 是否退出系统,false代表退出系统
        boolean flag = true;

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

        // 初始化第一本本图书
        name[0] = "罗马假日";
        state[0] = 1;
        date[0] = 1;
        count[0] = 15;

        // 初始化第二本图书
        name[1] = "白雪公主";
        state[1] = 0;
        count[1] = 12;

        // 初始化第三本图书
        name[2] = "葫芦兄弟";
        state[2] = 0;
        count[2] = 30;

        int num = -1;
        // 循环操作
        do {
            // 输出欢迎菜单
            System.out.println("欢迎使用迷你图书管理器");
            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 choose = input.nextInt();
            switch (choose) {
            case 1:
                // 新增图书
                System.out.println("-->新增图书\n");
                System.out.println("请输入图书名称:");
                String BookName = input.next();

                // 判断添加书是否成功
                boolean flag2 = false;

                // 循环查找图书馆里的可存放书的地方
                for (int i = 0; i < name.length; i++) {
                    // 判断某个位置是否能存放书
                    if (name[i] == null) {
                        name[i] = BookName;
                        System.out.println("新增《" + BookName + "》成功!");
                        flag2 = true;
                        break;
                    }
                }
                if (!flag2) {
                    System.out.println("抱歉,新增《" + BookName + "》失败!货架已满!");
                }
                System.out.println("*****************************************");
                break;

            case 2:
                // 查看图书
                System.out.println("-->查看图书\n");
                System.out.println("序号\t状态\t名称\t借出日期\t借出次数");
                for (int i = 0; i < name.length; i++) {
                    if (name[i] != null) {
                        // 三目运算符
                        String BookState = (state[i] == 0) ? "可借阅" : "已借出";
                        String dateStr = (date[i] == 0) ? "" : (date[i] + "日");
                        System.out.println((i + 1) + "\t" + BookState + "\t"
                                + name[i] + "\t" + dateStr + "\t" + count[i]
                                + "次");
                    }
                }
                System.out.println("*****************************************");
                break;

            case 3:
                // 删除图书
                System.out.println("-->删除图书\n");
                System.out.println("请输入要删除图书的名称:");
                String delete = input.next();
                boolean flag3 = false;
                int index = -1; // 记录要删除图书的位置
                for (int i = 0; i < name.length; i++) {
                    // 删除的图书存在、状态处于可借阅状态
                    if (name[i] != null && delete.equals(name[i])
                            && state[i] == 0) {
                        flag3 = true;
                        index = i;
                        System.out.println("图书删除成功!");
                        break;
                    } else if (name[i] != null && delete.equals(name[i])
                            && state[i] == 1) {
                        flag3 = true;
                        System.out.println("该图书已被借出,目前无法删除!");
                        break;
                    }
                }
                // 根据记录下来的删除图书的位置进行删除工作
                if (index != -1) {
                    for (int j = index; j < name.length; j++) {
                        if (j != name.length - 1) {
                            name[j] = name[j + 1];
                            state[j] = state[j + 1];
                            date[j] = date[j + 1];
                        }
                        name[name.length - 1] = null;

                    }
                }
                if (!flag3) {
                    System.out.println("没有找到匹配信息!");
                }
                System.out.println("*****************************************");
                break;

            case 4:
                // 借出图书
                System.out.println("-->借出图书\n");
                System.out.print("请输入图书名称:");
                String want = input.next(); // 要借出的图书名称
                for (int i = 0; i < name.length; i++) {
                    if (name[i] == null) { // 无匹配
                        System.out.println("没有找到匹配信息!");
                        break;
                    } else if (want.equals(name[i]) && state[i] == 0) { // 找到匹配可借
                        state[i] = 1; // 将此图书置于借出状态
                        System.out.print("请输入借出日期:");
                        date[i] = input.nextInt();
                        while (date[i] < 1 || date[i] > 31) { // 当输入借出的日期不满足1-31时
                            System.out.println("必须输入大于等于1且小于等于31的数字,请重新输入:");
                            date[i] = input.nextInt();
                        }
                        System.out.println("借出《" + want + "》成功!");
                        count[i]++;
                        break;
                    } else if (want.equals(name[i]) && state[i] == 1) { // 找到匹配已被借出
                        System.out.println("《" + want + "》已被借出!");
                        break;
                    }
                }
                System.out.println("*****************************************");
                break;

            case 5:
                // 归还图书
                System.out.println("-->归还图书\n");
                int charge = 0; // 租金
                System.out.print("请输入归还图书名称:");
                want = input.next();
                for (int i = 0; i < name.length; i++) {
                    if (name[i] == null) { // 无匹配
                        System.out.println("没有找到匹配信息!");
                        break;
                    } else if (want.equals(name[i]) && state[i] == 1) {// 找到匹配
                        state[i] = 0; // 将借阅状态修改为可借阅
                        System.out.print("请输入归还日期:");
                        int redate = input.nextInt();
                        while (redate < date[i] || redate > 31) { // 归还日期不能小于借出日期,也不能大于31
                            if (redate < date[i]) {
                                System.out.println("归还日期不能小于借出日期,请重新输入:");
                            } else {
                                System.out.println("一个月只有31天,请重新输入:");
                            }
                            redate = input.nextInt();
                        }
                        charge = redate - date[i];

                        System.out.println("\n归还《" + want + "》成功!");
                        System.out.println("借出日期为:" + date[i] + "日");
                        System.out.println("归还日期为:" + redate + "日");
                        System.out.println("应付租金(元):" + charge);
                        date[i] = 0;
                        break;
                    } else if (want.equals(name[i]) && state[i] == 0) {// 找到匹配但没有借出
                        System.out.println("该图书没有被借出!无法进行归还操作。");
                        break;
                    }
                }
                System.out.println("*****************************************");
                break;

            case 6:
                // 退出图书
                flag = false;
                break;
            default:
                flag = false;
                break;
            }
            if (flag) {
                System.out.println("输入0返回:");
                num = input.nextInt();
            } else {
                break;
            }
        } while (num == 0);

        System.out.println("谢谢使用!");

        input.close();
    }
}
 


这就是迷你图书管理系统的全部代码

脚踏实地,一步一步来,慢慢来,Java会学会的,会挣到钱的,加油,又是活气满满的一天

创作不易点赞评论互关三连

 

猜你喜欢

转载自blog.csdn.net/swy2560666141/article/details/126980237