bean:

package com.javasm.bean;

import com.javasm.util.Utils;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.Date;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-11:23
 * @Since:jdk1.8
 * @Description:
 */
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class Bike {
    //单车编号
    private Integer bikeId;
    //单车名称
    private String bikeName;
    //单车状态(0.未借出  1.已借出)
    private Integer bikeState;
    //借出时间
    private Date lendTime;
    //借出用户
    private User lendUser;

    @Override
    public String toString() {
        return "Bike{" +
                "bikeId=" + bikeId +
                ", bikeName='" + bikeName + '\'' +
                ", bikeState=" + (bikeState !=null&&bikeState==0 ?"未借出" : "已借出" )+
                ", lendTime='" + (lendTime ==null?"未借出" :Utils.format(lendTime)) + '\'' +
                ", lendUser=" + (lendUser==null ? "未借出" : lendUser.getName()) +
                '}';
    }
}
package com.javasm.bean;

import cn.hutool.core.codec.Base64;
import lombok.*;


import java.util.Date;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-11:13
 * @Since:jdk1.8
 * @Description:
 */
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
    //账号
    private int id;
    //密码
    private String pwd;
    //真实姓名
    private String name;
    //账户余额
    private float balance;
    //角色(0.用户 1.管理员)
    private int userRole;
    //注册时间
    private Date regTime;
    //最后登录时间
    private Date lastLoginTime;
    //自增id
    private static  int identityId=1000;

    /**
     * 全参构造
     * @param pwd
     * @param name
     * @param balance
     * @param userRole
     * @param regTime
     * @param lastLoginTime
     */
    public User(String pwd, String name, float balance, int userRole, Date regTime, Date lastLoginTime) {
        this.id = identityId++;
        //密码加密
        this.pwd = Base64.encode(pwd);
        this.name = name;
        this.balance = balance;
        this.userRole = userRole;
        this.regTime = regTime;
        this.lastLoginTime = lastLoginTime;
    }

}
package com.javasm.bean;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.Arrays;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-11:23
 * @Since:jdk1.8
 * @Description:
 */
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class BikeCompany {
    //公司编号
    private Integer companyId;
    //公司名称
    private String companyName;
    //单车列表
    private Bike[] bikes;
    //单车总数
    private Integer sum;
    //出借次数
    private Integer lendCount;

    @Override
    public String toString() {
        return "BikeCompany{" +
                "companyId=" + companyId +
                ", companyName='" + companyName + '\'' +
//                ", bikes=" + Arrays.toString(bikes) +
                ", sum=" + sum +
                ", lendCount=" + lendCount +
                '}';
    }
}

constants:

package com.javasm.constants;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-17:15
 * @Since:jdk1.8
 * @Description:
 */
public class BikeConstants {
    //公司名称
    public static final String OFO ="ofo";
    public static final String MO_BAI ="摩拜";
    public static final String HALO ="哈啰";

    //单车借出状态(0.未借出 1.已借出)
    public static final int LEND_STATE =1;
    public static final int UN_LEND_STATE =0;
}
package com.javasm.constants;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-15:35
 * @Since:jdk1.8
 * @Description:
 */
public class UserConstants {
    //用户角色(0.普通用户 1.系统管理员)
    public static final int ADMIN_ROLE =1;
    public static final int USER_ROLE =0;

}

action:

package com.javasm.action;

import cn.hutool.core.date.DateUtil;
import com.javasm.bean.User;
import com.javasm.constants.UserConstants;
import com.javasm.service.UserService;
import com.javasm.service.impl.UserServiceImpl;

import java.util.Scanner;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-15:05
 * @Since:jdk1.8
 * @Description:
 */
public class UserAction {
    static Scanner scanner =new Scanner(System.in);
    //初始化一组用户
    static User[] users =new User[3];
    //业务对象
    static UserService userService =new UserServiceImpl();

    static {
        System.out.println("数据正咋初始化·");
        users[0]=new User("123","tom",100,1,null,null);
        users[1]=new User("123","cat",100,1,null,null);
        users[2]=new User("123","jack",100,0,null,null);
    }

    public static void startMenu(){
        boolean b=true;
        while (b){
            System.out.println("******欢迎使用迷你共享单车系统******");
            System.out.println("\t\t1.登录");
            System.out.println("\t\t2.注册");
            System.out.println("\t\t0.退出");
            System.out.println("请选择:");
            int choose =scanner.nextInt();

            switch (choose){
                case 1:
                    login();
                    break;
                case 2:
                    users=userService.reg(users,scanner);
                    break;
                case 0:
                    System.out.println("谢谢使用,系统已退出");
                    b =false;
                    break;
            }


        }

    }

    /**
     * 用户登录
     */
    private static void login(){
        //用户登录
        User loginUser =userService.login(users,scanner);
        if(loginUser ==null){
            System.out.println("登录失败,账号或密码错误!");
            return;
        }
        //修改当前登录用户的登录时间(当前的系统时间)
        loginUser.setLastLoginTime(DateUtil.date());
        //根据登录用户判断角色,根据角色的不同进入到不同的菜单列表!
        if(loginUser.getUserRole()== UserConstants.ADMIN_ROLE){
            //进入到管理员菜单列表
            BikeAction.adminMenu(loginUser);
        }else {
            //进入到用户菜单列表
            BikeAction.userMenu(loginUser);
        }

    }

}
package com.javasm.action;

import com.javasm.bean.Bike;
import com.javasm.bean.BikeCompany;
import com.javasm.bean.User;
import com.javasm.constants.BikeConstants;
import com.javasm.service.BikeService;
import com.javasm.service.UserService;
import com.javasm.service.impl.BikeServiceImpl;
import com.javasm.service.impl.UserServiceImpl;
import com.javasm.util.Utils;

import java.util.Scanner;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-15:52
 * @Since:jdk1.8
 * @Description:
 */
public class BikeAction {
    static Scanner scanner = new Scanner(System.in);
    //单车列表
    static BikeCompany[] bikeCompanies = new BikeCompany[3];
    //业务对象
    static BikeService bikeService = new BikeServiceImpl();

    static {
        //第一家公司
        BikeCompany ofo = new BikeCompany(1, BikeConstants.OFO, null, 5, 1000);
        //这家公司下单车列表
        Bike[] ofoBikes = new Bike[ofo.getSum()];//公司单车数
        for (int i = 0; i < ofoBikes.length; i++) {
            int id = 100 + i;
            ofoBikes[i] = new Bike(id, BikeConstants.OFO + id, BikeConstants.UN_LEND_STATE,
                    null, null);
        }
        //将单车列表存入到公司中
        ofo.setBikes(ofoBikes);

        //第二家公司
        BikeCompany moBai = new BikeCompany(2, BikeConstants.MO_BAI, null, 10, 1770);
        //这家公司下单车列表
        Bike[] moBaiBikes = new Bike[moBai.getSum()];//公司单车数
        for (int i = 0; i < moBaiBikes.length; i++) {
            int id = 200 + i;
            moBaiBikes[i] = new Bike(id, BikeConstants.MO_BAI + id, BikeConstants.UN_LEND_STATE,
                    null, null);
        }
        //将单车列表存入到公司中
        moBai.setBikes(moBaiBikes);

        //第三家公司
        BikeCompany haLo = new BikeCompany(3, BikeConstants.HALO, null, 3, 500);
        //这家公司下单车列表
        Bike[] haLoBikes = new Bike[haLo.getSum()];//公司单车数
        for (int i = 0; i < haLoBikes.length; i++) {
            int id = 300 + i;
            haLoBikes[i] = new Bike(id, BikeConstants.HALO + id, BikeConstants.LEND_STATE,
                    Utils.parseDate("2022-10-10 16:02:03"), UserAction.users[2]);
        }
        //将单车列表存入到公司中
        haLo.setBikes(haLoBikes);

        //将三家公司存入到公司数组
        bikeCompanies[0] = ofo;
        bikeCompanies[1] = moBai;
        bikeCompanies[2] = haLo;
    }

    /**
     * 管理员菜单列表
     *
     * @param loginUser
     */
    static void adminMenu(User loginUser) {
        boolean b = true;
        while (b) {
            System.out.println("迷你共享单车管理系统>>>管理员菜单列表");
            System.out.println("欢迎您:" + loginUser.getName() + "\t\t角色:" +
                    Utils.getUserRoleName(loginUser.getUserRole()) +
                    "\t\t最后登录时间:" + loginUser.getLastLoginTime());
            System.out.println("\t\t1.查看单车");
            System.out.println("\t\t2.投放单车");
            System.out.println("\t\t3.删除单车");
            System.out.println("\t\t4.单车排行榜");
            System.out.println("\t\t5.查看全部注册用户");
            System.out.println("\t\t0.退出登录");
            System.out.println("请选择:");
            int choose = scanner.nextInt();
            switch (choose) {
                case 1:
                    bikeService.showBike(bikeCompanies);
                    break;
                case 2:
                    bikeService.dropBike(bikeCompanies, scanner);
                    break;
                case 3:
                    bikeService.deleteBike(bikeCompanies, scanner);
                    break;
                case 4:
                    bikeService.leaderboard(bikeCompanies);
                    break;
                case 5:
                    bikeService.showUser(UserAction.users);
                    break;
                case 0:
                    b = false;
                    break;
            }
        }
    }


    static void userMenu(User loginUser) {
        boolean b = true;
        while (b) {
            System.out.println("迷你共享单车管理系统>>>用户菜单列表");
            System.out.println("欢迎您:" + loginUser.getName() + "\t\t角色:" +
                    Utils.getUserRoleName(loginUser.getUserRole()) +
                    "\t\t最后登录时间:" + loginUser.getLastLoginTime());
            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:
                   bikeService.BorrowBike(bikeCompanies,loginUser, scanner);
                    break;
                case 2:
                    bikeService.RepaidBike(bikeCompanies,loginUser, scanner);
                    break;
                case 3:
                    bikeService.ChangePwd(loginUser,scanner);
                    break;
                case 4:
                    bikeService.Recharge(loginUser,scanner);
                    break;
                case 0:
                    b = false;
                    break;
            }

        }

    }
}

services:

package com.javasm.service;

import com.javasm.bean.User;

import java.util.Scanner;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-15:14
 * @Since:jdk1.8
 * @Description:
 */
public interface UserService {
    /**
     * 用户登录
     * @param users
     * @param scanner
     * @return
     */
    User login(User[] users, Scanner scanner);

    /**
     * 用户注册
     * @param users
     * @param scanner
     * @return
     */
    User[] reg(User[] users, Scanner scanner);


}
package com.javasm.service;

import com.javasm.bean.Bike;
import com.javasm.bean.BikeCompany;
import com.javasm.bean.User;

import java.util.Scanner;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-17:12
 * @Since:jdk1.8
 * @Description:
 */
public interface BikeService {

    /**
     * 查看单车
     *
     * @param bikeCompanies
     */
    void showBike(BikeCompany[] bikeCompanies);

    /**
     * 投放单车
     *公司的地址没变,不用返回BikeCompany[]
     * @param bikeCompany
     * @param scanner
     * @return
     */
    void dropBike(BikeCompany[] bikeCompany, Scanner scanner);

    /**
     * 删除单车
     *公司的地址没变,不用返回BikeCompany[]
     * @param bikeCompanies
     * @param scanner
     * @return
     */
    void deleteBike(BikeCompany[] bikeCompanies, Scanner scanner);

    /**
     * 单车排行榜
     *
     * @param bikeCompanies
     */
    void leaderboard(BikeCompany[] bikeCompanies);

    /**
     * 查看所有注册用户
     * @param users
     */
    void showUser(User[] users);


    /**
     * 普通用户-->借出单车
     *公司的地址没变,不用返回BikeCompany[]
     * @param bikeCompanies
     * @param scanner
     * @return
     */
    void BorrowBike(BikeCompany[] bikeCompanies,User user,Scanner scanner);

    /**
     * 普通用户-->归还单车
     * 公司的地址没变,不用返回BikeCompany[]
     * @param bikeCompanies
     * @param scanner
     * @return
     */
    void RepaidBike(BikeCompany[] bikeCompanies,User user,Scanner scanner);

    /**
     * 修改登入密码
     * @param user
     * @param scanner
     * @return
     */
    void ChangePwd(User user,Scanner scanner);

    /**
     * 余额充值
     * @param user
     * @param scanner
     */
    void  Recharge(User user,Scanner scanner);

}

serviceImpl:

package com.javasm.service.impl;

import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateUtil;
import com.javasm.action.UserAction;
import com.javasm.bean.User;
import com.javasm.service.UserService;
import com.javasm.util.Utils;

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

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-15:15
 * @Since:jdk1.8
 * @Description:
 */
public class UserServiceImpl implements UserService {
    @Override
    public User login(User[] users, Scanner scanner) {
        System.out.println("迷你共享单车管理系统>>>用户登录");
        System.out.println("请输入登录账号和密码:");
        int inputId =scanner.nextInt();
        //输入的密码直接加密!
        String inputPwd=Base64.encode(scanner.next());

        //根据账号和密码查找登录的用户
        return getUserByIdAndPwd(inputId,inputPwd,users);

    }

    @Override
    public User[] reg(User[] users, Scanner scanner) {
        System.out.println("迷你共享单车管理系统>>>用户注册");
        System.out.println("请输入密码:");
        String inputPwd =scanner.next();
        System.out.println("请输入真实姓名:");
        String inputName =scanner.next();
     users=Arrays.copyOf(users,users.length+1);
     users[users.length-1]=new User(inputPwd,inputName,100,0,DateUtil.date(),null);
        System.out.println("注册成功");
        System.out.println("你的id为:"+ users[users.length-1].getId());
        return users;
    }

    /**
     * 根据登录的账号和密码查找用户信息
     * @param id
     * @param pwd
     * @param users
     * @return
     */
    private User getUserByIdAndPwd(int id,String pwd,User[] users){
        for (User user : users) {
            //验证账号 密码:加密之后的密码
            if(id==user.getId()&&pwd.equals(user.getPwd())){
                return user;
            }
        }
        return null;
    }
}
package com.javasm.service.impl;

import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.javasm.bean.Bike;
import com.javasm.bean.BikeCompany;
import com.javasm.bean.User;
import com.javasm.constants.BikeConstants;
import com.javasm.service.BikeService;
import jdk.nashorn.internal.ir.ReturnNode;

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

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-17:12
 * @Since:jdk1.8
 * @Description:
 */
public class BikeServiceImpl implements BikeService {
    /**
     * 查看单车
     *
     * @param bikeCompanies
     */
    @Override
    public void showBike(BikeCompany[] bikeCompanies) {
        System.out.println("迷你共享单车管理系统>>>管理员操作>>>查看单车");
        for (BikeCompany bikeCompany : bikeCompanies) {
            System.out.println(bikeCompany);
            //该公司下单车信息
            Bike[] bikes = bikeCompany.getBikes();
            for (Bike bike : bikes) {
                System.out.println(bike);
            }
            System.out.println("----------------------");
        }
    }

    /**
     * 投放单车
     *
     * @param bikeCompanies
     * @param scanner
     * @return
     */
    @Override
    public void dropBike(BikeCompany[] bikeCompanies, Scanner scanner) {
        System.out.println("迷你共享单车管理系统>>>管理员操作>>>投放单车");
        //展示单车公司
        showCompanies(bikeCompanies);
        System.out.println("请选择要投放的单车品牌:");
        int inputId = scanner.nextInt();
        //得到输入单车公司index;
        int index = getBikeCompanyById(bikeCompanies, inputId);
        if (index == -1) {
            return ;
        }
        System.out.println("请输入投放的单车数量:");
        int inputNum = scanner.nextInt();
        System.out.println("空间不足,已参照配置进行扩容!");
        System.out.println("投放" + inputNum + "辆" + bikeCompanies[index].getCompanyName() + "车成功!");
        //该公司的单车列表
        Bike[] bikes = bikeCompanies[index].getBikes();
        //扩容
        Bike[] bikes1 = Arrays.copyOf(bikes, bikes.length + inputNum);

        for (int i = bikes.length; i < bikes1.length; i++) {
            int id = bikes[bikes.length - 1].getBikeId() + i - bikes.length + 1;
            bikes1[i] = new Bike(id, bikeCompanies[index].getCompanyName() + id, BikeConstants.UN_LEND_STATE,
                    null, null);
        }
        //将扩容之后的数组反填充
        bikeCompanies[index].setBikes(bikes1);
        bikeCompanies[index].setSum(bikeCompanies[index].getSum() + inputNum);
    }

    /**
     * 删除单车
     *
     * @param bikeCompanies
     * @param scanner
     * @return
     */
    @Override
    public void deleteBike(BikeCompany[] bikeCompanies, Scanner scanner) {
        System.out.println("迷你共享单车管理系统>>>管理员操作>>>删除单车");
        showCompanies(bikeCompanies);
        System.out.println("请选择要操作的单车品牌:");
        int inputId = scanner.nextInt();
        int index = getBikeCompanyById(bikeCompanies, inputId);
        if (index == -1) {
            return ;
        }
        //循环输出该单车
        Bike[] bikes = bikeCompanies[index].getBikes();
        for (Bike bike : bikes) {
            System.out.println(bike);
        }
        //如果该公司只有一辆车了,则无法删除单车
        if(bikeCompanies[index].getSum()==1){
            System.out.println("单车公司至少有一辆车,删不了了!!!");
            return;
        }
        System.out.println("请录入要删除的单车编号:");
        int inputBikeId = scanner.nextInt();
        //得到操作单车的索引
        int bikeIndex = getBikeByID(bikeCompanies, index, inputBikeId);
        if (bikeIndex == -1) {
            return;
        }

        //单车存在则判断单车借出状态
        if(bikes[bikeIndex].getBikeState()==1){
            System.out.println("该单车已借出,无法操作");
            return;
        }
        System.out.println("删除" + bikeCompanies[index].getCompanyName() +
                "公司下的" + bikes[bikeIndex].getBikeName() + "车成功!");
        //循环覆盖
        for (int i = bikeIndex; i < bikes.length - 1; i++) {
            bikes[i] = bikes[i + 1];
        }
        bikes = Arrays.copyOf(bikes, bikes.length - 1);
        bikeCompanies[index].setBikes(bikes);
        bikeCompanies[index].setSum(bikeCompanies[index].getSum() - 1);
    }

    /**
     * 单车排行榜
     *
     * @param bikeCompanies
     */
    @Override
    public void leaderboard(BikeCompany[] bikeCompanies) {
        System.out.println("迷你共享单车管理系统>>>管理员操作>>>单车排行榜");
        System.out.println("单车公司名称-->借出次数");
        for (int i = 0; i < bikeCompanies.length - 1; i++) {
            for (int j = 0; j < bikeCompanies.length - 1 - i; j++) {
                if (bikeCompanies[j].getLendCount() < bikeCompanies[j + 1].getLendCount()) {
                    BikeCompany temp = bikeCompanies[j + 1];
                    bikeCompanies[j + 1] = bikeCompanies[j];
                    bikeCompanies[j] = temp;
                }
            }
        }
        for (BikeCompany bikeCompany : bikeCompanies) {
            System.out.println(bikeCompany.getCompanyName() + "-->" + bikeCompany.getLendCount());
        }

    }

    /**
     * 查看所有注册用户
     *
     * @param users
     */
    @Override
    public void showUser(User[] users) {
        System.out.println("迷你共享单车管理系统>>>管理员操作>>>查看所有注册用户");
        for (User user : users) {
            System.out.println(user);
        }
    }

    /**
     * 借出单车
     *
     * @param bikeCompanies
     * @param scanner
     * @return
     */
    @Override
    public void BorrowBike(BikeCompany[] bikeCompanies,User user, Scanner scanner) {
        System.out.println("迷你共享单车管理系统>>>借出单车");
        showCompanies(bikeCompanies);
        System.out.println("请选择要操作的单车品牌:");
        int inputId = scanner.nextInt();
        int index = getBikeCompanyById(bikeCompanies, inputId);
        if (index == -1) {
            return ;
        }
        System.out.println("此<" + bikeCompanies[index].getCompanyName() + ">单车有共享单车如下:");
        //循环输出该单车公司下的单车
        Bike[] bikes = bikeCompanies[index].getBikes();
        for (Bike bike : bikes) {
            System.out.println(bike);
        }
        System.out.println("请输入你要借出的单车编号:");
        int inputBikeID=scanner.nextInt();
        int bikeIndex=getBikeByID(bikeCompanies,index,inputBikeID);
        if (bikeIndex == -1) {
            return ;
        }
        if(bikes[bikeIndex].getBikeState()==1){
            System.out.println("该单车已借出,无法借出");
            return ;
        }
        //单车借出状态,借出时间,借出人,公司借出次数都改变
        bikes[bikeIndex].setBikeState(BikeConstants.LEND_STATE);
        bikes[bikeIndex].setLendTime(DateUtil.date());
        bikes[bikeIndex].setLendUser(user);
        bikeCompanies[index].setLendCount(bikeCompanies[index].getLendCount()+1);

        System.out.println("借出<"+ bikeCompanies[index].getCompanyName() +">公司下的<"+ bikes[bikeIndex].getBikeName() +">车成功!");

    }

    /**
     * 归还单车
     * @param bikeCompanies
     * @param scanner
     * @return
     */
    @Override
    public void RepaidBike(BikeCompany[] bikeCompanies,User user, Scanner scanner) {
        System.out.println("迷你共享单车管理系统>>>归还单车");
        showCompanies(bikeCompanies);
        System.out.println("请选择要操作的单车品牌:");
        int inputId =scanner.nextInt();
        int index = getBikeCompanyById(bikeCompanies,inputId);
        if (index == -1) {
            return ;
        }
        System.out.println("此<"+ bikeCompanies[index].getCompanyName() +">单车有共享单车如下:");
        Bike[] bikes = bikeCompanies[index].getBikes();
        for (Bike bike : bikes) {
            System.out.println(bike);
        }
        System.out.println("请输入你要归还的单车编号:");
        int inputBikeID=scanner.nextInt();
        int bikeIndex=getBikeByID(bikeCompanies,index,inputBikeID);
        if (bikeIndex == -1) {
            return ;
        }
        if(bikes[bikeIndex].getBikeState()==0){
            System.out.println("该单车未借出,无法归还");
            return ;
        }
        if(!user.equals(bikes[bikeIndex].getLendUser())){
            System.out.println("你不是该单车借出人,无法归还该单车!");
            return ;
        }
        //计算用时以及需支付的金额!
        long time=DateUtil.between(bikes[bikeIndex].getLendTime(),DateUtil.date(),DateUnit.SECOND);
        float money =time * 1;
        if(money>user.getBalance()){
            System.out.println("余额不足,请充值");
            return ;
        }else{
            user.setBalance(user.getBalance()-money);
        }
        System.out.println("用车<"+time+">秒,需支付<"+money+">元");
        //单车借出状态,借出时间,借出人改变
        bikes[bikeIndex].setBikeState(BikeConstants.UN_LEND_STATE);
        bikes[bikeIndex].setLendTime(null);
        bikes[bikeIndex].setLendUser(null);
        System.out.println("归还<"+ bikeCompanies[index].getCompanyName() +">公司下的<"+bikes[bikeIndex].getBikeName() +">车成功!");

    }

    /**
     * 修改密码
     * @param user
     * @param scanner
     */
    @Override
    public void ChangePwd(User user, Scanner scanner) {
        System.out.println("迷你共享单车管理系统>>>修改登入密码");
        System.out.println("请输入原密码:");
        String oldPwd = Base64.encode(scanner.next());
        if(!user.getPwd().equals(oldPwd)){
            System.out.println("原密码输入错误!");
            return ;
        }
        System.out.println("请输入新密码:");
        String newPwd = Base64.encode(scanner.next());
            if(user.getPwd().equals(newPwd)){
                System.out.println("新密码与原密码不能一致");
                return ;
            }
            user.setPwd(newPwd);
        System.out.println("修改成功");
    }

    /**
     * 余额充值
     * @param user
     * @param scanner
     */
    @Override
    public void Recharge(User user, Scanner scanner) {
        System.out.println("迷你共享单车管理系统>>>余额充值");
        System.out.println("请输入充值金额:");
        float inputMoney =scanner.nextFloat();
        if(inputMoney<10||inputMoney>1000){
            System.out.println("充值失败!");
        }
        user.setBalance(user.getBalance()+inputMoney);
        System.out.println("充值成功!余额为:"+user.getBalance());

    }

    /**
     * 展示所有单车公司
     *
     * @param bikeCompanies
     */
    private static void showCompanies(BikeCompany[] bikeCompanies) {
        for (int i = 0; i < bikeCompanies.length; i++) {
            System.out.println(bikeCompanies[i].getCompanyId() + "-->" + bikeCompanies[i].getCompanyName());
        }
    }

    /**
     * 得到要操作单车公司索引
     *
     * @param bikeCompanies
     * @param inputId
     * @return
     */
    private static int getBikeCompanyById(BikeCompany[] bikeCompanies, int inputId) {
        int index = -1;
        for (int i = 0; i < bikeCompanies.length; i++) {
            if (bikeCompanies[i].getCompanyId() == inputId) {
                index = i;
            }
        }
        if (index == -1) {
            System.out.println("该公司不存在");
            return index;
        }
        return index;
    }

    /**
     * 得到操作单车的索引
     *
     * @param bikeCompanies
     * @param index
     * @param inputBikeId
     * @return
     */
    private static int getBikeByID(BikeCompany[] bikeCompanies, int index, int inputBikeId) {
        Bike[] bikes = bikeCompanies[index].getBikes();
        int bikeIndex = -1;
        for (int i = 0; i < bikes.length; i++) {
            if (bikes[i].getBikeId() == inputBikeId) {
                bikeIndex = i;
            }
        }
        if (bikeIndex == -1) {
            System.out.println("该单车不存在");
            return bikeIndex;
        }

        return bikeIndex;
    }

}

util:

package com.javasm.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-15:57
 * @Since:jdk1.8
 * @Description:
 */
public class Utils {

    /**
     * 根据角色编号获取对应的文本
     * @param roleId
     * @return
     */
    public static String getUserRoleName(int roleId){
        return roleId == 0 ? "普通用户" : "系统管理员";
    }

    /**
     * 日期格式化:将字符串转成date日期类型
     * @param time
     * @return
     */
    public static Date parseDate(String time) {
        /*
             日期格式:
             yyyy 或者 yy : 2022    22
             MM:月份
             dd:日期

             HH:24小时制  hh:12小时制
             mm:分
             ss:秒

             E:星期几
         */
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            return sdf.parse(time);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 日期格式化:将date转成字符串
     * @param date
     * @return
     */
    public static String format(Date date){
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(date);
    }
}

test:

package com.javasm.test;

import com.javasm.action.UserAction;

/**
 * @Author:Zxb
 * @Version:1.0
 * @Date:2022/11/24-17:53
 * @Since:jdk1.8
 * @Description:
 */
public class Start {
    public static void main(String[] args) {
        UserAction.startMenu();
    }
}

 

原文地址:http://www.cnblogs.com/19981206-zxb/p/16927072.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性