package com.itheima.day5homework;
import java.util.Random;
import java.util.Scanner;
public class Test6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random r = new Random();
Scanner sc = new Scanner(System.in);
System.out.println("该班级有多少组:");
int team = sc.nextInt();
System.out.println("每组学生的数量:");
int number = sc.nextInt();
int[][] arr = new int[team][number];
random(arr);
print(arr);
groupBujige(arr);
int bujige = bujige(arr);
System.out.println(bujige);
groupAverage(arr);
int average = average(arr,team,number);
System.out.println(average);
int max = maxAverage(arr);
System.out.println(max);
}
public static int[][] random(int[][] arr) {
Random r = new Random();
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = r.nextInt(101);
}
}
return arr;
}
public static void print(int[][] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
}
public static void groupBujige(int[][] arr) {
for (int i = 0; i < arr.length; i++) {
int count1 = 0;
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] < 60) {
count1++;
}
}
System.out.println("第" + (i + 1) + "组不及格人数为:" + count1);
}
}
public static int bujige(int[][] arr) {
int count = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
if (arr[i][j] < 60) {
count++;
}
}
}
return count;
}
public static void groupAverage(int[][] arr) {
int average = 0;
for (int i = 0; i < arr.length; i++) {
int sum = 0;
for (int j = 0; j < arr[i].length; j++) {
sum += arr[i][j];
average = sum / arr[i].length;
}
System.out.println("第" + (i + 1) + "平均分:" + average);
}
}
public static int average(int[][] arr,int number,int team) {
int average;
int sum = 0;
int i;
int j;
for (i = 0; i < arr.length; i++) {
for (j = 0; j < arr[i].length; j++) {
sum += arr[i][j];
}
}
average = sum / number/ team;
return average;
}
public static int maxAverage(int[][] arr) {
int average = 0;
int max =0;
for (int i = 0; i < arr.length; i++) {
int sum = 0;
for (int j = 0; j < arr[i].length; j++) {
sum += arr[i][j];
average = sum / arr[i].length;
}
if(max<average) {
max= average;
}
}
return max;
}
}
二维数组与方法结合的复杂情况:
该题目的需求是:
1.基础班考试要进行分组,键盘录入该班级总共多少组?以及每组的学生数量?
2.根据录入的组数及每组学员的数量创建二维数组
3.利用随机数产生0-100的成绩(包含0和100)
4.要求:
(1)打印该班级中每组的不及格人数
(2)打印该班级中每组的平均分
(3)打印组的最高平均分
(4)打印班级中的不及格人数
(5)打印班级平均分
思路:
键盘录入组数和学生数以二维数组的形式存储,再定义个产生随机成绩的方法random(arr),以随机成绩赋值给二维数组的值,构建打印数组的方法print(arr)显示出具体值,然后构建groupBujige(arr),bujige(arr),groupAverage(arr),average(arr,team,number), maxAverage(arr)等方法求出该班级中每组的不及格人数, 该班级中每组的平均分, 组的最高平均分, 班级中的不及格人数, 班级平均分.
难点:
该需求牵涉到二维数组,数组里面数据过多而且复杂,整个走的流程比较困难,哪怕想错一步,结果运行还是错误.
解决:
该需求需要自己静下心来仔细想,不错过每一个细节,脑海里要走过该需求在计算机走的一个流程,计算机走哪一步,我们相对应的敲哪一步代码,将方法的形参对应好具体的实参,一步一步将解决需求.
|
|