⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.java

📁 利用栈和队列实现停车场(作业要求
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            box1.add(new JLabel("请选择类型"));            box2=Box.createVerticalBox();            box2.add(text1);            box2.add(Box.createVerticalStrut(8));            box2.add(text2);            box2.add(Box.createVerticalStrut(8));            box2.add(choice);            box3=Box.createHorizontalBox();            box3.add(box1);            box3.add(Box.createHorizontalStrut(10));            box3.add(box2);                 ss.getContentPane().setLayout(new FlowLayout());                 ss.setBounds(320,150,300,180);                 Dialog_ss_action();                 ss.getContentPane().add(box3);            //ss.getContentPane().setResizable(false);            ss.getContentPane().add(button1);            ss.getContentPane().add(button6);            ss.setVisible(true);            ss.validate();    }        if(e.getSource()==item2) //出站        {                menuable(false);                removetable(true);            ss=new JDialog();            ss.setTitle("出站");            ss.setModal(true);            text1=new JTextField(16);             text1.setText("无");            ss.getContentPane().setLayout(new FlowLayout());                 ss.setBounds(320,150,200,120);                 ss.setResizable(false);                 Dialog_ss_action();        ss.getContentPane().add(new JLabel("请输入ID"));        ss.getContentPane().add(text1);        ss.getContentPane().add(button2);        ss.getContentPane().add(button6);        ss.setVisible(true);            ss.validate();     }        if(e.getSource()==item3)  //退出        {System.exit(0);	}        if(e.getSource()==item4)//查找汽车信息        {            menuable(false);            removetable(true);        ss=new JDialog();            ss.setTitle("查找车辆");            ss.setModal(true);           ss.getContentPane().setLayout(new FlowLayout());                 ss.setBounds(320,225,300,120);                 ss.setResizable(false);                 Dialog_ss_action();        ss.getContentPane().add(new JLabel("请输入ID"));        text1=new JTextField(16);             text1.setText("无");        ss.getContentPane().add(text1);        ss.getContentPane().add(button3);        ss.getContentPane().add(button6);        ss.setVisible(true);            ss.validate();        }         if(e.getSource()==item5) //查询空车位        {                removetable(true);                String s="";                               if(checklink(b,1,stationlen)==stationlen)                  JOptionPane.showMessageDialog(this,"停车场以满,请进入便车道","提示对话框 ",JOptionPane.WARNING_MESSAGE);            else             {	for(int i=0;i<stationlen;i++)  //没有空车位怎提示                      {if(b[i]==0)                      	 s=s+String.valueOf(i)+" "; 	                       if(s.length()>=20)                          {                          	s=s+".....等";                          	break;                          }                      }                JOptionPane.showMessageDialog(this,"空车位有:"+s+"号车位","提示对话框 ",JOptionPane.WARNING_MESSAGE);             }        }         if(e.getSource()==item6)   //打印停车场汽车列表包括便车道         {                  removetable(false);                  tableprint(queue1,queue2,stack1,stack2);                  tableprint(queue1,queue2,stack1,stack2);                 table.setVisible(true);                 table.repaint();                 table.enable(false);         }         if(e.getSource()==item7) //设置停车场,便车道价格         {             menuable(false);       		 removetable(true);            ss=new JDialog();            ss.setTitle("设置单价");            ss.setModal(true);            text1=new JTextField(10);            text1.setText("请输入停车场单价");            text2=new JTextField(10);            text2.setText("请输入便车道单价");            box1=Box.createVerticalBox();            box1.add(new JLabel("当前停车场单价"+String.valueOf(price1)+"元/小时"));            box1.add(Box.createVerticalStrut(8));            box1.add(new JLabel("当前便车道单价"+String.valueOf(price2)+"元/小时"));            box2=Box.createVerticalBox();            box2.add(text1);            box2.add(Box.createVerticalStrut(8));            box2.add(text2);            box3=Box.createHorizontalBox();            box3.add(box1);            box3.add(Box.createHorizontalStrut(10));            box3.add(box2);            ss.getContentPane().setLayout(new FlowLayout());            ss.setBounds(320,150,320,150);            ss.setResizable(false);            Dialog_ss_action();            ss.getContentPane().add(box3);            ss.getContentPane().add(button5);            ss.getContentPane().add(button6);            ss.setVisible(true);        ss.validate();         }         if(e.getSource()==item8)  //设置停车场大小         {             removetable(true);             menuable(false);             ss=new JDialog();            ss.setTitle("设置容量");            ss.setModal(true);                 ss.getContentPane().setLayout(new FlowLayout());                 ss.setBounds(300,200,350,80);                 Dialog_ss_action();                 JLabel labeln=new JLabel("当前停车场大小"+String.valueOf(stationlen));                 text2=new JTextField(4);                 text2.setText("请输入");                 ss.getContentPane().add(labeln);                 ss.getContentPane().add(text2);                 ss.getContentPane().add(button4);                 ss.getContentPane().add(button6);                 int i;                 c=new int[stationlen];                 for(i=0;i<stationlen;i++)                 {c[i]=b[i];	}                 ss.setVisible(true);                 //getContentPane().enable(false);                 ss.validate();         }         if(e.getSource()==item9)         {            removetable(true);            ss=new JDialog();            ss.setTitle("帮助");            ss.setModal(true);            ss.getContentPane().setLayout(new FlowLayout());                 ss.setBounds(320,225,400,120);             ss.setResizable(false);                 Dialog_ss_action();        ss.getContentPane().add(new JLabel("利用本系统可以实现停车场汽车出站,进站管理.谢谢使用!"));        ss.setVisible(true);            ss.validate();         }         if(e.getSource()==item10)         {            removetable(true);            JOptionPane.showMessageDialog(this,"停车场数量:"+String.valueOf(count1)+"  便车道数量:"+String.valueOf(count2),"提示对话框 ",JOptionPane.WARNING_MESSAGE);         }         if(e.getSource()==button1)        //处理入站        {                String s=text1.getText().toString();            char c[]=s.toCharArray();                if(c.length==0)		      //判断车牌号是否为空并给予提示                    JOptionPane.showMessageDialog(this,"车牌号不能为空","警告对话框 ",JOptionPane.WARNING_MESSAGE);                else                 if ( checksame(s)!=null )       //判断是否有重号并给予提示如果没有怎进入下面                      JOptionPane.showMessageDialog(this,"车牌号重复","提示",JOptionPane.WARNING_MESSAGE);             else                   if(!checkformat(s))                       JOptionPane.showMessageDialog(this,"输入非法字符","提示",JOptionPane.WARNING_MESSAGE);                   else                   {                      int j=choice.getSelectedIndex()+1;                      int i=checklink(b,j,stationlen) ;              if(i==stationlen)    //停车场满汽车进入便车道                {                   int sign=1000;    //便车道同意标志                   Car temp=new Car(text1.getText().toString(),sign,text2.getText().toString(),j);                                              queue1.enqueue(temp);                         count2++;                         JOptionPane.showMessageDialog(this,"没有足够的空车位汽车进入便车位号:1000车号","提示",JOptionPane.WARNING_MESSAGE);                 }              else                   //进入停车场                 {                    Car temp=new Car(text1.getText().toString(),i,text2.getText().toString(),j);                          temp.change=new Date();                          stack1.push(temp);                          count1++;                    JOptionPane.showMessageDialog(this,"成功进入"+i+"车位","提示",JOptionPane.WARNING_MESSAGE);                          for(int k=i;k<i+j;k++)     b[k]=1;                  }                   }                  enableitem2();                  ss.setVisible(false);                  menuable(true);         }         if(e.getSource()==button2)         //处理出站         {            removetable(false);            Car temp,htemp=new Car();                 if(text1.getText().length()==0)  //判断是否输入车牌号                     JOptionPane.showMessageDialog(this,"车牌号不能为空","警告对话框 ",JOptionPane.WARNING_MESSAGE);                 else                 {{                  if(flag==0)    //先检测是否在停车场                    { while(!stack1.empty())                             {	temp=(Car)stack1.pop();                                     if(text1.getText().equals(temp.id))   //如果找到怎从停车场中删除                                         {   int t=0 ;                                                 count1--;                                             for(t=temp.number;t<temp.number+temp.type;t++)   b[t]=0;                                         htemp=temp;   flag=1;                                         while(queue1.isempty())                                           {                                               temp=queue1.dequeue();                                              if(!tranfer(temp,stack1,stationlen,b))                                               queue2.enqueue(temp);                                           }                                          while(queue2.isempty())                                          {                                             temp=queue2.dequeue();                                             queue1.enqueue(temp);                                          }                                         }                                         else stack2.push(temp);                             }                      while(!stack2.empty())                                 {temp=(Car)stack2.pop();stack1.push(temp);	}                    }                   if(flag!=1)     //如果不在停车场怎检测便车道                            {                           while(queue1.isempty())                                 {	temp=queue1.dequeue();                                          if(text1.getText().equals(temp.id))                                                  { count2--;flag=2;htemp=temp;break;}                                          else                                                   queue2.enqueue(temp);                                  }                           while(queue2.isempty())                                 {  temp=queue2.dequeue();                                         queue1.enqueue(temp) ;                                 }                         }                    }                    if(flag==0)   //如果在停车场和便车道均没有发现怎输出不存在                                   JOptionPane.showMessageDialog(this,"该车不在车站","警告对话框 ",JOptionPane.WARNING_MESSAGE);                    else        //找到该汽车输入 相关信息                          {                                  int i=1,j=6;                                  flag=0;                                  htemp.dpark();                                  tableset(i,j,name);                                  table.setVisible(true);                                  a[0][0]=htemp.id;                                  a[0][1]=String.valueOf(htemp.number) ;                                  a[0][2]=htemp.arrive;                                  a[0][3]=htemp.depart;                                  a[0][4]=htemp.design;                                  a[0][5]=String.valueOf(htemp.type);                                  table.repaint();                                  table.enable(false);                                  int s1=countcost(htemp,price1,price2);                                  JOptionPane.showMessageDialog(this,htemp.id+"出站成功应收费:"+String.valueOf(s1)+"元","警告对话框 ",JOptionPane.WARNING_MESSAGE);                   }	}              enableitem2();                  menuable(true);                  ss.setVisible(false);    }         if(e.getSource()==button3)  //处理查找汽车信息        {            removetable(false);            Car htemp=new Car();            htemp=checksame(text1.getText());            if(htemp==null)                JOptionPane.showMessageDialog(this,"很遗憾,该车不在停车场","警告对话框 ",JOptionPane.WARNING_MESSAGE);            else            {  	    tableset(1,6,name);table.setVisible(true);table.enable(false);                        a[0][0]=htemp.id;a[0][1]=String.valueOf(htemp.number) ;a[0][2]=htemp.arrive;                                  a[0][3]=htemp.depart;a[0][4]=htemp.design;a[0][5]=String.valueOf(htemp.type);                              table.repaint();        }      menuable(true);           ss.setVisible(false);        }         if(e.getSource()==button4)  //处理设定停车场大小         {                 int temp=stationlen;             int htemp=stationlen;                 if(!checkformat(text2.getText()))                       JOptionPane.showMessageDialog(this,"输入非法,保持初始大小"+String.valueOf(stationlen),"提示",JOptionPane.WARNING_MESSAGE);                else                       temp=Integer.parseInt(text2.getText());             if(temp<stationlen )                    JOptionPane.showMessageDialog(this,"设置小于当前值,保持初始大小"+String.valueOf(stationlen),"提示",JOptionPane.WARNING_MESSAGE);             else   {                          stationlen=temp;                      JOptionPane.showMessageDialog(this,"更新成功,当前大小为:"+String.valueOf(stationlen),"提示",JOptionPane.WARNING_MESSAGE);                    }             b=new int[stationlen];             for(int te=0;te<stationlen;te++)                  if (te<htemp) b[te]=c[te];                  else b[te]=0;       menuable(true);            ss.setVisible(false);         }         if(e.getSource()==button5)  //处理价格设定         {           if(!checkformat(text2.getText())||!checkformat(text1.getText()))               JOptionPane.showMessageDialog(this,"输入非法,保持初始大小","提示",JOptionPane.WARNING_MESSAGE);           else             {                     int temp1=Integer.parseInt(text1.getText());                     int temp2=Integer.parseInt(text2.getText());                     if(temp1>20||temp1<=0||temp2<=0||temp2>20||temp1<temp2)                        JOptionPane.showMessageDialog(this,"设定不合法可能:便车道价格大于停车场,单价大于20或者为零.(保持初始大小)","警告",JOptionPane.WARNING_MESSAGE);                     else                        {price1=temp1;                         price2=temp2;                         JOptionPane.showMessageDialog(this,"更新成功" ,"提示",JOptionPane.WARNING_MESSAGE);                        }             }            menuable(true);            ss.setVisible(false);         }         if(e.getSource()==button6)  //取消函数         {           menuable(true);           ss.setVisible(false);         }}}public class Test        //主主函数{        public static void main(String args[])        {                   Win win=new Win("停车场" );        }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -