导航:首页 > 源码编译 > java停车场管理算法

java停车场管理算法

发布时间:2023-01-27 02:10:04

‘壹’ 停车场管理系统程序设计-java

可以借助Baihi示意我们
有机会能够处理你所遇到的工作
差不多的要求也能够示意我们

ES:\\
交易提醒:预付定金有风险

‘贰’ 用JAVA怎么编写停车场管理系统源代码

importjava.text.SimpleDateFormat;x0dx0aimportjava.util.Date;x0dx0aimportjava.util.Scanner;x0dx0ax0dx0a/*********************************x0dx0a*停车场管理x0dx0a*authorzhangx0dx0a*2013-12-13x0dx0a********************************/{(String[]args){x0dx0aScannersc=newScanner(System.in);x0dx0ax0dx0aSystem.out.println("请入车牌号:");x0dx0aStringcarno=sc.next();x0d=newCarStopManager();x0dx0acarStopManager.setCarNo(carno);//设置车牌号=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");x0dx0aStringsdate=format.format(newDate());x0dx0aSystem.out.println("当前时间(入场时间)是:"+sdate);x0dx0ax0dx0aSystem.out.println("需要开出车场吗?yes/no:");x0dx0aStringyesno=sc.next();x0dx0ax0dx0aif(yesno.equals("yes")){x0dx0aStringedate=format.format(newDate());x0dx0aSystem.out.println("出场时间是:"+edate);x0dx0a//计算方法x0dx0acarManager(2,sdate,edate,carStopManager);x0dx0a}x0dx0a}x0dx0a/**x0dx0a*计算方法x0dx0a*/(inttype,StringstarTime,x0dx0aStringendTime,CarStopManagercarStopManager){x0dx0ax0dx0aif(type==1){//按月收费x0dx0aSystem.out.println("如若没有缴纳月费请缴纳800元,如若缴纳将不再提示!");x0dx0a}else{x0dx0a/**x0dx0a*一般不会有停车几个月的吧?先不考虑停车几年或者几个月的x0dx0a*/x0dx0aStringsDay=starTime.substring(8,10);//入场日期(天)x0dx0aStringsHour=starTime.substring(11,13);//入场小时x0dx0aStringsMM=starTime.substring(14,16);//入场分钟x0dx0ax0dx0aStringeDay=starTime.substring(8,10);//出场日期(天)x0dx0aStringeHour=endTime.substring(11,13);//出厂小时x0dx0aStringeMM=endTime.substring(14,16);//出厂分钟x0dx0ax0dx0afloatmoney=0;//需缴纳的费用x0dx0aintshour=Integer.parseInt(sHour);x0dx0aintehour=Integer.parseInt(eHour);x0dx0aintsmm=Integer.parseInt(sMM);x0dx0aintemm=Integer.parseInt(eMM);x0dx0aintrehour=0;//停车几个小时x0dx0ax0dx0aif(sDay.equals(eDay)){//同一天x0dx0a//当天6点到20点之间x0dx0aif((shour>=6&&shour<=20)){x0dx0aif(ehour-shour<=6){//6个小时之内x0dx0arehour=(ehour-shour)*60+(emm-smm);//停车多少分钟x0dx0a//需要缴纳的费用前15分钟免费以后每15分钟1.5元x0dx0amoney=(rehour/15-15)*1.5f;x0dx0a}else{x0dx0ainthour=ehour-shour-6;//6小时除外剩余小时数x0dx0arehour=6*60+(emm-smm);//停车多少分钟x0dx0a//前15分钟免费以后每15分钟1.5元超过6小时15分钟2元x0dx0amoney=((rehour/15-15)*1.5f)+(hour*60/2);x0dx0a}x0dx0a}x0dx0a}else{//跨天20点到6点之间x0dx0a//todox0dx0a}x0dx0aSystem.out.println("您的车牌号是:"+carStopManager.getCarNo()+";\n"+x0dx0a"您此次停车花费的费用是:"+money+"元");x0dx0a}x0dx0a}x0dx0ax0dx0a/**x0dx0a*bean属性x0dx0a*/x0dx0aprivateStringcarNo;//车牌号;//入场时间;//出场时间x0dx0a/**x0dx0a*无参构造x0dx0a*/x0dx0apublicCarStopManager(){x0dx0asuper();x0dx0a}x0dx0a/**x0dx0a*有参数构造x0dx0a*@paramcarNox0dx0a*@paramstartTimex0dx0a*@paramendTimex0dx0a*/x0dx0apublicCarStopManager(StringcarNo,StringstartTime,StringendTime){x0dx0asuper();x0dx0athis.carNo=carNo;x0dx0athis.startTime=startTime;x0dx0athis.endTime=endTime;x0dx0a}x0dx0a/**x0dx0a*设置get方法x0dx0a*@returnx0dx0a*/x0dx0apublicStringgetCarNo(){x0dx0areturncarNo;x0dx0a}x0dx0a/**x0dx0a*设置set方法x0dx0a*@paramcarNox0dx0a*/x0dx0apublicvoidsetCarNo(StringcarNo){x0dx0athis.carNo=carNo;x0dx0a}(){x0dx0areturnstartTime;x0dx0a}(StringstartTime){x0dx0athis.startTime=startTime;x0dx0a}(){x0dx0areturnendTime;x0dx0a}(StringendTime){x0dx0athis.endTime=endTime;x0dx0a}x0dx0ax0dx0a}

‘叁’ Java 某停车场问题!

解题思路:

  1. 停车时间和停车费的输入 使用Scanner类提供的方法 读取到输入字符后保存至变量

  2. 根据存储的停车时间变量进行一个判断

    停车时间小于等于3的 费用=停车时间*5

    停车时间大于3的 费用=3*5+(停车时间-3)

  3. 输出费用

‘肆’ Java 某停车场问题!

写了才发现没分呐。。。算了

public class Parking {
public int cal(double time){
int t=(int)Math.ceil(time);
if(t<=3){
return 5;
}
if(t>3){
int a= 5+(t-3)*1;
if(a>20){
return 20;
}else{
return a;
}
}
return -1;
}
public static void main(String[] args){
Parking p=new Parking();
int money=p.cal(7.5d);
System.out.println("收费:"+money+"元");
}
}

‘伍’ 智能路边停车系统怎么用Java编写

随着人们的生活水平提升,汽车价格的下降,很多住房居民都买了属于自己的私家车,但是,私家车的涌现,让居民有了在上下班高峰期进出停车场排长龙、找不到停车位、找不到车等问题的困扰,同时也降低了停车场周转率。要解决这些停车问题,传统的人工管理是远远不够的,像迪蒙无感智慧路侧停车系统由信息采集前端、运营管理后台、服务综合云平台三大模块组成,解决了传统停车管理效率低、操作程序繁琐、用户体验感差等问题,实现了停车无感化、管理可视化和运营高效化,有效缓解城市车位短缺、交通拥堵等难题,进而实现出入口通道车辆的快速识别、快速检测、快速开闸、快速通行、快速关闸、不取卡、不停车等快速通行系统,无需人员看管,实现出入口智能化管理,解决出入口车辆拥堵问题。

‘陆’ 数据结构 停车场管理 JAVA(急!!!)

import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Stack;
import java.util.Vector;
import java.util.regex.MatchResult;

public class Test {
private CarStop carStop = new CarStop(3);
private CarTunnel tunnel = new CarTunnel();
public void test(){
//存放车辆信息,因为不是顺序输入的,所以放到Map中
HashMap<Integer, Car> carMap = new HashMap<Integer, Car>();
//最早进入车库的时间和最晚出车库的时间
int startTime, endTime;

startTime = Integer.MAX_VALUE;
endTime = Integer.MIN_VALUE;

Scanner scanner = new Scanner(System.in);
//("A"或者"D"或者"E", int, int)
while(scanner.hasNext("\\((A|D|E),(\\d+),(\\d+)\\)")){
scanner.next("\\((A|D|E),(\\d+),(\\d+)\\)");
MatchResult r = scanner.match();
Car car;
//如果输入A
if (r.group(1).equalsIgnoreCase("A")){
// 该车已经记录过
if (carMap.keySet().contains(Integer.parseInt(r.group(2)))){
// 取出来设置到达时间
car = carMap.get(Integer.parseInt(r.group(2)));
car.arrive = Integer.parseInt(r.group(3));
}else{
// 否则就记录该车
car = new Car(Integer.parseInt(r.group(2)), Integer.parseInt(r.group(3)));
carMap.put(car.no, car);
}
if (car.arrive < startTime) startTime = car.arrive;
if (car.leave > endTime) endTime = car.leave;
// 出库时间和到达时间同样处理
}else if (r.group(1).equalsIgnoreCase("D")){
if (carMap.keySet().contains(Integer.parseInt(r.group(2)))){
car = carMap.get(Integer.parseInt(r.group(2)));
car.leave = Integer.parseInt(r.group(3));
}else{
car = new Car(Integer.parseInt(r.group(2)), 0, Integer.parseInt(r.group(3)));
carMap.put(car.no, car);
}
if (car.arrive < startTime) startTime = car.arrive;
if (car.leave > endTime) endTime = car.leave;
}else if (r.group(1).equalsIgnoreCase("E")){
break;
}
}

// 把记录过的车做成数组并且排序
Car[] cars = new Car[carMap.size()];
cars = carMap.values().toArray(cars);
Arrays.sort(cars, new Comparator<Car>(){
// 排序顺序是到达时间>出库时间>车牌
public int compare(Car c1, Car c2) {
if (c1.arrive!=c2.arrive) return c1.arrive - c2.arrive;
if (c1.leave!=c2.leave) return c1.leave - c2.leave;
return c1.no - c2.no;
}

});

for (int time=startTime; time<=endTime; time++){
System.out.println("TIME:" + time);
for (int k=0;k<cars.length;k++){
Car car = cars[k];
//如果有车在没有进入停车场的时候就已经到了出库时间
if (car.leave == time && carStop.isFull() && !carStop.contains(car)){
for (int i=tunnel.size()-1;i>=0;i--){
Car c = tunnel.get(i);
if (c.equals(car)){
for (int j=i+1;j<tunnel.size();j++){
System.out.println(car + "为" + car + "让路,重新进入等待区");
}
tunnel.remove(car);
System.out.println(car + "没进入过停车场就离开了");
}else{
System.out.println(car + "为" + car + "让路");
}
}
}else{
// 如果有车子现在到达
if (car.arrive == time){
// 停车场不满
if (!carStop.isFull()) {
// 进入停车场
carStop.push(car);
// 开始计费
car.chargeStart = time;
System.out.println(car + "进入停车场并且开始计费");
}else{
// 停车场满,等待
System.out.println(car + "到达,在等待区等待");
tunnel.push(car);
}
}
}
}
//deal with cars in stop
//the case cars leave at same time is not included
// 按照后进先出的顺序看有没有车要离开
for (int k=carStop.size() - 1; k>=0; k--){
Car car = carStop.elementAt(k);
//准备离开
if (car.leave == time){
Car otherCar;
// 所有在他后面进来的车准备让路
while ((otherCar = carStop.pop())!=car){
// 进入等待区的最前面
tunnel.unshift(otherCar);
System.out.println(otherCar + "准备为" + car + "让路");
}

for (int m=tunnel.size()-1;m>=0;m--){
System.out.println(tunnel.elementAt(m) + "为" + car + "让路");
}
System.out.println(otherCar + "离开,停车时间:" + (otherCar.leave - otherCar.chargeStart));
for (int m=0; m<tunnel.size(); m++){
System.out.println(tunnel.elementAt(m) + "让路完毕,重新进入等待区");
}
Car waitingCar;
//停车场有空位,等待序列最前面的车入库
while ( !carStop.isFull() && (waitingCar = tunnel.shift())!=null ){
carStop.push(waitingCar);
// 停车计时开始
if (waitingCar.chargeStart == -1) {
System.out.println(waitingCar + "停车计时时间改为:" + time);
waitingCar.chargeStart = time;
}
System.out.println(waitingCar + "进入停车场");
}
}
}

}

}
public static void main(String[] args){
new Test().test();
}
}

@SuppressWarnings("serial")
class CarTunnel extends Vector<Car>{

public CarTunnel(){
super();
}

public Car shift(){
if (size() == 0) return null;
return remove(0);
}

public void unshift(Car car){
super.add(0, car);
}

public void push(Car car){
super.add(car);
}

public Car pop(){
if (size() == 0) return null;
return remove(size()-1);
}

}
@SuppressWarnings("serial")
class CarStop extends Stack<Car>{

private int size;

public CarStop(int size){
this.size = size;
}

public boolean isFull(){
return size() == size;
}

public Car pop(){
return super.pop();
}

public Car push(Car car){
if (size() <= size){
return super.push(car);
}else{
return null;
}
}
}

class Car{
public int no;
public int arrive;
public int leave;

public int chargeStart = -1;

public Car(int no, int timeIn, int timeOut){
this.no = no;
this.arrive = timeIn;
this.leave = timeOut;
}

public Car(int no, int timeIn){
this(no, timeIn, -1);
}

public String toString(){
return String.format("Car(%d)", no);
}
}

结果:
(A,6,31)
(A,5,30)
(A,4,20)
(A,3,16)
(A,2,15)
(A,1,10)
(D,1,50)
(D,2,30)
(D,3,31)
(D,4,25)
(D,5,32)
(D,6,40)
(E,0,0)
TIME:10
Car(1)进入停车场并且开始计费
TIME:11
TIME:12
TIME:13
TIME:14
TIME:15
Car(2)进入停车场并且开始计费
TIME:16
Car(3)进入停车场并且开始计费
TIME:17
TIME:18
TIME:19
TIME:20
Car(4)到达,在等待区等待
TIME:21
TIME:22
TIME:23
TIME:24
TIME:25
Car(4)没进入过停车场就离开了
TIME:26
TIME:27
TIME:28
TIME:29
TIME:30
Car(5)到达,在等待区等待
Car(3)准备为Car(2)让路
Car(5)为Car(2)让路
Car(3)为Car(2)让路
Car(2)离开,停车时间:15
Car(3)让路完毕,重新进入等待区
Car(5)让路完毕,重新进入等待区
Car(3)进入停车场
Car(5)停车计时时间改为:30
Car(5)进入停车场
TIME:31
Car(6)到达,在等待区等待
Car(5)准备为Car(3)让路
Car(6)为Car(3)让路
Car(5)为Car(3)让路
Car(3)离开,停车时间:15
Car(5)让路完毕,重新进入等待区
Car(6)让路完毕,重新进入等待区
Car(5)进入停车场
Car(6)停车计时时间改为:31
Car(6)进入停车场
TIME:32
Car(6)准备为Car(5)让路
Car(6)为Car(5)让路
Car(5)离开,停车时间:2
Car(6)让路完毕,重新进入等待区
Car(6)进入停车场
TIME:33
TIME:34
TIME:35
TIME:36
TIME:37
TIME:38
TIME:39
TIME:40
Car(6)离开,停车时间:9
TIME:41
TIME:42
TIME:43
TIME:44
TIME:45
TIME:46
TIME:47
TIME:48
TIME:49
TIME:50
Car(1)离开,停车时间:40

阅读全文

与java停车场管理算法相关的资料

热点内容
男主角叫郑宇的韩国电影 浏览:364
窗口输入命令无效 浏览:98
为什么app突然用不了 浏览:647
编译原理词法分析汇报ppt 浏览:270
cmd补全命令 浏览:397
应征入伍韩国伦理片 浏览:154
jsonc编程 浏览:676
阿花是哪部电影里的 浏览:129
批处理文件怎么打开某个文件夹 浏览:219
java实现上传视频 浏览:113
女同电影共公关系 浏览:38
计算机学什么编程语言 浏览:342
林正英电影在线观看免费完整版 浏览:183
电影《前度2》 浏览:917
java调用基类 浏览:743
linux账号权限 浏览:964
电影天堂网有病毒吗 浏览:3
看片网址免费 浏览:55
相册加密文件夹的密码在哪里看 浏览:51
母女通收小说 浏览:46