Java学生成绩处理
学生成绩处理
一、要求:
1、输入若干个学生成绩,形成一个成绩数组,数量自己定。
2、统计成绩的最高分和最低分以及平均分
3、统计成绩的每个分数段所占比例。(不及格,中等,良好和优秀)
4、计算该班级成绩的方差。(方差为每个成绩减去平均分的差的平方之和)
二、代码实现:
package book2;import java.text.NumberFormat;
import java.util.Arrays;
import java.util.Scanner;public class Test01 {public static void main(String[] args) {double[] arrResult = new double[6];getResult(arrResult);// 最小数getMax(arrResult);// 最大数getMin(arrResult);// 平均数getAverage(arrResult);// 方差getVariance(arrResult);// 成绩分段占比getGrade(arrResult);// System.out.println("平均成绩为:" + getAverage(arrResult));
// System.out.println("方差为:" + getVariance(arrResult));
// System.out.println("最小成绩为:" + getMin(arrResult));}// 输入成绩public static void getResult(double[] arrGrade) {Scanner sc = new Scanner(System.in);for (int i = 0; i < arrGrade.length; i++) {int flage = i + 1;System.out.println("请输入第" + flage + "个成绩:");double input = sc.nextDouble();arrGrade[i] = input;}System.out.println("所有成绩为:" + Arrays.toString(arrGrade));}// 求最大数public static double getMax(double[] reMax) {double max = reMax[0];for (int i = 0; i < reMax.length; i++) {if (reMax[i] > max) {max = reMax[i];}}System.out.println("最大成绩为:" + max);return max;}// 求最小数public static double getMin(double[] reMin) {double min = reMin[0];for (int i = 0; i < reMin.length; i++) {if (reMin[i] < min) {min = reMin[i];}}System.out.println("最小成绩为:" + min);return min;}// 求平均数public static double getAverage(double[] arrResult) {double avernum = 0;for (int i = 0; i < arrResult.length; i++) {avernum += arrResult[i] / arrResult.length;}System.out.println("平均成绩为:" + avernum);return avernum;}// 求方差public static double getVariance(double[] result) {double var = 0;double aver = getAverage(result);for (int i = 0; i < result.length; i++) {var += (result[i] - aver) * (result[i] - aver) / result.length;}System.out.println("方差为:" + var);return var;}// 成绩分段占比public static void getGrade(double[] result) {double excellent = 0;double good = 0;double pass = 0;double fail = 0;for (int i = 0; i < result.length; i++) {if (result[i] < 60) {fail++;} else if (result[i] <= 70) {pass++;} else if (result[i] <= 80) {good++;} else {excellent++;}}// 创建百分数对象NumberFormat f = NumberFormat.getPercentInstance();// 保留两位小数f.setMaximumFractionDigits(2);double e = excellent / result.length;double g = good / result.length;double p = pass / result.length;double fa = fail / result.length;System.out.println("优秀占比为:" + f.format(e));System.out.println("良好占比为:" + f.format(g));System.out.println("及格占比为:" + f.format(p));System.out.println("不及格占比为:" + f.format(fa));}
}
三、运行结果:
Java学生成绩处理
学生成绩处理
一、要求:
1、输入若干个学生成绩,形成一个成绩数组,数量自己定。
2、统计成绩的最高分和最低分以及平均分
3、统计成绩的每个分数段所占比例。(不及格,中等,良好和优秀)
4、计算该班级成绩的方差。(方差为每个成绩减去平均分的差的平方之和)
二、代码实现:
package book2;import java.text.NumberFormat;
import java.util.Arrays;
import java.util.Scanner;public class Test01 {public static void main(String[] args) {double[] arrResult = new double[6];getResult(arrResult);// 最小数getMax(arrResult);// 最大数getMin(arrResult);// 平均数getAverage(arrResult);// 方差getVariance(arrResult);// 成绩分段占比getGrade(arrResult);// System.out.println("平均成绩为:" + getAverage(arrResult));
// System.out.println("方差为:" + getVariance(arrResult));
// System.out.println("最小成绩为:" + getMin(arrResult));}// 输入成绩public static void getResult(double[] arrGrade) {Scanner sc = new Scanner(System.in);for (int i = 0; i < arrGrade.length; i++) {int flage = i + 1;System.out.println("请输入第" + flage + "个成绩:");double input = sc.nextDouble();arrGrade[i] = input;}System.out.println("所有成绩为:" + Arrays.toString(arrGrade));}// 求最大数public static double getMax(double[] reMax) {double max = reMax[0];for (int i = 0; i < reMax.length; i++) {if (reMax[i] > max) {max = reMax[i];}}System.out.println("最大成绩为:" + max);return max;}// 求最小数public static double getMin(double[] reMin) {double min = reMin[0];for (int i = 0; i < reMin.length; i++) {if (reMin[i] < min) {min = reMin[i];}}System.out.println("最小成绩为:" + min);return min;}// 求平均数public static double getAverage(double[] arrResult) {double avernum = 0;for (int i = 0; i < arrResult.length; i++) {avernum += arrResult[i] / arrResult.length;}System.out.println("平均成绩为:" + avernum);return avernum;}// 求方差public static double getVariance(double[] result) {double var = 0;double aver = getAverage(result);for (int i = 0; i < result.length; i++) {var += (result[i] - aver) * (result[i] - aver) / result.length;}System.out.println("方差为:" + var);return var;}// 成绩分段占比public static void getGrade(double[] result) {double excellent = 0;double good = 0;double pass = 0;double fail = 0;for (int i = 0; i < result.length; i++) {if (result[i] < 60) {fail++;} else if (result[i] <= 70) {pass++;} else if (result[i] <= 80) {good++;} else {excellent++;}}// 创建百分数对象NumberFormat f = NumberFormat.getPercentInstance();// 保留两位小数f.setMaximumFractionDigits(2);double e = excellent / result.length;double g = good / result.length;double p = pass / result.length;double fa = fail / result.length;System.out.println("优秀占比为:" + f.format(e));System.out.println("良好占比为:" + f.format(g));System.out.println("及格占比为:" + f.format(p));System.out.println("不及格占比为:" + f.format(fa));}
}