java--demo之图书馆管理系统

本文介绍了一个简单的图书管理系统的设计与实现,包括书籍的增删改查功能,通过Java类和数组模拟书架,实现了基本的图书管理操作。

思路:创建三各类  books 相当于书类 记录着书的属性和获取书的方法      mannagerbooks 管理图书 里面创建的一个books类型的数组  相当于书架   里面实现增删改查的方法     TestBooks 测试类记录着调各个类的方法实现菜单。

package com.hainiu.book;

import java.util.Scanner;

//书的属性类
class Books{
    
    private String name;
    private double price;
    private int number;
    
    public Books(){        
    }
    public Books(String name, double price, int number) {
        this.name = name;
        this.price = price;
        this.number = number;
    
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }
    public String show(){
        return name +","+ price + "," + number;
    }
}
class ManagerBooks{
    //创建一个数组 相当于书架存放book
    private Books [] books = new Books[100];
    //添加
    public void add(Books book){
        //循环查看书架  如果没有这本书 那么增加 如果有那么提示已经有这本书了        
        for (int i = 0; i < books.length; i++) {
            if(books[i]==null){
                books[i]=book;
                System.out.println("添加成功");
                break;
            }else{
                System.out.println("该书已存在");
            }        
        }
        }
    //修改
    public void update(int number,double price){
        //循环查看书架  如果有这本书 那么修改 如果没有提示没有这本书
        for (int i = 0; i < books.length; i++) {
            if(books[i].getNumber()==number){
                //如果有这个编号 那么改他的价格
                books[i].setPrice(price);
                System.out.println("修改成功");
            }else{
                System.out.println("该书不存在");
            }
            break;
        }
    }
    //删除 
    public void delete(int number){
        for (int i = 0; i < books.length; i++) {
            if(books[i].getNumber()==number){
                //数组删除用后一个覆盖前一个
                for (int j = i; j < books.length-1; j++) {
                    books[j]=books[j+1];
                }
                if(books[books.length-1]!=null){
                    books[books.length-1]=null;
                }
                System.out.println("删除成功");
                break;
            }
        }
    }
    //查询
    public void query(){
        System.out.println("图书编号\t图书名称 \t图书价格");
        for (Books b : books) {
            if(b == null){
                break;
            }
            System.out.println(b.show());
        }        
    }
    //退出
    
    }
public class TestBooks {
    public void startsystem(){
        Scanner sc = new Scanner(System.in);
        ManagerBooks mgb = new ManagerBooks();
        System.out.println("-----欢迎来到菜单-----");
        System.out.println("1、添加    2、修改     3、删除     4、查询   5、退出");
        int number;
        String name;
        double price;
        while(true){
            System.out.println("请选择菜单");
            //录入数字的
            int n =sc.nextInt();            
            switch(n){
            //如果是1 那么就是添加   name +","+ price + "," + number;
                case 1:
                    System.out.println("欢迎来到添加页面");
                    System.out.println("请输入编号");
                     number = sc.nextInt();
                    System.out.println("请输入书名");
                     name = sc.next();
                    System.out.println("请输入价格");
                     price = sc.nextDouble();
                    Books books = new Books( name,  price,  number);
                    mgb.add(books);
                    break;
            //如果是2那么就是修改页面
                case 2:
                    System.out.println("欢迎来到修改页面");
                    System.out.println("输入要修改的编号");
                    number = sc.nextInt();
                    System.out.println("输入改的价格");
                    price = sc.nextDouble();
                    mgb.update(number, price);
                    break;
                case 3:
                    System.out.println("欢迎来到删除页面");
                    System.out.println("输入要删除的编号");
                    number = sc.nextInt();
                    mgb.delete(number);
                    break;
                case 4:
                    System.out.println("欢迎来到查询页面");
                    mgb.query();
                    break;
                case 5:
                    System.out.println("退出页面");
                    System.exit(0);
                    
            }
            }
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new TestBooks().startsystem();
    }

}

 

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的Koopman算子的递归神经网络模型线性化”展开,旨在研究纳米定位系统的预测控制问题,并提供完整的Matlab代码实现。文章结合数据驱动方法与Koopman算子理论,利用递归神经网络(RNN)对非线性系统进行建模与线性化处理,从而提升纳米级定位系统的精度与动态响应性能。该方法通过提取系统隐含动态特征,构建近似线性模型,便于后续模型预测控制(MPC)的设计与优化,适用于高精度自动化控制场景。文中还展示了相关实验验证与仿真结果,证明了该方法的有效性和先进性。; 适合人群:具备一定控制理论基础和Matlab编程能力,从事精密控制、智能制造、自动化或相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能控制设计;②为非线性系统建模与线性化提供一种结合深度学习与现代控制理论的新思路;③帮助读者掌握Koopman算子、RNN建模与模型预测控制的综合应用。; 阅读建议:建议读者结合提供的Matlab代码逐段理解算法实现流程,重点关注数据预处理、RNN结构设计、Koopman观测矩阵构建及MPC控制器集成等关键环节,并可通过更换实际系统数据进行迁移验证,深化对方法泛化能力的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值