java实现停车场管理系统
本文实例为大家分享了java停车场管理系统的具体代码,供大家参考,具体内容如下
//车的类 publicclasscar{ publicStringnumber;//车牌号 publicintinhour;//进入小时 publicintinminute;//进入分 publicintinsecond;//进入秒 publicintouthour;//开出小时 publicintoutminute;//开出分 publicintoutsecond;//开出秒 publicintcount;//倒车次数 publiccarlink;//队列的指针 //构造方法1 publiccar(Stringnum){ this.number=num; this.inhour=0; this.inminute=0; this.insecond=0; this.outhour=0; this.outminute=0; this.outsecond=0; intcount=0; carlink=null; } //构造方法2 publiccar(){ this.number=""; this.inhour=0; this.inminute=0; this.insecond=0; this.outhour=0; this.outminute=0; this.outsecond=0; intcount=0; carlink=null; } //成员方法:得到指针 publiccargetLink(){ returnlink; } //成员方法:修改指针 publicvoidsetLink(carn){ link=n; } //成员方法;得到车牌号 publicStringgetNum(){ returnnumber; } } ++++++++++++++++++++++ //停车场基于顺序存储结构栈//停车场基于顺序存储结构栈 importjava.util.Date; publicclassmylist{ publicintLength1; publicintLength2; publiccar[]carStark1;//停车场 publiccar[]carStark2;//用于倒车的临时栈 //构造方法 publicmylist(){ carStark1=newcar[5];//5个车位的停车场即栈1 carStark2=newcar[5];//倒车的临时栈车位也为5即栈2 Length1=0; Length2=0; } //入栈同时将系统时间压入 publicvoidpush(Stringvalue){ carnewcar=newcar(value); intn=Length1; carStark1[n]=newcar; Datenow=newDate();//时间类 inthour=now.getHours(); intminute=now.getMinutes(); intsecond=now.getSeconds(); carStark1[n].inhour=hour; carStark1[n].inminute=minute; carStark1[n].insecond=second; Length1++; } //由栈2回到栈1 publicvoidpush2(){ intn=Length1; carStark1[n]=getTop2(); Length1++; Length2--; } //出栈1入栈2 publicvoidpop(){ cartemp=getTop1(); intn=Length2; carStark2[n]=temp; carStark2[n].count++; Length1--; Length2++; } //出栈2 publicvoidpop3(){ Length2--; } //有时间的出栈1并且暂时入栈2 publicvoidpop2(){ intn=Length1-1; Datenow=newDate(); inthour=now.getHours(); intminute=now.getMinutes(); intsecond=now.getSeconds(); carStark1[n].outhour=hour; carStark1[n].outminute=minute; carStark1[n].outsecond=second; cartemp=getTop1(); carStark2[Length2]=temp; Length1--; Length2++; } //得到栈1顶元素 publiccargetTop1(){ returncarStark1[Length1-1]; } //得到栈2顶元素 publiccargetTop2(){ returncarStark2[Length2-1]; } //停车场里有几辆车 publicintgetLength(){ returnLength1; } //获得停车场中第i号车位的车牌号 publicStringgetNum(inti){ returncarStark1[i-1].number; } //察看车位情况 publicvoidprint(){ inti=0; for(i=0;isize||i<=0)return; locate(i-1); delete(); } //由当前结点到下一个结点 publiccargetNext(){ if(current==null)returnnull; current=current.link; returncurrent; } //得到队列的左后一辆车 publiccargetLast(){ while(current.link!=null) { getNext(); } returncurrent; } //由车牌号找到车 publiccarfind(Stringvalue){ current=header; while(current.number!=value) { if(current.link==null) { System.out.println("找不到需要的数!!!!"); current=header; break; } current=current.link; } returncurrent; } //取得第m位置的元素 publiccarlocate(intm){ if(m>size)returnnull; current=header; inti; for(i=m;i>0;i--) { getNext(); } returncurrent; } //取得第一个元素 publiccargetHeader() { returnheader.link; } //队列里有多少车 publicintgetLength() { returnsize; } //察看车位 publicvoidprint() { current=header.getLink(); while(current!=null){ inti=1; System.out.print(i+"号车位:"+current.getNum()); System.out.println(""); i++; getNext(); } } } +++++++++++++++++++++++++ //执行程序 importjava.io.*; importjava.lang.*; publicclassDemoParking{ publicmylistparking;//停车场 publicmyQueuewaiting;//队列 publicStringx1;//选择 publicStringx2;//开入的车牌号 publicStringx3;//开出的车牌号 //构造方法 publicDemoParking(){ parking=newmylist();//初始化栈 waiting=newmyQueue();//初始化队列 x1=""; x2=""; x3=""; } //成员方法:菜单 publicvoidmenu(){ 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{ BufferedReaderkeyin=newBufferedReader( newInputStreamReader(System.in)); x1=keyin.readLine(); } catch(IOExceptione) { System.out.print("出错了"); } choice(); } //成员方法:选择 publicvoidchoice(){ if(x1.equals("1")){//输入1开入 System.out.print("请输入车牌号:"); try{ BufferedReaderkeyin1=newBufferedReader( newInputStreamReader(System.in)); x2=newString(keyin1.readLine()); } catch(IOExceptione){ System.out.print("出错了"); } in(x2); menu(); } if(x1.equals("2")){//输入2开出 System.out.print("请输入车牌号:"); try{ BufferedReaderkeyin1=newBufferedReader( newInputStreamReader(System.in)); x3=newString(keyin1.readLine()); } catch(IOExceptione){ System.out.print("出错了"); } out(x3); } if(x1.equals("3")){//输入3查询 Allprint(); menu(); } if(x1.equals("4")){//输入4退出 } else{//输入不符合规定返回菜单 menu(); } } //成员方法:开入车 publicvoidin(Stringvalue){ 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);//入队列 } } //成员方法:开出车 publicvoidout(Stringvalue){ inti=parking.getLength(); intb=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); ints=((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(intn=i;n0){//要开出的车在栈里 intc=i; for(;i0){ System.out.println("等待中:"); waiting.print(); } System.out.println("*********************************************"); } publicstaticvoidmain(String[]args)throwsIOException{//应用!! DemoParkingdemo=newDemoParking(); demo.menu(); } }
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。