问题四:
为省赛现场设计一个决赛叫号系统。所有参赛队按赛事组织文件中的赛事类别分到9个决赛室,决赛室按顺序叫号,被叫号参赛队进场,比赛结束后,下一参赛队才能进赛场。请模拟决赛叫号系统,演示省赛现场各决赛室的参赛队进场情况。(模拟时,要能直观展示叫号顺序与进场秩序一致)
模拟叫号系统:当有比赛要进行时,先取号,显示你的比赛顺序号码,以及正在比赛的队伍。
当一场比赛结束后,下一个队伍去比。(要求:使用顺序队列或链式队列实现该系统)
设计思路
将方法和执行类分开,在方法内不用写入具体的入队和出队操作,在每次调用取号操作时内部的变量内容都会加一,每次调用叫号操作时内部的变量内容都会减一,在执行类中用while语句包含着switch case语句来选择取号、叫号还是退出服务,来实现系统操作
这个实验用顺序队列比链式队列更加容易理解和实现,只需要用到顺序队列的思路,不需要写出集体的入队和出队操作来
提前写好无参构造函数,对所有可变变量赋值,在定义对象的时候使用无参构造函数,不要到后面实现的时候才另做赋值操作
大体框架
mport java.util.Scanner;
class LinkedQueue {
private int front,rear; //声明队头和队尾
private int count; //声明承载记录总人数作用的变量
public static final int MAX = 100;//定义最大值
private final int[] arr = new int[MAX]; //确定数组的最大值
private int num; //用于承载队中人数随时变换的数据变量
public LinkedQueue() { //定义无参构造方法
}
public void GetNumber(LinkedQueue a){ //用于表达取号的方法
}
public void CallNumber(LinkedQueue a){ //用于表达叫号的方法
}
//以下为各个变量的getter和setter
public int getFront() {
return front;
}
public int getNum() {
return num;
}
public int getCount() {
return count;
}
//以下为判断方法
public boolean Full(){ //用于表达判断队满的方法
}
public boolean isEmpty() { //用于表达判空的方法
}
}
public class QueueOrder {
public static void main(String[] args){
switch (flag){
case 1: {
}
case 2:{
}
case 3:
scan.close();
return;
}
}
}
}