【问题描述】
参加计算机设计大赛的n个学校编号为1~n,赛事分成m个项目,项目的编号为1~m.比赛获奖按照得分降序,取前三名,写一个统计程序产生各种成绩单和得分报表。
【基本要求】
1)每个比赛项目至少有10支参赛队;每个学校最多有6支队伍参赛;
2)能统计各学校的总分;
3)可以按照学校编号或名称,学校的总分、各项目的总分排序输出;
4)可以按学校编号查询学校某个项目的获奖情况;可以按项目编号查询取得前三名的学校;
5)数据存入文件并能随时查询
【设计要求】
1)输入数据形式和范围:可以输入学校的名称,赛事项目的名称。
2)输出形式:有中文提示,各学校分数为整数
3)界面要求:交互设计要合理,每个功能可以设立菜单,根据提示,可以完成相关功能的要求。
4)存储结构:学生自己根据系统功能要求自己设计,但是赛事相关数据要存储在文件中。
【测试数据】
要求使用全部合法数据,整体非法数据,局部非法数据。进行程序测试,以保证程序的稳定。
【实现提示】
假设3<赛事项目数量<=10,学校名称长度不超过20个字符。每个赛事结束时,将其编号、名称输入,并依次输入参赛学校编号、学校名称和成绩。
【功能设计】
1、输入学校和项目信息
2、输出某项目的获奖情况
3、统计各学校的获奖情况
4、输出某学校某项目的获奖情况
5、按照学校得分顺序输出信息得分
6、按照学校id输出获奖情况
7、将信息存储到txt文本的函数
【逻辑设计】
1.学校类
static class School {int schoolCode;//学校编码String schoolName;//学校名称int sum;//项目总分int teamsum;//参赛队伍数量}
2.项目类
static class Project {int projectCode;//项目编码String projectName;//项目名称int schoolnum;//参赛队伍数量int[] jointeam = new int[10];//参赛队伍编号int[] score = new int[10];//参赛队伍成绩int teamnum;//参赛队伍数量}
3.菜单栏
while (true) {System.out.println("**********************");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("0.退出");System.out.println("**********************");System.out.println("请输入你的选择:");String nothing = sc.nextLine(); //防止空格int option = sc.nextInt();if (option != 0 && option != 1 && option != 2 && option != 3 && option != 4 && option != 5) {System.out.println("输入有误!");System.exit(0);}switch (option) {case 1:addInformation();break;case 2:printByCodes();break;case 3:printByScore();break;case 4:findByCodes();break;case 5:getTopThree();break;case 0:System.out.println("谢谢使用");System.exit(0);}}