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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。