你们是一起的吧,刚给一位解决了这样的问题,我源码给你看看:
package com;
import java.util.ArrayList;
import java.util.Scanner;
public class GradeStatistic
{
public static void main(String[] args) {
ArrayList<Mark> arrayList = new ArrayList<Mark>();
Scanner in = new Scanner(System.in);
boolean b=true;//是否继续输入成绩
while(b){
System.out.println("请输入考生姓名 ");
String x=in.next();
if(x.equals("end")){
b=false;
break;//跳出本次循环
}
System.out.println("请输入"+x+"成绩 ");
int score=in.nextInt();
Mark m=new Mark(x,score);
arrayList.add(m);
}
in.close();//输入结束,释放对象
int sum=0;//总成绩
int max=0;//最高成绩
int min=0;//最低成绩
System.out.println("==================开始公布成绩==================");
for(int i=0;i<arrayList.size();i++){
Mark m=arrayList.get(i);
if(i==0){//默认最低值和最高值都是第一个成绩
max=m.score;
min=m.score;
}else{
if(m.score>max){
max=m.score;
}
if(m.score<min){
min=m.score;
}
}
sum+=m.score;
System.out.println(m.toString());
}
System.out.println("学生总数:"+arrayList.size());
System.out.println("最低分:"+min);
System.out.println("最高分:"+max);
double ave=sum/(arrayList.size());
System.out.println("平均分:"+ave);
System.out.println("==================公布成绩结束==================");
}
}
class Mark{
int score;
String name;
public Mark(String name,int score){
this.name=name;
this.score=score;
}
public String toString(){
return "姓名:"+this.name+"-成绩:"+this.score;
}
}
运行结果:
如果是你需要的,请采纳!
写在一个main方法里面
首先你有两个主函数入口,你只执行一个累死也出来不了,你的getMax()方法也有问题,判断都没有的