######问题如下
The method main cannot be declared static; static methods can only be declared in a static or top
level type
我想要达到的结果,希望能得到结果,谢谢
package ManagementSystem;
import java.util.*;
class Athlete{ //运动员类
private String name,number; //运动员姓名、参赛号码
private double grade; //运动员成绩
public void SetName(String name) { //设置姓名
this.name=name;
}
public void SetNumber(String number) { //设置参赛号码
this.number=number;
}
public void SetGrade(double grade) { //设置成绩
this.grade=grade;
}
public String GetName() { //获取姓名
return name;
}
public String GetNumber() { //获取参赛号码
return number;
}
public double GetGrade() { //获取成绩
return grade;
}
static class Recorder{ //保持记录者类
private String mname;
private double record;
public void SetMname(String mname) {
this.mname=mname;
}
public void SetRecord(double record) {
this.record=record;
}
public String GetMname() {
return mname;
}
public double GetRecord() {
return record;
}
}
public class system {
private static final int MAXITEM=3;
private static final int MAXNUMBER=100;
public static void main(String[] args) {
Athlete[][] man=new Athlete[MAXITEM][MAXNUMBER];
Recorder[] re=new Recorder[3]; //保持项目的纪录
re[0].SetMname("李文");re[0].SetRecord(23.4);
re[1].SetMname("冯伟");re[1].SetRecord(23.39);
re[2].SetMname("戴瑞");re[2].SetRecord(5.33);
int n[]=new int[3];
Scanner sc=new Scanner(System.in);
while(true) { //循环菜单界面
System.out.println("\n-------------菜单(menu)-------------");
System.out.println("1.录入运动员成绩;");
System.out.println("2.每个项目的平均成绩、最好成绩以及最差成绩;");
System.out.println("3.每个项目的成绩按降序排序;");
System.out.println("4.判断每个项目是否有破纪录的运动员;");
System.out.println("5.查询运动员成绩。");
System.out.println("\n*请输入对应序号,进入功能。输入0结束运行");
System.out.println("------------------------------------");
int choice=sc.nextInt(); //输入选择的功能
int i,j;
System.out.println("请输入各项目的纪录(姓名 成绩):"); //空格隔开
for(i=0;i<3;i++) {
String str=sc.next();
String[] str1=str.split(" "); //通过split切割字符串,按行读取数据,用空格分隔
re[i].SetMname(str1[0]);
re[i].SetRecord(Double.parseDouble(str1[1]));
}
switch(choice) {
case 0:
System.exit(0);
break;
//成绩录入
case 1:
System.out.println("\n---------------录入成绩---------------");
for(i=0;i<3;i++) {
System.out.print("请输入要录入项目"+(i+1)+"的人数:");
n[i]=sc.nextInt();
System.out.println(" ------项目"+(i+1)+"------");
if(i==1)
System.out.println("参赛号码 姓名 成绩(s)");
else
System.out.println("参赛号码 姓名 成绩(m)");
for(j=0;j<n[i];j++) {
String s=sc.next(); //获取用户输入
String[] s1=s.split(" "); //通过split切割字符串,按行读取数据,用空格分隔
//将输入的数据保存到运动员数组中
man[i][j].SetNumber(s1[0]);
man[i][j].SetName(s1[1]);
man[i][j].SetGrade(Double.parseDouble(s1[2]));
}
}
System.out.println("\n---------------录入成绩---------------");
break;
//成绩计算
case 2:
double ave,best=0,worse;
System.out.println("\n---------------计算成绩---------------");
System.out.println("\n项目 平均成绩 最好成绩 最差成绩");
for(i=0;i<3;i++) {
worse=man[i][0].GetGrade();
j=0;
for(j=0;j<n[i];j++) {
ave+=man[i][j].GetGrade();
if(best<man[i][j].GetGrade() && i!=1) //求最好成绩
best=man[i][j].GetGrade();
else if(best>man[i][j].GetGrade() && i==1)
best=man[i][j].GetGrade();
if(worse>man[i][j].GetGrade() && i!=1) //求最差成绩
worse=man[i][j].GetGrade();
else if(best>man[i][j].GetGrade() && i==1)
best=man[i][j].GetGrade();
}
ave=ave/n[i];
System.out.println((i+1)+" "+String.format("%.2f", ave)+" "+String.format("%.2f", best)+" "+String.format("%.2f", worse));
}
System.out.println("\n---------------计算成绩---------------");
break;
//成绩排序
case 3:
int k,l;
System.out.println("\n---------------成绩排序---------------"); //选择排序
for(i=0;i<3;i++) {
System.out.println(" ------项目"+(i+1)+"------");
if(i==1)
System.out.println("参赛号码 姓名 成绩(s)");
else
System.out.println("参赛号码 姓名 成绩(m)");
for(j=0;j<n[i];j++) {
k=j;
for(l=j+1;l<n[i];l++) {
if(man[i][j].GetGrade()<man[i][l].GetGrade() && i!=1)
k=l;
else if(man[i][j].GetGrade()>man[i][l].GetGrade() && i==1)
k=l;
}
if(k!=j)
System.out.println(man[i][k].GetNumber()+" "+man[i][k].GetName()+" "+man[i][k].GetGrade());
else
System.out.println(man[i][j].GetNumber()+" "+man[i][j].GetName()+" "+man[i][j].GetGrade());
}
}
System.out.println("\n---------------成绩排序---------------");
break;
//破纪录
case 4:
System.out.println("\n--------------是否破纪录?--------------");
System.out.println("纪录保持者:\n项目一:"+re[0].GetMname()+" "+re[0].GetRecord());
System.out.println("项目二:"+re[1].GetMname()+" "+re[1].GetRecord());
System.out.println("项目三:"+re[2].GetMname()+" "+re[2].GetRecord());
for(i=0;i<3;i++) {
for(j=0;j<n[i];j++) {
if(man[i][j].GetGrade()>re[i].GetRecord() && i!=1)
System.out.println("项目"+(i+1)+"有破纪录者:"+man[i][j].GetNumber()+" "+man[i][j].GetName()+" "+man[i][j].GetGrade());
else if(man[i][j].GetGrade()<re[i].GetRecord() && i==1) {
re[i].SetMname(man[i][j].GetName());re[i].SetRecord(man[i][j].GetGrade());
System.out.println("项目"+(i+1)+"有破纪录者:"+man[i][j].GetNumber()+" "+man[i][j].GetName()+" "+man[i][j].GetGrade());
}
else
System.out.println("项目"+(i+1)+"没破记录");
}
}
System.out.println("\n--------------是否破纪录?--------------");
break;
//查询
case 5:
int c=0;
while(c==0) {
System.out.println("\n---------------查询成绩---------------");
System.out.print("请输入参赛号码:");
String s=sc.next();
for(i=0;i<3;i++) {
for(j=0;j<n[i];j++) {
if(man[i][j].GetNumber().equals(s)) {
System.out.println(man[i][j].GetNumber()+" "+man[i][j].GetName()+" "+man[i][j].GetGrade());
}
}
}
if(i==4 && j==n[i])
System.out.println("该参赛号码不存在!!!");
System.out.println("\n---------------查询成绩---------------");
System.out.println("\n*继续查询0/返回菜单1");
c=sc.nextInt();
}
break;
default:
System.out.println("输入错误!!请重新输入!!!");
break;
}
}
}
}
}
package ManagementSystem;
import java.util.*;
class Athlete{ //运动员类
private String name,number; //运动员姓名、参赛号码
private double grade; //运动员成绩
public void SetName(String name) { //设置姓名
this.name=name;
}
public void SetNumber(String number) { //设置参赛号码
this.number=number;
}
public void SetGrade(double grade) { //设置成绩
this.grade=grade;
}
public String GetName() { //获取姓名
return name;
}
public String GetNumber() { //获取参赛号码
return number;
}
public double GetGrade() { //获取成绩
return grade;
}
static class Recorder{ //保持记录者类
private String mname;
private double record;
public void SetMname(String mname) {
this.mname=mname;
}
public void SetRecord(double record) {
this.record=record;
}
public String GetMname() {
return mname;
}
public double GetRecord() {
return record;
}
}
public class system {
private static final int MAXITEM=3;
private static final int MAXNUMBER=100;
public static void main(String[] args) {
Athlete[][] man=new Athlete[MAXITEM][MAXNUMBER];
Recorder[] re=new Recorder[3]; //保持项目的纪录
re[0].SetMname("李文");re[0].SetRecord(23.4);
re[1].SetMname("冯伟");re[1].SetRecord(23.39);
re[2].SetMname("戴瑞");re[2].SetRecord(5.33);
int n[]=new int[3];
Scanner sc=new Scanner(System.in);
while(true) { //循环菜单界面
System.out.println("\n-------------菜单(menu)-------------");
System.out.println("1.录入运动员成绩;");
System.out.println("2.每个项目的平均成绩、最好成绩以及最差成绩;");
System.out.println("3.每个项目的成绩按降序排序;");
System.out.println("4.判断每个项目是否有破纪录的运动员;");
System.out.println("5.查询运动员成绩。");
System.out.println("\n*请输入对应序号,进入功能。输入0结束运行");
System.out.println("------------------------------------");
int choice=sc.nextInt(); //输入选择的功能
int i,j;
System.out.println("请输入各项目的纪录(姓名 成绩):"); //空格隔开
for(i=0;i<3;i++) {
String str=sc.next();
String[] str1=str.split(" "); //通过split切割字符串,按行读取数据,用空格分隔
re[i].SetMname(str1[0]);
re[i].SetRecord(Double.parseDouble(str1[1]));
}
switch(choice) {
case 0:
System.exit(0);
break;
//成绩录入
case 1:
System.out.println("\n---------------录入成绩---------------");
for(i=0;i<3;i++) {
System.out.print("请输入要录入项目"+(i+1)+"的人数:");
n[i]=sc.nextInt();
System.out.println(" ------项目"+(i+1)+"------");
if(i==1)
System.out.println("参赛号码 姓名 成绩(s)");
else
System.out.println("参赛号码 姓名 成绩(m)");
for(j=0;j<n[i];j++) {
String s=sc.next(); //获取用户输入
String[] s1=s.split(" "); //通过split切割字符串,按行读取数据,用空格分隔
//将输入的数据保存到运动员数组中
man[i][j].SetNumber(s1[0]);
man[i][j].SetName(s1[1]);
man[i][j].SetGrade(Double.parseDouble(s1[2]));
}
}
System.out.println("\n---------------录入成绩---------------");
break;
//成绩计算
case 2:
double ave,best=0,worse;
System.out.println("\n---------------计算成绩---------------");
System.out.println("\n项目 平均成绩 最好成绩 最差成绩");
for(i=0;i<3;i++) {
worse=man[i][0].GetGrade();
j=0;
for(j=0;j<n[i];j++) {
ave+=man[i][j].GetGrade();
if(best<man[i][j].GetGrade() && i!=1) //求最好成绩
best=man[i][j].GetGrade();
else if(best>man[i][j].GetGrade() && i==1)
best=man[i][j].GetGrade();
if(worse>man[i][j].GetGrade() && i!=1) //求最差成绩
worse=man[i][j].GetGrade();
else if(best>man[i][j].GetGrade() && i==1)
best=man[i][j].GetGrade();
}
ave=ave/n[i];
System.out.println((i+1)+" "+String.format("%.2f", ave)+" "+String.format("%.2f", best)+" "+String.format("%.2f", worse));
}
System.out.println("\n---------------计算成绩---------------");
break;
//成绩排序
case 3:
int k,l;
System.out.println("\n---------------成绩排序---------------"); //选择排序
for(i=0;i<3;i++) {
System.out.println(" ------项目"+(i+1)+"------");
if(i==1)
System.out.println("参赛号码 姓名 成绩(s)");
else
System.out.println("参赛号码 姓名 成绩(m)");
for(j=0;j<n[i];j++) {
k=j;
for(l=j+1;l<n[i];l++) {
if(man[i][j].GetGrade()<man[i][l].GetGrade() && i!=1)
k=l;
else if(man[i][j].GetGrade()>man[i][l].GetGrade() && i==1)
k=l;
}
if(k!=j)
System.out.println(man[i][k].GetNumber()+" "+man[i][k].GetName()+" "+man[i][k].GetGrade());
else
System.out.println(man[i][j].GetNumber()+" "+man[i][j].GetName()+" "+man[i][j].GetGrade());
}
}
System.out.println("\n---------------成绩排序---------------");
break;
//破纪录
case 4:
System.out.println("\n--------------是否破纪录?--------------");
System.out.println("纪录保持者:\n项目一:"+re[0].GetMname()+" "+re[0].GetRecord());
System.out.println("项目二:"+re[1].GetMname()+" "+re[1].GetRecord());
System.out.println("项目三:"+re[2].GetMname()+" "+re[2].GetRecord());
for(i=0;i<3;i++) {
for(j=0;j<n[i];j++) {
if(man[i][j].GetGrade()>re[i].GetRecord() && i!=1)
System.out.println("项目"+(i+1)+"有破纪录者:"+man[i][j].GetNumber()+" "+man[i][j].GetName()+" "+man[i][j].GetGrade());
else if(man[i][j].GetGrade()<re[i].GetRecord() && i==1) {
re[i].SetMname(man[i][j].GetName());re[i].SetRecord(man[i][j].GetGrade());
System.out.println("项目"+(i+1)+"有破纪录者:"+man[i][j].GetNumber()+" "+man[i][j].GetName()+" "+man[i][j].GetGrade());
}
else
System.out.println("项目"+(i+1)+"没破记录");
}
}
System.out.println("\n--------------是否破纪录?--------------");
break;
//查询
case 5:
int c=0;
while(c==0) {
System.out.println("\n---------------查询成绩---------------");
System.out.print("请输入参赛号码:");
String s=sc.next();
for(i=0;i<3;i++) {
for(j=0;j<n[i];j++) {
if(man[i][j].GetNumber().equals(s)) {
System.out.println(man[i][j].GetNumber()+" "+man[i][j].GetName()+" "+man[i][j].GetGrade());
}
}
}
if(i==4 && j==n[i])
System.out.println("该参赛号码不存在!!!");
System.out.println("\n---------------查询成绩---------------");
System.out.println("\n*继续查询0/返回菜单1");
c=sc.nextInt();
}
break;
default:
System.out.println("输入错误!!请重新输入!!!");
break;
}
}
}
}
}