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;
} p>
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>
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() { p>
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 " ");
} p >
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 p >
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};