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

📄 haircutshopmanage.java

📁 本人课程设计用JAVA开发的理发店管理系统。可以高效率地管理理发店的运营 包括顾客的排队等待 计时 计费跟踪 营业额汇总等功能
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
               	      {
               	      	if(e.getSource()==sure)
               	      	  {
               	      	    	String id=idText.getText();
               	      	     	String level=levelText.getText();
               	      	     	String newLevel=newLevelText.getText();
               	      	  	  	h.buyerChangeSelect(id,level,newLevel);
               	      	  }
               	      	  	 setVisible(false);
               	      	  	 dispose();
               	      	  
               	      	}
               }
           /**
           *顾客更改选择
           *id0:用户在当前队列中的序号--从一开始
           *level0:用户所在的队列的级别--从一开始
           *newlevel0:用户的新级别的选择
           */
           public void buyerChangeSelect(String id0,String level0,String newLevel0)
               {
               	  try
               	    {
               	    	if(buyerAdvaceMove(id0,level0))
               	    	  {
               	    	  	int a=Integer.parseInt(newLevel0);
               	    	  	newbuyer(a);
               	    	  	dateData.flux--;
               	    	  	fluxText.setText(""+dateData.flux);
               	    	  	isChanged=true;
               	                 saveTempFileAcition.setEnabled(true);
               	    	  }
               	   }
               	 
                  catch(Exception ex)
               	         {
               	        	    	ex.printStackTrace();
               	        	    	JOptionPane.showMessageDialog(null,"输入格式错误","理发店经营软件",JOptionPane.ERROR_MESSAGE);
               	           }  
               	}
          /**
           *实现顾客提前离去的对话框
           *
           */
           class BuyerAdvaceMoveDialog extends JDialog implements ActionListener
               {
                  private JPanel p1,p2,p3,p4;
               	  private JButton sure,cancel;
               	  private JLabel idLabel,levelLabel;
               	  private JTextField idText,levelText;
               	  private HaircutShopManage h;
               	  public BuyerAdvaceMoveDialog(JFrame parent,String title)
               	     {
               	     	super(parent,title,true);
               	     	if(parent!=null&&parent instanceof HaircutShopManage)
               	     	h=(HaircutShopManage)parent;
               	     	sure=new JButton("确定");
               	     	cancel=new JButton("取消");
               	     	levelLabel=new JLabel("输入用户所在的队列的级别:");
               	     	idLabel=new JLabel("输入用户在当前队列中的序号:");
               	     	idText=new JTextField(10);
               	     	levelText=new JTextField(10);
               	     	p1=new JPanel();
               	     	p2=new JPanel();
               	     	p3=new JPanel();
               	     	p1.add(idLabel);
               	     	p1.add(idText);
               	     	p2.add(levelLabel);
               	     	p2.add(levelText);
               	     	p3.add(sure);
               	     	p3.add(cancel);
               	     	sure.addActionListener(this);
               	     	cancel.addActionListener(this);
               	     	if(parent!=null)
               	     	   {
               	     	   	Dimension parentSize=parent.getSize();
               	     	   	Point p=parent.getLocation();
               	     	   	setLocation(p.x+parentSize.width/4,p.y+parentSize.height/4);
               	     	   }
               	       p4=new JPanel(new GridLayout(2,1));
               	       p4.add(p2);
               	       p4.add(p1);
               	       getContentPane().add(p4,BorderLayout.CENTER);
               	       getContentPane().add(p3,BorderLayout.SOUTH);
               	       setDefaultCloseOperation(DISPOSE_ON_CLOSE);
               	       pack();
               	       setVisible(true);
               	     }
               	 public void actionPerformed(ActionEvent e)
               	      {
               	      	if(e.getSource()==sure)
               	      	  {
               	      	    	String id=idText.getText();
               	      	     	String level=levelText.getText();
               	      	  	  	h.buyerAdvaceMove(id,level);
               	      	  }
               	      	  	 setVisible(false);
               	      	  	 dispose();
               	      	  
               	      	}
               }
          /**
           *顾客提前离去
           *id0:用户在当前队列中的序号--从一开始
           *level0:用户所在的队列的级别--从一开始
           */
           public boolean buyerAdvaceMove(String id0,String level0)
                {
                	try
                	 {
                	 	int i=Integer.parseInt(id0);
                	 	int level=Integer.parseInt(level0);
                	 	if(level<1||level>haircutShop.levelBarber.length||i<1||i>dateData.buyerQueueLength[level-1])
                	 	 {
                	 	 	JOptionPane.showMessageDialog(null,"输入不合实际","顾客管理",JOptionPane.WARNING_MESSAGE);
               	            return false;
               	         }
               	        else 
               	           {
               	           	 Buyer b=(Buyer)(dateData.buyerQueue[level-1].get(i-1));
               	           	 Date d=new Date();
               	           	 b.leaveTime=d;
               	           	 leaveNumber++;
               	    	   	 stayTime+=dateDistance(b.comeInTime,d);
               	    	   	 dateData.averageStayTime=stayTime/leaveNumber;
               	    	   	 averageStayTimeText.setText(""+dateData.averageStayTime);
               	    	  	 dateData.buyerQueue[level-1].remove(i-1);
               	             dateData.buyerQueueLength[level-1]--;
               	             levelButton[level-1].textField.setText(""+dateData.buyerQueueLength[level-1]);
               	             isChanged=true;
               	                 saveTempFileAcition.setEnabled(true);
               	          }
                	 }
                    catch(Exception ex)
               	         {
               	        	    	ex.printStackTrace();
               	        	    	JOptionPane.showMessageDialog(null,"输入格式错误","理发店经营软件",JOptionPane.ERROR_MESSAGE);
               	                    return false;
               	         }
                   return true;
                }
          /**
           *新的一天
           */
          public void newDay()
               {
               	 /*isChanged=false;
               	  saveTempFileAcition.setEnabled(false);
               	  endWorkAction.setEnabled(true);*/
               	  setVisible(false);
               	  dispose();
               	  new HaircutShopManage(haircutShop);
               } 
           /**
            *顾客结帐离开
            *id:理发师编号
            */
           public void buyerLeaveWithCheckOut(int id)
               {
               	  if(checkofBarber(id)==false)
               	    JOptionPane.showMessageDialog(null,"该编号的理发师不存在","顾客结帐离开",JOptionPane.WARNING_MESSAGE);
               	  else 
               	    {
               	    	if(curBarber.barber.curBuyer!=null)
               	    	  {
               	    	  	Date d=new Date();
               	    	  	curBarber.barber.curBuyer.leaveTime=d;
               	    	  	leaveNumber++;
               	    	  	stayTime+=dateDistance(curBarber.barber.curBuyer.comeInTime,d);
               	    	  	dateData.averageStayTime=stayTime/leaveNumber;
               	    	  	averageStayTimeText.setText(dateData.averageStayTime+"");
               	    	  	curBarber.barber.curBuyer=null;
               	        	barberIcon[curBarber.level][curBarber.index].comeIn();
               	    	  	dateData.income+=(haircutShop.levelFee[curBarber.level]);
               	    	  	dateData.levelIncome[curBarber.level]+=(haircutShop.levelFee[curBarber.level]);
               	    	  	incomeText.setText(""+dateData.income);
               	    	  	if(isEndWork==true)
               	    	  	 dateData.endingWorkTime+=dateDistance(dateData.closeShopTime,d);
               	    	  }
               	    	 else 
               	    	   {
               	    	   	 JOptionPane.showMessageDialog(null,"该编号的理发师手头没有顾客","顾客结帐离开",JOptionPane.ERROR_MESSAGE);
               	           }
               	    }               	
               }
          /**
           *顾客开始理发
           *id:理发师编号
           */
          public void buyerBeginHaitcut(int id)
                 {
                 	
               	  if(checkofBarber(id)==false)
               	   JOptionPane.showMessageDialog(null,"该编号的理发师不存在","顾客开始理发",JOptionPane.WARNING_MESSAGE);
               	  else 
               	    {   
               	     if((dateData.buyerQueueLength[curBarber.level])>0)
               	       {
               	      	Buyer b=(Buyer)(dateData.buyerQueue[curBarber.level].get(0));
               	    	b.haircutTime=new Date();
               	    	curBarber.barber.curBuyer=b;
               	    	dateData.buyerQueue[curBarber.level].remove(0);
               	    	dateData.buyerQueueLength[curBarber.level]--;
               	    	levelButton[curBarber.level].textField.setText(""+dateData.buyerQueueLength[curBarber.level]);
               	    	barberIcon[curBarber.level][curBarber.index].hasBuyer();
               	    	isChanged=true;
               	         saveTempFileAcition.setEnabled(true);
               	      }
               	      else 
               	        JOptionPane.showMessageDialog(null,"该级别没有顾客可以理发","顾客开始理发",JOptionPane.WARNING_MESSAGE);
               	  }
                 }
          /**
           *新顾客
           *level:顾客挑选的级别--从一开始
           */
          public void newbuyer(int level)
             {
             	if(level<1||level>haircutShop.levelBarber.length)
             	  JOptionPane.showMessageDialog(null,"输入不合实际情况","理发师报到",JOptionPane.ERROR_MESSAGE);
               	else 
               	    {
               	  	   Buyer b=new Buyer(dateData.flux,new Date(),dateData.buyerQueueLength[level-1]);
               	  	   dateData.buyer.add(b);
               	  	   dateData.buyerQueue[level-1].add(b);
               	  	   queueLength+=dateData.buyerQueueLength[level-1];
               	  	   dateData.buyerQueueLength[level-1]++;
               	  	   levelButton[level-1].textField.setText(""+dateData.buyerQueueLength[level-1]);
               	  	   dateData.flux++;
               	  	   dateData.averageQueueLength=queueLength/(dateData.flux);
               	  	   averageQueueLengthTimeText.setText(""+dateData.averageQueueLength);
               	       fluxText.setText(""+dateData.flux);
               	       isChanged=true;
               	       saveTempFileAcition.setEnabled(true);
               	  	}               
             	}  
          /**
           *检查理发师编号是否合法或者以前有出现过
           */ 
          public boolean checkofBarber(int id)
                {
                	Barber b=null;
                	Barber temp;
                	for(int i=0;i<haircutShop.levelBarber.length;i++)
                	for(int j=0;j<haircutShop.levelLength[i];j++)
                	 {
                	 	Object o=haircutShop.levelBarber[i].get(j);
                	 	temp=(Barber)o;
                	 if(temp.barberID==id)
                	    {
                	    	curBarber=new CurBarber(id,i,temp.name,j,temp);
                	    	return true;
                	    }
                	 }
                    curBarber=null;
                	return false;
                }
          /**
           *
           *理发师报到
           *id:理发师编号
           *
           */  	
          public void barbercheckIn(int id)   
               {
               	  if(checkofBarber(id)==false)
               	   JOptionPane.showMessageDialog(null,"该编号的理发师不存在","理发师报到",JOptionPane.WARNING_MESSAGE);
               	  else 
               	    {
               	    	curBarber.barber.beginWorkTime=new Date();
               	    	curBarber.barber.dimissionTime=null;
               	    	barberIcon[curBarber.level][curBarber.index].comeIn();
               	    	isChanged=true;
               	        saveTempFileAcition.setEnabled(true);
               	    }
               	}  
          /**
           *理发师离开
           *id:理发师编号
           */	
          public void barberLeave(int id)
               {
               	if(checkofBarber(id)==false)
               	   JOptionPane.showMessageDialog(null,"该编号的理发师不存在","理发师离开",JOptionPane.WARNING_MESSAGE);
               	else 
               	    {
               	        Barber b=curBarber.barber;
               	    	b.dimissionTime=new Date();
               	    	b.workTime+=dateDistance(b.beginWorkTime,b.dimissionTime);
               	    	barberIcon[curBarber.level][curBarber.index].go();
               	    	isChanged=true;
               	        saveTempFileAcition.setEnabled(true);	
               	    }
               	}
          /**
           *计算当天两个时间的长度--以分为单位
           */
          public long dateDistance(Date last,Date now)
                {
                	return now.getHours()*60-last.getHours()*60+now.getMinutes()-last.getMinutes();
                }
          /**
           *查询事件处理
           */
          class QueryAction extends AbstractAction
               {

⌨️ 快捷键说明

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