Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Map.Entry;
- import java.util.Scanner;
- public class Program {
- public static int numeroAlumnos, numeroAsignaturas;
- public static Alumnos[] alumnos;
- public static Asignaturas[] asignaturas;
- public static void main(String[] args) {
- entrada();
- salida();
- }
- public static void entrada() {
- Scanner consola = new Scanner(System.in);
- numeroAlumnos = Integer.parseInt(consola.next());
- numeroAsignaturas = Integer.parseInt(consola.next());
- alumnos = new Alumnos[numeroAlumnos + 1];
- for(int x = 1; x <= numeroAlumnos; x++) {
- alumnos[x] = new Alumnos(x);
- }
- asignaturas = new Asignaturas[numeroAsignaturas + 1];
- for(int x = 1; x <= numeroAsignaturas; x++) {
- asignaturas[x] = new Asignaturas(x);
- }
- Alumnos alumno = null;
- Asignaturas asignatura = null;
- int numeroAlumno = 0, numeroAsignatura = 0;
- float notaAlumno = 0;
- for(int x = 0; x < numeroAlumnos * numeroAsignaturas; x++) {
- numeroAlumno = consola.nextInt();
- numeroAsignatura = consola.nextInt();
- notaAlumno = consola.nextFloat();
- alumno = cogerAlumno(numeroAlumno);
- alumno.asignarNota(numeroAsignatura, notaAlumno);
- asignatura = cogerAsignatura(numeroAsignatura);
- asignatura.ponerNota(notaAlumno);
- }
- consola.close();
- }
- public static void salida() {
- System.out.println("Estudiantes");
- Alumnos alumno = null;
- for(int numeroAlumno = 1; numeroAlumno <= numeroAlumnos; numeroAlumno++) {
- alumno = cogerAlumno(numeroAlumno);
- System.out.print(alumno.numeroAlumno + " " + notaMedia(alumno.cogerNotas()));
- for(float nota : alumno.cogerNotas())
- System.out.print(" " + nota);
- System.out.println();
- }
- Asignaturas asignatura = null;
- System.out.println("Asignaturas");
- for(int numeroAsignatura = 1; numeroAsignatura <= numeroAsignaturas; numeroAsignatura++) {
- asignatura = cogerAsignatura(numeroAsignatura);
- System.out.println(numeroAsignatura + " " + notaMedia(asignatura.cogerNotas()));
- }
- }
- public static float notaMedia(float... notas) {
- float notaMedia = 0;
- for(float nota : notas)
- notaMedia += nota;
- notaMedia /= notas.length;
- return notaMedia;
- }
- public static Alumnos cogerAlumno(int numeroAlumno) {
- for(int x = 1; x <= alumnos.length; x++) {
- if(alumnos[x].numeroAlumno == numeroAlumno)
- return alumnos[x];
- }
- return null;
- }
- public static Asignaturas cogerAsignatura(int numeroAsignatura) {
- for(int x = 1; x <= asignaturas.length; x++) {
- if(asignaturas[x].numeroAsignatura == numeroAsignatura)
- return asignaturas[x];
- }
- return null;
- }
- public static class Alumnos {
- public int numeroAlumno;
- public Map<Integer, Float> notas;
- public Alumnos(int numeroAlumno) {
- this.numeroAlumno = numeroAlumno;
- this.notas = new HashMap<Integer, Float>(Program.numeroAsignaturas);
- }
- public void asignarNota(int numeroAsignatura, float notaAlumno) {
- this.notas.put(numeroAsignatura, notaAlumno);
- }
- public float[] cogerNotas() {
- float[] notas = new float[this.notas.size()];
- int count = 0;
- for(Entry<Integer, Float> nota : this.notas.entrySet()) {
- notas[count++] = nota.getValue();
- }
- return notas;
- }
- }
- public static class Asignaturas {
- public int numeroAsignatura;
- public List<Float> notasAlumnos;
- public Asignaturas(int numeroAsignatura) {
- this.numeroAsignatura = numeroAsignatura;
- this.notasAlumnos = new ArrayList<Float>(Program.numeroAlumnos);
- }
- public void ponerNota(float notaAlumno) {
- this.notasAlumnos.add(notaAlumno);
- }
- public float[] cogerNotas() {
- float[] notas = new float[this.notasAlumnos.size()];
- int count = 0;
- for(Float nota : notasAlumnos) {
- notas[count++] = nota;
- }
- return notas;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement