《停车场管理系统java.doc》由会员分享,可在线阅读,更多相关《停车场管理系统java.doc(15页珍藏版)》请在三一文库上搜索。
1、m p o r ta v a . i opublicclassMethodprivateintin ti nput()throwsIOExceptio n,NumberFormatExceptio nBufferedReader br=newBufferedReader(newInputStreamReader(System.in ):iStri ng str=br.readL in e();inti=ln teger.parse Int(str);return i;privateString str ingin put()throwsIOExcepti onBufferedReader br
2、=newBufferedReader(newInputStreamReader(System.in );Stri ng str=br.readL in e();return str;private boolea nbetwee n(int n, int min, int max)for ( int i=min;i<=max;i+)if (n=i)return true ;return false ;private void prin terror()System. out .println("输入错误!请重新输入!");Stri ng sip()Stri ng str
3、;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 (!
4、this .between(n,min,max)this .printerror(); continue ; break ;return n; publicclass CarStringcar_ no ;Stri ngstate;Car()car_ no =n ull state=n ull publicclass StopCar data ;int size ;Stop()data =new Car1;size =0;private Car peek()return data size -1;private boolea n isFull()return size = data . leng
5、th ;private Car pop()size -;return data size ;void pop( int locati on ,Passway p,Temp t)if (location=this . size )System. out .println( this .pop();this .peek(). car_no +"号车离开停车场");elseint f= this . size ;for ( inti=1;i<=f-location;i+)t.push( this .peek();this .pop();System. out .printl
6、n( this .peek().car_no +"号车离开停车场”);this .pop();for ( int i=O;!t.isEmpty();i+)this .push(t.peek();t.pop();if (!p.isEmpty()this .push(p. data p. front );p.remove();void push(Car target)if (this .isFull()stretch();data size =target;size +;target. state =target. car_no +"号车位于停车场 "+ size +
7、"号位";System. out .println(target.car_no +"号车进入停车场 "+size +"号位");boolea nisln( Stri ng s)if (size =0)return false ;for ( int i=0;i< size ;i+)if (data i. car_no .equals(s)returntruereturnfalseprivate void stretch()Car n ewData=new Car data.length*2;for ( int i=0;i<d
8、ata.length;i+)newDatai=data i;data =n ewData;voidprint()for ( int i=0;i<size;i+)System.out .println(data i.state.toStri ng(); publicclass PasswayCar data ;int size ;int front ;Passway()data =new Car1;size =0;front =0;boolea n isEmpty()retur nsize =0;private boolea n isFull()returnsize = data . le
9、ngth;public Car remove()Car result= data front ;front =( front +1)% data . length sizePassway t= new Passway();for ( int i=0;i< this . size ;i+)t.add( this . data front +i); return result;void add(Car target)if ( this .isFull()this .stretch();data ( front +size )% data . length =target; size +;ta
10、rget. state =target. car_noSystem. out .println(target.+" 号车位于便道 " +size +" 号位 " ; car_no +" 号车进入便道 " +size +" 号位 " );booleanisIn(String s)if ( size =0)returnfalsefor ( int i=0;i<size;i+)if ( this. data( front +i)% data . lengthreturntrue ;. car_no .equals(
11、s)return falseprivate void stretch()Car newData=new Car data . 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
12、 class TempprivateCar data ;privateint size ;Temp()data =new Car1;size =0;boolean isEmpty()return size =0;Car peek()return data size -1;private boolean isFull()return size = data . length ;Car pop()size -;return data size ;void push(Car target)if ( this .isFull() stretch();data size =target;size +;S
13、ystem. out .println(target. car_no +" 号车暂时离开停车场 " ); target. state =target. car_no +" 号车暂时离开停车场 " ;private void stretch()Car newData= new Car data . length *2;for ( int i=0;i< data . length ;i+) newDatai= data i;data =n ewData;publicclasscmspublicstatic void mai n( Stri ng arg
14、s)Stop stop= newStop();Passway passway=new Passway();Temp temp= newTemp();Method method=System. out .println(new Method。;"欢迎使用停车场管理系统!“);while(true )System.out.println("请选择操作“);System.out.println("1:初始化“);System.out.println("2:进车“);System.out.println("3:出车“);System.out.print
15、ln("4:查询“);System.out.println("5:退出“);int select=method.iip(1,5);switch (select)case 1: int i;Stop n ewstop=new Stop();Passway n ewpassway=new Passway();stop=n ewstop;passway=n ewpassway;for (i=1;i<=5;i+)System. out.pr intln("请输入停车位"+i+号车位汽车的编号,键入$完结“);Stri ng str=nullwhile (t
16、ruestr=method.sip();if (stop.isIn(str)新输入! “ );con ti nueif (passway.isln(str)System. out .println("此车已在便道里,请重新输入! “);con ti nue ;break ;if (str.equals( "$")break ;elseCar c= new Car();c.car_ no =str;stop.push(c);if (stop. size =5)for ( int n=1;n+)System. out .println("请输入便道"
17、;+ n+"号位汽车的编号,键入$完结");Stri ng str0 仁n ull ;while (true )str01=method.sip();if (stop.isIn(str01)System. out .println( "此车已在停车场 里,请重新输入!“);con ti nue;if (passway.isIn(str01)请重新输入!");break ;if (str01.equals("$")break ;elseCar c= new Car();c.car_ no =strO1;passway.add(c);co
18、n ti nue ;case 2:System. out .println("请输入待进汽车的编号:");Stri ng str02=null ;while (true )str02=method.sip();if (stop.isIn(:str02));System. out .println("此车已在停车场里,请重新输入!con ti nue;if (passway.isIn(str02)System. out .println("此车已在便道里,请重新输入!);con ti nuebreak ;Car c=new Car();c.car_ no
19、=str02;if (stop. size <5) stop.push(c);elsepassway.add(c);con ti nuecase 3:System. out .println("请输入待岀汽车的停车位编号:");int i2;i2=method.iip(1,5);if (i2>stop. size )System. out .println("此车位尚无汽车!");con ti nue;stop.pop(i2, passway, temp);con ti nue;);case 4:System.out.println(&quo
20、t;请选择查询区域:System.out.println("1:停车场”);System.out.println("2:便道");System.out.println("3:打印全部");int i4=method.iip(1,3);if (i4=1)System.out .println( "请输入待查询停车场车位编号:”);int i41=method.iip(1,5);if (stop. size <i41)System. out .println("此车位尚无汽车!");elseSystem.out
21、.println(stop.data i41-1. state.toStr in g();elseif (i4=2)System. out .println( ”请输入待查询便道车位编号:");int i42=method.iip(1, 100);if (passway. size <i42)System. out .println( "此车位尚无汽车!");elseint ii=(i42-1+passway. front )%passway. data . lengthcasebreakelsestop.pri nt();passway.pri nt();con ti nue;5:System. out .println("欢迎再次使用!");