Desenvolver um software na linguagem de programação Java que vai permitir efectuar a gestão e monitoramento de todos os estudantes infectados pela covid-19

package projectojava;

import java.util.Scanner;
import projectojava.modules.Estudante;
import projectojava.repositories.EstudanteRepositorio;

public class Start {
	
	public static Scanner teclado = new Scanner(System.in);
	public static int escolha;
	private static void getMenu() {
		System.out.println("1- Inserir Aluno");
		System.out.println("2- Consultar Aluno");
		System.out.println("3- Listar ALuno");
		System.out.println("4- Sair \n");

		System.out.println("Escolha uma opção de acordo ao Menu");
		escolha = teclado.nextInt();
		teclado.nextLine();
	}
	
	private static void inserirAluno() {
		System.out.println("Insira o nome do Aluno");
		String nome = teclado.nextLine();
		System.out.println("Insira a idade do Aluno");
		int idade = teclado.nextInt();
		System.out.println("Insira o número do Aluno");
		int numero = teclado.nextInt();
		
		Estudante novoAluno = new Estudante(nome,idade,numero);
		
		try {
			EstudanteRepositorio.inserirAluno(novoAluno);
		} 
		catch (Exception e) {
			System.out.println("Ocorreu algum erro ao inserir o aluno " + e.getMessage());
		} 
		
	}
	
	private static void consultar() {
		System.out.println("Insira um o numero do aluno que pretende consultar");
		int numeroPesquisa = teclado.nextInt();
		
		try {
			Estudante estudanteEncontrado = EstudanteRepositorio.consultarEstudante(numeroPesquisa);
			
			if(estudanteEncontrado != null) {
				System.out.println("Resultado da Pesquisa:");
				System.out.println("Número: " + estudanteEncontrado.getNumeroAluno() + "  " + "Nome: " + estudanteEncontrado.getNome() + "  " + "Idade: " + estudanteEncontrado.getIdade() + "\n\n");
			}else {
				System.out.println("Resultado da Pesquisa:");
				System.out.println("Lamentamos! Não foi encontrado algum Aluno com o número informado. \n\n");
			}
		} catch (Exception e) {
			System.out.println("Acorreu algum erro na consulta do estudante " + e.getMessage());
		}
		
	}
	private static void Listar() {
		try {
			EstudanteRepositorio.listaAluno();
		} catch (Exception e) {
			System.out.println("Ocorreu algum erro na listagem dos dados do ficheiro " + e.getMessage());
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		do {
			getMenu();
			switch (escolha) {
				case 1: 
				inserirAluno();
				break;
				case 2: 
				consultar();
				break;
				case 3:
				Listar();
				break;
				case 4:
				System.out.print("Até mais....");
				System.exit(0);
				break;
			default:
				System.out.println("A opção selecionada não existe. Por favor escolha uma opcao no menu.");
			}
		} while (true);
		
		
	}

}
public class Estudante {
    private String nome;
	private int idade;
	private int numeroAluno;
	
	public Estudante() {
		
	}
	
	public Estudante(String nome, int idade, int numeroAluno) {
		this.nome = nome;
		this.idade = idade;
		this.numeroAluno = numeroAluno;
	}
	
	public String getNome() {
		return this.nome;
	}
	
	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public int getIdade() {
		return this.idade;
	}
	public void setIdade(int idade) {
		this.idade = idade;
	}
	public int getNumeroAluno() {
		return this.numeroAluno;
	}

	public void setNumeroAluno(int numeroAluno) {
		this.numeroAluno = numeroAluno;
	}
	
	public int tamanho() {
		return this.nome.length();
	}
	
	
	
	public void imprimirDados() {
		System.out.println("Nome: " + this.nome );
		System.out.println("Idade: " + this.idade );
		System.out.println("Número do Aluno: " + this.numeroAluno );
	}
}
package projectojava.repositories;

/**
 *
 * @author Braulio Pedro
 */

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import projectojava.modules.Estudante;
public class EstudanteRepositorio {
    
    private static ArrayList<Estudante> todosEstudante= new ArrayList<Estudante>();

	final static String FICHEIRO_BASE_DADOS = "Cliente.cov";
	final static String SEPARADOR = ";";

	public static boolean existeEstudante(Estudante novoAluno) throws Exception {
		boolean existe = false;

		FileReader reader = new FileReader(FICHEIRO_BASE_DADOS);
		BufferedReader br = new BufferedReader(reader);

		while (br.ready()) {

			String[] propriedades = br.readLine().split(SEPARADOR);
			if (Integer.parseInt(propriedades[0]) == novoAluno.getNumeroAluno()) {
				existe = true;
				break;
			}
		}
		br.close();

		return existe;
	}

	public static void inserirAluno(Estudante novoAluno) throws Exception {

		//cria um ficheiro se não existe
		File ficheiro = new File(FICHEIRO_BASE_DADOS);
		ficheiro.createNewFile();

		if (!existeEstudante(novoAluno)) {
			StringBuilder str = new StringBuilder();
			str.append(novoAluno.getNumeroAluno());
			str.append(SEPARADOR);
			str.append(novoAluno.getNome());
			str.append(SEPARADOR);
			str.append(novoAluno.getIdade());

			FileWriter writer = new FileWriter(FICHEIRO_BASE_DADOS, true);
			BufferedWriter bw = new BufferedWriter(writer);
			String conteudo = str.toString();
			bw.write(conteudo);
			bw.newLine();
			bw.close();

			System.out.println("Aluno inserido com sucesso! \n\n");
		} else {
			System.out.println("Já existe um Aluno com este número de isncrição no sistema! \n\n");
		}

		/*
		 * boolean jaExiste = false;
		 * 
		 * for (Aluno aluno : todosAlunos) {
		 * 
		 * if(aluno.getNumeroAluno() == novoAluno.getNumeroAluno()) { jaExiste = true; }
		 * }
		 * 
		 * if(jaExiste) {
		 * System.out.println("Já existe um Aluno com o mesmo número! \n\n"); }else {
		 * todosAlunos.add(novoAluno);
		 * System.out.println("Aluno inserido com sucesso! \n\n"); }
		 */
	}

	public static Estudante consultarEstudante(int numero) throws IOException {
		Estudante estudanteaux = null;

		FileReader reader = new FileReader(FICHEIRO_BASE_DADOS);
		BufferedReader br = new BufferedReader(reader);

		while (br.ready()) {

			String[] propriedades = br.readLine().split(SEPARADOR);
			int numeroAux = Integer.parseInt(propriedades[0]);
			
			if (numeroAux == numero) {				
				String nome = propriedades[1];
				int idade = Integer.parseInt(propriedades[2]);
				estudanteaux = new Estudante(nome, idade, numeroAux);
				break;
			}
		}
		br.close();
		
		/*
		for (Aluno aluno : todosAlunos) {

			if (aluno.getNumeroAluno() == numero) {
				alunoaux = aluno;
			}
		}
		 */
		return estudanteaux;
	}

	public static void listaAluno() throws  IOException {
		
		FileReader reader = new FileReader(FICHEIRO_BASE_DADOS);
		BufferedReader br = new BufferedReader(reader);
		
		System.out.println("Lista Geral \n");
		
		while (br.ready()) {

			String[] propriedades = br.readLine().split(SEPARADOR);
			System.out.println("Número: " + propriedades[0] + "  " + "Nome: " + propriedades[1] + "  "
					+ "Idade: " + propriedades[2]);
		}
		
		br.close();
		System.out.println("Lista Geral \n");
		/*
		System.out.println("Lista geral \n");
		for (Aluno aluno : todosAlunos) {
			System.out.println("Número: " + aluno.getNumeroAluno() + "  " + "Nome: " + aluno.getNome() + "  "
					+ "Idade: " + aluno.getIdade());
		}
		*/
	}
    
}

Qual é a dúvida?