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
privado?//?EstudianteNo
privado?Cadena?stuName;?//?nombre
privado?float?mathScore;?/ /?
public?{}?//?Constructor predeterminado
public?Constructor de inicialización
this.stuNo?=?stuNo; p>
this.stuName?=?stuName;
///?Esto es lo que desea determinar si la puntuación es razonable durante la inicialización
if(mathScore?0 ?||? 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()? { p>
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; p>
}?{
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
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)); p>
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) ; p>
return;
}
System.out.print("El número de estudiantes debe ser mayor que 0,");
setN (verdadero);
}
}
}