Red de conocimiento informático - Aprendizaje de programación - Por favor ayuda con la programación orientada a objetos de Java

Por favor ayuda con la programación orientada a objetos de Java

Una*** tres clases: ScoreArray.java, StudentScoreArray.java y Test1.java, específicamente:

clase pública ScoreArray {

private int [] puntuaciones;

private int scoreCount;

public int[] getScores() {

devolver puntuaciones;

}

public int getScoreCount() {

return scoreCount;

}

//Constructor

public ScoreArray( int[] puntuaciones) {

this.scores = puntuaciones;

for (int puntuación: puntuaciones) {

if (puntuación gt; = 0 amp; amp; puntuación lt; = 100) {

this.scoreCount;

}

}

}

// Encuentra el valor máximo

public int getMax() {

int[] puntuaciones = this.scores;

int temp;

for (int i = 0; i lt; puntuaciones.longitud; i ) {

for (int j = 0; j lt; puntuaciones.longitud - 1 - i; j ) {

if (puntuaciones[j] gt; puntuaciones[j 1]) {

temp = puntuaciones[j];

puntuaciones[j] = puntuaciones[j 1] ;

puntuaciones[j 1] = temp;

}

}

}

devolver puntuaciones[ puntuaciones. length - 1];

}

//Encontrar el valor mínimo

public int getMin() {

int[] puntuaciones = this.scores;

int temp;

for (int i = 0; i lt; puntuaciones.length; i ) {

for (int j = 0; j lt; puntuaciones.longitud - 1 - i; j ) {

if (puntuaciones[j] gt; puntuaciones[j 1]) {

temp = puntuaciones [ j];

puntuaciones[j] = puntuaciones[j 1];

puntuaciones[j 1] = temporal;

}

}

}

puntuaciones de retorno[0];

}

//Calcular el promedio

public double getAvg() {

int suma = 0;

for (int puntuación: this.scores) {

>

suma = puntuación;

}

devuelve nuevo BigDecimal(suma).divide(

nuevo BigDecimal(this.scores.length),

2, BigDecimal.ROUND_HALF_UP).doubleValue();

}

//Ordenar

public void sort() {

p>

int temp;

for (int i = 0; i lt; this.scores.length; i ) {

for (int j = 0; j lt ; this.scores.length - 1 - i; j ) {

if (this.scores[j] gt; this.scores[j 1]) {

temp = este .scores[j];

this.scores[j] = este.scores[j 1];

this.scores[j 1] = temp;

}

}

}

}

//Clase de explicación estática

public static void explicar () {

System.out.println("Esta clase [ScoreArray] implementa funciones de matriz: encontrar el valor máximo [getMax()], encontrar el promedio [getAvg()] y ordenar [sort()] Método");

}

}

clase pública StudentScoreArray extiende ScoreArray {

public StudentScoreArray(int [] puntuaciones) {

super(scores);

}

//Estadísticas

estadística pública nula() {

super .sort();

Maplt; Entero, Integergt; mapa = nuevo LinkedHashMaplt (); )) {

if (map.containsKey(i)) {

map.put(i, map.get(i) 1);

} else {

map.put(i, 1);

}

}

map.forEach((k, v) -gt; System.out .println("El número de personas con una puntuación de [" k "] es: [" v ​​​​"]")); >//Clase de descripción estática

public static void explicar() {

System.out.println("Esta clase [StudentScoreArray] implementa funciones de matriz: encontrar el valor máximo [getMax( )], encontrar el promedio [getAvg()] y ordenar [sort()] y el método de estadísticas de distribución [statistic()]");

}

}

clase pública

Prueba1 {

public static void main(String[] args) {

int[] puntuaciones = {59, 60, 82, 58, 71, 99, 0, 59, 65 };

ScoreArray scoreArray = new ScoreArray(puntuaciones);

ScoreArray.explain();

System.out.print("Contenido de la matriz: [" );

for (int i : scoreArray.getScores()) {

System.out.print(i " ");

}

System.out.println("]");

System.out.println("Número de valores válidos: " scoreArray.getScoreCount());

System .out.println("Valor máximo: " ScoreArray.getMax());

System.out.println("Valor mínimo: " ScoreArray.getMin()); .out.println("Promedio: " scoreArray.getAvg());

scoreArray.sort();

System.out.print("Contenido de la matriz después de ordenar: [ " );

for (int i: scoreArray.getScores()) {

System.out.print(i " ");

}

System.out.println("]");

System.out.println("");

System.out.println("=== = ====Hermosa línea divisoria========");

System.out.println("");

StudentScoreArray StudentScoreArray = nuevo StudentScoreArray (puntuaciones) ;

StudentScoreArray.explain();

System.out.print("Contenido de la matriz: [");

for (int i: StudentScoreArray .getScores ()) {

System.out.print(i ",");

}

System.out.println("]") ;

System.out.println("Número de valores válidos: " StudentScoreArray.getScoreCount());

System.out.println("Valor máximo: " StudentScoreArray.getMax( ))

System.out.println("Valor mínimo: " StudentScoreArray.getMin());

System.out.println("Valor promedio: " StudentScoreArray.getAvg( )) ;

p>

studentScoreArray.sort();

System.out.print("Arreglar el contenido después de ordenar: [");

for (int i: StudentScoreArray.getScores( )) {

System.out.print(i " ");

}

System.out.println("]");

System.out.println("Estadísticas de distribución de puntuaciones:");

studentScoreArray.statistic();

}

}

Me gustaría hacer una nota especial sobre la clase StudentScoreArray:

Al contar distribuciones, se utiliza Map es una estructura de datos clave-valor y tiene una característica que he tomado. Ventaja de: solo puede existir una clave en un mapa al mismo tiempo, por lo que uso la puntuación como clave y la cantidad como valor. Al atravesar la matriz de puntuación, si esta clave (puntuación) se encuentra por primera vez, su valor (número) se establece en 1. Si no es la primera vez que se encuentra, establezca su valor (cantidad) en el valor 1 (cantidad 1). Además, debe recorrer este mapa para imprimir los resultados estadísticos. Utilizo expresiones Lambda que solo son compatibles con Java 8, por lo que debe usar jdk1.8 o superior para ejecutar este programa. Si cree que esto es inapropiado, puede buscar en línea métodos de recorrido de mapas.

Resultado de la ejecución:

Oh, el código está abarrotado de nuevo. Baidu se queda sin palabras al saber esto. Tomaré una captura de pantalla de algunos lugares clave y se la mostraré:

ScoreArray.java

Variables miembro y constructores

Olvidé mencionar que el número de puntuaciones válidas (0~100) también se cuenta durante la construcción

p>

Encontrar el valor máximo

Obtener el valor máximo después de ordenar por burbujas

Encontrar el valor mínimo

Obtener el valor mínimo después de ordenar por burbujas

Calcular el promedio

Utilice la clase BigDecimal de Java para resolver el problema de precisión de la división, redondeando y reteniendo dos decimales

Ordenar

Es burbujeante Ordenar de pequeño a grande

Descripción de texto estático

StudentScoreArray.java:

Heredado

Estadísticas de distribución de puntuaciones

Presta atención al mapa que dije

Texto de descripción estática

Test1.java:

La matriz utilizada por los casos de prueba: int[] puntuaciones = {59 , 60, 82, 58, 71, 99, 0, 59, 65};