题目要求
参加计算机设计大赛的n个学校编号为1~n,赛事分成m个项目,项目的编号为1~m.比赛获奖按照得分降序,取前三名,写一个统计程序产生各种成绩单和得分报表。
基本要求
1)每个比赛项目至少有10支参赛队;每个学校最多有6支队伍参赛;
2)能统计各学校的总分;
3)可以按照学校编号或名称,学校的总分、各项目的总分排序输出;
4)可以按学校编号查询学校某个项目的获奖情况;可以按项目编号查询取得前
设计要求
1)输入数据形式和范围:可以输入学校的名称,赛事项目的名称。
2)输出形式:有中文提示,各学校分数为整数
3)界面要求:交互设计要合理,每个功能可以设立菜单,根据提示,可以完成相关功能的要求。
4)存储结构:学生自己根据系统功能要求自己设计,但是赛事相关数据要存储在文件中。
问题分析
1.假设3<赛事项目数量<=10,学校名称长度不超过20个字符。每个赛事结束时,将其编号、名称输入,并依次输入参赛学校编号、学校名称和成绩。
2.假设所有参赛队伍一同编号,不受学校项目的约束且队伍编号不能重复
3.假设每个项目设三个奖项:一等奖,二等奖,三等奖,每个奖项均只有一个队伍名额,且同项目的每个队伍的分数不能相同。
设计思路
Team(String xiangmu, String xuexiao, int chengji)
排序时,对Team以及School通过Comparable接口,对成绩以及编号排序
通过java中set和get方法,分别实现求前三名,学校各项目的总分
文本内容通过IOException将txt文本导入即可
输入形式为 项目编号 学校名 分数
设置的变量
1.变量的类型说明:
Team类 参加的项目(int) 所在学校(string)获得成绩(int)
School类 学校的名称(string)和编号(id)参赛队伍数量(int)
2.变量说明:
schools[n] 参加的学校数组(School类型)
events[m] 比赛项目(int)
teams[i] 参加的队伍(Team类型)
total[m] 各项目人数
rank[m][total[m]] 每个项目的队伍排名(Team类型)