2019-07-23 运动会成绩管理系统

一、运行工具和环境

运行工具:eclipse
运行环境:JDK 11.0.1

二、课程题目

设计运动会成绩管理系统,实现以下功能:
给3个运动项目各输入5名运动员的姓名、参赛号码、比赛成绩。
计算每个题目的平均成绩,最好成绩以及最差成绩。
每个项目的成绩按照降序排序。
判断每个项目是否有破纪录的运动员。
输入参赛号码查询每个运动员的成绩。

三、源程序

import java.util.Scanner;

public class PerformanceFind {
    
public static int mainMenu() {  //主界面,同时判断进行菜单选择
        Scanner sc = new Scanner(System.in);
        System.out.println("======================Start=========================");
        System.out.println(" |————————————运动会成绩管理系统——————————|");
        System.out.println(" |                      1.录入三种运动的数据                      |");                                                    
        System.out.println(" |                      2.运动成绩统计与分析                      |");                                                        
        System.out.println(" |                      3.比赛成绩以降序排列                      |");                                                          
        System.out.println(" |                      4.比赛成绩破记录查询                      |");                                                           
        System.out.println(" |                      5.查询某人比赛成绩                        |");                                                              
        System.out.println(" |—————————-——6.退出系统———————————————|");
        System.out.println("  请输入数字1~6进行选择:\n");
        int cmd = sc.nextInt();
        while(cmd < 0 || cmd > 7)
        {
            System.out.println("输入无效,请重新输入:\n");
            cmd = sc.nextInt();
        }
        return cmd;
    }
    public static int menu(){
        Scanner sc = new Scanner(System.in);
        System.out.println(" |—————————————请输入要选择的项目—————————|");
        System.out.println(" |                           1.项目一                           |");                                                                      
        System.out.println(" |                                                              |");
        System.out.println(" |                           2.项目二                           |");                                                                     
        System.out.println(" |                                                               |");
        System.out.println(" |                               3.项目三                        |");                                                                          
        System.out.println(" |————————————————————————————————|");
        System.out.println("  请输入数字1~3进行选择:\n");
        int cmd = sc.nextInt();
        while(cmd < 0 || cmd > 3)
        {
            System.out.println("输入无效,请重新输入:\n");
            cmd = sc.nextInt();
        }
        return cmd;
    }
    
    public static void main(String[] args)
    {
        sport[] sportPerformance = new sport[3];
        for(int i = 0; i < 3; i++) {
            if(i == 0)
                sportPerformance[i] = new sport("项目一", 80);
            else if(i == 1)
                sportPerformance[i] = new sport("项目二", 80);
            else
                sportPerformance[i] = new sport("项目三", 80);
        }
        
        int cmd = mainMenu();
        while (cmd != 6) {
            switch(cmd)
            {
            case 1:{
                    for(cmd = 1; cmd <= 3; cmd++){
                        System.out.println("请给"+sportPerformance[cmd-1].getSportName()+"输入5个运动员的信息:\n");
                        for (int i = 0; i < 5; i++) {
                            System.out.println("请输入第 " + (i+1) +" 个运动员的信息:\n");
                            sportPerformance[cmd-1].add();
                        }
                    }
                }
                break;
            case 2:
                {
                    cmd = menu();
                    System.out.println("项目"+sportPerformance[cmd-1].getSportName()+"的统计信息如下:\n");
                    System.out.println("平均成绩为:"+sportPerformance[cmd-1].average()+"\n");
                    System.out.println("最高成绩为:"+sportPerformance[cmd-1].find("best").playerScore+"\n");
                    System.out.println("最低成绩为:"+sportPerformance[cmd-1].find("worst").playerScore+"\n");
                }
                break;
            case 3:
                {
                    cmd = menu();
                    System.out.println("项目"+sportPerformance[cmd-1].getSportName()+"的成绩降序排列如下:\n");
                    sportPerformance[cmd-1].show();
                }
                break;
            case 4:
                {
                    cmd = menu();
                    System.out.println("项目"+sportPerformance[cmd-1].getSportName()+"打破记录的情况如下:\n");
                    sportPerformance[cmd-1].hasRecord();
                }
                break;
            case 5:
                {
                    cmd = menu();
                    sportPerformance[cmd-1].findID();
                }
                break;
            default:
                break;
            }
            cmd = mainMenu();
        }
    }
}

class player{   // 定义运动员类
    int playerID;
    String playerName;
    int playerScore;
}

class sport{    //定义运动项目类
    private String sportName;       //运动项目名称
    private int record;         //运动项目的最高记录,默认为 80分
    private player[] sport = new player[5];     //该项目的运动员列表
    private int index = 0;
    public sport(String name, int core) {       //初始化运动项目,包括名称及最高记录
        sportName = name;
        record = core;
        index = 0;
        for(int i = 0; i < 5; i++)
            sport[i] = new player();
    }
    public String getSportName() {      //获取项目的名称
        return sportName;
    }
    public void setRecord(int score) {      //设置项目的最高记录
        record = score;
    }
    public void add() {     //添加运动员
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入运动员姓名");
        sport[index].playerName = sc.nextLine();
        System.out.println("请输入运动员编号:");
        sport[index].playerID = sc.nextInt();
        System.out.println("请输入运动员得分:");
        sport[index].playerScore = sc.nextInt();
        index ++;
        if(index == 5)
        {
            index = 0;
            System.out.println(sportName+"的运动员信息输入成功");
        }
    }
    public player find(String str){     // 根据str查找项目中的运动员信息,str取值包括{"best"、"worst"}两种
        player resultPlayer = sport[0];
        for(int i = 0; i < 5; i++)
        {
            if(str.equals("best")&&sport[i].playerScore>resultPlayer.playerScore)
                resultPlayer = sport[i];
            else if(str.equals("worst")&&sport[i].playerScore record)
            {
                System.out.println("运动员编号:"+sport[i].playerID
                        +" 运动员姓名:"+sport[i].playerName
                        +" 运动员得分:"+sport[i].playerScore
                        +"打破了"+sportName+"的记录\n");
                flag = true;
            }
        }
        if(flag == false)
            System.out.println("该项目没有人打破记录\n");
    }
}

你可能感兴趣的:(2019-07-23 运动会成绩管理系统)