首页 > 其他分享 >图书管理系统(基础)

图书管理系统(基础)

时间:2022-11-15 14:44:39浏览次数:43  
标签:管理系统 bookAuthor 基础 System println bookNames 图书 out

import java.util.Arrays;
import java.util.Scanner;

public class ArrayBook2 {
    public static void main(String[] args) {
        //扫描仪
        Scanner scanner = new Scanner(System.in);
        //图书名称
        String[] bookNames = {"《西游记》", "《红楼梦》", "《水浒传》", "《三国演义》"};
        //图书作者
        String[] bookAuthor = {"吴承恩", "曹雪芹", "施耐庵", "罗贯中"};
        //图书价格
        float[] bookPrice = {100, 80, 90, 101};
        boolean b = true;
        while (b) {
            System.out.println("*******************欢迎使用XXX图书管理系统*******************");
            System.out.println("\t\t1、添加图书");
            System.out.println("\t\t2、修改图书");
            System.out.println("\t\t3、删除图书");
            System.out.println("\t\t4、查看图书");
            System.out.println("\t\t0、退出系统");
            System.out.println("请选择:");
            int choose = scanner.nextInt();
            switch (choose) {
                case 1:
                    System.out.println("图书管理系统>>>添加图书");
                    while (true) {
                        System.out.println("请输入添加的图书名称:");
                        String inputName = scanner.next();
                        System.out.println("请输入" + inputName + "的作者");
                        String inputAuthor = scanner.next();
                        System.out.println("请输入" + inputName + "的价格");
                        float inputPrice = scanner.nextFloat();
                        //先扩容
                        bookNames = Arrays.copyOf(bookNames, bookNames.length + 1);
                        bookAuthor = Arrays.copyOf(bookAuthor, bookAuthor.length + 1);
                        bookPrice = Arrays.copyOf(bookPrice, bookPrice.length + 1);
                        //将新的图书存入到最后一个位置
                        bookNames[bookNames.length - 1] = inputName;
                        bookAuthor[bookAuthor.length - 1] = inputAuthor;
                        bookPrice[bookPrice.length - 1] = inputPrice;
                        System.out.println("[添加图书成功!]");
                        //是否继续
                        System.out.println("是否继续添加?(Y/N)");
                        String isContinue = scanner.next();
                        if ("n".equals(isContinue) || "N".equals(isContinue)) {
                            break;
                        }
                    }
                    break;
                case 2:
                    System.out.println("图书管理系统>>>修改图书");
                    System.out.println("请输入要修改的图书名称:");
                    String inputUpdateName = scanner.next();
                    //根据图书名称查找对应的索引
                    int index = -1;
                    for (int i = 0; i < bookNames.length; i++) {
                        if (inputUpdateName.equals(bookNames[i])) {
                            index = i;
                            break;
                        }
                    }
                    //先判断
                    if (index == -1) {
                        System.out.println("[修改失败,该图书不存在!]");
                    } else {
                        //将输入新的图书信息覆盖原有的信息
                        System.out.println("原图书名称:" + bookNames[index] + "\t请输入新的图书名称:");
                        bookNames[index] = scanner.next();
                        System.out.println("原图书作者:" + bookAuthor[index] + "\t请输入新的图书作者:");
                        bookAuthor[index] = scanner.next();
                        System.out.println("原图书价格:" + bookPrice[index] + "\t请输入新的图书价格:");
                        bookPrice[index] = scanner.nextFloat();
                        System.out.println("[修改图书成功!]");
                    }
                    break;
                case 3:
                    System.out.println("图书管理系统>>>删除图书");
                    System.out.println("请输入要删除的图书名称:");
                    String inputDeleteName = scanner.next();
                    //根据图书名称查找对应的索引
                    int deleteIndex = -1;
                    for (int i = 0; i < bookNames.length; i++) {
                        if (inputDeleteName.equals(bookNames[i])) {
                            deleteIndex = i;
                        }
                    }
                    //先判断
                    if (deleteIndex == -1) {
                        System.out.println("[删除失败,该图书不存在!]");
                    } else {
                        //循环覆盖
                        for (int i = deleteIndex; i < bookNames.length - 1; i++) {
                            //将后一个元素覆盖前一个
                            bookNames[i] = bookNames[i + 1];
                            bookAuthor[i] = bookAuthor[i + 1];
                            bookPrice[i] = bookPrice[i + 1];
                        }
                        //缩容
                        bookNames = Arrays.copyOf(bookNames, bookNames.length - 1);
                        bookAuthor = Arrays.copyOf(bookAuthor, bookAuthor.length - 1);
                        bookPrice = Arrays.copyOf(bookPrice, bookPrice.length - 1);
                        System.out.println("[删除图书成功!]");
                    }
                    break;
                case 4:
                    System.out.println("图书管理系统>>>查看图书");
                    System.out.println("序号\t图书名称\t作者\t价格");
                    for (int i = 0; i < bookNames.length; i++) {
                        System.out.println((i + 1) + "\t" + bookNames[i] + "\t" + bookAuthor[i] + "\t" + bookPrice[i]);
                    }
                    break;
                case 0:
                    System.out.println("[谢谢使用,系统已退出!]");
                    b = false;
                    break;
            }
        }
    }
}

 

 

标签:管理系统,bookAuthor,基础,System,println,bookNames,图书,out
From: https://www.cnblogs.com/19981206-zxb/p/16892372.html

相关文章

  • Pytorch基础复习
    项目推进中期,重新到头来学Pytorch。five落泪了。(╬▔皿▔)凸 笑死,憋不住了,边更边学。 整篇博客整体采用总分总形式。首先将介绍内容(加黑部分)之间关系进行概括,后拆解,......
  • npm 基础操作
    构建项目npminit 根据提示填写内容,也可以一路回车使用默认值。为了省去上面的操作,我们加上 --yes 标志将自动使用默认值 npminit 填充所有选项:npminit--yesn......
  • MAUI新生1.2-XAML语法基础:标记扩展{}
    标记扩展,使属性值可以引用其他源的值或对象,比如引用资源字典、引用其它控件的属性值、绑定ViewModel类属性值等。标记扩展的语法有大括号{}和尖括号<>两种方式,但x:Array比......
  • AJAX-基础步骤
          发送AJAX get请求:第一步:创建AJAX核心XMLHttpRequest对象varxhr=newXMLHttpRequest 第二步:注册回调函数;onreadystatechange是一个回调函......
  • 深度学习工程基础
    欠拟合与过拟合欠拟合是指模型在训练集、验证集和测试集上均表现不佳的情况过拟合是指模型在训练集上表现很好,到了验证和测试阶段就大不如意了,即模型的泛化能力很差。解......
  • ECharts基础概念
    简要介绍下ECharts中的基础概念:1、echarts实例:一个网页中可以创建多个echarts实例。每个echarts实例中可以创建多个图表和坐标系等。dom节点作为echarts的渲染容器,......
  • Solidity基础 | 03 一篇文章掌握值类型(布尔型和整型)及其运算
    导读区块链这么火,不学一下怎么行?今天这篇文章将带领大家了解区块链的两种基本值类型——布尔类型和整数类型!讲解类型涉及到的运算以及一些注意问题。让我们一起走进本文看一......
  • Solidity基础 | 02 基本合约结构
    导读区块链这么火,不学一下怎么行?今天这篇文章将带领大家了解合约的结构,了解最基本合约,为以后设计功能更加强大的合约打下基础!让我们一起走进本文看一下吧!如果你有什么问题,或......
  • vue源码分析-基础的数据代理检测
    简单回顾一下这个系列的前两节,前两节花了大量的篇幅介绍了Vue的选项合并,选项合并是Vue实例初始化的开始,Vue为开发者提供了丰富的选项配置,而每个选项都严格规定了合并的策......
  • 小程序基础之引用vant组件库
    第一步:终端npminit-y会生成一个pack.json文件。(初始化包管理,记录这个项目用的包。)第二步:npminstall会生成一个package-lock.json文件。(一个版本锁定的功能)上两步有......