使用java编写一个停车场管理系统

发布时间:2020-11-30 16:00:28

来源:亿速云

阅读:145

作者:Leah

这篇文章给大家介绍使用java编写一个停车场管理系统,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

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

1)车主查看现在有无车位(最多100个车位),给车主随机分配一个车位,如果该位置上有车,不能停

2)按停车时间收费,3小时以内不收费,3小时以外,每小时2元,最大20元

3)车主可以查看自己停车的车位和收费,以及停车的时长

4)查看历史停车记录

管理员:

查看现有的剩余车位

查看已停车的车位

查看停在车位上的车以及历史缴费

Clientpackage 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;

}

}

}

}

Adminpackage com.gem.entity;

import java.util.ArrayList;

import lombok.AllArgsConstructor;

import lombok.Getter;

import lombok.NoArgsConstructor;

import lombok.Setter;

@AllArgsConstructor

@NoArgsConstructor

@Getter

@Setter

public class Admin {

private String username;

private String password;

private double money;

private ArrayList list = new ArrayList();

@Override

public String toString() {

return username + "\t" + password;

}

public Admin(String username, String password) {

super();

this.username = username;

this.password = password;

}

}

CarParkingpackage 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;

}

}

Userpackage 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;

}

}

AdminServicepackage com.gem.service;

/*

* 管理员业务接口

*

* */

import com.gem.entity.Admin;

public interface AdminService {

//登录

Admin login(String username, String password);

//注册

boolean register(Admin admin);

}

AdminServiceImplpackage 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 adminList = new ArrayList();

//单例饿汉模式

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;

}

}

CarParkingServicepackage com.gem.service;

public interface CarParkingService {

boolean parkcar(int id, String carid); //停车

void showlist();//显示所有列表

boolean leavecar(String carid); //离开

}

CarParkingServiceimplpackage 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 carpaking = new ArrayList();

{

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;

}

}

UserServicepackage com.gem.service;

import com.gem.entity.User;

public interface UserService {

//用车牌登录

User login(User a);

}

UserServiceimplpackage 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 = new ArrayList();

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;

}

}

关于使用java编写一个停车场管理系统就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

停车场管理系统 java_使用java编写一个停车场管理系统相关推荐

  1. java简单图书管理系统的代码,java编写的图书管理系统源代码

    <java编写的图书管理系统源代码>由会员分享,可在线阅读,更多相关<java编写的图书管理系统源代码(6页珍藏版)>请在人人文库网上搜索. 1.用户登陆数据库代码:impor ...

  2. java编写管理系统_用java编写学生信息管理系统

    <用java编写学生信息管理系统>由会员分享,可在线阅读,更多相关<用java编写学生信息管理系统(7页珍藏版)>请在人人文库网上搜索. 1.用java编写学生信息管理系统im ...

  3. 用java编写一个图书管理系统_手把手教你编写第一个java程序

    安装完jdk后我们就可以试着编写第一个java程序了,让我们一起来试试吧! 第一步 点击开始--所有程序--附件--记事本,新建记事本,输入以下代码: class HelloWorld { publi ...

  4. for相关 java_用java编写一个程序,求2到100之间的偶数和(使用for循环)

    public static void main(String[] args) {int sum ... public class Test { public static void main(Str. ...

  5. 图形类 java_用java编写一个图形类,该类具有长和高属性,具有求面积的方法

    展开全部 /** * 定义一个图形类 * */ public class Graph { //图形的长高属性 public float length; public float high; publi ...

  6. 学生档案信息管理系统java_基于JAVA的简单档案管理系统

    基于java的档案管理系统 项目技术组成:(Spring+SpringMVC+MyBatis+shiro+vue等等) [if !supportLists]1. [endif]系统管理 [if !su ...

  7. Java基础——利用DMO4J编写一个商品管理系统

    题目:这里有一份XML文件用于储存商品信息,编写一个商品管理系统,可以对XML文件进行增删查改的操作. <?xml version="1.0" encoding=" ...

  8. java编写存钱_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  9. 用java编写一个简单计算器

    java 采用java编写一个简单计算器,使用awt和swing 代码如下: import java.awt.Color; import java.awt.Font; import java.awt. ...

最新文章

  1. 巧用gh-pages分支发布自己的静态项目
  2. IDEA 解决 Java8 的数据流问题,用过的都说好!!!
  3. easyui和Ajax在mvc3中的权限设置
  4. [二叉树] 判断一个二叉树是否是平衡(剑指offer39)
  5. 编写Play 2的模块,第1部分:使工作正常
  6. JavaFX 2.0和Scala,像牛奶和饼干
  7. 【WXS数据类型】Array
  8. 数据结构--链式线性表
  9. redux ngrx_另一个减少Redux(NGRX)应用程序样板的指南
  10. 用javascript完成pos机的输入输出
  11. Spring自带的工具类总结
  12. 常用c语言代码大全,C语言的一些常用代码
  13. openg离线包_OpenGL离线渲染和缓冲区对象
  14. Android studio下的DNK开发JNI详解流程
  15. Adobe Premiere Pro cs6 精简版 0xc000007b 应用程序无法正常启动
  16. Redis 中的 集合(Set) SCARD:获取集合包含的元素数量
  17. 反向传播与它的直观理解
  18. DOS窗口命令--实用完整版
  19. caj转换成word转换器下载后如何操作?
  20. layui + layer弹出层增删改的操作

热门文章

  1. 十三、栅栏CyclicBarrier
  2. 关于日志打印的几点建议以及非最佳实践
  3. LINUX系统配置相关
  4. SQL Server2014安装流程及注意事项
  5. Android大图片裁剪解决方案
  6. .Net File类的操作
  7. request.getcontextPath() 详解(转)
  8. C#隐式类型和显示类型
  9. Android项目实战(三十一):异步下载apk文件并安装(非静默安装)
  10. 安装beautifulsoup4