AYUDA CON ESTE PROBLEMA

import java.io.*;

import java.util.*;

import java.io.IOException;

import java.io.Writer;

public class AlumnoGe {

    static void mostrar (ArrayList alumno){
        Alumno articulo=new Alumno();
        for(int x=0;x<alumno.size();x++){
            articulo=(Alumno) alumno.get(x);
            System.out.println("\nDni "+articulo.getdni()+" \nNombre: "+articulo.getnombre()+"\nApellidos: "+articulo.getapellidos()+ " \nFecha Nacimiento: "+articulo.getfechanacimiento()+" \nGrado Superior de "+articulo.getcurso());
        }
    }

    static int existe (int dni, ArrayList AlumnoGeneral){
        int x=-1;
        Alumno articulo=new Alumno();
        for(int i=0 ; i<AlumnoGeneral.size();i++){
            articulo=(Alumno) AlumnoGeneral.get(i);
            if (articulo.getdni()==dni){
                x=i;
                break;
            }
        }
        return x;
    }

static void nuevoAlumno(ArrayList AlumnoGeneral){
        System.out.println("Inserte el dni del alumno.");
        int dni=leer.enteroAlumno();

        if (existe(dni, AlumnoGeneral)==-1){
            System.out.println("Inserte la fecha de nacimiento");
            Teclado t= new Teclado();
            int fechanacimiento= t.leer();

            System.out.println("Inserte Nombre");
            String nombre=leer.dato();
            System.out.println("Inserte apellidos");
            String apellidos=leer.dato();

            System.out.println("Inserte Curso a matricularse");
            String curso=leer.dato();

            Alumno nuevo=new Alumno(dni,fechanacimiento,nombre,apellidos,curso);
            AlumnoGeneral.add(nuevo);
            System.out.println("Alumno añadido correctamente");

        }else{
            System.out.println("El dni ya existe. ");
        }
    }

    static void registros (ArrayList AlumnoGeneral){
    if( !AlumnoGeneral.isEmpty()){
        System.out.println("¿Como desea ordenar el listado?");
        System.out.println("1. ordenados por nombre.");
        System.out.println("2. ordenados por dni.");
        int menu= leer.entero();
        switch(menu){
            case 1:
                Collections.sort(AlumnoGeneral);
                mostrar(AlumnoGeneral);
                break;
            case 2:
                Collections.sort(AlumnoGeneral, new OrdenaCod());
                mostrar(AlumnoGeneral);
                break;
            default:
                System.out.println("No has seleccionado una opcion del menu.");
        }

        }else{
            System.out.println("No hay registros.");
        }

        }

static void guardar(ArrayList AlumnoGeneral){
   

  // String rutaFichero="C:\\registros.txt";

 Me echais una mano para guardar aqui todos los datos ,o bien en un archivo todo o en un archivo para
cada alumno

    }
    public static void main(String[] args) {

        ArrayList <Alumno> AlumnoGeneral=new ArrayList();

        boolean sw=true;
        while(sw){
            int menu=leer.menu();
            switch(menu){
                case 1: nuevoAlumno(AlumnoGeneral);break;
                case 2: registros(AlumnoGeneral);break;
                case 3: guardar(AlumnoGeneral);break;
                default: sw=false;break;
            }
        }
    }

}

¿Me ayudais con restricciones de fechas de nacimiento y restricciones para que no se pueda
matricular la misma persona en dos cursos?

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Sr. Negativo

Una duda sobre tu código

Espero no te moleste esta pregunta, ¿Escribiste tu este código? según yo si eres capaz de escribir este código creo que también eres capaz de hallar la solución por ti mismo.

Por lo que veo sabes programar, crear funciones , manejas arreglos, menus, etc.

Puedes usar sentencias de control if..else if..else para las restricciones de fechas de nacimiento

Suerte!

Imagen de Payan

ya lo tengo casi

     static void Fichero(){

       alumnos a1=new alumnos();
       String fichero[]={};

       try {
            FileWriter fw = new FileWriter("C:\\Users\\Laura\\Desktop\\musica\\datos.txt");
            BufferedWriter bw=new BufferedWriter(fw);
                for (int i=0;i<fichero.length;i++){
                    bw.write(fichero[i]);
                    bw.newLine();
                    }
                bw.flush();
                bw.close();
                fw.close();

            } catch (IOException ex) {
                System.out.println("Se ha producido un error");
            }
   }

He creado este metodo, me crea el fichero pero no me guarda los datos.Me podeis ayudar donde tengoel error

Imagen de neko069

Pues a simple vista parece

Pues a simple vista parece que creas el fichero, pero no te escribe datos porque tu variable fichero hace referencia a un arreglo de String ... pero está vacío ... ¬¬U

Llena ese arreglo con cadenas que digan cualquier cosa y corre tu aplicación... debería funcionar..suerte!!