zoukankan      html  css  js  c++  java
  • 停车计费小系统

    面向对象设计问题:

    要求:1 有一个停车场,有N个车位,初始化为空,每个车位可以停一辆车

         2.停车前检查是否有空位,是否车牌号已停在停车场内,没有则可以

         3.车入车位开始计时,离开时则停止计时,算出停车费。

    import java.util.*;
    
    class Car{
    
        public String carNum; //车牌号
        public int inHour;
        public int inMinute;
        public int inSecond;
        public int outHour;
        public int outMinute;
        public int outSecond;
        
        Car(String num){
            this.carNum = num;
            this.inHour = 0;
            this.inMinute = 0;
            this.outHour = 0;
            this.outMinute = 0;
            this.inSecond = 0;
            this.outSecond = 0;
        }
        
        Car(){
            this.carNum = "";
            this.inHour = 0;
            this.inMinute = 0;
            this.outHour = 0;
            this.outMinute = 0;
            this.inSecond = 0;
            this.outSecond = 0;
        }
        
        void setInTime(int h, int m, int s){
            this.inHour = h;
            this.inMinute = m;
            this.inSecond = s;
        }
        void setOutTime(int h, int m, int s){
            this.outHour = h;
            this.outMinute = m;
            this.outSecond = s;
        }
        
        public int parkTime(){
            int time = (this.outHour * 3600 + this.outMinute * 60 + this.outSecond) - 
                       (this.inHour *3600 + this.inMinute * 60 + this.inSecond);
            if(time < 0)
                return 0;
            else
                return time;
        }
        
    }
    
    class ParkSpace{
        public Car[] park;  //停车场停车位多少
        public Integer[] isPark; //判断停车位是否已停车
        public int last;   //剩余空车位
        public int fee;   //停车花费
        
        ParkSpace(int len, int fee){
            this.park = new Car[len];
            this.isPark = new Integer[len];
            for(int i = 0; i < isPark.length; i++)
                isPark[i] = 0;
            this.last = len;
            this.fee = fee;        
        }
        
        public boolean isHaveSpace(){
            if(last < 1)
                return false;
            else
                return true;
        }
        
        public int park(String num){
            //寻找空车位
            int i;
            if(isPark(num))
                return 0;
            Car newcar = new Car(num);
            Date now = new Date();
            
            for(i = 0; i < isPark.length && isPark[i] != 0; i++) ;
            
            this.park[i] = newcar;
            this.isPark[i] = 1;
            this.last--;
            
            newcar.setInTime(now.getHours(),now.getMinutes(),now.getSeconds());
            
            System.out.println("停车位置为:" + i +" 车位");
            System.out.println("停车时间为:" + park[i].inHour+"-"+park[i].inMinute+"-"+park[i].inSecond);
            
            return 1;
            
        }
        
        public int leave(String num){
            int i;
            int cost;
            int time;
            Date now = new Date();
        
            for(i = 0; i < park.length; i++){
                if(num.equals(park[i].carNum))
                    break;
            }
            
            park[i].setOutTime(now.getHours(),now.getMinutes(),now.getSeconds());
            //System.out.println("outHour:"+park[i].outHour+",parkTime:"+park[i].parkTime());
            time = park[i].parkTime();
            cost = this.fee * time;
            
            System.out.println("离开时间为:" + park[i].outHour + "-" + park[i].outMinute+"-"+park[i].outSecond+"停车时间为:"+time+"秒");
            System.out.println("空出车位位置:"+ i +"车位");
            
            park[i] = null;
            isPark[i] = 0;
            this.last++;
            
            return cost;
        }
        
        public boolean isPark(String num){
            for(int i = 0; i < isPark.length; i++){
                if(isPark[i] != 0){
                    if(num.equals(park[i].carNum))
                        return true;
                }
            }
            return false;
        }
        public void status(){
            System.out.println("remain "+this.last+" park space.\n The status :");
            for(int i = 0; i < isPark.length; i++){
                if(isPark[i] == 0){
                    System.out.print(" " + i);
                } else {
                    System.out.print(" " +park[i].carNum);
                }
            }
            
            System.out.println("");
            
        }
        
        
    }
    
    public class Dd11_04{
        public static void main(String[] args){
            ParkSpace ps = new ParkSpace(10, 2);
            Scanner sc = new Scanner(System.in);
            int n = 0;
            int cost = 0;
            String num = "";
            
            while(n != 5){
                System.out.println("                                            ");
                System.out.println("             欢迎进入停车场系统             ");
                System.out.println("*********************************************");
                System.out.println("*   本停车场每秒收费"+ps.fee+"元 停车场内仍有"+ps.last+"个车位   *");
                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.print("请选择:");
                
                n = sc.nextInt();
                
                if( n == 1){
                    System.out.println("请输入车牌号:");
                    num = sc.next();
                    if(ps.isHaveSpace()){
                        if(ps.park(num) == 0)
                            System.out.println("该车牌号已在停车场系统中登记,请检查!");
                    } else {
                        System.out.println("已无停车位!");
                    }
                    
                }    
                else if( n == 2){
                    System.out.println("请输入车牌号:");
                    num = sc.next();
                    cost = ps.leave(num);
                    if(cost > 0){
                        System.out.println("停车花费为:"+cost+"元!");
                    }
                }
                else if(n == 3){
                    ps.status();
                }
                else if(n == 4){
                    System.out.println("请输入车牌号:");
                    num = sc.next();
                    if(ps.isPark(num)){
                        System.out.println("已停在停车场内");
                    } else {
                        System.out.println("未停在停车场内");
                    }
                    
                }
            
            
            
            }
        }
    }
  • 相关阅读:
    ThinkJava-复用类
    ThinkJava-访问权限控制
    ElasticSearch 5.0及head插件安装
    安装Elasticsearch5.0 部署Head插件
    Elasticsearch 5.1.1 head插件安装指南
    使用logstash+elasticsearch+kibana快速搭建日志平台
    logstash使用操作部分
    ELK 集中日志分析 windows部署实战
    关于异步,同步,阻塞与非阻塞
    Zookeeper的集群配置和Java测试程序
  • 原文地址:https://www.cnblogs.com/wannianma/p/3003015.html
Copyright © 2011-2022 走看看