中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java實現停車場管理系統的方法

發布時間:2021-04-15 10:05:58 來源:億速云 閱讀:296 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關java實現停車場管理系統的方法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體內容如下

//車的類

public class car{
 public String number;//車牌號
 public int inhour;  //進入小時
 public int inminute; //進入分 
 public int insecond; //進入秒
 public int outhour; //開出小時
 public int outminute; //開出分 
 public int outsecond; //開出秒
 public int count; //倒車次數
 public car link;  //隊列的指針

//構造方法1
 public car(String num){
 this.number=num;
 this.inhour=0;
 this.inminute=0;
 this.insecond=0;
 this.outhour=0;
 this.outminute=0;
 this.outsecond=0;
 int count=0;
 car link=null;

 }

//構造方法2
 public car(){
 this.number="";
 this.inhour=0;
 this.inminute=0;
 this.insecond=0;
 this.outhour=0;
 this.outminute=0;
 this.outsecond=0;
 int count=0;
 car link=null;
 }
 
 //成員方法:得到指針
 public car getLink(){
 return link;
 }

 //成員方 法:修改指針
 public void setLink(car n){
 link=n;
 }

 //成員方法;得到車牌號
 public String getNum(){
 return number;

}
 
}

++++++++++++++++++++++

//停車場基于順序存儲結構 棧//停車場基于順序存儲結構 棧

import java.util.Date;

public class mylist{
 public int Length2; 
 public int Length3;
 public car[] carStark1; //停車場
 public car[] carStark2; //用于倒車的臨時棧

 //構造方法
 public mylist(){
 carStark1 =new car[5]; //5個車位的停車場 即棧1
 carStark2 =new car[5]; //倒車的臨時棧 車位也為5 即棧2
 Length2=0;
 Length3=0;
 }

//入棧 同時將系統時間壓入
 public void push(String value){
 car newcar=new car(value);
 int n=Length2;
 carStark1[n]=newcar;
 Date now = new Date(); //時間類
 int hour = now.getHours();
 int minute = now.getMinutes();
 int second = now.getSeconds();
 carStark1[n].inhour=hour;
 carStark1[n].inminute=minute;
 carStark1[n].insecond=second;
 Length2++;
 
 }
 //由棧2回到棧1
 public void push3(){
 int n=Length2;
 carStark1[n]=getTop2();
 Length2++;
 Length3--;
 
 }
 //出棧1 入棧2
 public void pop(){
 car temp =getTop1();
 int n=Length3;
    carStark2[n]=temp;
 carStark2[n].count++;
   Length2--;
 Length3++;
 }
 //出棧2
 public void pop3(){
 Length3--;
 }

 //有時間的出棧1 并且暫時入棧2
 public void pop2(){
 int n=Length2-1;
 Date now = new Date();
 int hour = now.getHours();
 int minute = now.getMinutes();
 int second = now.getSeconds();
 carStark1[n].outhour=hour;
 carStark1[n].outminute=minute;
 carStark1[n].outsecond=second;
 car temp = getTop1();
 carStark2[Length3]=temp;
 Length2--;
 Length3++;

 }
 //得到棧1頂元素
 public car getTop1(){
 return carStark1[Length2-1];
 }
 //得到棧2頂元素
 public car getTop2(){
 return carStark2[Length3-1];
 }
 //停車場里有幾輛車
 public int getLength(){
 return Length2;
 }
  //獲得停車場中第i號車位的車牌號
 public String getNum(int i){
 return carStark1[i-1].number;
 }

//察看車位情況
 public void print(){
 int i=0;
 for(i=0;i<Length2;i++){
  System.out.println(i+1+"號車位:"+carStark1[i].number);
 }
 }

++++++++++++++++++++++++++++++

//隊列基于單向鏈式存儲結構

import java.lang.*;
import java.util.*;

//隊列 
public class myQueue  
{
 
 car header;
 car current;
 int size;
 
 //構造方法:建立一個空表
 public myQueue()    
 {
 header=new car("");
 current=header;
 size = 0;
 }

 //把當前位置之后插入一個新結點
 public void insertcar(String value){
 car newcar=new car(value);
 newcar.setLink(current.link);
 current.setLink(newcar);
 current=newcar; 
 size += 1;
 System.out.println("*********************************************");
 System.out.println("您的車牌號:"+newcar.number);
 System.out.println("停車場已滿,您現在在等待中,您的位置是"+size+"個位置"); 
 System.out.println("*********************************************");
 }
 
 
 //刪除當前位置結點后面的結點
 public void delete(){     
 car replace;
 replace = current.link;
 if (replace == null) return;
 current.setLink(replace.link);
 replace=null;
 size -= 1;
 }

 //刪除第i個結點
 public void delete(int i) {    
 if(i>size || i<=0) return;
 locate(i-1);
 delete(); 
 }


 
 
 //由當前結點到下一個結點
 public car getNext(){     
 if(current == null) return null;
 current=current.link;
 return current;
 }


 //得到隊列的左后一輛車
 public car getLast() {     
 while (current.link!=null)
 {
  getNext();
 }
 return current;
 }
 

 //由車牌號找到車
 public car find(String value){     
 current=header;
 while(current.number!=value)
 {
  if (current.link==null)
  {
  System.out.println("找不到需要的數!!!!");
  current=header;
  break;
  }
  current=current.link;

 }
 return current;
 }

  //取得第m 位置的元素 
 public car locate(int m ){     
 if (m > size) return null;
 current=header;
 int i;
 for (i=m;i>0;i--)
  {
  getNext();
  }
 return current;
 }


 //取得第一個元素
 public car getHeader()   
 {
 return header.link;
 }
 
 //隊列里有多少車
 public int getLength()    
 {  
 return size;
 }
 

//察看車位
 public void print()
 {
 current=header.getLink();
 while(current!=null){
  int i=1;
  System.out.print(i+"號車位:"+current.getNum());
  System.out.println(" ");
  i++;
  getNext();
 }
 }
 }

+++++++++++++++++++++++++

//執行程序

import java.io.*;
import java.lang.*;


public class DemoParking{
 public mylist parking; //停車場
 public myQueue waiting; //隊列
 public String x1;  //選擇
 public String x2;  //開入的車牌號
 public String x3;  //開出的車牌號


  //構造方法
 public  DemoParking(){
  parking=new mylist();  //初始化棧
  waiting=new myQueue();  //初始化隊列
  x1="";
  x2="";
  x3="";
 }


   // 成員方法:菜單
 public void menu(){    
 System.out.println("                      ");
 System.out.println("                      ");
   System.out.println("       歡迎進入停車場系統       ");
 System.out.println("*********************************************");
 System.out.println("*  本停車場每秒收費1元 停車場內有5個車位  *");
 System.out.println("*    倒車一次返回2元(最少不收費!)    *");
 System.out.println("*********************************************");
 System.out.println("    1:開進");
 System.out.println("    2:開出");
 System.out.println("    3:車位情況");
 System.out.println("    4:退出");  //+++++++++++++++++++++++++++
 System.out.print("請選擇:");
  
 try{
  BufferedReader keyin = new BufferedReader(
  new InputStreamReader(System.in));
 x1 = keyin.readLine();

  
 }
 catch (IOException e)
 {
  System.out.print("出錯了");
 }
 choice();
 
 

 }

  //成員方法:選擇
 public void choice(){
  if(x1.equals("1")){  //輸入1 開入
  System.out.print("請輸入車牌號:");
  try{
     BufferedReader keyin1 = new BufferedReader(
        new InputStreamReader(System.in));
   x2 =new String( keyin1.readLine());
  }
  catch (IOException e){
      System.out.print("出錯了");
     }
   in(x2);     
   menu();
  }

  if(x1.equals("2")){  //輸入2 開出
   System.out.print("請輸入車牌號:");
   try{
     BufferedReader keyin1 = new BufferedReader(
        new InputStreamReader(System.in));
   x3 =new String( keyin1.readLine());
   }
   catch (IOException e){
      System.out.print("出錯了");
      }
   out(x3);      
  }
  if(x1.equals("3")){  //輸入3 查詢
   Allprint();
   menu();
  }
  if(x1.equals("4")){  //輸入4 退出
   
  }

  else{  //輸入不符合規定 返回菜單
   menu();
  }
 }


  //成員方法:開入車
 public void in(String value){
 if (parking.getLength()<5){ //入棧
  parking.push(value);
  System.out.println("*********************************************");
  System.out.println("您的車牌號:"+parking.getTop1().number);
  System.out.println("進入停車場時間:"+parking.getTop1().inhour+":"+parking.getTop1().inminute+":"+parking.getTop1().insecond);
  System.out.println("*********************************************");
 }else{
  waiting.insertcar(value); //入隊列
 }
 }


  //成員方法:開出車
 public void out(String value){
  int i=parking.getLength();
  int b=parking.getLength();
  //只有棧里有車 查找到開出
  if(waiting.getLength()==0){
  while(parking.getTop1().number.equals(value)==false){
   parking.pop();   //開始倒車
   i--;
  }
  parking.pop2(); //開出這輛車 進入棧2
  System.out.println("*********************************************");
  System.out.println("     您的車牌號:"+parking.getTop2().number);
  System.out.println("     進入時間:"+parking.getTop2().inhour+":"+parking.getTop2().inminute+":"+parking.getTop2().insecond);
  System.out.println("     離開時間:"+parking.getTop2().outhour+":"+parking.getTop2().outminute+":"+parking.getTop2().outsecond);
  System.out.println("     倒車次數:"+parking.getTop2().count);
  int s=((parking.getTop2().outhour-parking.getTop2().inhour)*60+parking.getTop2().outminute-parking.getTop2().inminute)*60+parking.getTop2().outsecond-parking.getTop2().insecond-2*parking.getTop2().count;
  System.out.println("     您的費用:"+s+"元");
  System.out.println("     歡迎下次再來!@_@再見");
  System.out.println("*********************************************");
  parking.pop3(); //再從棧2中彈出
  if(i==b){
  }else{
   for(int n=i;n<b;n++){  //將車倒回棧1
   parking.push3();
   }
  }

  }else{
  //看在隊列還是在棧里
  while(parking.getNum(i).equals(value)==false){ //棧
   i--;
   if(i==0){ //檢驗隊列
   int a=waiting.getLength();
   while(waiting.locate(a).number.equals(value)==false){
    a--;
   }
    
   System.out.println("*********************************************");
   System.out.println("     您的車牌號:"+waiting.locate(a).number);
   System.out.println("     歡迎下次再來!@_@再見");
   System.out.println("*********************************************");
   waiting.delete(a);
   break;
    
   }
   
  }
  if(i>0){  //要開出的車在棧里
   int c=i;
   for(;i<b;i++){
   parking.pop();
   }
   parking.pop2();
   System.out.println("*********************************************");
   System.out.println("     您的車牌號:"+parking.getTop2().number);
   System.out.println("     進入時間:"+parking.getTop2().inhour+":"+parking.getTop2().inminute+":"+parking.getTop2().insecond);
   System.out.println("     離開時間:"+parking.getTop2().outhour+":"+parking.getTop2().outminute+":"+parking.getTop2().outsecond);
   System.out.println("     倒車次數:"+parking.getTop2().count);
   int s=((parking.getTop2().outhour-parking.getTop2().inhour)*60+parking.getTop2().outminute-parking.getTop2().inminute)*60+parking.getTop2().outsecond-parking.getTop2().insecond-2*parking.getTop2().count;
   if(s<0){
   s=0; //費用最少為0
   }
   System.out.println("     您的費用:"+s); //利用時間計算費用
   System.out.println("     歡迎下次再來!@_@再見");
   System.out.println("*********************************************");
   parking.pop3();
   for(;c<b;c++){   
   parking.push3();
   }
   parking.push(waiting.getHeader().number);  //隊列的第一個元素入棧
    waiting.delete(1); //刪除隊列的第一個元素

  }
   }
 }

 //查詢車位情況 包括棧中和隊列中的
 public void Allprint(){
 System.out.println("*********************************************");
 System.out.println("停車場中:");
 parking.print();
 if(waiting.getLength()>0){
  System.out.println("等待中:");
  waiting.print();
 }
 System.out.println("*********************************************");
 }
 
 
public static void main(String[] args)throws IOException{ //應用!!
 DemoParking demo=new DemoParking();
 demo.menu();

}

}

感謝各位的閱讀!關于“java實現停車場管理系統的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

胶州市| 乐平市| 耿马| 东光县| 巨鹿县| 达拉特旗| 呼和浩特市| 郯城县| 辉南县| 乌兰县| 辽源市| 防城港市| 平泉县| 赣榆县| 彰化县| 垦利县| 彭山县| 平陆县| 宾阳县| 增城市| 天门市| 巫溪县| 秦安县| 万源市| 仪陇县| 德兴市| 宁国市| 彭水| 资源县| 弋阳县| 大庆市| 高雄县| 徐闻县| 赣榆县| 凌云县| 永康市| 枣庄市| 巨鹿县| 莱西市| 安康市| 驻马店市|