Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class SistemaAcademico {
 private static final String ARQUIVO_LOGIN = "data/Login.csv";
 private static final Scanner scanner = new Scanner(System.in);
 private static final List usuarios = new ArrayList();
 public static void main(String[] args) {
 carregarUsuarios();
 while (true) {
 System.out.println("\n==== Sistema Acadêmico ====");
 System.out.println("1. Login");
 System.out.println("2. Alterar Senha");
 System.out.println("0. Sair");
 System.out.print("Escolha uma opção: ");
 String opcao = scanner.nextLine();
 switch (opcao) {
 case "1":
 if (fazerLogin()) {
 menuPrincipal();
 }
 break;
 case "2":
 alterarSenha();
 break;
 case "0":
 System.out.println("Encerrando o sistema.");
 return;
 default:
 System.out.println("Opção inválida. Tente novamente.");
 }
 }
 }
 private static void carregarUsuarios() {
 usuarios.clear();
 try (BufferedReader br = new BufferedReader(new FileReader(ARQUIVO_LOGIN))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] dados = linha.split(",");
 if (dados.length == 2) {
 usuarios.add(new Usuario(dados[0], dados[1]));
 }
 }
 } catch (IOException e) {
 System.out.println("Erro ao carregar dados de login: " + e.getMessage());
 }
 }
 private static void salvarUsuarios() {
 try (BufferedWriter bw = new BufferedWriter(new FileWriter(ARQUIVO_LOGIN))) {
 for (Usuario usuario : usuarios) {
 bw.write(usuario.getLogin() + "," + usuario.getSenha());
 bw.newLine();
 }
 } catch (IOException e) {
 System.out.println("Erro ao salvar dados de login: " + e.getMessage());
 }
 }
 private static boolean fazerLogin() {
 System.out.print("Login: ");
 String login = scanner.nextLine().trim();
 System.out.print("Senha: ");
 String senha = scanner.nextLine().trim();
 for (Usuario usuario : usuarios) {
 if (usuario.getLogin().equals(login) && usuario.getSenha().equals(senha)) {
 System.out.println("Login realizado com sucesso.");
 return true;
 }
 }
 System.out.println("Login ou senha incorretos.");
 return false;
 }
 private static void alterarSenha() {
 System.out.print("Login: ");
 String login = scanner.nextLine().trim();
 System.out.print("Senha atual: ");
 String senhaAtual = scanner.nextLine().trim();
 for (Usuario usuario : usuarios) {
 if (usuario.getLogin().equals(login) && usuario.getSenha().equals(senhaAtual)) {
 System.out.print("Nova senha: ");
 String novaSenha = scanner.nextLine().trim();
 if (novaSenha.length() >= 4) {
 usuario.setSenha(novaSenha);
 salvarUsuarios();
 System.out.println("Senha alterada com sucesso.");
 } else {
 System.out.println("Senha muito curta. Mínimo de 4 caracteres.");
 }
 return;
 }
 }
 System.out.println("Login ou senha atual incorretos.");
 }
 private static void menuPrincipal() {
 while (true) {
 System.out.println("\n=== Menu Principal ===");
 System.out.println("1. Consultar aluno por ID");
 System.out.println("2. Listar alunos por curso");
 System.out.println("3. Matricular aluno em curso existente");
 System.out.println("4. Criar novo curso com novos alunos");
 System.out.println("0. Sair");
 System.out.print("Escolha: ");
 String opcao = scanner.nextLine();
 switch (opcao) {
 case "1":
 System.out.print("Digite o ID do aluno: ");
 try {
 int id = Integer.parseInt(scanner.nextLine());
 ConsultaAluno.consultarAlunoPorId(id);
 } catch (NumberFormatException e) {
 System.out.println("ID inválido. Deve ser numérico.");
 }
 break;
 case "2":
 ListarAlunosPorCurso.listar();
 break;
 case "3":
 MatricularAluno.matricularAluno();
 break;
 case "4":
 CriarCurso.criar();
 break;
 case "0":
 return;
 default:
 System.out.println("Opção inválida.");
 }
 }
 }
 
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class SistemaAcademico {
 private static final String ARQUIVO_LOGIN = "data/Login.csv";
 private static final Scanner scanner = new Scanner(System.in);
 private static final List usuarios = new ArrayList();
 public static void main(String[] args) {
 carregarUsuarios();
 while (true) {
 System.out.println("\n==== Sistema Acadêmico ====");
 System.out.println("1. Login");
 System.out.println("2. Alterar Senha");
 System.out.println("0. Sair");
 System.out.print("Escolha uma opção: ");
 String opcao = scanner.nextLine();
 switch (opcao) {
 case "1":
 if (fazerLogin()) {
 menuPrincipal();
 }
 break;
 case "2":
 alterarSenha();
 break;
 case "0":
 System.out.println("Encerrando o sistema.");
 return;
 default:
 System.out.println("Opção inválida. Tente novamente.");
 }
 }
 }
 private static void carregarUsuarios() {
 usuarios.clear();
 try (BufferedReader br = new BufferedReader(new FileReader(ARQUIVO_LOGIN))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] dados = linha.split(",");
 if (dados.length == 2) {
 usuarios.add(new Usuario(dados[0], dados[1]));
 }
 }
 } catch (IOException e) {
 System.out.println("Erro ao carregar dados de login: " + e.getMessage());
 }
 }
 private static void salvarUsuarios() {
 try (BufferedWriter bw = new BufferedWriter(new FileWriter(ARQUIVO_LOGIN))) {
 for (Usuario usuario : usuarios) {
 bw.write(usuario.getLogin() + "," + usuario.getSenha());
 bw.newLine();
 }
 } catch (IOException e) {
 System.out.println("Erro ao salvar dados de login: " + e.getMessage());
 }
 }
 private static boolean fazerLogin() {
 System.out.print("Login: ");
 String login = scanner.nextLine().trim();
 System.out.print("Senha: ");
 String senha = scanner.nextLine().trim();
 for (Usuario usuario : usuarios) {
 if (usuario.getLogin().equals(login)&& usuario.getSenha().equals(senha)) {
 System.out.println("Login realizado com sucesso.");
 return true;
 }
 }
 System.out.println("Login ou senha incorretos.");
 return false;
 }
 private static void alterarSenha() {
 System.out.print("Login: ");
 String login = scanner.nextLine().trim();
 System.out.print("Senha atual: ");
 String senhaAtual = scanner.nextLine().trim();
 for (Usuario usuario : usuarios) {
 if (usuario.getLogin().equals(login) && usuario.getSenha().equals(senhaAtual)) {
 System.out.print("Nova senha: ");
 String novaSenha = scanner.nextLine().trim();
 if (novaSenha.length() >= 4) {
 usuario.setSenha(novaSenha);
 salvarUsuarios();
 System.out.println("Senha alterada com sucesso.");
 } else {
 System.out.println("Senha muito curta. Mínimo de 4 caracteres.");
 }
 return;
 }
 }
 System.out.println("Login ou senha atual incorretos.");
 }
 private static void menuPrincipal() {
 while (true) {
 System.out.println("\n=== Menu Principal ===");
 System.out.println("1. Consultar aluno por ID");
 System.out.println("2. Listar alunos por curso");
 System.out.println("3. Matricular aluno em curso existente");
 System.out.println("4. Criar novo curso com novos alunos");
 System.out.println("0. Sair");
 System.out.print("Escolha: ");
 String opcao = scanner.nextLine();
 switch (opcao) {
 case "1":
 System.out.print("Digite o ID do aluno: ");
 try {
 int id = Integer.parseInt(scanner.nextLine());
 ConsultaAluno.consultarAlunoPorId(id);
 } catch (NumberFormatException e) {
 System.out.println("ID inválido. Deve ser numérico.");
 }
 break;
 case "2":
 ListarAlunosPorCurso.listar();
 break;
 case "3":
 MatricularAluno.matricularAluno();
 break;
 case "4":
 CriarCurso.criar();
 break;
 case "0":
 return;
 default:
 System.out.println("Opção inválida.");
 }
 }
 }
 
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class ConsultaAluno {
 //
 public static void consultarAlunoPorId(int idBusca) {
 String nomeAluno = buscarNomeAluno(idBusca); // buscarnomealuno é um metodo
 if (nomeAluno == null) {
 System.out.println("Aluno não encontrado.");
 return;
 }
 System.out.println("Nome do Aluno: " + nomeAluno);
 boolean encontrouCurso = false;
 File pasta = new File("data");
 File[] arquivos = pasta.listFiles(); 
 if (arquivos != null) {
 for (File arquivo : arquivos) { // : é um operador de referencia de metodo 
 String nomeArquivo = arquivo.getName();
 if (arquivo.isFile() && nomeArquivo.endsWith(".csv") && ehArquivoDeCurso(nomeArquivo)) {
 if (verificarAlunoNoCurso(arquivo, idBusca)) {
 encontrouCurso = true;
 }
 }
 }
 }
 if (!encontrouCurso) {
 System.out.println("Aluno não está matriculado em nenhum curso.");
 }
 buscarInformacoesCientificas(idBusca); //metodo 
}
private static boolean ehArquivoDeCurso(String nome) {
 return !nome.equalsIgnoreCase("Alunos.csv") &&
 !nome.equalsIgnoreCase("Login.csv") &&
 !nome.equalsIgnoreCase("Cursos.csv") &&
 !nome.equalsIgnoreCase("ic_art_ciet.csv");
}
 private static String buscarNomeAluno(int idBusca) {
 try (BufferedReader br = new BufferedReader(new FileReader("data/Alunos.csv"))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] partes = linha.split(","); // separa as colunas do arquivo por virgula e confirma se tem a quantidade necessaria de informaçoes
 if (partes.length >= 2) {
 int id = Integer.parseInt(partes[0]);
 if (id == idBusca) {
 return partes[1];
 }
 }
 }
 } catch (IOException e) {
 System.out.println("Erro ao ler Alunos.csv: " + e.getMessage());
 }
 return null;
 }
 private static boolean verificarAlunoNoCurso(File arquivoCurso, int idBusca) {
 try (BufferedReader br = new BufferedReader(new FileReader(arquivoCurso))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] partes = linha.split(",");
 if (partes.length >= 1) {
 int id = Integer.parseInt(partes[0].trim());
 if (id == idBusca) {
 double n1 = (partes.length > 1 && !partes[1].trim().isEmpty()) ? Double.parseDouble(partes[1].trim()) : 0.0;
 double n2 = (partes.length > 2 && !partes[2].trim().isEmpty()) ? Double.parseDouble(partes[2].trim()) : 0.0;
 double reposicao = (partes.length > 3 && !partes[3].trim().isEmpty()) ? Double.parseDouble(partes[3].trim()) : 0.0;
 double exame = (partes.length > 4 && !partes[4].trim().isEmpty()) ? Double.parseDouble(partes[4].trim()) : 0.0;
 double notaFinal = Math.max(n1, reposicao) + n2;
 String status = (notaFinal >= 7 || (notaFinal + exame) / 2 >= 5) ? "Aprovado" : "Reprovado";
 System.out.println("Curso: " + arquivoCurso.getName().replace(".csv", ""));
 System.out.printf("Notas: N1=%.1f, N2=%.1f, Reposição=%.1f, Exame=%.1f%n", n1, n2, reposicao, exame);
 System.out.printf("Média final: %.2f - Situação: %s%n", (notaFinal + exame) / 2, status);
 return true;
 }
 }
 }
 } catch (IOException e) {
 System.out.println("Erro ao ler curso: " + arquivoCurso.getName());
 } catch (NumberFormatException e) { //tratativa de erro ao conversor de string para numero
 System.out.println("Erro ao converter número no curso: " + arquivoCurso.getName());
 }
 return false;
}
 private static void buscarInformacoesCientificas(int idBusca) {
 try (BufferedReader br = new BufferedReader(new FileReader("data/ic_art_ciet.csv"))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] partes = linha.split(",");
 if (partes.length >= 3) {
 int id = Integer.parseInt(partes[0]);
 if (id == idBusca) {
 System.out.println("Iniciações Científicas: " + partes[1]);
 System.out.println("Artigos Científicos: " + partes[2]);
 return;
 }
 }
 }
 } catch (IOException e) {
 System.out.println("Erro ao ler ic_art_ciet.csv: " + e.getMessage());
 }
 }
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Scanner;
public class ListarAlunosPorCurso {
 public static void listar() {
 File pasta = new File("data/");
 List arquivosCurso = new ArrayList();
 System.out.println("\n=== Cursos Disponíveis ===");
 int index = 1;for (File arq : Objects.requireNonNull(pasta.listFiles())) {
 String nome = arq.getName();
 if (nome.endsWith(".csv") &&
 !nome.equals("Alunos.csv") &&
 !nome.equals("Login.csv") &&
 !nome.equals("cursos.csv")&&
 !nome.equals("ic_art_ciet.csv")) { // ignorar estes arquivos
 System.out.println(index + ". " + nome.replace(".csv", ""));
 arquivosCurso.add(nome);
 index++;
 }
 }
 if (arquivosCurso.isEmpty()) {
 System.out.println("Nenhum curso encontrado.");
 return;
 }
 Scanner scanner = new Scanner(System.in);
 System.out.print("Escolha o número do curso: ");
 int escolha;
 try {
 escolha = Integer.parseInt(scanner.nextLine());
 } catch (NumberFormatException e) {
 System.out.println("Entrada inválida.");
 return;
 }
 if (escolha arquivosCurso.size()) {
 System.out.println("Curso inválido.");
 return;
 }
 String arquivoSelecionado = arquivosCurso.get(escolha - 1);
 listarAlunosDoCurso(arquivoSelecionado);
 }
 private static void listarAlunosDoCurso(String nomeArquivoCurso) {
 System.out.println("\n--- Alunos matriculados em: " + nomeArquivoCurso.replace(".csv", "") + " ---");
 Map mapaAlunos = carregarAlunos(); // coloca em lista
 try (BufferedReader br = new BufferedReader(new FileReader("data/" + nomeArquivoCurso))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] dados = linha.split(",");
 int id = Integer.parseInt(dados[0]);
 String nome = mapaAlunos.getOrDefault(id, "Nome não encontrado"); // se o valor informado estiver associado a id este será retornado, senão sera retronardo o valor de default "nome nao encontrado"
 System.out.println("ID: " + id + " | Nome: " + nome);
 }
 } catch (IOException e) {
 System.out.println("Erro ao ler o arquivo do curso.");
 }
 }
 private static Map carregarAlunos() {
 Map mapa = new HashMap();
 try (BufferedReader br = new BufferedReader(new FileReader("data/Alunos.csv"))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] dados = linha.split(",");
 if (dados.length >= 2) {
 int id = Integer.parseInt(dados[0]);
 String nome = dados[1];
 mapa.put(id, nome);
 }
 }
 } catch (IOException e) {
 System.out.println("Erro ao carregar Alunos.csv");
 }
 return mapa;
 }
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MatricularAluno {
 private static final String ALUNOS_CSV = "data/Alunos.csv";
 private static final String CURSOS_CSV = "data/cursos.csv";
 public static void matricularAluno() {
 Scanner scanner = new Scanner(System.in);
 System.out.println("\n=== Matricular Aluno em Curso Existente ===");
 // Mostrar lista de cursos disponíveis
 List cursosDisponiveis = listarCursos();
 if (cursosDisponiveis.isEmpty()) {
 System.out.println("Nenhum curso encontrado.");
 return;
 }
 System.out.println("Cursos disponíveis:");
 for (int i = 0; i cursosDisponiveis.size()) throw new Exception(); //mostra uma mensagem de erro
 } catch (Exception e) {
 System.out.println("Opção inválida.");
 return;
 }
 String nomeCurso = cursosDisponiveis.get(escolhaCurso - 1);
 String arquivoCurso = nomeCurso + ".csv";
 // Perguntar se aluno já existe
 System.out.print("O aluno já está cadastrado? (s/n): ");
 String resp = scanner.nextLine().trim().toLowerCase();
 int idAluno;
 String nomeAluno;
 if (resp.equals("s")) {
 System.out.print("Digite o ID do aluno: ");
 try {
 idAluno = Integer.parseInt(scanner.nextLine());
 } catch (NumberFormatException e) {
 System.out.println("ID inválido.");
 return;
 }
 if (!alunoExiste(idAluno)) {
 System.out.println("Aluno não encontrado no sistema.");
 return;
 }
 nomeAluno = obterNomeAluno(idAluno);
 } else {
 idAluno = CadastroUtils.gerarIdUnico();
 System.out.println("ID gerado: " + idAluno);
 System.out.print("Digite o nome do aluno: ");
 nomeAluno = scanner.nextLine().trim();
 salvarAluno(idAluno, nomeAluno);
 }
 // Inserir notas 
 double n1 = 0.0, n2 = 0.0, rep = 0.0, ex = 0.0;
 System.out.print("Deseja inserir as notas agora? (s/n): ");
 if (scanner.nextLine().trim().toLowerCase().equals("s")) {
 n1 = solicitarNota(scanner, "Nota 1");
 n2 = solicitarNota(scanner, "Nota 2");
 rep = solicitarNota(scanner, "Reposição");
 ex = solicitarNota(scanner, "Exame");
 }
 // 4. Escrever no arquivo do curso
 try (BufferedWriter bw = new BufferedWriter(new FileWriter(arquivoCurso, true))) {
 bw.write(idAluno + "," + n1 + "," + n2 + "," + rep + "," + ex);
 bw.newLine();
 System.out.println("Aluno matriculado com sucesso no curso " + nomeCurso + ".");
 } catch (IOException e) {
 System.out.println("Erro ao escrever no arquivo do curso.");
 }
 }
 private static List listarCursos() {
 List cursos = new ArrayList();
 try (BufferedReader br = new BufferedReader(new FileReader(CURSOS_CSV))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] partes = linha.split(",");
 if (partes.length >= 1) {
 cursos.add(partes[0]);
 }
 }
 } catch (IOException e) {
 System.out.println("Erro ao ler cursos.");
 }
 return cursos;
 }
 private static boolean alunoExiste(int id) {
 try (BufferedReader br = new BufferedReader(new FileReader(ALUNOS_CSV))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] partes = linha.split(",");
 if (Integer.parseInt(partes[0]) == id) {
 return true;
 }
 }
 } catch (IOException | NumberFormatException e) {
 return false;
 }
 return false;
 }
 private static String obterNomeAluno(int id) {
 try (BufferedReader br = new BufferedReader(new FileReader(ALUNOS_CSV))) {
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] partes = linha.split(",");
 if (Integer.parseInt(partes[0]) == id) {
 return partes[1];
 }
 }
 } catch (IOException | NumberFormatException e) {
 return "";
 }
 return "";
 }
 private static void salvarAluno(int id, String nome) {
 try (BufferedWriter bw = new BufferedWriter(new FileWriter(ALUNOS_CSV, true))) {bw.write(id + "," + nome);
 bw.newLine();
 } catch (IOException e) {
 System.out.println("Erro ao salvar aluno.");
 }
 }
 private static double solicitarNota(Scanner scanner, String campo) {
 while (true) {
 System.out.print(campo + ": ");
 try {
 return Double.parseDouble(scanner.nextLine().trim());
 } catch (NumberFormatException e) {
 System.out.println("Nota inválida. Digite um número.");
 }
 }
 }
}
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.Scanner;
public class CriarCurso {
 private static final String CURSOS_CSV = "data/cursos.csv";
 private static final String ALUNOS_CSV = "data/Alunos.csv";
 public static void criar() { // metodo 
 Scanner scanner = new Scanner(System.in); // scanner das informaçõesa passadas pelo usuario no terminal 
 System.out.println("\n=== Criar Novo Curso ===");
 System.out.print("Nome do curso (sem espaços): ");
 String nomeCurso = scanner.nextLine().trim().replace(" ", "_");
 System.out.print("Nível (Ex: Graduação, Pós): ");
 String nivel = scanner.nextLine().trim();
 System.out.print("Ano de início: ");
 String ano = scanner.nextLine().trim();
 // Adiciona ao cursos.csv
 try (BufferedWriter bw = new BufferedWriter(new FileWriter(CURSOS_CSV, true))) {
 bw.write(nomeCurso + "," + nivel + "," + ano);
 bw.newLine();
 } catch (IOException e) {
 System.out.println("Erro ao salvar curso.");
 return;
 }
 // Cria arquivo do curso
 String nomeArquivoCurso = nomeCurso + ".csv";
 File cursoFile = new File(nomeArquivoCurso);
 try {
 if (!cursoFile.createNewFile()) {
 System.out.println("Arquivo do curso já existia, continuará sendo usado.");
 }
 } catch (IOException e) {
 System.out.println("Erro ao criar arquivo do curso.");
 return;
 }
 // 3. Cadastrar alunos
 System.out.print("Quantos alunos deseja cadastrar? ");
 int qtd;
 try {
 qtd = Integer.parseInt(scanner.nextLine()); //parseInt converte string em numero 
 } catch (NumberFormatException e) {
 System.out.println("Número inválido.");
 return;
 }
 for (int i = 0; i = 1 && Integer.parseInt(dados[0]) == id) {
 existe = true;
 break;
 }
 }
 } catch (IOException ignored) {}
 if (!existe) {
 try (BufferedWriter bw = new BufferedWriter(new FileWriter(ALUNOS_CSV, true))) {
 bw.write(id + "," + nome);
 bw.newLine();
 } catch (IOException e) {
 System.out.println("Erro ao salvar novo aluno.");
 }
 }
 }
 private static double solicitarNota(Scanner scanner, String campo) {
 while (true) {
 System.out.print(campo + ": ");
 try {
 return Double.parseDouble(scanner.nextLine().trim()); //parseDouble converte string em numero flutuante
 } catch (NumberFormatException e) {
 System.out.println("Valor inválido. Digite um número.");
 }
 }
 }
}
public class Aluno {
 private int id;
 private String nome;
 private String curso;
 private double nota1;
 private double nota2;
 private double reposicao;
 private double exame;
 private int artigos;
 private int iniciacoes;
 public Aluno(int id, String nome) { // construtor que chama na lista o id e nome
 this.id = id;
 this.nome = nome;
 }
 public double calcularMedia() { // metodo para calculo de média
 double mediaInicial = (nota1 + nota2) / 2.0;
 if (mediaInicial >= 7.0) {
 return mediaInicial;
 }
 // Considera a nota de reposição
 if (reposicao > 0) {
 double melhorNota = Math.max(nota1, nota2);
 mediaInicial = (melhorNota + reposicao) / 2.0;
 if (mediaInicial >= 7.0) return mediaInicial;
 }
 // Considera nota de exame
 return (mediaInicial + exame) / 2.0;
 }
 public String getSituacao() {
 return calcularMedia() >= 5.0 ? "Aprovado" : "Reprovado";
 }
 public int getId() {
 return id;
 }
 public String getNome() {
 return nome;
 }
 public String getCurso() {
 return curso;
 }
 public void setCurso(String curso) {
 this.curso = curso;
 }
 public double getNota1() {
 return nota1;
 }
 public void setNota1(double nota1) {
 this.nota1 = nota1;
 }
 public double getNota2() {
 return nota2;
 }
 public void setNota2(double nota2) {
 this.nota2 = nota2;
 }
 public double getReposicao() {
 return reposicao;
 }
 public void setReposicao(double reposicao) {
 this.reposicao = reposicao;
 }
 public double getExame() {
 return exame;
 }
 public void setExame(double exame) {
 this.exame = exame;
 }
 public int getArtigos() {
 return artigos;
 }
 public void setArtigos(int artigos) {
 this.artigos = artigos;
 }
 public int getIniciacoes() {
 return iniciacoes;
 }
 public void setIniciacoes(int iniciacoes) {
 this.iniciacoes = iniciacoes;
 }
}
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException; // leitura de arquivos
import java.util.HashSet;
import java.util.Random; // gera numeros aleatorios
import java.util.Set; 
public class CadastroUtils {
 private static final String ALUNOS_CSV = "data/Alunos.csv";
 public static int gerarIdUnico() {
 Random random = new Random();
 Set idsExistentes = carregarIdsExistentes();
 int novoId;
 do {
 novoId = 1000 + random.nextInt(9000); // Gera entre 1000 e 9999
 } while (idsExistentes.contains(novoId));
 return novoId;
 }
 private staticSet carregarIdsExistentes() {
 Set ids = new HashSet(); // eliminar duplicatas
 try (BufferedReader br = new BufferedReader(new FileReader(ALUNOS_CSV))) { 
 String linha;
 while ((linha = br.readLine()) != null) {
 String[] partes = linha.split(",");
 if (partes.length >= 1) {
 try {
 ids.add(Integer.parseInt(partes[0]));
 } catch (NumberFormatException ignored) {}
 }
 }
 } catch (IOException e) {
 System.out.println("Erro ao carregar IDs existentes: " + e.getMessage());
 }
 return ids;
 }
}

Mais conteúdos dessa disciplina