JAVA共享单车管理系统

1功能介绍:

 

1项目要求

使用Java语言,实现共享单车的投放,借出,查看,删除,回收,以及借出次数排行榜

 

2各类层调用关系

启动类调用打印类,打印类调用业务层类,业务层类调用数据库类,数据库类调用实体类

 

 

2编写程序执行入口,启动类

程序的主方法所在


/**
 * 启动类
 * @author li
 *
 */

public class App {

    public static void main(String[] args) {
        new pageUi().indexPageUi(); //创建匿名对象
        System.out.println("=====你退出了迷你共享单车管理系统=====");

    }

}

 

3首页页面打印类

 

实现程序主页面循环打印,以及具体方法的调用

 

import java.util.Scanner;

/**
 * 页面打印类
 * @author li
 *
 */


public class PageUi {
    /**
     * 首页
     */
    public void indexPageUi(){
        int key;
        String yn=null;
        Scanner scanner =new Scanner(System.in);
        
        do {
            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 ("请输入需要操作项序号: ");
            key=scanner.nextInt();
            
            switch(key) {
            case 1 :
                addBikePage();//投放
                break;
            case 2:
                checkBikePage();//查看,输出单车信息
                break;
            case 3:
                deletaBikePage();//删除
                break;
            case 4:
                boorrowBikePage();//借出
                break;
            case 5:
                returnBikePage();//归还
                break;
            case 6:
                rankingList();//排行榜
                break;
                
            default :
                System.out.println("输入菜单错误");
            }
            System.out.println("是否继续 y/n");
            
            yn=scanner.next();
            
            
        }while(yn.equalsIgnoreCase("y"));
        
    }
    /**
     * 1.投放单车页面
     */
    public void addBikePage(){
        System.out.println("++投放单车++");
        //公司列表
        ShareBikeCompany[] companys=DataBase.companys;
        for(ShareBikeCompany company:companys) {
            System.out.println(company.getId()+""+company.getName());
        }
        
        //选择公司id
        Scanner scanner =new Scanner(System.in);
        System.out.println("请选择公司id:");
        int cpid=scanner.nextInt();
        
        //输入要投放单车数量
        System.out.println("请输入要投放单车数量:");
        int count=scanner.nextInt();
        
        //完成投放
        new DateOpration().addBikeOpration(cpid, count);
        
    }
    
    
    /**
     * 2.查看单车页面
     */
    public void checkBikePage() {
        System.out.println("++查看单车++");
        new DateOpration().checkBikeOpration();
        
    }
    /**
     * 3.删除单车页面
     */
    public void deletaBikePage() {
        System.out.println("++删除单车++");
        //输入公司id,以及单车id
        ShareBikeCompany[] companys=DataBase.companys;
        //遍历公司列表
        for(ShareBikeCompany company: companys) {
            System.out.println(company.getId()+""+company.getName());
        }
        
        Scanner scanner =new Scanner(System.in);
        System.out.println("请输入公司id");
        int cpid =scanner.nextInt();
        System.out.println("请输入单车id");
        int bikeId=scanner.nextInt();
        
        //删除单车业务
        new DateOpration().deletaBikeOpration(cpid,bikeId);
        
    }
    /**
     * 4.借出单车页面
     */
    public void boorrowBikePage() {
        System.out.println("++借出单车++");
        
        //输入公司id,以及单车id
                ShareBikeCompany[] companys=DataBase.companys;
                //遍历公司列表
                for(ShareBikeCompany company: companys) {
                    System.out.println(company.getId()+""+company.getName());
                }
                
                Scanner scanner =new Scanner(System.in);
                System.out.println("请输入公司id");
                int cpid =scanner.nextInt();
                System.out.println("请输入单车id");
                int bikeId=scanner.nextInt();
                
                //借出单车业务
                new DateOpration().boorrowBikeOpration(cpid,bikeId);
        
        
        
     
        
    }
    
    
    /**
     * 5.归还单车页面
     * 
     */
    
    
    public void returnBikePage() {
        System.out.println("++归还单车++");
        
        
        //输入公司id,以及单车id
        ShareBikeCompany[] companys=DataBase.companys;
        //遍历公司列表
        for(ShareBikeCompany company: companys) {
            System.out.println(company.getId()+""+company.getName());
        }
        
        Scanner scanner =new Scanner(System.in);
        System.out.println("请输入公司id");
        int cpid =scanner.nextInt();
        System.out.println("请输入单车id");
        int bikeId=scanner.nextInt();
        
        //归还单车业务
        new DateOpration().returnBikeOpration(cpid,bikeId);
        
        

        
    }
    /**
     * 6.排行榜页面
     */
    public void rankingList() {
        System.out.println("++排行榜++");
        new DateOpration().rankingOpration();
        
    }

}

 

4共享单车实体类

 

 

import java.util.Date;

/**
 * 共享单车实体类
 * @author LI
 *
 */

public class ShareBike {
    /**
     * 单车编号
     */
    private int id;
    /**
     * 单车名称
     */
    public String name;
    /**
     * 是否借出,ture表示借出.....
     */
    public boolean status;
    /**
     * 借出时间
     */
    public Date boorowTime;
    
     public ShareBike() {
        
    }
     
     public ShareBike(int id,String name,boolean status,Date boorowTime) {
         this.boorowTime=this.boorowTime;
         this.id=id;
         this.name=name;
         this.status=status;
     }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

    public Date getBoorowTime() {
        return boorowTime;
    }

    public void setBoorowTime(Date boorowTime) {
        this.boorowTime = boorowTime;
    }
    
    

}

 

5公司实体类

/**
 * 公司信息实体类
 * @author LI
 *
 */

public class ShareBikeCompany {
    /**
     * 公司编号
     */
    private int id;
    /**
     * 公司名称
     */
    private String name;
    /**
     * 拥有单车数量
     */
    private int sum;
    /**
     * 单车借出次数
     */
    private int count;
    /**
     * 拥有单车列表
     */
    private ShareBike[] sharebike;
    
    public ShareBikeCompany() {
        
    }
    
    public ShareBikeCompany(int id,String name,int sum,int count,ShareBike[] sharebike) {
        this.count=count;
        this.id=id;
        this.name=name;
        this.sum=sum;
        this.sharebike=sharebike;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getSum() {
        return sum;
    }

    public void setSum(int sum) {
        this.sum = sum;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public ShareBike[] getSharebike() {
        return sharebike;
    }

    public void setSharebike(ShareBike[] sharebike) {
        this.sharebike = sharebike;
    }
    

}
 

6数据库类


/**
 * 数据库类
 * @author LI
 *
 */

public class DataBase {
    /**
     * 公司列表
     */
    public static ShareBikeCompany[] companys;
    /**
     * 公司列表初始化
     */
    static {
        companys=new ShareBikeCompany[3];
        //初始化公司信息
        companys[0]=new ShareBikeCompany(1,"美团公司",2,3,null);
        companys[1]=new ShareBikeCompany(2,"支付宝公司",2,2,null);
        companys[2]=new ShareBikeCompany(3,"滴滴公司",2,8,null);
        
        //初始化每个公司单车列表
        ShareBike[] bikes1=new ShareBike[2];
        bikes1[0]=new ShareBike(1001,"美团单车",false,null);
        bikes1[1]=new ShareBike(1002,"美团单车",false,null);
        companys[0].setSharebike(bikes1);
        
        ShareBike[] bikes2=new ShareBike[2];
        bikes2[0]=new ShareBike(1001,"哈罗单车",false,null);
        bikes2[1]=new ShareBike(1002,"哈罗单车",false,null);
        companys[1].setSharebike(bikes2);
        
        ShareBike[] bikes3=new ShareBike[2];
        bikes3[0]=new ShareBike(1001,"青桔单车",false,null);
        bikes3[1]=new ShareBike(1002,"青桔单车",false,null);
        companys[2].setSharebike(bikes3);
        
    }
    
    

}


7业务层接口

/**
 * 业务层接口
 * @author LI
 *
 */

public interface IDataOpration {
    
    /**
     * 1.投放单车
     */
    public void addBikeOpration(int cpid,int count);
    /**
     * 2.查看单车
     */
    public void checkBikeOpration() ;
    /**
     * 3.删除单车
     */
    public void deletaBikeOpration(int cpid,int bikeId);
    /**
     * 4.借出单车
     */
    public void boorrowBikeOpration(int cpid,int bikeId) ;
    /**
     * 5.归还单车
     */
    public void returnBikeOpration(int cpid,int bikeId);
    /**
     * 排行榜
     */
    public void rankingOpration();

}
 

8业务层类

import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;

/**
 * 主业务层,实现接口
 * @author LI
 *
 */

public class DateOpration implements IDataOpration{

 

1.投放单车


    /**
     * 1.投放单车
     */
    public void addBikeOpration(int cpid,int count){
        //导入数据库
        ShareBikeCompany[] companys=DataBase.companys;
        
        boolean flag=false;
        
        for(ShareBikeCompany company:companys) {
            //公司存在
            if(company.getId()==cpid) {
                //投放count个单车
                
                flag=true;
                
                //该公司旧的单车数组,导入数据库
                ShareBike[] bikes=company.getSharebike();
                
                //新数组
                ShareBike[] bikes2=Arrays.copyOf(bikes, bikes.length+count);
                
                //新增单车
                for(int i=0;i<count;i++) {
                    ShareBike bike =new ShareBike();
                    
                    
                    bike.setId(bikes2[bikes.length+i-1].getId()+1);
                    bike.setName(bikes2[bikes.length+i-1].getName());
                    bike.setStatus(false);
                    bike.setBoorowTime(null);
                    
                    bikes2[bikes.length+i]=bike;
                    
                    
                }
                //更新公司单车列表
                company.setSharebike(bikes2);
                //更新公司单车数量
                company.setSum(count+company.getSum());
                break;
            }
        }
        
        
        if(!flag) {
            System.out.println("公司不存在,添加单车失败");
        }
        
        
    }

 

2.查看单车


    /**
     * 2.查看单车
     */
    public void checkBikeOpration() {
        ShareBikeCompany[] companys=DataBase.companys;
        //遍历数组,公司列表
        for(ShareBikeCompany company:companys) {
            System.out.println("公司编号  公司名称  单车数量  借出次数");
            System.out.println(company.getId()+"\t"+company.getName()+"\t"+company.getSum()+"\t"+company.getCount());
            
            
            
            
            //单车列表
            ShareBike[] bikes =company.getSharebike();
            System.out.println("单车id,单车名称,是否借出,借出时间");
            for(ShareBike bike:bikes) {
                System.out.println(bike.getId()+"\t"+bike.getName()+"\t"+bike.isStatus()+"\t"+bike.getBoorowTime());
            }
        }
        
    }

 

3.删除单车


    /**
     * 3.删除单车
     */
    public void deletaBikeOpration(int cpid,int bikeId) {
        //获取公司列表
        ShareBikeCompany[] companys =DataBase.companys;
        boolean flag1=false;
        
        
        for(ShareBikeCompany company:companys) {
            if(company.getId()==cpid) {
                //公司存在
                flag1=true;
                //获取单车列表
                ShareBike[] bikes=company.getSharebike();
                
                
                int index=0;
                
                
                //遍历寻找目标单车
                boolean flag2=false;
                for(int i=0;i<bikes.length;i++) {
                    if(bikes[i].getId()==bikeId) {
                        //单车存在
                        index=i;
                        flag2=true;
                        
                        
                        //如果借出,不能删除
                        if(bikes[i].isStatus()) {
                            System.out.println("该单车借出,不能删除");
                            return;
                        }
                        
                        
                        //删除操作
                        bikes[i]=null;
                        break;
                    }
                }
                
                
                
                if(!flag2) {
                    System.out.println("该单车不存在,删除失败");
                }
                
                
                
                //删除后,后面元素前移
                for(int i=index+1;i<bikes.length;i++) {
                    bikes[i-1]=bikes[i];
                }
                
                
                ShareBike[] bikes2=Arrays.copyOf(bikes, bikes.length-1);
                
                
                //修改公司单车列表
                company.setSharebike(bikes2);
                company.setSum(company.getSum()-1);
                System.out.println("删除成功");
                
                break;
            }
        }
        
    if(!flag1) {
        System.out.println("该公司不存在,删除失败");
    }
        
    }

 

4.借出单车

/**
     * 4.借出单车
     */
    public void boorrowBikeOpration(int cpid ,int bikeId) {
        
        
        //获取公司列表
                ShareBikeCompany[] companys =DataBase.companys;
                boolean flag1=false;
                
                
                for(ShareBikeCompany company:companys) {
                    if(company.getId()==cpid) {
                        //公司存在
                        flag1=true;
                        //获取单车列表
                        ShareBike[] bikes=company.getSharebike();
                        
                        
                        int index=0;
                        
                        
                        //遍历寻找目标单车
                        boolean flag2=false;
                        for(int i=0;i<bikes.length;i++) {
                            if(bikes[i].getId()==bikeId) {
                                //单车存在
                                index=i;
                                flag2=true;
                                
                                
                                //如果借出,不能删除
                                if(bikes[i].isStatus()) {
                                    System.out.println("该单车借出,不能再次借出");
                                    return;
                                }
                                
                                
                                //借出操作
                                bikes[i].setStatus(true);
                                bikes[i].setBoorowTime(new Date());
                                
                                company.setCount(company.getCount()+1);
                                break;
                            }
                        }
                        
                        
                        
                        if(!flag2) {
                            System.out.println("该单车不存在,借出失败");
                        }
                        
                        
                        
                        
                        
                        System.out.println("借出成功");
                        
                        break;
                    }
                }
                
            if(!flag1) {
                System.out.println("该公司不存在,删除失败");
            }
    }
        

   5.归还单车

 

    /**
     * 5.归还单车
     */
    public void returnBikeOpration(int cpid,int bikeId) {
        
        
        //获取公司列表
        ShareBikeCompany[] companys =DataBase.companys;
        boolean flag1=false;
        
        
        for(ShareBikeCompany company:companys) {
            if(company.getId()==cpid) {
                //公司存在
                flag1=true;
                //获取单车列表
                ShareBike[] bikes=company.getSharebike();
                
                
                int index=0;
                
                
                //遍历寻找目标单车
                boolean flag2=false;
                for(int i=0;i<bikes.length;i++) {
                    if(bikes[i].getId()==bikeId) {
                        //单车存在
                        index=i;
                        flag2=true;
                        
                        
                        //如果未借出,不能归还
                        if(!bikes[i].isStatus()) {
                            System.out.println("该单车未借出,归还失败");
                            return;
                        }
                        
                        //付钱
                        Date borrowTime=bikes[i].getBoorowTime();
                        Date returnTime =new Date();
                        //相差毫秒数
                        long time=returnTime.getTime()-borrowTime.getTime();
                        //一分钟两毛,按分钟计费
                        long time1=time/1000/60;
                        System.out.println("应付金额:"+time1*0.2+"元");
                        
                        
                        //归还操作
                        bikes[i].setStatus(false);
                        bikes[i].setBoorowTime(null);
                        
                        break;
                    }
                }
                
                
                
                if(!flag2) {
                    System.out.println("该单车不存在,归还失败");
                }
                
                
                
                
                
                System.out.println("归还成功");
                
                break;
            }
        }
        
    if(!flag1) {
        System.out.println("该公司不存在,归还失败");
    }
}

 

6排行榜


/**
     * 排行榜
     */
    public void rankingOpration() {
        
        //排序
        Arrays.sort(DataBase.companys,new Comparator<ShareBikeCompany>() {
            @Override
            public int compare(ShareBikeCompany o1, ShareBikeCompany o2) {
                return o2.getCount()-o1.getCount();
            }
            
        });

        for(ShareBikeCompany company:DataBase.companys) {
            System.out.println(company.getName()+""+company.getCount());
            
        }
    }
    
    

}

 

 

 

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我有一计,,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值