模拟顾客餐厅前等候就餐排队(java实现)

模拟顾客餐厅前等候就餐排队(java实现),第1张

模拟顾客餐厅前等候就餐排队(java实现)

1、要求:

(1)取号时,打印当前排队号码,且给出当前等待的人数。

(2)叫号时,打印当前办理业务的排队号码。

提示:使用队列实现该功能。取号即为入队 *** 作,叫号即为出队 *** 作。

接口类:

package sj;

public interface Queue1 {
	boolean isEmpty();
	boolean isFull();
	Object enQueue(Object element);
	Object deQueue();
	Object peek();
	int getSize();
} 

实现类:

package sj;
import java.util.Scanner;
public class SeqQueue implements Queue1 {
	private final int MAX_QUEUE=100;//数组的默认容量
	private Object[] value;//对象数组
	private int front;//队头指针
	private int rear;//队尾指针
	private int count;//计数器
	public SeqQueue() {//构造空队列
		value=new Object[MAX_QUEUE];
		front=0;
		rear=MAX_QUEUE-1;
		count=0;
	}
	
	public boolean isEmpty(){	//判断队列是否为空
		return count==0;
	}
	public boolean isFull(){	//判断队列是否已满
		return count==MAX_QUEUE;
	}
	
	public Object enQueue(Object element){//入队
		if(!isFull()){
			rear=(rear+1)%MAX_QUEUE;
			value[rear]=element;
			count++;
			return element;
		}
		return null;
	}
	public Object deQueue(){//出队
		if(!isEmpty()){
			Object temp=value[front];
			front=(front+1)%MAX_QUEUE;
			count--;
			return temp;
		}
		return null;
		
	}
	public Object peek(){//取队头元素
		if(!isEmpty()){
			return value[front];
		}
		return null;
	}
	//查询队列长度
	public int getSize(){
		return count;
	}
	public static void main(String[] args) {
		SeqQueue seqqueue = new SeqQueue();
		Scanner scan1 = new Scanner(System.in);
		Scanner scan2 = new Scanner(System.in);
		int i;
		String k;
		do {
			System.out.println("------------ 菜单 -------------n"
					+ "------------1:取号 -----------------n"
					+ "------------2:叫号 -----------------n"
					+ "------------3:队列长度 -----------n"
					+ "------------0:退出 -----------------n");
			i = scan1.nextInt();
			switch(i) {
				case 1:
					System.out.println("请输入您的姓名:");
					k=scan2.nextLine();
					System.out.println(seqqueue.enQueue(k)+"所在的位置为:第"+seqqueue.getSize()+"n");
					break;
				case 2:
					System.out.println("当前取号的是:"+seqqueue.peek()+"n");
					seqqueue.deQueue();
					break;
				case 3:
					System.out.println("当前队列长度为:"+seqqueue.getSize()+"n");
					break;
			}
		}while(i!=0);
		System.out.println("退出成功");
	}		
} 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5136935.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存