用Java开发一个停车场系统

现开发一个停车系统,用户根据车位停车

1)车主查看现在有无车位(最多100个车位),给车主随机分配一个车位,如果该位置上有车,不能停
2)按停车时间收费,3小时以内不收费,3小时以外,每小时2元,最大20元
3)车主可以查看自己停车的车位和收费,以及停车的时长
4)查看历史停车记录

管理员:
查看现有的剩余车位
查看已停车的车位
查看停在车位上的车以及历史缴费







 

Client

package com.gem.client;
import java.util.Scanner;
import com.gem.entity.Admin;import com.gem.entity.User;import com.gem.service.impl.AdminServiceImpl;import com.gem.service.impl.CarParkingServiceimpl;import com.gem.service.impl.UserServiceimpl;
public class Client {  public static void main(String[] args) {    CarParkingServiceimpl carparkingservice = CarParkingServiceimpl.getCarparkingservice();    UserServiceimpl userserviceimpl = UserServiceimpl.getUserserviceimpl();
    Scanner scanner = new Scanner(System.in);
    Menu1(carparkingservice, userserviceimpl, scanner);
  }
  private static void Menu1(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl,      Scanner scanner) {
    while (true) {      System.out.println("****欢迎进入停车系统****");      System.out.println("***1.请输入您的车牌***");      System.out.println("***2.管理员");      System.out.println("***3.退出****");      int choice = Integer.parseInt(scanner.nextLine().trim());      switch (choice) {      case 1:        System.out.println("请输入您的车牌");        String chepai = scanner.nextLine().trim();        User a = userserviceimpl.login(new User(chepai));        if (a != null) {          System.out.println("车牌登记成功");          Menu2(carparkingservice, userserviceimpl, scanner, a);
        } else {          System.out.println("车牌登记失败");        }        break;      case 2:        Menu_Manger(carparkingservice, userserviceimpl);      default:        break;      }    }
  }
  //管理员的登录注册  private static void Menu_Manger(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl) {    AdminServiceImpl adminserviceimpl = AdminServiceImpl.getAdminSeriver();    while (true) {      System.out.println("1.管理员登录");      System.out.println("2.管理员注册");      System.out.println("返回上一级");      Scanner scanner = new Scanner(System.in);      int chose = Integer.parseInt(scanner.nextLine().trim());      switch (chose) {      case 1:        System.out.println("请输入管理员账号");        String name = scanner.nextLine().trim();        System.out.println("请输入管理员密码");        String password = scanner.nextLine().trim();
        if (adminserviceimpl.login(name, password) != null) {          System.out.println("登录成功");          Menu_Manger2(carparkingservice, userserviceimpl, adminserviceimpl);//进行管理员操作        } else {          System.out.println("登录失败");          return;        }        break;      case 2:        System.out.println("请输入注册账号");        name = scanner.nextLine().trim();        System.out.println("请输入注册密码");        password = scanner.nextLine().trim();        adminserviceimpl.register(new Admin(name, password));        break;      case 3:        return;      default:        return;
      }
    }  }
  //管理员操作  private static void Menu_Manger2(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl,      AdminServiceImpl adminserviceimpl) {
    while (true) {      System.out.println("***欢迎进入管理员操作***");      System.out.println("1.查看现有停车位");      System.out.println("2.查看停车位上的车以及缴费");      System.out.println("3.返回上一级");      Scanner scanner = new Scanner(System.in);      int chose = Integer.parseInt(scanner.nextLine().trim());      switch (chose) {      case 1:        carparkingservice.showlist();//显示目前所有的空的车位        break;      case 2:        carparkingservice.show();        break;      case 3:
        return;
      default:        System.out.println("输入错误");        break;      }    }  }
  private static void Menu2(CarParkingServiceimpl carparkingservice, UserServiceimpl userserviceimpl, Scanner scanner,      User a) {    while (true) {      System.out.println("欢迎车牌为:" + a.getCarid() + "车主" + "请选择您要的服务");      System.out.println("1.停车");      System.out.println("2.离开并缴费");      System.out.println("3.查看停车车位");      System.out.println("4.停车时长");      System.out.println("0.返回上一级");      int chose = Integer.parseInt(scanner.nextLine().trim());      switch (chose) {      case 1:        if (carparkingservice.chack(a.getCarid())) {          break;        }
        while (true) {          int random = (int) (Math.random() * 10); //随机一个车位          if (carparkingservice.parkcar(random, a.getCarid())) {            System.out.println("停车成功,停车位置为:" + random);            break;          } else {            System.out.println("当前车位有车");          }        }
        break;      case 2:        if (carparkingservice.leavecar(a.getCarid())) {          System.out.println("请缴费");        } else {          System.out.println("该车未停");        }        break;      case 3:        carparkingservice.showlist();//显示目前所有的空的车位        break;      case 4:        carparkingservice.showcartime(a.getCarid());//显示停车时长        break;      case 0:        return;      default:        System.out.println("输入错误");        break;      }    }  }}

Admin

package com.gem.entity;
import java.util.ArrayList;
import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;import lombok.Setter;
@AllArgsConstructor@NoArgsConstructor@Getter@Setterpublic class Admin {  private String username;  private String password;  private double money;  private ArrayList<String> list = new ArrayList<String>();
  @Override  public String toString() {    return username + "\t" + password;  }
  public Admin(String username, String password) {    super();    this.username = username;    this.password = password;  }}

CarParking

package com.gem.entity;
import java.text.SimpleDateFormat;import java.util.Date;
import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;
@AllArgsConstructor@NoArgsConstructor@Getter
public class CarParking { //车位
  public static String getLishi() {    return lishi;  }
  public static void setLishi(String lishi) {    CarParking.lishi = lishi;  }
  private int id; //停车的编号  private double money;//钱的计算  private String state; //当前停车状态  private Date stime;//停车时间  private Date etime;//停车结束  private static double allmoney;  private static String lishi = "";
  public void setEtime() {//停车结束时间    etime = new Date();    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");    String time = dateFormat.format(this.etime);  }
  public void setStime() {//停车开始时间    stime = new Date();    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");    String time1 = dateFormat.format(this.stime);
  }
  public String toString() {
    return id + "\t" + money + "\t" + stime;  }
  public CarParking(int id, String state) {
    this.id = id;    this.state = state;  }
  public void CarPark(int id, String carid) {    // TODO Auto-generated method stub    this.id = id;    this.state = carid;
  }
  public int getId() {    return id;  }
  public void setId(int id) {    this.id = id;  }
  public double getMoney() {    return money;  }
  public void setMoney(double money) {    this.money = money;  }
  public String getState() {    return state;  }
  public void setState(String state) {    this.state = state;  }
  public static double getAllmoney() {    return allmoney;  }
  public static void setAllmoney(double allmoney) {    CarParking.allmoney = allmoney;  }
}

User

package com.gem.entity;
import lombok.AllArgsConstructor;import lombok.Getter;import lombok.NoArgsConstructor;import lombok.Setter;
@AllArgsConstructor@Setter@NoArgsConstructor@Getter
public class User {  private String carid; //车牌登录
  @Override  public String toString() {    return "车牌为" + carid;  }
}

AdminService

package com.gem.service;/* * 管理员业务接口 *  * */
import com.gem.entity.Admin;
public interface AdminService {  //登录  Admin login(String username, String password);
  //注册  boolean register(Admin admin);}

AdminServiceImpl

package com.gem.service.impl;
import java.util.ArrayList;
import com.gem.entity.Admin;import com.gem.service.AdminService;
/* * 管理员类实现类 * */public class AdminServiceImpl implements AdminService {  private ArrayList<Admin> adminList = new ArrayList<Admin>();  //单例饿汉模式  private static final AdminServiceImpl adminSeriver = new AdminServiceImpl();
  public static AdminServiceImpl getAdminSeriver() {    return adminSeriver;  }
  private AdminServiceImpl() {  }
  @Override //管理员登录  public Admin login(String username, String password) {//登录    for (Admin admin : adminList) {      if (admin.getUsername().equals(username) && admin.getPassword().equals(password)) {        return admin;      }    }    return null;  }
  @Override //添加管理员  public boolean register(Admin admin) {    boolean flag = adminList.add(admin);//添加管理员    return flag;  }
}

CarParkingService

package com.gem.service;
public interface CarParkingService {  boolean parkcar(int id, String carid); //停车
  void showlist();//显示所有列表
  boolean leavecar(String carid); //离开}

CarParkingServiceimpl

package com.gem.service.impl;
import java.util.ArrayList;import java.util.Date;
import com.gem.entity.CarParking;import com.gem.service.CarParkingService;
public class CarParkingServiceimpl implements CarParkingService {  private ArrayList<CarParking> carpaking = new ArrayList<CarParking>();
  {
    for (int i = 1; i <= 10; i++) {      carpaking.add(new CarParking(i, "当前车位为空")); // 为100个车位赋予编号 和状态
    }  }
  private static CarParkingServiceimpl carparkingservice = new CarParkingServiceimpl();
  public static CarParkingServiceimpl getCarparkingservice() {    return carparkingservice;  }
  public CarParkingServiceimpl() {
  }
  //停车过来的信息,车牌,还有车位,还有更改状态,利用车位编号来改变内容  @Override  public boolean parkcar(int id, String carid) {    // TODO Auto-generated method stub
    for (CarParking car : carpaking) {
      if (id == car.getId() && car.getState().equals("当前车位为空")) {
        car.setState(carid);        car.setStime();        return true; //停车成功      }    }    return false;//当前车位有车
  }
  @Override //显示所有停车系统的信息  public void showlist() {    // TODO Auto-generated method stub    for (CarParking car : carpaking) {
      System.out.println(car.getId() + "\t" + car.getState());
    }  }
  public void showcartime(String carid) {    // TODO Auto-generated method stub    for (CarParking car : carpaking) {      if (car.getState().equals(carid)) {        car.setEtime();        Date time1 = car.getEtime();//得到当前的查询时间        Date time2 = car.getStime();//得到开始时间        System.out.println("车位为:" + car.getId() + "车牌为" + car.getState());        System.out.println("停车时间为:" + car.getStime());        System.out.println("当前时间为:" + car.getEtime());        System.out.println("已经停车时间为:" + (time1.getTime() - time2.getTime()) / (1000 * 60 * 60));      }    }  }
  public boolean leavecar(String carid) {    // TODO Auto-generated method stub    for (CarParking car : carpaking) {      if (car.getState().equals(carid)) {        car.setEtime();        Date time1 = car.getEtime();//得到当前的查询时间        Date time2 = car.getStime();//得到开始时间        long t = (time1.getTime() - time2.getTime()) / (1000 * 60 * 60);        System.out.println("车位为:" + car.getId() + "车牌为" + car.getState());        System.out.println("停车时间为:" + car.getStime());        System.out.println("当前时间为:" + car.getEtime());        System.out.println("已经停车时间为:" + t);        if (t <= 3) {          car.setMoney(0);          car.setAllmoney(car.getAllmoney() + car.getMoney()); //钱累加        } else if (t > 3 && t <= 13) {          car.setMoney(2 * (t - 3));          car.setAllmoney(car.getAllmoney() + car.getMoney()); //钱累加        } else if (t > 13) {          car.setMoney(20);          car.setAllmoney(car.getAllmoney() + car.getMoney()); //钱累加        }        car.setLishi(car.getLishi() + "车位:" + car.getId() + "收入金额为:" + car.getMoney() + "\n");        System.out.println("停车费为:" + car.getMoney());        car.setState("当前车位为空");        return true;      }
    }    return false;  }
  public void show() {    // TODO Auto-generated method stub    for (CarParking car : carpaking) {      System.out.println(car.getLishi());      return;    }  }
  public boolean chack(String carid) {    for (CarParking car : carpaking) {      if (car.getState().equals(carid)) {        System.out.println("车辆正在停使中");        return true;      }
    }    return false;  }}

UserService

package com.gem.service;
import com.gem.entity.User;
public interface UserService {  //用车牌登录  User login(User a);}

UserServiceimpl

package com.gem.service.impl;
import java.util.ArrayList;
import com.gem.entity.User;import com.gem.service.UserService;
public class UserServiceimpl implements UserService {  private ArrayList<User> user = new ArrayList<User>();
  private static UserServiceimpl userserviceimpl = new UserServiceimpl(); //单例
  private UserServiceimpl() {
  }
  public static UserServiceimpl getUserserviceimpl() {    return userserviceimpl;  }
  @Override  public User login(User a) { //把车牌录入    user.add(a);    return a;  }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值