Red de conocimiento informático - Aprendizaje de programación - Se ha completado la redacción del siguiente programa JAVA según lo requerido, categoría de estudiante

Se ha completado la redacción del siguiente programa JAVA según lo requerido, categoría de estudiante

Le damos un código relativamente completo

Clase de estudiante: paquete?com.baidu.students;

importación?java.util.List;

import?java.util.Scanner;

public?class?Student?implements?Comparable?{? //Hereda la interfaz java.lang.Comparable existente, que puede admitir la lista ordenando

privado?//?EstudianteNo

privado?Cadena?stuName;?//?nombre

privado?float?mathScore;?/ /?

public?{}?//?Constructor predeterminado

public?Constructor de inicialización

this.stuNo?=?stuNo;

this.stuName?=?stuName;

///?Esto es lo que desea determinar si la puntuación es razonable durante la inicialización

if(mathScore??100)?{

throw?new?ScoreException("La puntuación no puede ser menor que 0 ni mayor que 100");

}

if(mathScore?%?0.5f?! =?0)?{

throw new?ScoreException("La puntuación debe ser un número entero o un múltiplo de 0,5");

p>

}

this.mathScore?=?mathScore;

}

public?void?disylay() ?{? puntuación de salida

///?Salida en formato de tabla

System.out.println(String.format("%s\t%s\t%.1f",?stuNo, ? stuName,?mathScore));

}

public?String?{

return?stuNo;

}

public?void?setStuNo(String?stuNo)?{

this.stuNo?=?stuNo;

}

public?String? getStuName ()?{

return?stuName;

}

public?void?setStuName(String?stuName)?{

this .stuName?=?stuName;

}

//Utilice el método Getter para obtener la puntuación directamente

public?float?getMathScore()? {

return?mathScore;

}

/// También es muy sencillo utilizar el método Setter para modificar la puntuación

> public?void?setMathScore(float? mathScore)?{

this.mathScore?=?mathScore;

}

/**

?*?Crear objeto de estudiante

?*?@param?scanner

?* ?@return

?*/

público?{

String?stuNo;

String?stuName;

float?mathScore;

System.out.print("Ingrese el número de estudiante:");

stuNo?=?scanner.next();

System.out.print("Ingrese un nombre: ");

stuName? Obtenga la puntuación de matemáticas. Si la puntuación no es razonable, vuelva a ingresarla e ingrese un bucle infinito.

mathScore? =?inputScore(escáner);

¿probar?{

Si la puntuación del estudiante tiene significado, salga del bucle infinito

Student?=?new?Student( Student?=?new?Student(?stuNo,?stuName,?mathScore);

descanso;

}?{

System.out.println(e.getMessage());

}

} ? while(true);

return?student;

}

privado?{

System.out.print("Por favor ingrese una puntuación: ") ;

float?mathScore;

mathScore?=?scanner.nextFloat();

return?mathScore;

}< / p>

/**

?*?Calcular puntuación media

?*?@param?estudiantes

?@param? estudiantes

?*?@return

?*/

flotante estático público getAvg(List?estudiantes)?{

if(null?==?estudiantes?||?estudiantes.isEmpty())?{

return?0;

}

int?totalScore ?=?0;

for(Estudiantes?s?:?estudiantes)?{

totalScore?(totalScore?/? (doble)?estudiantes. size());

}

@Override

public?int?compareTo(Estudiante?o)?{

if( null?==?o )?{

return?1;

}

if(this.mathScore?

retorno?{

retorno?1;

}

retorno?0;

}

}

}

Clase de estudiante universitario: paquete?com.baidu

.estudiantes;

importar?java.text..DateFormat;

importar?java.text.ParseException;

importar?java.text.SimpleDateFormat;

importar?java.util.Date;

importar?java.util.Scanner;

¿clase?pública?CollegeStudent?extends?Student?{

privado?Fecha?fechadenacimiento;

privado?Cadena?sexo;

privado?DateFormat?outFormat?=?new?SimpleDateFormat("aaaa-mm-dd") ;?//?Formato de fecha de salida

private?static?DateFormat?inFormat?=?new?SimpleDateFormat("aaaammdd");?//?Formato de fecha de entrada

privado? CollegeStudent()?{

super();

}

privado?CollegeStudent(String?stuNo,?String?stuName,?float?mathScore)? throws?ScoreException?{

super(stuNo,?stuName,?mathScore);

Calendar?cal?=?Calendar.getInstance();

int año?=?cal.get(Calendar.YEAR)?-?20;?//?La fecha de nacimiento predeterminada es hace 20 años

cal.set(Calendar.YEAR,?year);

p>

this.birthDate?=?cal.getTime();

this.sex?=?"Desconocido";

}

public ?Fecha?getBirthDate()?{

return?birthDate;

}

public?void?setBirthDate(Fecha?birthDate)?{

this.birthDate?=?birthDate;

}

public?String?getSex()?{

return?sex;

}

public?void?setSex(String?sex)?{

this.sex?=?sex;

}

@Override

public?void?disylay()?{

System.out.println(String.format("%s\t%s\t %.1f \t%s\t%s",?getStuNo(),

getStuName(),?getMathScore(),

outFormat. format(this.birthDate), ?this.sex));

}

/**

?*?Crear objeto de estudiante

?*?@param ?escáner

?*?@return

?*/

p

ublic?{? //Los métodos estáticos no son heredables

String?stuNo;

String?stuName;

float?mathScore;

System.out.print("Ingrese un número de estudiante:");

stuNo?=?scanner next();

System.out.print("Por favor enter name:");

stuName? Obtiene la puntuación de matemáticas y la vuelve a ingresar cuando la puntuación no es razonable, ingresando a un bucle infinito

mathScore?=?inputScore(scanner) ;

¿intentar?{

Si la puntuación del estudiante es razonable, salga del bucle infinito

estudiante?=?new?CollegeStudent(stuNo, stuName, mathScore);

descanso;

}?{

System. out.println(e.getMessage ());

// mathScore?=?inputScore(scanner);

}

}? while(true) ;

System.out .print("Ingrese una fecha de nacimiento (por ejemplo, 20020101:");

break;

}?catch?g. 20020101):");

String?birth?=?scanner.next();

Fecha?birthDate?=?null;

¿intentar?{

nacimiento?=?null;

}

if(null! =?fechanacimiento)?{

estudiante.setFechaNacimiento(fechanacimiento) );

}

System.out.print("Ingrese un género (0: masculino, 1 u otro: femenino):");

int?gender?=?scanner .nextInt( );

String?sex?=?null;

if(0?==?gender)?{

sexo?=?" Hombre";

} else?Mujer";

}

if(null?! =?sexo)?{

estudiante .setSex(sex);

}

}

//p>

//El tipo de retorno es Estudiante, que es una transición ascendente

return?student;

}

privado?{

System.out.print("Ingrese una puntuación: ") ;

float?mathScore;

mathScore?=?scanner.nextFloat();

return?mathScore;

}< / p>

}

Clase de excepción:paquete?com.baidu.students;

público?{

super()

;

}

public?ScoreException(String?arg0)?{

super(arg0);

}

Clase de prueba: paquete?com.baidu.students;

importar?java.util.ArrayList;

importar?java.util.Collections;

import?java.util.List;

import?java.util.Scanner;

/** *?Clase de prueba*/

público?/ /?Número de estudiantes

¿estático?//?Matriz de estudiantes, use Lista para ordenar fácilmente

¿privado?{

escáner?=?nuevo?Escáner (System. in);?//?Inicializar la entrada del teclado

setN(false);

inputStudents();

showStudents();

}

///? Recorrer la información del estudiante

¿privado?{

for(int?i?=?0;?i?< ?n; ?i?++)?{

System.out.println(String.format("Ingrese la información del %désimo estudiante: ",?i?+?1));

Student?s?=?null;

//Crear alternativamente objetos Student y CollegeStudent

if(i?%?2?==?0) ?{

s?=?Student.create(escáner);

}?else?{

s?=?CollegeStudent.create(escáner);

}

if(null! =?s)?{

estudiantes.add(s);

}

System.out.println("--------------------------------- ------ ------------");

}

Colecciones.sort(estudiantes);?//?Ordenar en forma ascendente orden, es decir, las puntuaciones son de menor a mayor

Collections.reverse(students);?

Collections.reverse(students);?Invertir la lista, es decir, establecer la clasificación en orden descendente

}

p>

///?Información del estudiante de salida

showStudents() privado estático vacío?{

System.out.println("/r\nLa información del estudiante es la siguiente:\Número de estudiante\tNombre\tCalificaciones\tFecha de nacimiento\t\t\género");

for(¿Estudiante?s ?:?estudiantes)?{

s.disylay();

}

System.out.println("/r\n puntuación promedio: " ?+?Student.getAvg(estudiantes));

}

/**

?*?veces

El número de estudiantes ingresados ​​previamente

?*?@param? se utiliza para determinar si se debe volver a ingresar para mostrar mensajes diferentes

?*/

privado. .static.void.setN(boolean.retry)?{

if(retry)?{

System.out.print("Vuelva a ingresar el número de estudiantes:" );

} else?{? //Determinar la validez de n

System.out.println("El número de estudiantes se ha establecido en"? +?n) ;

return;

}

System.out.print("El número de estudiantes debe ser mayor que 0,");

setN (verdadero);

}

}

}