import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class GradeStatistic
{
public static void main(String[] args)
{
ArrayList<String> arrayList = new ArrayList<String>();
ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
String x = input.next();
int score;
while(x.equals("end"))
{
Scanner in = new Scanner(System.in);
System.out.println("请输入考生姓名 ");
x=in.next();
System.out.println("请输入"+x+"成绩 ");
score=in.nextInt();
arrayList1.add(score);
arrayList.add(x);
}
System.out.println("考生姓名 "+":"+"成绩 ");
int sum=0;
for(int i=0;i<arrayList.size();i++)
{
System.out.println(arrayList.get(i)+":"+arrayList.get(i));
sum+=arrayList1.get(i);
}
Collections.sort(arrayList1);
System.out.println("最低分:"+arrayList1.get(0));
System.out.println("最低分:"+arrayList1.get(arrayList1.size()-1));
double ave=sum/(arrayList1.size()-1);
System.out.println("平均分:"+ave);
}
}
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;
}
}
这是我写的代码,求帮忙改进,谢谢
我也写来练练
代码:
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;
}
}
运行结果:
如果是你想要的,请采纳!
public static void main(String[] args)
{
ArrayList<String> arrayList = new ArrayList<String>();
ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
System.out.println("请输入考生姓名 ");
String x = input.next();
int score;
while(!x.equals("end"))
{
System.out.println("请输入"+x+"成绩 ");
score=input.nextInt();
arrayList1.add(score);
arrayList.add(x);
System.out.println("请输入考生姓名 ");
x=input.next();
}
System.out.println("考生姓名 "+":"+"成绩 ");
int sum=0;
for(int i=0;i<arrayList.size();i++)
{
System.out.println(arrayList.get(i)+":"+arrayList1.get(i));
sum+=arrayList1.get(i);
}
if(arrayList.size()>0){
Collections.sort(arrayList1);
System.out.println("最低分:"+arrayList1.get(0));
System.out.println("最低分:"+arrayList1.get(arrayList1.size()-1));
double ave=sum*1.0/(arrayList1.size());
System.out.println("平均分:"+ave);
}else{
System.out.println("未输入");
}
}
x.equals("end)改为x.equals("end")==false,此然后你再改进一下代码逻辑,应该就可以了。