停车场管理系统(java)
import java.io.*;public class Methodprivate int intinput() throws IOException,NumberFormatException BufferedReader br=new BufferedReader(new InputStreamReader(System.in);String str=br.readLine();int i=Integer.parseInt(str);return i;private String stringinput() throws lOExceptionBufferedReader br=new BufferedReader(newI nputStreamReader (System.in) ) ;String str二br.readLine();return str;private boolean between(int n,int min,int max)for(int i=min;i<=max;i+)if(n=i) returntrue;return false;private void printerror()System. out.println (”输入错误!请重新输入!");String sip()String str;while (true)trystr=this.stringinput();catch(IOException e)this.printerror(); continue;break;return str;int iip(int min,int max)int n=0;while(true)tryn=this.intinput(); catch(IOException e)this.printerror(); continue; catch(NumberFormatException e)this.printerror(); continue; if(!this.between(n,min,max)this.printerror(); continue;break;return n;public class CarString car_no;String state;Car()car_no=null;state=null;public class StopCar data;int size;Stop()data二new Car1;size=O;private Car peek()return data sizeT;private boolean isFull()return size=data. length;private Car pop()size一;return datasize;void pop(int location,Passway p,Temp t)if (location=this. size)System. out.println(this.peek(). car_no+"号车离开停车场"); this.pop();else int f二this, size;for(int i=1;i<=f-location;i+)t,push(this,peek();this,pop();System. out.println(this.peek(). car_no+"号车离开停车场"); this,pop();for(int i=0;!t.isEmpty();i+)this.push(t.peek();t.pop();if(!p.isEmpty()this.push(p.datap.front); p.remove();void push(Car target)if(this.isFull()stretch();datasize二target;size+;target. state二target. car_no+ "号车位于停车场"+size+ "号位";System. out.println(target. car_no+ "号车进入停车场"+size+"号位"); boolean isIn(String s)return false;for (int i=0;i<size;i+)if(datai.car_no.equals(s)return true;return false;private void stretch()Car newData=new Cardata.length*2;for(int i=0;i<data.length;i+)newDatai=datai; data=newData;void print()for (int i=0;i<size;i+)System.out.println (datai.state.toString ();public class PasswayCar data;int size;int front;Passway()data=new Car1;size=0;front=0;boolean isEmpty()return size=0;private boolean isFull()return size=data.length;public Car remove()Car result=datafront; front=(front+1)%data.length;size-;Passway t=new Passway();for(int i=0;i<this.size;i+)t.add(this.datafront+i);return result;void add(Car target)if(this.isFull()this.stretch();data(front+size)%data.length=target;size+;target. state二target. car_no+ "号车位于便道"+size+"号位"System. out.println(target. car_no+"号车进入便道"+size+ "号位");boolean isIn(String s)if(size=0)return false;for(int i=0;i<size;i+)if(this.data(front+i)%data.length.car_no.equals(s) return true;return false;private void stretch()Car newData=new Cardata.length*2;for(int i=0;i<data.length;i+)newDatai=data(front+i)%data.length; data=newData;front=0;void print()for(int i=0;i<size;i+)System.out.println(data(front+i)%data.length.state.toString();public class Tempprivate Car data;private int size;Temp()data=new Car1;size=0;boolean isEmpty()return size=0;Car peek()return datasize-1;private boolean isFull()return size=data.length;Car pop()size-;return datasize;void push(Car target)if(this.isFull()stretch();datasize=target;size+;System. out.println(target. car_no+"号车暂时离开停车场”); target. state二target. car_no+"号车暂时离开停车场"private void stretch()Car newData=new Cardata.length*2;for(int i=0;i<data.length;i+)newDatai=datai;data=newData;public class cmspublic static void main(String args)Stop stop=new Stop();Passway passway=new Passway();Temp temp=new Temp();Method method=new Method();System. out .printin(”欢迎使用停车场管理系统!"); while (true)printin("1printin("2printin("3printin("4printin("5println("请选择操作")初始化"); 进车"); 出车"); 查询"); 退出");System.out.System.out.System.out.System.out.System.out.System.out.int seiect=method.iip(1,5);switch(seiect)case 1:int i;Stop newstop=new Stop();Passway newpassway=new Passway();stop=newstop;passway=newpassway;for(i=1;i<=5;i+)String str=nuii;whiie (true)str=method.sip(); if(stop.isIn(str)请重新输入!");System.out.printin(”此车已在停车场里,continue;if(passway.isIn(str)System. out.println("此车已在便道里,请重新输入!");的编号,键入$完结");System. out.printin(”请输入便道"+n+ "号位汽车String str01=nuii;whiie (true)str01=method.sip(); if(stop.isIn(str01) continue; break;if(str.equais("$")break;eiseCar c=new Car();c.car_no=str;stop.push(c);if(stop.size=5)for(int n=1;n+)便道里,请重新输入!");continue;if(passway.isIn(str01)System. out.println("此车已在continue;break;if(str01.equals("$")break;elseCar c=new Car();c.car_no=str01;passway.add(c);continue;case2:System. out .printinln("请输入待进汽车的编号:”);输入!");continue ;if(passway.isIn(str02)String str02=null ; while(true)str02=method.sip();if(stop.isIn(str02)入!");System.out.ln("此车已在便道里,请重新输continue ; break ;System. out.println("此车已在停车场里,请重新Car c=new Car();c.car_no=str02;if(stop.size<5) stop.push(c);elsepassway.add(c);cont i nue ;case 3:System. out.println ("请输入待出汽车的停车位编号:");int i2;i2=method.iip(1,5);if(i2>stop.size)!");continue;stop.pop(i2, passway, temp); continue;case4:System. out.println ("请选择查询区域:");System. out.println("1:停车场");System. out.println("2:便道");System. out.println("3:打印全部");int i4=method.iip(1,3);if(i4=1)System. out.ln("请输入待查询停车场车位编号:");int i41=method.iip(1,5); if (stop. size<i41)System. out.println ("此车位尚无汽车!");elseSystem. out.datai41-1.state.toString();elseif(i4=2)("请输入待查询便道车位编号:int i42=method.iip(1, 100);if(passway.size<i42)System. out.pri ");elseint ii=(i42-1+passway.front)%passway.data.length;System. out.println(passway. dataii. state.toStringO);elsestop.print();passway.print(); continue ;case 5:System.out.println("欢迎再次使用! ”);break ;