import java.io.*;
import java.util.*;
// Classe base
abstract class Pessoa {
private String nome;
private int idade;
public Pessoa(String nome, int idade) {
this.nome = nome;
this.idade = idade;
}
public String getNome() {
return nome;
}
public int getIdade() {
return idade;
}
public abstract String getDados();
}
// Subclasse
class Aluno extends Pessoa {
private String curso;
private double[] notas;
public Aluno(String nome, int idade, String curso, int numDisciplinas) {
super(nome, idade);
this.curso = curso;
this.notas = new double[numDisciplinas];
}
public void setNota(int index, double nota) {
this.notas[index] = nota;
}
public double[] getNotas() {
return notas;
}
@Override
public String getDados() {
StringBuilder dados = new StringBuilder(getNome() + "," + getIdade() + ",Aluno," + curso);
for (double nota : notas) {
dados.append(",").append(nota);
}
return dados.toString();
}
}
public class SistemaArquivo {
private static final String ARQUIVO = "dados.txt";
public static int menu() {
Scanner scanner = new Scanner(System.in);
System.out.println("\n*** Menu ***");
System.out.println("1. Criar/Abrir arquivo");
System.out.println("2. Inserir Dados");
System.out.println("3. Excluir Dados");
System.out.println("4. Pesquisar");
System.out.println("5. Exibir Lista");
System.out.println("6. Sair");
System.out.print("Escolha uma opção: ");
return scanner.nextInt();
}
private static void criarAbrirArquivo() {
try {
File arquivo = new File(ARQUIVO);
if (arquivo.createNewFile()) {
System.out.println("Arquivo criado com sucesso!");
} else {
System.out.println("Arquivo já existe.");
}
} catch (IOException e) {
System.out.println("Erro ao criar/abrir o arquivo.");
}
}
private static void inserirDados(Scanner scanner) {
System.out.print("Digite o nome: ");
scanner.nextLine();
String nome = scanner.nextLine();
System.out.print("Digite a idade: ");
int idade = scanner.nextInt();
System.out.print("Digite o curso: ");
scanner.nextLine();
String curso = scanner.nextLine();
System.out.print("Digite o número de disciplinas: ");
int numDisciplinas = scanner.nextInt();
Aluno aluno = new Aluno(nome, idade, curso, numDisciplinas);
for (int i = 0; i < numDisciplinas; i++) {
System.out.print("Digite a nota da disciplina " + (i + 1) + ": ");
aluno.setNota(i, scanner.nextDouble());
}
try (PrintWriter out = new PrintWriter(new FileWriter(ARQUIVO, true))) {
out.println(aluno.getDados());
System.out.println("Dados inseridos com sucesso!");
} catch (IOException e) {
System.out.println("Erro ao inserir dados.");
}
}
private static void excluirDados(Scanner scanner) {
System.out.print("Digite o nome do aluno a ser excluído: ");
scanner.nextLine();
String nome = scanner.nextLine();
List<String> linhas = new ArrayList<>();
boolean encontrado = false;
try (BufferedReader br = new BufferedReader(new FileReader(ARQUIVO))) {
String linha;
while ((linha = br.readLine()) != null) {
if (!linha.startsWith(nome + ",")) {
linhas.add(linha);
} else {
encontrado = true;
}
}
} catch (IOException e) {
System.out.println("Erro ao ler o arquivo.");
return;
}
if (encontrado) {
try (PrintWriter out = new PrintWriter(new FileWriter(ARQUIVO))) {
for (String linha : linhas) {
out.println(linha);
}
System.out.println("Aluno excluído com sucesso!");
} catch (IOException e) {
System.out.println("Erro ao excluir os dados.");
}
} else {
System.out.println("Aluno não encontrado.");
}
}
private static void pesquisarDados(Scanner scanner) {
System.out.print("Digite o nome do aluno a ser pesquisado: ");
scanner.nextLine();
String nome = scanner.nextLine();
boolean encontrado = false;
try (BufferedReader br = new BufferedReader(new FileReader(ARQUIVO))) {
String linha;
while ((linha = br.readLine()) != null) {
if (linha.startsWith(nome + ",")) {
System.out.println("Registro encontrado: " + linha);
encontrado = true;
break;
}
}
} catch (IOException e) {
System.out.println("Erro ao ler o arquivo.");
}
if (!encontrado) {
System.out.println("Aluno não encontrado.");
}
}
private static void exibirLista() {
System.out.println("\nLista de Registros:");
try (BufferedReader br = new BufferedReader(new FileReader(ARQUIVO))) {
String linha;
while ((linha = br.readLine()) != null) {
System.out.println(linha);
}
} catch (IOException e) {
System.out.println("Erro ao ler o arquivo.");
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int opcao;
do {
opcao = menu();
switch (opcao) {
case 1 -> criarAbrirArquivo();
case 2 -> inserirDados(scanner);
case 3 -> excluirDados(scanner);
case 4 -> pesquisarDados(scanner);
case 5 -> exibirLista();
case 6 -> System.out.println("Saindo...");
default -> System.out.println("Opção inválida!");
}
} while (opcao != 6);
scanner.close();
}
}
To embed this program on your website, copy the following code and paste it into your website's HTML: