编写一个JAVA应用程序允许教师输入学生人数和所有学生该门课的成绩,然后输出最高分最低分及平均成绩

如题所述

import java.util.Scanner;

public class TestCalculate {

/**
* 编写一个JAVA应用程序允许教师输入学生人数和所有学生该门课的成绩,然后输出最高分最低分及平均成绩(成绩输入以逗号分隔)
* @param args

*/
public static void sort(int[] values){
int temp;
for(int i=0 ; i < values.length ; ++i){
for(int j=0; j <values.length - i - 1; ++j){
if(values[j] > values[j + 1]){
temp = values[j];
values[j] = values[j + 1];
values[j+1] = temp;
}
}
}
}

public static int[] chageType(String[] values,int length){
int[] values2 = new int[length];
for(int i=0;i<values.length;i++){
values2[i] = Integer.parseInt(values[i]);
}
return values2;
}

public static void main(String[] args) {
System.out.print("请输入学生人数:");
Scanner scanner = new Scanner(System.in);
int students = Integer.parseInt(scanner.next());
System.out.print("请输入所有学生该门课的成绩:");
String grades[] = scanner.next().split(",");
System.out.println(grades.length);
int[] grades2 = chageType(grades,students);
sort(grades2);
System.out.println("最高分是:"+grades2[grades2.length-1]);
System.out.println("最低分是:"+grades2[0]);
int total = 0;
for(int i=0; i < grades2.length; i++){
total += grades2[i];
}
System.out.println("平均分是:"+total/students);

}

}
/////////////////////////////////////////////////
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;

public class Test
{
/**
* @一些校验我就没有加了.
* @大概思路应该是这样
* @[email protected]
* @2011-05-23
*/
private static int total = 0;

public static void main(String[] args) {

System.out.println("请输入班级学生人数!");
Scanner sc = new Scanner(System.in);
total = sc.nextInt();
System.out.println("班级学生人数是: " + total);
System.out.println("请依次输入学生成绩:");

String[] cjArray = new String[total];

for(int i=0; i<cjArray.length; i++){
Scanner sc2 = new Scanner(System.in);
System.out.println("请输入下一个学生成绩");
cjArray[i] = sc.next();
}

for(String cj : cjArray){
System.out.println("学生的成绩依次为:" + cj);
}

}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-24
数组初始化时是需要定长的,z没有长度,所以第十行会报错,是空指针异常……
建议
1、先给数组赋长度,如果长度不够可以写了方法扩容。
2、使用ArrayList,就不用考虑长度问题了。
补:
应注意的问题:
1、将输入流进行类型转换前最好做个验证,如果我输入abcde,你这程序就会报错。
2、统计也可以使用Map进行,键用于存放类别,值用于存放个数,不过这样貌似麻烦点儿……不过我挺喜欢的说……哼哼哼哼
3、我习惯用scan扫描器的说,那样不用抛出IO异常(貌似)(个人习惯)……
4、我是菜鸟……
本回答被提问者采纳