idea-java 图书系统管理案例

发布于:2023-07-04 ⋅ 阅读:(136) ⋅ 点赞:(0)

详细步骤概述

步骤一:创建类Tushuxitong
package edu.tuhsu;
public class Tushuxitong {

// 名字  状态  借出日期   次数
public String name;    //图书名称
public int state;  //图书状态          0已借出1可借
public String date; //借出日期
public double number; // 库存

/*
图书信息展示
 */
public void dayin(int index) {
    System.out.println(index + "\t\t\t\t" + name + "\t\t\t\t" + state + "\t\t\t\t" + date + "\t\t\t\t" + number);

}

public void setBook(String mingzi, int zhuangtai, String riqi, double kucun) {
    this.name = mingzi;
    this.state = zhuangtai;
    this.date = riqi;
    this.number = kucun;
}

}
步骤二:创建类Tushuxitong2
package edu.tuhsu;
public class Tushuxitong2 {

Tushuxitong[] books = new Tushuxitong[50];

}
步骤三:创建类Tushuxitong3
Tushuxitong03中含有initial、startMenu。
package edu.tuhsu;
import java.util.Scanner;
public class Tushuxitong3 {

Tushuxitong2 bookSet = new Tushuxitong2();

/**
 * 初始化
 */
public void initial() {
    Tushuxitong java = new Tushuxitong();
    java.setBook("《java基础》", 1, "1990/2/3", 20);
    Tushuxitong renyue = new Tushuxitong();
    renyue.setBook("《软件技术》", 1, null, 0);
    Tushuxitong jichu = new Tushuxitong();
    jichu.setBook("《程序语言基础》", 1, null, 0);
    bookSet.books[0] = java;
    bookSet.books[1] = renyue;
    bookSet.books[2] = jichu;
}

/*
菜单切换
 */
public void startMenu(){
    boolean flag = true ;
    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("请选择:");
        Scanner scanner = new Scanner(System.in);
        int choice = scanner.nextInt() ;
        switch (choice){
            case 1:
                System.out.println("新增图书");
                zeng();
                break;
            case 2:
                System.out.println("查看图书");
                kan();
                break;
            case 3:
                System.out.println("删除图书");
                shanchu();
                break;
            case 4:
                System.out.println("借出图书");
                jiechu();
                break;
            case 5:
                System.out.println("归还图书");
                guihuan();
                break;
            case 6:
                System.out.println("谢 谢 使 用 !");
            default:
                System.out.println("输入不符合要求请重新选择");
        }
    }while (flag) ;
}

private void kan() {
    System.out.println("编号 \t\t\t  名称 \t\t\t\t 状态 \t\t\t 借出日期 \t\t\t 库存");
    for (int i = 0; i < this.bookSet.books.length; i++) {
        if (this.bookSet.books[i] != null) {
            this.bookSet.books[i].dayin(i + 1);
        }
    }
}


private void zeng() {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入图书的名称:");
    String name = scanner.next();
    System.out.println("请输入库存:");
    int number = scanner.nextInt();
    Tushuxitong newBook = new Tushuxitong();
    newBook.setBook(name, newBook.state, newBook.date, newBook.number);

    for (int i = 0; i < bookSet.books.length; i++) {
        if (bookSet.books[i] == null) {
            bookSet.books[i] = newBook;  //把新建的对象放在数组中的第一个空位置
            bookSet.books[i].number = number; //库存
            System.out.println("添加成功");
            break; //后续的空位置直接跳过
        }
    }
}
private void guihuan () {
    System.out.println("请输入要归还书的名称");
    Scanner scanner = new Scanner(System.in);
    String huan = scanner.next();
    boolean flag = true;  //判断是否归还成功
    System.out.println("请输入归还日期");
    String riqi = scanner.next();
    for (int i = 0; i < bookSet.books.length; i++) {
        if (bookSet.books[i].name.equals(huan) && bookSet.books[i].state == 0) {                        // 在书的状态为一借出的状态下可以归还
            bookSet.books[i].state = 1;
            bookSet.books[i].date = riqi;

        } else {
            System.out.println("归还成功");
            flag = true;
            break;
        }
    }
}


private void jiechu () {
    System.out.println("请输入要借书的名称");
    Scanner scanner = new Scanner(System.in);
    String jie = scanner.next();
    boolean flag = true;
    System.out.println("请输入借书的日期");
    String riqi = scanner.next();
    for (int i = 0; i < bookSet.books.length; i++) {
        if (bookSet.books[i] != null && bookSet.books[i].name.equals(jie)) {
            if (bookSet.books[i].state == 1) { //在书的状态为1(可借)可以借出
                bookSet.books[i].state = 0; //借出后把书的状态改为0(不可借)
                flag = true;
                bookSet.books[i].date = riqi; //日期改为现在借书的日期
            }
            break;
        }

    }


    if (flag) {
        System.out.println("借出成功");
    } else {
        System.out.println("借出失败");
    }
}

private void shanchu () {
    System.out.println("请输入删除图书的编号:");
    Scanner scanner = new Scanner(System.in);
    int bianhao = scanner.nextInt();
    boolean flag = true;
    for (int i = 0; i < bookSet.books.length; i++) {
        if (bookSet.books[i] != null && (i + 1) == bianhao) {
            if (bookSet.books[i].state != 0) {
                int j = i;
                while (bookSet.books[j + 1] != null) {
                    //后面元素向前移动
                    bookSet.books[j] = bookSet.books[j + 1];
                    j++;
                }
                bookSet.books[j] = null;
                flag = true;
                break;  //后面元素没必要执行
            } else {
                System.out.println("图书为借出状态不能删除");
                flag = true;
            }
        } else {
            flag = false;
        }

    }
    if (flag) {
        System.out.println("删除成功");
    } else {
        System.out.println("删除失败");
    }
}

}
步骤四:创建测试类Tushuxitong4
package edu.tuhsu;
public class Tushuxitong4 {

public static void main(String[] args) {
    Tushuxitong3 bookManage = new Tushuxitong3();
    bookManage.initial();
    bookManage.startMenu();
}

}
运行结果:
在这里插入图片描述

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到