導航:首頁 > 源碼編譯 > 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停車場管理演算法相關的資料

熱點內容
安卓應用是什麼進制 瀏覽:76
穿越民國的二道販子 瀏覽:357
伺服器出現狀況怎麼辦 瀏覽:408
有一本小說女主叫姜什麼 瀏覽:866
pdf轉換器軟體 瀏覽:640
命令提示符的雙引號 瀏覽:186
命令行運行編譯器 瀏覽:548
linux升級php7 瀏覽:123
love法國原版電影 瀏覽:62
什麼app不用驗證手機登錄 瀏覽:481
python抓包http 瀏覽:893
安卓手機如何屏蔽黃色內容 瀏覽:176
有損壓縮失真嗎 瀏覽:412
法國經典復古四級有哪些 瀏覽:598
帶英文字幕的中文電影 瀏覽:899
泰國百合劇大全 瀏覽:506
甲骨文雲伺服器流量 瀏覽:224
程序員不那麼程序員都么可愛 瀏覽:535
惠普文件夾怎麼加密 瀏覽:744
沐風之女在線觀看 瀏覽:717