使用java代码完成技能节报名系统,功能分别为:请选择您要的操作、1报名:2、计分:3、查分:4、退出:如果按1则要输入您的学号、输入您的姓名、输入您的班级、输入您的系部然后显示“报名完成”;如果按2则要输入您的加分的学号、输入您要加的分、显示当前选手分数;如果按3则查看报名选手的所有信息并且查询时按分数大到小排序;如果按4则显示“比赛加油”
时间: 2023-11-25 17:06:54 浏览: 123
好的,以下是Java代码实现技能节报名系统的示例:
```java
import java.util.*;
public class SkillFestivalRegistrationSystem {
private static Map<String, Integer> scores = new HashMap<>(); // 存储选手分数
private static List<Player> players = new ArrayList<>(); // 存储选手信息
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int choice = -1;
while (choice != 4) {
System.out.println("请选择您要的操作:");
System.out.println("1. 报名");
System.out.println("2. 计分");
System.out.println("3. 查分");
System.out.println("4. 退出");
choice = scanner.nextInt();
switch (choice) {
case 1:
register(scanner);
break;
case 2:
addScore(scanner);
break;
case 3:
getScores();
break;
case 4:
System.out.println("比赛加油!");
break;
default:
System.out.println("无效的选择,请重新输入");
}
}
}
// 报名
private static void register(Scanner scanner) {
System.out.println("请输入您的学号:");
String id = scanner.next();
System.out.println("请输入您的姓名:");
String name = scanner.next();
System.out.println("请输入您的班级:");
String clazz = scanner.next();
System.out.println("请输入您的系部:");
String department = scanner.next();
Player player = new Player(id, name, clazz, department);
players.add(player);
System.out.println("报名完成");
}
// 计分
private static void addScore(Scanner scanner) {
System.out.println("请输入选手的学号:");
String id = scanner.next();
if (!scores.containsKey(id)) {
System.out.println("该选手未报名!");
return;
}
System.out.println("请输入加的分数:");
int score = scanner.nextInt();
scores.put(id, scores.get(id) + score);
System.out.println("当前选手分数:" + scores.get(id));
}
// 查分
private static void getScores() {
if (players.size() == 0) {
System.out.println("当前没有选手!");
return;
}
// 按分数从大到小排序
Collections.sort(players, new Comparator<Player>() {
@Override
public int compare(Player p1, Player p2) {
return scores.get(p2.getId()) - scores.get(p1.getId());
}
});
System.out.println("学号\t姓名\t班级\t系部\t分数");
for (Player player : players) {
System.out.println(player.getId() + "\t" + player.getName() + "\t" +
player.getClazz() + "\t" + player.getDepartment() + "\t" + scores.get(player.getId()));
}
}
}
// 选手类
class Player {
private String id;
private String name;
private String clazz;
private String department;
public Player(String id, String name, String clazz, String department) {
this.id = id;
this.name = name;
this.clazz = clazz;
this.department = department;
SkillFestivalRegistrationSystem.scores.put(id, 0); // 初始化分数为0
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getClazz() {
return clazz;
}
public String getDepartment() {
return department;
}
}
```
这个示例中,我们定义了一个 `SkillFestivalRegistrationSystem` 类来实现技能节报名系统。这个类包含了 `register`、`addScore`、`getScores` 等方法来实现不同的功能。此外,我们还定义了一个 `Player` 类来表示选手,其中包含了学号、姓名、班级、系部等信息。我们使用了 `Map` 来存储选手分数,使用 `List` 来存储选手信息,并且在 `register` 方法中添加了新的选手信息。在 `addScore` 方法中,我们可以输入选手的学号和要加的分数,然后更新选手的分数,并且在 `getScores` 方法中,我们可以按照分数从大到小的顺序显示所有选手的信息和分数。在 `main` 方法中,我们使用 `Scanner` 来获取用户的输入,然后根据不同的选择来执行相应的方法。