From c6e685929f6c6a7c05c6492ec1625851706774df Mon Sep 17 00:00:00 2001 From: EnricoCorrea Date: Sun, 13 Jul 2025 12:48:58 -0300 Subject: [PATCH 1/4] remaking the project on a new branch --- avaliacoes/pets/src/main/java/MyApp.java | 10 +- .../controller/VeterinarioController.java | 5 + .../src/main/java/dao/VeterinarioDao.java | 130 ++++++++++++++++++ .../main/java/{pets => model}/Cachorro.java | 32 ++--- .../main/java/{pets => model}/Calopsita.java | 32 ++--- .../src/main/java/{pets => model}/Gato.java | 32 ++--- .../src/main/java/{pets => model}/Pessoa.java | 62 ++++----- .../src/main/java/{pets => model}/Pet.java | 84 +++++------ .../main/java/{pets => model}/Prontuario.java | 120 ++++++++-------- .../src/main/java/{pets => model}/Tutor.java | 66 ++++----- .../java/{pets => model}/Veterinario.java | 54 ++++---- 11 files changed, 381 insertions(+), 246 deletions(-) create mode 100644 avaliacoes/pets/src/main/java/controller/VeterinarioController.java create mode 100644 avaliacoes/pets/src/main/java/dao/VeterinarioDao.java rename avaliacoes/pets/src/main/java/{pets => model}/Cachorro.java (94%) rename avaliacoes/pets/src/main/java/{pets => model}/Calopsita.java (94%) rename avaliacoes/pets/src/main/java/{pets => model}/Gato.java (93%) rename avaliacoes/pets/src/main/java/{pets => model}/Pessoa.java (94%) rename avaliacoes/pets/src/main/java/{pets => model}/Pet.java (95%) rename avaliacoes/pets/src/main/java/{pets => model}/Prontuario.java (95%) rename avaliacoes/pets/src/main/java/{pets => model}/Tutor.java (96%) rename avaliacoes/pets/src/main/java/{pets => model}/Veterinario.java (94%) diff --git a/avaliacoes/pets/src/main/java/MyApp.java b/avaliacoes/pets/src/main/java/MyApp.java index 60e8828..8e463e4 100644 --- a/avaliacoes/pets/src/main/java/MyApp.java +++ b/avaliacoes/pets/src/main/java/MyApp.java @@ -1,8 +1,8 @@ -import pets.Cachorro; -import pets.Calopsita; -import pets.Prontuario; -import pets.Tutor; -import pets.Veterinario; +import model.Cachorro; +import model.Calopsita; +import model.Prontuario; +import model.Tutor; +import model.Veterinario; public class MyApp { diff --git a/avaliacoes/pets/src/main/java/controller/VeterinarioController.java b/avaliacoes/pets/src/main/java/controller/VeterinarioController.java new file mode 100644 index 0000000..df086bf --- /dev/null +++ b/avaliacoes/pets/src/main/java/controller/VeterinarioController.java @@ -0,0 +1,5 @@ +package controller; + +public class VeterinarioController { + +} diff --git a/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java b/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java new file mode 100644 index 0000000..0c056b9 --- /dev/null +++ b/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java @@ -0,0 +1,130 @@ +package dao; + +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 model.Veterinario; +import java.util.ArrayList; +import java.util.List; + + +public class VeterinarioDao{ + + private static final String arq = "veterinario.txt"; + + public void adicionarVeterinarios(Veterinario vet){ + try { + BufferedWriter bw = new BufferedWriter(new FileWriter(arq, true)); + String texto = vet.getNome() + "|" + vet.getApelido() + "|" + vet.getCrv(); + bw.write(texto); + bw.newLine(); + bw.close(); + + } catch (IOException e) { + System.out.println("Erro ao adicionar veterinário: " + e.getMessage()); + } + + } + public List listarVeterinarios(){ + List veterinarios = new ArrayList<>(); + try{ + File file = new File(arq); + if (!file.exists()){ + return veterinarios; + } + BufferedReader br = new BufferedReader(new FileReader(arq)); + String linha; + while ((linha = br.readLine()) != null){ + String[] dados = linha.split("\\|"); + if(dados.length == 3){ + Veterinario v = new Veterinario(dados[0],dados[1],dados[2]); + veterinarios.add(v); + } + } + br.close(); + }catch(IOException e){ + System.out.println("Erro ao listar veterinários : " + e.getMessage()); + } + return veterinarios; + } + + public Veterinario buscarPorNome(String nome){ + List vets = listarVeterinarios(); + for(Veterinario vet : vets){ + if(vet.getNome().equals(nome)){ + return vet; + } + } + return null; + } + + public Veterinario buscarPorApelido(String apelido){ + List vets = listarVeterinarios(); + for(Veterinario vet : vets){ + if(vet.getApelido().equalsIgnoreCase(apelido)){ + return vet; + } + } + return null; + } + + public Veterinario buscarPorCrv(String Crv){ + List vets = listarVeterinarios(); + for(Veterinario vet : vets){ + if(vet.getCrv().equalsIgnoreCase(Crv)){ + return vet; + } + } + return null; + } + + public Boolean removerPorNome(String nome){ + List vets = listarVeterinarios(); + + Veterinario encontrou = null; + + for(Veterinario vet : vets){ + if(vet.getNome().equalsIgnoreCase(nome)){ + encontrou = vet; + break; + } + } + if(encontrou!=null){ + vets.remove(encontrou); + salvarListaNoArquivo(vets); + return true; + } + return false; + } + + public Boolean removerPorApelido(String apelido){ + List vets = listarVeterinarios(); + + Veterinario encontrou = null; + + for(Veterinario vet : vets){ + if(vet.getApelido().equalsIgnoreCase(apelido)){ + + } + } + } + + + + private void salvarListaNoArquivo(List veterinarios){ + try{ + BufferedWriter bw = new BufferedWriter(new FileWriter(arq)); + for(Veterinario v : veterinarios){ + bw.write(v.getNome() + "|" + v.getApelido()); + bw.newLine(); + } + bw.close(); + }catch(IOException e){ + System.out.println("Erro ao salvar Lista: " + e.getMessage()); + } + } + +} \ No newline at end of file diff --git a/avaliacoes/pets/src/main/java/pets/Cachorro.java b/avaliacoes/pets/src/main/java/model/Cachorro.java similarity index 94% rename from avaliacoes/pets/src/main/java/pets/Cachorro.java rename to avaliacoes/pets/src/main/java/model/Cachorro.java index e086a15..36faf33 100644 --- a/avaliacoes/pets/src/main/java/pets/Cachorro.java +++ b/avaliacoes/pets/src/main/java/model/Cachorro.java @@ -1,17 +1,17 @@ -package pets; - -public class Cachorro extends Pet { // herdeiro do PET - - public Cachorro(String nome, String nascimento) { // construtor do cachorro - super(nome, nascimento); - } - - @Override // sobrescreve o getinfo do pet - public String getInfo() { // getinfo do cachorro - return "Cachorro: " + getNome() + ", Nascimento: " + getNascimento(); - } - - public void latir() { // método do latido do carrocho - System.out.println("O cachorro " + getNome() + ": AUAU!"); - } +package model; + +public class Cachorro extends Pet { // herdeiro do PET + + public Cachorro(String nome, String nascimento) { // construtor do cachorro + super(nome, nascimento); + } + + @Override // sobrescreve o getinfo do pet + public String getInfo() { // getinfo do cachorro + return "Cachorro: " + getNome() + ", Nascimento: " + getNascimento(); + } + + public void latir() { // método do latido do carrocho + System.out.println("O cachorro " + getNome() + ": AUAU!"); + } } \ No newline at end of file diff --git a/avaliacoes/pets/src/main/java/pets/Calopsita.java b/avaliacoes/pets/src/main/java/model/Calopsita.java similarity index 94% rename from avaliacoes/pets/src/main/java/pets/Calopsita.java rename to avaliacoes/pets/src/main/java/model/Calopsita.java index b459023..b16c90e 100644 --- a/avaliacoes/pets/src/main/java/pets/Calopsita.java +++ b/avaliacoes/pets/src/main/java/model/Calopsita.java @@ -1,17 +1,17 @@ -package pets; - -public class Calopsita extends Pet { // herdeiro do pet - - public Calopsita(String nome, String nascimento) { // construtor da calopsita - super(nome, nascimento); - } - - @Override // sobrescreve o getinfo do PET - public String getInfo() { // getinfo da calopsita - return "Calopsita: " + getNome() + ", Nascimento: " + getNascimento(); - } - - public void piar() { // método do pio da caloptsita - System.out.println("A calopsita " + getNome() + ": PIUPIU!"); - } +package model; + +public class Calopsita extends Pet { // herdeiro do pet + + public Calopsita(String nome, String nascimento) { // construtor da calopsita + super(nome, nascimento); + } + + @Override // sobrescreve o getinfo do PET + public String getInfo() { // getinfo da calopsita + return "Calopsita: " + getNome() + ", Nascimento: " + getNascimento(); + } + + public void piar() { // método do pio da caloptsita + System.out.println("A calopsita " + getNome() + ": PIUPIU!"); + } } \ No newline at end of file diff --git a/avaliacoes/pets/src/main/java/pets/Gato.java b/avaliacoes/pets/src/main/java/model/Gato.java similarity index 93% rename from avaliacoes/pets/src/main/java/pets/Gato.java rename to avaliacoes/pets/src/main/java/model/Gato.java index 0fa7dfb..92b59ae 100644 --- a/avaliacoes/pets/src/main/java/pets/Gato.java +++ b/avaliacoes/pets/src/main/java/model/Gato.java @@ -1,17 +1,17 @@ -package pets; - -public class Gato extends Pet { // herdeiro do PET - - public Gato(String nome, String nascimento) { // construtor do gato - super(nome, nascimento); - } - - @Override // sobrescreve o getinfo do PET - public String getInfo() { // getinfo do gato - return "Gato: " + getNome() + ", Nascimento: " + getNascimento(); - } - - public void miar() { // método do mio do gato - System.out.println("O gato " + getNome() + ": MIAUMIAU!"); - } +package model; + +public class Gato extends Pet { // herdeiro do PET + + public Gato(String nome, String nascimento) { // construtor do gato + super(nome, nascimento); + } + + @Override // sobrescreve o getinfo do PET + public String getInfo() { // getinfo do gato + return "Gato: " + getNome() + ", Nascimento: " + getNascimento(); + } + + public void miar() { // método do mio do gato + System.out.println("O gato " + getNome() + ": MIAUMIAU!"); + } } \ No newline at end of file diff --git a/avaliacoes/pets/src/main/java/pets/Pessoa.java b/avaliacoes/pets/src/main/java/model/Pessoa.java similarity index 94% rename from avaliacoes/pets/src/main/java/pets/Pessoa.java rename to avaliacoes/pets/src/main/java/model/Pessoa.java index 3316f36..182964c 100644 --- a/avaliacoes/pets/src/main/java/pets/Pessoa.java +++ b/avaliacoes/pets/src/main/java/model/Pessoa.java @@ -1,32 +1,32 @@ -package pets; - -public class Pessoa { - - private String nome; // instancia o apelido - private String apelido; // instancia o apelido - - public Pessoa(String nome, String apelido) { - this.nome = nome; // construtor da pessoa - this.apelido = apelido; - } - - public String getNome() { - return nome; // getter do nome da pessoa - } - - public void setNome(String nome) { - this.nome = nome; // setter do nome da pessoa - } - - public String getApelido() { // getter do apelido da pessoa - return apelido; - } - - public void setApelido(String apelido) { // setter do apelido da pessoa - this.apelido = apelido; - } - - public String getInfo() { // Getinfo da pessoa - return "Nome: " + nome + ", Apelido: " + apelido; - } +package model; + +public class Pessoa { + + private String nome; // instancia o apelido + private String apelido; // instancia o apelido + + public Pessoa(String nome, String apelido) { + this.nome = nome; // construtor da pessoa + this.apelido = apelido; + } + + public String getNome() { + return nome; // getter do nome da pessoa + } + + public void setNome(String nome) { + this.nome = nome; // setter do nome da pessoa + } + + public String getApelido() { // getter do apelido da pessoa + return apelido; + } + + public void setApelido(String apelido) { // setter do apelido da pessoa + this.apelido = apelido; + } + + public String getInfo() { // Getinfo da pessoa + return "Nome: " + nome + ", Apelido: " + apelido; + } } \ No newline at end of file diff --git a/avaliacoes/pets/src/main/java/pets/Pet.java b/avaliacoes/pets/src/main/java/model/Pet.java similarity index 95% rename from avaliacoes/pets/src/main/java/pets/Pet.java rename to avaliacoes/pets/src/main/java/model/Pet.java index 8e3c508..5fb6132 100644 --- a/avaliacoes/pets/src/main/java/pets/Pet.java +++ b/avaliacoes/pets/src/main/java/model/Pet.java @@ -1,43 +1,43 @@ -package pets; - -import java.util.ArrayList; - -public abstract class Pet { - - private String nome; // declara o nome - private String nascimento; // declara o nascimento - private ArrayList prontuarios = new ArrayList<>(); // ArrayList contendo a lista de prontuarios de um - // pet - - public Pet(String nome, String nascimento) { // construtor do PET - this.nome = nome; - this.nascimento = nascimento; - } - - public String getNome() { // Getter do nome - return nome; - } - - public void setNome(String nome) { // setter do nome - this.nome = nome; - } - - public String getNascimento() { // getter do nascimento - return nascimento; - } - - public void setNascimento(String nascimento) { // setter do nascimento - this.nascimento = nascimento; - } - - public ArrayList getProntuarios() { - return prontuarios; - } - - public void setProntuarios(ArrayList prontuarios) { - this.prontuarios = prontuarios; - } - - protected abstract String getInfo(); // getinfo criado para poder ser usado no prontuário - +package model; + +import java.util.ArrayList; + +public abstract class Pet { + + private String nome; // declara o nome + private String nascimento; // declara o nascimento + private ArrayList prontuarios = new ArrayList<>(); // ArrayList contendo a lista de prontuarios de um + // pet + + public Pet(String nome, String nascimento) { // construtor do PET + this.nome = nome; + this.nascimento = nascimento; + } + + public String getNome() { // Getter do nome + return nome; + } + + public void setNome(String nome) { // setter do nome + this.nome = nome; + } + + public String getNascimento() { // getter do nascimento + return nascimento; + } + + public void setNascimento(String nascimento) { // setter do nascimento + this.nascimento = nascimento; + } + + public ArrayList getProntuarios() { + return prontuarios; + } + + public void setProntuarios(ArrayList prontuarios) { + this.prontuarios = prontuarios; + } + + protected abstract String getInfo(); // getinfo criado para poder ser usado no prontuário + } \ No newline at end of file diff --git a/avaliacoes/pets/src/main/java/pets/Prontuario.java b/avaliacoes/pets/src/main/java/model/Prontuario.java similarity index 95% rename from avaliacoes/pets/src/main/java/pets/Prontuario.java rename to avaliacoes/pets/src/main/java/model/Prontuario.java index f767d39..2a9da8c 100644 --- a/avaliacoes/pets/src/main/java/pets/Prontuario.java +++ b/avaliacoes/pets/src/main/java/model/Prontuario.java @@ -1,61 +1,61 @@ -package pets; - -public class Prontuario { - - private String data; // declaração das variaveis - private String comentario; - private Veterinario veterinario; - private Pet pet; - - public Prontuario() { - - } - - public String getData() { - return data; - } - - public void setData(String data) { - this.data = data; - } - - public String getComentario() { - return comentario; // GETTERS E SETTERS - } - - public void setComentario(String comentario) { - this.comentario = comentario; - } - - public Veterinario getVeterinario() { - return veterinario; - } - - public void setVeterinario(Veterinario veterinario) { - this.veterinario = veterinario; - } - - public Pet getPet() { - return pet; - } - - public void setPet(Pet pet) { - this.pet = pet; - } - - public Prontuario(String data, String comentario) { // construtor do prontuario - this.data = data; - this.comentario = comentario; - } - - public void realizarConsulta(Veterinario veterinario, Pet pet) { // método para fazer a consulta - this.veterinario = veterinario; - this.pet = pet; - System.out.println("Consulta realizada para " + pet.getNome() + " por " + veterinario.getNome()); - } - - public String getInfo() { // getinfo da prontuario - return "Data: " + data + ", Comentario: " + comentario + "\nVeterinário: " + veterinario.getInfo() + "\nPet: " - + pet.getInfo(); - } +package model; + +public class Prontuario { + + private String data; // declaração das variaveis + private String comentario; + private Veterinario veterinario; + private Pet pet; + + public Prontuario() { + + } + + public String getData() { + return data; + } + + public void setData(String data) { + this.data = data; + } + + public String getComentario() { + return comentario; // GETTERS E SETTERS + } + + public void setComentario(String comentario) { + this.comentario = comentario; + } + + public Veterinario getVeterinario() { + return veterinario; + } + + public void setVeterinario(Veterinario veterinario) { + this.veterinario = veterinario; + } + + public Pet getPet() { + return pet; + } + + public void setPet(Pet pet) { + this.pet = pet; + } + + public Prontuario(String data, String comentario) { // construtor do prontuario + this.data = data; + this.comentario = comentario; + } + + public void realizarConsulta(Veterinario veterinario, Pet pet) { // método para fazer a consulta + this.veterinario = veterinario; + this.pet = pet; + System.out.println("Consulta realizada para " + pet.getNome() + " por " + veterinario.getNome()); + } + + public String getInfo() { // getinfo da prontuario + return "Data: " + data + ", Comentario: " + comentario + "\nVeterinário: " + veterinario.getInfo() + "\nPet: " + + pet.getInfo(); + } } \ No newline at end of file diff --git a/avaliacoes/pets/src/main/java/pets/Tutor.java b/avaliacoes/pets/src/main/java/model/Tutor.java similarity index 96% rename from avaliacoes/pets/src/main/java/pets/Tutor.java rename to avaliacoes/pets/src/main/java/model/Tutor.java index d00ad23..81f1e88 100644 --- a/avaliacoes/pets/src/main/java/pets/Tutor.java +++ b/avaliacoes/pets/src/main/java/model/Tutor.java @@ -1,34 +1,34 @@ -package pets; - -import java.util.ArrayList; -import java.util.List; //importações para o arraylist funcionar - -public class Tutor extends Pessoa { // é herdeiro da classe pessoa - - private List pets; // declara a Lista de pets - - public Tutor(String nome, String apelido) { // construtor da classe tutor - super(nome, apelido); - this.pets = new ArrayList<>(); - } - - public void adotar(Pet pet) { // método para adotar o pet, adcionando o pet á lista - pets.add(pet); // do tutor. Funciona como o setter da Lista pets - } - - public List getPets() { // Getter da lista pets - return pets; - } - - @Override // dá um override para sobrecarregar o getInfo da pessoa - public String getInfo() { - String info = super.getInfo() + "\nPets: "; // armazena as informacoes numa variavel info, para depois imprimir - // // ela - for (Pet pet : pets) { // um loop para armazenar todos os pets que o tutor venha a ter, para imprimir - // depois - info += pet.getInfo() + "; "; - } - return info; // imprime a variavel info - } - +package model; + +import java.util.ArrayList; +import java.util.List; //importações para o arraylist funcionar + +public class Tutor extends Pessoa { // é herdeiro da classe pessoa + + private List pets; // declara a Lista de pets + + public Tutor(String nome, String apelido) { // construtor da classe tutor + super(nome, apelido); + this.pets = new ArrayList<>(); + } + + public void adotar(Pet pet) { // método para adotar o pet, adcionando o pet á lista + pets.add(pet); // do tutor. Funciona como o setter da Lista pets + } + + public List getPets() { // Getter da lista pets + return pets; + } + + @Override // dá um override para sobrecarregar o getInfo da pessoa + public String getInfo() { + String info = super.getInfo() + "\nPets: "; // armazena as informacoes numa variavel info, para depois imprimir + // // ela + for (Pet pet : pets) { // um loop para armazenar todos os pets que o tutor venha a ter, para imprimir + // depois + info += pet.getInfo() + "; "; + } + return info; // imprime a variavel info + } + } \ No newline at end of file diff --git a/avaliacoes/pets/src/main/java/pets/Veterinario.java b/avaliacoes/pets/src/main/java/model/Veterinario.java similarity index 94% rename from avaliacoes/pets/src/main/java/pets/Veterinario.java rename to avaliacoes/pets/src/main/java/model/Veterinario.java index 51536c2..6d916a6 100644 --- a/avaliacoes/pets/src/main/java/pets/Veterinario.java +++ b/avaliacoes/pets/src/main/java/model/Veterinario.java @@ -1,28 +1,28 @@ -package pets; - -public class Veterinario extends Pessoa { // herdeiro da classe pessoa - - private String crv; // declara o crv - - public Veterinario(String nome, String apelido) { - super(nome, apelido); - } - - public Veterinario(String nome, String apelido, String crv) { - super(nome, apelido); - this.crv = crv; - } - - public String getCrv() { - return crv; // getter do crv - } - - public void setCrv(String crv) { - this.crv = crv; // setter do crv - } - - @Override // possui o override para sobrescrever o getinfo da classe Pessoa - public String getInfo() { // getinfo do veterinario - return super.getInfo() + ", CRV: " + crv; - } +package model; + +public class Veterinario extends Pessoa { // herdeiro da classe pessoa + + private String crv; // declara o crv + + public Veterinario(String nome, String apelido) { + super(nome, apelido); + } + + public Veterinario(String nome, String apelido, String crv) { + super(nome, apelido); + this.crv = crv; + } + + public String getCrv() { + return crv; // getter do crv + } + + public void setCrv(String crv) { + this.crv = crv; // setter do crv + } + + @Override // possui o override para sobrescrever o getinfo da classe Pessoa + public String getInfo() { // getinfo do veterinario + return super.getInfo() + ", CRV: " + crv; + } } \ No newline at end of file From 1d7a14ccc2b8a53417bcaa45a96e48eaa59a06f5 Mon Sep 17 00:00:00 2001 From: EnricoCorrea Date: Sun, 13 Jul 2025 14:59:37 -0300 Subject: [PATCH 2/4] adding class vet and file logic --- avaliacoes/pets/src/main/java/MainMvc.java | 30 +++++ .../controller/VeterinarioController.java | 81 +++++++++++- .../src/main/java/dao/VeterinarioDao.java | 27 +++- .../src/main/java/view/VeterinarioScan.java | 115 ++++++++++++++++++ 4 files changed, 250 insertions(+), 3 deletions(-) create mode 100644 avaliacoes/pets/src/main/java/MainMvc.java create mode 100644 avaliacoes/pets/src/main/java/view/VeterinarioScan.java diff --git a/avaliacoes/pets/src/main/java/MainMvc.java b/avaliacoes/pets/src/main/java/MainMvc.java new file mode 100644 index 0000000..f09d13e --- /dev/null +++ b/avaliacoes/pets/src/main/java/MainMvc.java @@ -0,0 +1,30 @@ +import java.util.Scanner; +import view.VeterinarioScan; + +public class MainMvc { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + int opcao; + + do { + System.out.println("\n===== MENU PRINCIPAL ====="); + System.out.println("\n[1] - Menu Veterinário\n[0] - Sair\nEscolha:"); + opcao = scanner.nextInt(); + scanner.nextLine(); + + switch (opcao) { + case 1: + VeterinarioScan vetView = new VeterinarioScan(); + vetView.menuVet(); // chama menu do veterinário + + case 0: + System.out.println("Encerrando..."); + default: + System.out.println("Opção inválida."); + } + + } while (opcao != 0); + + scanner.close(); + } +} \ No newline at end of file diff --git a/avaliacoes/pets/src/main/java/controller/VeterinarioController.java b/avaliacoes/pets/src/main/java/controller/VeterinarioController.java index df086bf..249fa8d 100644 --- a/avaliacoes/pets/src/main/java/controller/VeterinarioController.java +++ b/avaliacoes/pets/src/main/java/controller/VeterinarioController.java @@ -1,5 +1,84 @@ package controller; +import java.util.List; + +import dao.VeterinarioDao; +import model.Veterinario; + public class VeterinarioController { - + + VeterinarioDao vetDao = new VeterinarioDao(); + + public void criarVeterinario(String nome, String apelido, String crv) { + Veterinario v = new Veterinario(nome, apelido, crv); + vetDao.adicionarVeterinarios(v); + System.out.println("Veterinário adicionado com sucesso."); + } + + public void buscarNome(String nome) { + Veterinario v = vetDao.buscarPorNome(nome); + if (v != null) { + System.out.println("Veterinário encontrado:"); + System.out.println("Nome: " + v.getNome()); + System.out.println("Apelido: " + v.getApelido()); + System.out.println("CRMV: " + v.getCrv()); + } else { + System.out.println("Veterinário não encontrado."); + } + } + + public void buscarApelido(String apelido) { + Veterinario v = vetDao.buscarPorApelido(apelido); + if (v != null) { + System.out.println("Veterinário encontrado:"); + System.out.println("Nome: " + v.getNome()); + System.out.println("Apelido: " + v.getApelido()); + System.out.println("CRMV: " + v.getCrv()); + } else { + System.out.println("Veterinário não encontrado."); + } + } + + public void buscarCrv(String crv) { + Veterinario v = vetDao.buscarPorCrv(crv); + if (v != null) { + System.out.println("Veterinário encontrado:"); + System.out.println("Nome: " + v.getNome()); + System.out.println("Apelido: " + v.getApelido()); + System.out.println("CRMV: " + v.getCrv()); + } else { + System.out.println("Veterinário não encontrado."); + } + } + + public void removerNome(String nome) { + if (vetDao.removerPorNome(nome)) { + System.out.println("Veterinário removido com sucesso."); + } else { + System.out.println("Veterinário não encontrado."); + } + } + + public void removerApelido(String apelido) { + if (vetDao.removerPorApelido(apelido)) { + System.out.println("Veterinário removido com sucesso."); + } else { + System.out.println("Veterinário não encontrado."); + } + } + + public void removerCrv(String crv) { + if (vetDao.removerPorCrv(crv)) { + System.out.println("Veterinário removido com sucesso."); + } else { + System.out.println("Veterinário não encontrado."); + } + } + public void listarVeterinario(){ + List vets = vetDao.listarVeterinarios(); + for(Veterinario vet : vets){ + System.out.println("\nNome: " + vet.getNome() + "\nApelido: " + vet.getApelido() + "\nCrv: " + vet.getCrv()); + } + + } } diff --git a/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java b/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java index 0c056b9..cc7cf32 100644 --- a/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java +++ b/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java @@ -107,18 +107,41 @@ public Boolean removerPorApelido(String apelido){ for(Veterinario vet : vets){ if(vet.getApelido().equalsIgnoreCase(apelido)){ - + encontrou = vet; + break; } } + if(encontrou!=null){ + vets.remove(encontrou); + salvarListaNoArquivo(vets); + return true; + } + return false; } + public Boolean removerPorCrv(String crv){ + List vets = listarVeterinarios(); + Veterinario encontrou = null; + for(Veterinario vet : vets){ + if(vet.getCrv().equalsIgnoreCase(crv)){ + encontrou = vet; + break; + } + } + if(encontrou!=null){ + vets.remove(encontrou); + salvarListaNoArquivo(vets); + return true; + } + return false; + } private void salvarListaNoArquivo(List veterinarios){ try{ BufferedWriter bw = new BufferedWriter(new FileWriter(arq)); for(Veterinario v : veterinarios){ - bw.write(v.getNome() + "|" + v.getApelido()); + bw.write(v.getNome() + "|" + v.getApelido() + "|" + v.getCrv()); bw.newLine(); } bw.close(); diff --git a/avaliacoes/pets/src/main/java/view/VeterinarioScan.java b/avaliacoes/pets/src/main/java/view/VeterinarioScan.java new file mode 100644 index 0000000..56b6459 --- /dev/null +++ b/avaliacoes/pets/src/main/java/view/VeterinarioScan.java @@ -0,0 +1,115 @@ +package view; + +import java.util.Scanner; +import controller.VeterinarioController; + +public class VeterinarioScan { + Scanner scan = new Scanner(System.in); + int index = 1; + VeterinarioController controller = new VeterinarioController(); + + public void menuVet() { + while (index != 0) { + System.out.println("\nMENU DO VETERINÁRIO:\n[1] - Criar Veterinário\n[2] - Ler Veterinário\n[3] - Remover Veterinário\n[4] - Listar Veterinários\n[0] - Voltar"); + index = scan.nextInt(); + scan.nextLine(); + + switch (index) { + case 1: + criarVeterinario(); + break; + + case 2: + lerVeterinario(); + break; + + case 3: + removerVeterinario(); + break; + + case 4: + controller.listarVeterinario(); + break; + + case 0: + System.out.println("Voltando..."); + break; + + default: + System.out.println("Opção inválida."); + } + } + } + + private void criarVeterinario() { + System.out.println("Nome:"); + String nomevet = scan.nextLine(); + + System.out.println("Apelido:"); + String apelidovet = scan.nextLine(); + + System.out.println("CRMV:"); + String crvvet = scan.nextLine(); + + controller.criarVeterinario(nomevet, apelidovet, crvvet); + } + + private void lerVeterinario() { + System.out.println("\nBuscar por:\n[1] Nome\n[2] Apelido\n[3] CRMV"); + int index2 = scan.nextInt(); + scan.nextLine(); + + switch (index2) { + case 1: + System.out.println("Nome: "); + String lernomevet = scan.nextLine(); + controller.buscarNome(lernomevet); + break; + + case 2: + System.out.println("Apelido: "); + String lerapelidovet = scan.nextLine(); + controller.buscarApelido(lerapelidovet); + break; + + case 3: + System.out.println("CRMV: "); + String lercrvvet = scan.nextLine(); + controller.buscarCrv(lercrvvet); + break; + + default: + System.out.println("Opção inválida."); + } + } + + private void removerVeterinario() { + System.out.println("\nRemover por:\n [1] Nome\n[2] Apelido\n[3] CRMV"); + int index3 = scan.nextInt(); + scan.nextLine(); + + switch (index3) { + case 1: + System.out.println("Nome: "); + String removernomevet = scan.nextLine(); + controller.removerNome(removernomevet); + break; + + case 2: + System.out.println("Apelido: "); + String removerapelidovet = scan.nextLine(); + controller.removerApelido(removerapelidovet); + break; + + case 3: + System.out.println("CRMV: "); + String removercrvvet = scan.nextLine(); + controller.removerCrv(removercrvvet); + break; + + default: + System.out.println("Opção inválida."); + } + + } +} From 1d3e478e4644bd155263ccdb85ca949ea0bb8e8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felipe=20Marques=20de=20Oliveira=20de=20S=C3=A1?= Date: Sun, 13 Jul 2025 20:42:42 -0300 Subject: [PATCH 3/4] Adicionando ao MVC: Calopsita e Cachorro e suas respectivas classes --- avaliacoes/pets/src/main/java/MainMvc.java | 11 +- .../java/controller/CachorroController.java | 61 +++++++++ .../java/controller/CalopsitaController.java | 61 +++++++++ .../pets/src/main/java/dao/CachorroDao.java | 120 ++++++++++++++++++ .../pets/src/main/java/dao/CalopsitaDao.java | 120 ++++++++++++++++++ .../pets/src/main/java/view/CachorroScan.java | 100 +++++++++++++++ .../src/main/java/view/CalopsitaScan.java | 100 +++++++++++++++ 7 files changed, 572 insertions(+), 1 deletion(-) create mode 100644 avaliacoes/pets/src/main/java/controller/CachorroController.java create mode 100644 avaliacoes/pets/src/main/java/controller/CalopsitaController.java create mode 100644 avaliacoes/pets/src/main/java/dao/CachorroDao.java create mode 100644 avaliacoes/pets/src/main/java/dao/CalopsitaDao.java create mode 100644 avaliacoes/pets/src/main/java/view/CachorroScan.java create mode 100644 avaliacoes/pets/src/main/java/view/CalopsitaScan.java diff --git a/avaliacoes/pets/src/main/java/MainMvc.java b/avaliacoes/pets/src/main/java/MainMvc.java index f09d13e..aa54644 100644 --- a/avaliacoes/pets/src/main/java/MainMvc.java +++ b/avaliacoes/pets/src/main/java/MainMvc.java @@ -1,4 +1,7 @@ import java.util.Scanner; + +import view.CachorroScan; +import view.CalopsitaScan; import view.VeterinarioScan; public class MainMvc { @@ -8,7 +11,7 @@ public static void main(String[] args) { do { System.out.println("\n===== MENU PRINCIPAL ====="); - System.out.println("\n[1] - Menu Veterinário\n[0] - Sair\nEscolha:"); + System.out.println("\n[1] - Menu Veterinário\n[2] - Menu Calopsita\n[3] - Menu Cachorro\n[0] - Sair\nEscolha:"); opcao = scanner.nextInt(); scanner.nextLine(); @@ -16,6 +19,12 @@ public static void main(String[] args) { case 1: VeterinarioScan vetView = new VeterinarioScan(); vetView.menuVet(); // chama menu do veterinário + case 2: + CalopsitaScan calopView = new CalopsitaScan(); + calopView.menuCalopsita(); // chama menu do veterinário + case 3: + CachorroScan dogView = new CachorroScan(); + dogView.menuCachorro(); // chama menu do veterinário case 0: System.out.println("Encerrando..."); diff --git a/avaliacoes/pets/src/main/java/controller/CachorroController.java b/avaliacoes/pets/src/main/java/controller/CachorroController.java new file mode 100644 index 0000000..139f5a3 --- /dev/null +++ b/avaliacoes/pets/src/main/java/controller/CachorroController.java @@ -0,0 +1,61 @@ +package controller; + +import java.util.List; + +import dao.CachorroDao; +import model.Cachorro; + +public class CachorroController { + CachorroDao cachorroDao = new CachorroDao(); + + public void criarCachorro(String nome, String nascimento) { + Cachorro c = new Cachorro(nome, nascimento); + cachorroDao.adicionarCachorro(c); + System.out.println("Cachorro adicionado com sucesso."); + } + + public void buscarNome(String nome) { + Cachorro c = cachorroDao.buscarPorNome(nome); + if (c != null) { + System.out.println("Cachorro encontrado:"); + System.out.println("Nome: " + c.getNome()); + System.out.println("Nascimento: " + c.getNascimento()); + } else { + System.out.println("Cachorro não encontrado."); + } + } + + public void buscarNascimento(String nascimento) { + Cachorro c = cachorroDao.buscarPorNascimento(nascimento); + if (c != null) { + System.out.println("Cachorro encontrado:"); + System.out.println("Nome: " + c.getNome()); + System.out.println("Nascimento: " + c.getNascimento()); + } else { + System.out.println("Cachorro não encontrado."); + } + } + + public void removerNome(String nome) { + if (cachorroDao.removerPorNome(nome)) { + System.out.println("Cachorro removido com sucesso."); + } else { + System.out.println("Cachorro não encontrado."); + } + } + + public void removerNascimento(String nascimento) { + if (cachorroDao.removerPorNascimento(nascimento)) { + System.out.println("Cachorro removido com sucesso."); + } else { + System.out.println("Cachorro não encontrado."); + } + } + + public void listarCachorros() { + List cachorros = cachorroDao.listarCachorros(); + for (Cachorro c : cachorros) { + System.out.println("\nNome: " + c.getNome() + "\nNascimento: " + c.getNascimento()); + } + } +} diff --git a/avaliacoes/pets/src/main/java/controller/CalopsitaController.java b/avaliacoes/pets/src/main/java/controller/CalopsitaController.java new file mode 100644 index 0000000..85cd24d --- /dev/null +++ b/avaliacoes/pets/src/main/java/controller/CalopsitaController.java @@ -0,0 +1,61 @@ +package controller; + +import java.util.List; + +import dao.CalopsitaDao; +import model.Calopsita; + +public class CalopsitaController { + CalopsitaDao calopsitaDao = new CalopsitaDao(); + + public void criarCalopsita(String nome, String nascimento) { + Calopsita c = new Calopsita(nome, nascimento); + calopsitaDao.adicionarCalopsita(c); + System.out.println("Calopsita adicionada com sucesso."); + } + + public void buscarNome(String nome) { + Calopsita c = calopsitaDao.buscarPorNome(nome); + if (c != null) { + System.out.println("Calopsita encontrada:"); + System.out.println("Nome: " + c.getNome()); + System.out.println("Nascimento: " + c.getNascimento()); + } else { + System.out.println("Calopsita não encontrada."); + } + } + + public void buscarNascimento(String nascimento) { + Calopsita c = calopsitaDao.buscarPorNascimento(nascimento); + if (c != null) { + System.out.println("Calopsita encontrada:"); + System.out.println("Nome: " + c.getNome()); + System.out.println("Nascimento: " + c.getNascimento()); + } else { + System.out.println("Calopsita não encontrada."); + } + } + + public void removerNome(String nome) { + if (calopsitaDao.removerPorNome(nome)) { + System.out.println("Calopsita removida com sucesso."); + } else { + System.out.println("Calopsita não encontrada."); + } + } + + public void removerNascimento(String nascimento) { + if (calopsitaDao.removerPorNascimento(nascimento)) { + System.out.println("Calopsita removida com sucesso."); + } else { + System.out.println("Calopsita não encontrada."); + } + } + + public void listarCalopsitas() { + List calopsitas = calopsitaDao.listarCalopsitas(); + for (Calopsita c : calopsitas) { + System.out.println("\nNome: " + c.getNome() + "\nNascimento: " + c.getNascimento()); + } + } +} diff --git a/avaliacoes/pets/src/main/java/dao/CachorroDao.java b/avaliacoes/pets/src/main/java/dao/CachorroDao.java new file mode 100644 index 0000000..44a6adc --- /dev/null +++ b/avaliacoes/pets/src/main/java/dao/CachorroDao.java @@ -0,0 +1,120 @@ +package dao; + +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 java.util.List; + +import model.Cachorro; + +public class CachorroDao { + private static final String arq = "cachorro.txt"; + + public void adicionarCachorro(Cachorro cachorro) { + try { + BufferedWriter bw = new BufferedWriter(new FileWriter(arq, true)); + String texto = cachorro.getNome() + "|" + cachorro.getNascimento(); + bw.write(texto); + bw.newLine(); + bw.close(); + } catch (IOException e) { + System.out.println("Erro ao adicionar cachorro: " + e.getMessage()); + } + } + + public List listarCachorros() { + List cachorros = new ArrayList<>(); + try { + File file = new File(arq); + if (!file.exists()) { + return cachorros; + } + BufferedReader br = new BufferedReader(new FileReader(arq)); + String linha; + while ((linha = br.readLine()) != null) { + String[] dados = linha.split("\\|"); + if (dados.length == 2) { + Cachorro c = new Cachorro(dados[0], dados[1]); + cachorros.add(c); + } + } + br.close(); + } catch (IOException e) { + System.out.println("Erro ao listar cachorros: " + e.getMessage()); + } + return cachorros; + } + + public Cachorro buscarPorNome(String nome) { + List lista = listarCachorros(); + for (Cachorro c : lista) { + if (c.getNome().equalsIgnoreCase(nome)) { + return c; + } + } + return null; + } + + public Cachorro buscarPorNascimento(String nascimento) { + List lista = listarCachorros(); + for (Cachorro c : lista) { + if (c.getNascimento().equalsIgnoreCase(nascimento)) { + return c; + } + } + return null; + } + + public Boolean removerPorNome(String nome) { + List lista = listarCachorros(); + Cachorro encontrou = null; + + for (Cachorro c : lista) { + if (c.getNome().equalsIgnoreCase(nome)) { + encontrou = c; + break; + } + } + if (encontrou != null) { + lista.remove(encontrou); + salvarListaNoArquivo(lista); + return true; + } + return false; + } + + public Boolean removerPorNascimento(String nascimento) { + List lista = listarCachorros(); + Cachorro encontrou = null; + + for (Cachorro c : lista) { + if (c.getNascimento().equalsIgnoreCase(nascimento)) { + encontrou = c; + break; + } + } + if (encontrou != null) { + lista.remove(encontrou); + salvarListaNoArquivo(lista); + return true; + } + return false; + } + + private void salvarListaNoArquivo(List cachorros) { + try { + BufferedWriter bw = new BufferedWriter(new FileWriter(arq)); + for (Cachorro c : cachorros) { + bw.write(c.getNome() + "|" + c.getNascimento()); + bw.newLine(); + } + bw.close(); + } catch (IOException e) { + System.out.println("Erro ao salvar lista: " + e.getMessage()); + } + } +} diff --git a/avaliacoes/pets/src/main/java/dao/CalopsitaDao.java b/avaliacoes/pets/src/main/java/dao/CalopsitaDao.java new file mode 100644 index 0000000..7c58b21 --- /dev/null +++ b/avaliacoes/pets/src/main/java/dao/CalopsitaDao.java @@ -0,0 +1,120 @@ +package dao; + +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 java.util.List; + +import model.Calopsita; + +public class CalopsitaDao { + private static final String arq = "calopsita.txt"; + + public void adicionarCalopsita(Calopsita calopsita) { + try { + BufferedWriter bw = new BufferedWriter(new FileWriter(arq, true)); + String texto = calopsita.getNome() + "|" + calopsita.getNascimento(); + bw.write(texto); + bw.newLine(); + bw.close(); + } catch (IOException e) { + System.out.println("Erro ao adicionar calopsita: " + e.getMessage()); + } + } + + public List listarCalopsitas() { + List calopsitas = new ArrayList<>(); + try { + File file = new File(arq); + if (!file.exists()) { + return calopsitas; + } + BufferedReader br = new BufferedReader(new FileReader(arq)); + String linha; + while ((linha = br.readLine()) != null) { + String[] dados = linha.split("\\|"); + if (dados.length == 2) { + Calopsita c = new Calopsita(dados[0], dados[1]); + calopsitas.add(c); + } + } + br.close(); + } catch (IOException e) { + System.out.println("Erro ao listar calopsitas: " + e.getMessage()); + } + return calopsitas; + } + + public Calopsita buscarPorNome(String nome) { + List lista = listarCalopsitas(); + for (Calopsita c : lista) { + if (c.getNome().equalsIgnoreCase(nome)) { + return c; + } + } + return null; + } + + public Calopsita buscarPorNascimento(String nascimento) { + List lista = listarCalopsitas(); + for (Calopsita c : lista) { + if (c.getNascimento().equalsIgnoreCase(nascimento)) { + return c; + } + } + return null; + } + + public Boolean removerPorNome(String nome) { + List lista = listarCalopsitas(); + Calopsita encontrou = null; + + for (Calopsita c : lista) { + if (c.getNome().equalsIgnoreCase(nome)) { + encontrou = c; + break; + } + } + if (encontrou != null) { + lista.remove(encontrou); + salvarListaNoArquivo(lista); + return true; + } + return false; + } + + public Boolean removerPorNascimento(String nascimento) { + List lista = listarCalopsitas(); + Calopsita encontrou = null; + + for (Calopsita c : lista) { + if (c.getNascimento().equalsIgnoreCase(nascimento)) { + encontrou = c; + break; + } + } + if (encontrou != null) { + lista.remove(encontrou); + salvarListaNoArquivo(lista); + return true; + } + return false; + } + + private void salvarListaNoArquivo(List calopsitas) { + try { + BufferedWriter bw = new BufferedWriter(new FileWriter(arq)); + for (Calopsita c : calopsitas) { + bw.write(c.getNome() + "|" + c.getNascimento()); + bw.newLine(); + } + bw.close(); + } catch (IOException e) { + System.out.println("Erro ao salvar lista: " + e.getMessage()); + } + } +} diff --git a/avaliacoes/pets/src/main/java/view/CachorroScan.java b/avaliacoes/pets/src/main/java/view/CachorroScan.java new file mode 100644 index 0000000..272c334 --- /dev/null +++ b/avaliacoes/pets/src/main/java/view/CachorroScan.java @@ -0,0 +1,100 @@ +package view; + +import java.util.Scanner; + +import controller.CachorroController; + +public class CachorroScan { + Scanner scan = new Scanner(System.in); + int index = 1; + CachorroController controller = new CachorroController(); + + public void menuCachorro() { + while (index != 0) { + System.out.println("\nMENU DO CACHORRO:\n[1] - Criar Cachorro\n[2] - Ler Cachorro\n[3] - Remover Cachorro\n[4] - Listar Cachorros\n[0] - Voltar"); + index = scan.nextInt(); + scan.nextLine(); + + switch (index) { + case 1: + criarCachorro(); + break; + + case 2: + lerCachorro(); + break; + + case 3: + removerCachorro(); + break; + + case 4: + controller.listarCachorros(); + break; + + case 0: + System.out.println("Voltando..."); + break; + + default: + System.out.println("Opção inválida."); + } + } + } + + private void criarCachorro() { + System.out.println("Nome:"); + String nome = scan.nextLine(); + + System.out.println("Nascimento:"); + String nascimento = scan.nextLine(); + + controller.criarCachorro(nome, nascimento); + } + + private void lerCachorro() { + System.out.println("\nBuscar por:\n[1] Nome\n[2] Nascimento"); + int index2 = scan.nextInt(); + scan.nextLine(); + + switch (index2) { + case 1: + System.out.println("Nome: "); + String lerNome = scan.nextLine(); + controller.buscarNome(lerNome); + break; + + case 2: + System.out.println("Nascimento: "); + String lerNascimento = scan.nextLine(); + controller.buscarNascimento(lerNascimento); + break; + + default: + System.out.println("Opção inválida."); + } + } + + private void removerCachorro() { + System.out.println("\nRemover por:\n[1] Nome\n[2] Nascimento"); + int index3 = scan.nextInt(); + scan.nextLine(); + + switch (index3) { + case 1: + System.out.println("Nome: "); + String removerNome = scan.nextLine(); + controller.removerNome(removerNome); + break; + + case 2: + System.out.println("Nascimento: "); + String removerNascimento = scan.nextLine(); + controller.removerNascimento(removerNascimento); + break; + + default: + System.out.println("Opção inválida."); + } + } +} diff --git a/avaliacoes/pets/src/main/java/view/CalopsitaScan.java b/avaliacoes/pets/src/main/java/view/CalopsitaScan.java new file mode 100644 index 0000000..7317062 --- /dev/null +++ b/avaliacoes/pets/src/main/java/view/CalopsitaScan.java @@ -0,0 +1,100 @@ +package view; + +import java.util.Scanner; + +import controller.CalopsitaController; + +public class CalopsitaScan { + Scanner scan = new Scanner(System.in); + int index = 1; + CalopsitaController controller = new CalopsitaController(); + + public void menuCalopsita() { + while (index != 0) { + System.out.println("\nMENU DA CALOPSITA:\n[1] - Criar Calopsita\n[2] - Ler Calopsita\n[3] - Remover Calopsita\n[4] - Listar Calopsitas\n[0] - Voltar"); + index = scan.nextInt(); + scan.nextLine(); + + switch (index) { + case 1: + criarCalopsita(); + break; + + case 2: + lerCalopsita(); + break; + + case 3: + removerCalopsita(); + break; + + case 4: + controller.listarCalopsitas(); + break; + + case 0: + System.out.println("Voltando..."); + break; + + default: + System.out.println("Opção inválida."); + } + } + } + + private void criarCalopsita() { + System.out.println("Nome:"); + String nome = scan.nextLine(); + + System.out.println("Nascimento:"); + String nascimento = scan.nextLine(); + + controller.criarCalopsita(nome, nascimento); + } + + private void lerCalopsita() { + System.out.println("\nBuscar por:\n[1] Nome\n[2] Nascimento"); + int index2 = scan.nextInt(); + scan.nextLine(); + + switch (index2) { + case 1: + System.out.println("Nome: "); + String lerNome = scan.nextLine(); + controller.buscarNome(lerNome); + break; + + case 2: + System.out.println("Nascimento: "); + String lerNascimento = scan.nextLine(); + controller.buscarNascimento(lerNascimento); + break; + + default: + System.out.println("Opção inválida."); + } + } + + private void removerCalopsita() { + System.out.println("\nRemover por:\n[1] Nome\n[2] Nascimento"); + int index3 = scan.nextInt(); + scan.nextLine(); + + switch (index3) { + case 1: + System.out.println("Nome: "); + String removerNome = scan.nextLine(); + controller.removerNome(removerNome); + break; + + case 2: + System.out.println("Nascimento: "); + String removerNascimento = scan.nextLine(); + controller.removerNascimento(removerNascimento); + break; + + default: + System.out.println("Opção inválida."); + } + } +} From 0ee7d0546f98e33b9ead93564dff54faf0d491bb Mon Sep 17 00:00:00 2001 From: EnricoCorrea Date: Sun, 13 Jul 2025 21:49:02 -0300 Subject: [PATCH 4/4] final adjustments and adding gato class --- avaliacoes/pets/src/main/java/MainMvc.java | 24 +++- .../main/java/controller/GatoController.java | 66 ++++++++++ .../pets/src/main/java/dao/CachorroDao.java | 2 +- .../pets/src/main/java/dao/CalopsitaDao.java | 2 +- .../pets/src/main/java/dao/GatoDao.java | 120 ++++++++++++++++++ .../src/main/java/dao/VeterinarioDao.java | 2 +- .../pets/src/main/java/dao/db/cachorro.txt | 0 .../pets/src/main/java/dao/db/calopsita.txt | 0 avaliacoes/pets/src/main/java/dao/db/gato.txt | 0 .../pets/src/main/java/dao/db/veterinario.txt | 0 .../pets/src/main/java/view/GatoScan.java | 100 +++++++++++++++ .../src/main/java/view/VeterinarioScan.java | 2 +- 12 files changed, 308 insertions(+), 10 deletions(-) create mode 100644 avaliacoes/pets/src/main/java/controller/GatoController.java create mode 100644 avaliacoes/pets/src/main/java/dao/GatoDao.java create mode 100644 avaliacoes/pets/src/main/java/dao/db/cachorro.txt create mode 100644 avaliacoes/pets/src/main/java/dao/db/calopsita.txt create mode 100644 avaliacoes/pets/src/main/java/dao/db/gato.txt create mode 100644 avaliacoes/pets/src/main/java/dao/db/veterinario.txt create mode 100644 avaliacoes/pets/src/main/java/view/GatoScan.java diff --git a/avaliacoes/pets/src/main/java/MainMvc.java b/avaliacoes/pets/src/main/java/MainMvc.java index aa54644..45a0490 100644 --- a/avaliacoes/pets/src/main/java/MainMvc.java +++ b/avaliacoes/pets/src/main/java/MainMvc.java @@ -2,6 +2,7 @@ import view.CachorroScan; import view.CalopsitaScan; +import view.GatoScan; import view.VeterinarioScan; public class MainMvc { @@ -11,25 +12,36 @@ public static void main(String[] args) { do { System.out.println("\n===== MENU PRINCIPAL ====="); - System.out.println("\n[1] - Menu Veterinário\n[2] - Menu Calopsita\n[3] - Menu Cachorro\n[0] - Sair\nEscolha:"); + System.out.println("\n[1] - Menu Veterinário\n[2] - Menu Calopsita\n[3] - Menu Cachorro\n[4] - Menu Gato\n[0] - Sair\nEscolha:"); opcao = scanner.nextInt(); scanner.nextLine(); switch (opcao) { case 1: VeterinarioScan vetView = new VeterinarioScan(); - vetView.menuVet(); // chama menu do veterinário + vetView.menuVet(); // chama menu do veterinario + break; + case 2: CalopsitaScan calopView = new CalopsitaScan(); - calopView.menuCalopsita(); // chama menu do veterinário + calopView.menuCalopsita(); // chama menu do calopsita + break; + case 3: CachorroScan dogView = new CachorroScan(); - dogView.menuCachorro(); // chama menu do veterinário + dogView.menuCachorro(); // chama menu do cachorro + break; + case 4: + GatoScan gatoView = new GatoScan(); + gatoView.menuGato(); // chama menu do gato + break; + case 0: - System.out.println("Encerrando..."); + System.out.println("Encerrando..."); + break; default: - System.out.println("Opção inválida."); + System.out.println("Opção inválida."); } } while (opcao != 0); diff --git a/avaliacoes/pets/src/main/java/controller/GatoController.java b/avaliacoes/pets/src/main/java/controller/GatoController.java new file mode 100644 index 0000000..0f85b11 --- /dev/null +++ b/avaliacoes/pets/src/main/java/controller/GatoController.java @@ -0,0 +1,66 @@ +package controller; + +import java.util.List; + +import dao.GatoDao; +import model.Gato; + +public class GatoController { + + GatoDao gatoDao = new GatoDao(); + + public void criarGato(String nome, String nascimento) { + Gato g = new Gato(nome, nascimento); + gatoDao.adicionarGato(g); + System.out.println("Gato adicionado com sucesso."); + } + + public void buscarPorNome(String nome) { + Gato g = gatoDao.buscarPorNome(nome); + if (g != null) { + System.out.println("Gato encontrado:"); + System.out.println("Nome: " + g.getNome()); + System.out.println("Nascimento: " + g.getNascimento()); + } else { + System.out.println("Gato não encontrado."); + } + } + + public void buscarPorNascimento(String nascimento) { + Gato g = gatoDao.buscarPorNascimento(nascimento); + if (g != null) { + System.out.println("Gato encontrado:"); + System.out.println("Nome: " + g.getNome()); + System.out.println("Nascimento: " + g.getNascimento()); + } else { + System.out.println("Gato não encontrado."); + } + } + + public void removerPorNome(String nome) { + if (gatoDao.removerPorNome(nome)) { + System.out.println("Gato removido com sucesso."); + } else { + System.out.println("Gato não encontrado."); + } + } + + public void removerPorNascimento(String nascimento) { + if (gatoDao.removerPorNascimento(nascimento)) { + System.out.println("Gato removido com sucesso."); + } else { + System.out.println("Gato não encontrado."); + } + } + + public void listarGatos() { + List gatos = gatoDao.listarGatos(); + if (gatos.isEmpty()) { + System.out.println("Nenhum gato cadastrado."); + } else { + for (Gato g : gatos) { + System.out.println("\nNome: " + g.getNome() + "\nNascimento: " + g.getNascimento()); + } + } + } +} diff --git a/avaliacoes/pets/src/main/java/dao/CachorroDao.java b/avaliacoes/pets/src/main/java/dao/CachorroDao.java index 44a6adc..46dcaba 100644 --- a/avaliacoes/pets/src/main/java/dao/CachorroDao.java +++ b/avaliacoes/pets/src/main/java/dao/CachorroDao.java @@ -12,7 +12,7 @@ import model.Cachorro; public class CachorroDao { - private static final String arq = "cachorro.txt"; + private static final String arq = "java-exercicios/avaliacoes/pets/src/main/java/dao/db/cachorro.txt"; public void adicionarCachorro(Cachorro cachorro) { try { diff --git a/avaliacoes/pets/src/main/java/dao/CalopsitaDao.java b/avaliacoes/pets/src/main/java/dao/CalopsitaDao.java index 7c58b21..3e96f93 100644 --- a/avaliacoes/pets/src/main/java/dao/CalopsitaDao.java +++ b/avaliacoes/pets/src/main/java/dao/CalopsitaDao.java @@ -12,7 +12,7 @@ import model.Calopsita; public class CalopsitaDao { - private static final String arq = "calopsita.txt"; + private static final String arq = "java-exercicios/avaliacoes/pets/src/main/java/dao/db/calopsita.txt"; public void adicionarCalopsita(Calopsita calopsita) { try { diff --git a/avaliacoes/pets/src/main/java/dao/GatoDao.java b/avaliacoes/pets/src/main/java/dao/GatoDao.java new file mode 100644 index 0000000..7e392a7 --- /dev/null +++ b/avaliacoes/pets/src/main/java/dao/GatoDao.java @@ -0,0 +1,120 @@ +package dao; + +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 java.util.List; + +import model.Gato; + +public class GatoDao { + private static final String arq = "java-exercicios/avaliacoes/pets/src/main/java/dao/db/gato.txt"; + + public void adicionarGato(Gato gato) { + try { + BufferedWriter bw = new BufferedWriter(new FileWriter(arq, true)); + String texto = gato.getNome() + "|" + gato.getNascimento(); + bw.write(texto); + bw.newLine(); + bw.close(); + } catch (IOException e) { + System.out.println("Erro ao adicionar gato: " + e.getMessage()); + } + } + + public List listarGatos() { + List gatos = new ArrayList<>(); + try { + File file = new File(arq); + if (!file.exists()) { + return gatos; + } + BufferedReader br = new BufferedReader(new FileReader(arq)); + String linha; + while ((linha = br.readLine()) != null) { + String[] dados = linha.split("\\|"); + if (dados.length == 2) { + Gato g = new Gato(dados[0], dados[1]); + gatos.add(g); + } + } + br.close(); + } catch (IOException e) { + System.out.println("Erro ao listar gatos: " + e.getMessage()); + } + return gatos; + } + + public Gato buscarPorNome(String nome) { + List lista = listarGatos(); + for (Gato g : lista) { + if (g.getNome().equalsIgnoreCase(nome)) { + return g; + } + } + return null; + } + + public Gato buscarPorNascimento(String nascimento) { + List lista = listarGatos(); + for (Gato g : lista) { + if (g.getNascimento().equalsIgnoreCase(nascimento)) { + return g; + } + } + return null; + } + + public Boolean removerPorNome(String nome) { + List lista = listarGatos(); + Gato encontrou = null; + + for (Gato g : lista) { + if (g.getNome().equalsIgnoreCase(nome)) { + encontrou = g; + break; + } + } + if (encontrou != null) { + lista.remove(encontrou); + salvarListaNoArquivo(lista); + return true; + } + return false; + } + + public Boolean removerPorNascimento(String nascimento) { + List lista = listarGatos(); + Gato encontrou = null; + + for (Gato g : lista) { + if (g.getNascimento().equalsIgnoreCase(nascimento)) { + encontrou = g; + break; + } + } + if (encontrou != null) { + lista.remove(encontrou); + salvarListaNoArquivo(lista); + return true; + } + return false; + } + + private void salvarListaNoArquivo(List gatos) { + try { + BufferedWriter bw = new BufferedWriter(new FileWriter(arq)); + for (Gato g : gatos) { + bw.write(g.getNome() + "|" + g.getNascimento()); + bw.newLine(); + } + bw.close(); + } catch (IOException e) { + System.out.println("Erro ao salvar lista: " + e.getMessage()); + } + } +} diff --git a/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java b/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java index cc7cf32..c9d10ac 100644 --- a/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java +++ b/avaliacoes/pets/src/main/java/dao/VeterinarioDao.java @@ -13,7 +13,7 @@ public class VeterinarioDao{ - private static final String arq = "veterinario.txt"; + private static final String arq = "java-exercicios/avaliacoes/pets/src/main/java/dao/db/veterinario.txt"; public void adicionarVeterinarios(Veterinario vet){ try { diff --git a/avaliacoes/pets/src/main/java/dao/db/cachorro.txt b/avaliacoes/pets/src/main/java/dao/db/cachorro.txt new file mode 100644 index 0000000..e69de29 diff --git a/avaliacoes/pets/src/main/java/dao/db/calopsita.txt b/avaliacoes/pets/src/main/java/dao/db/calopsita.txt new file mode 100644 index 0000000..e69de29 diff --git a/avaliacoes/pets/src/main/java/dao/db/gato.txt b/avaliacoes/pets/src/main/java/dao/db/gato.txt new file mode 100644 index 0000000..e69de29 diff --git a/avaliacoes/pets/src/main/java/dao/db/veterinario.txt b/avaliacoes/pets/src/main/java/dao/db/veterinario.txt new file mode 100644 index 0000000..e69de29 diff --git a/avaliacoes/pets/src/main/java/view/GatoScan.java b/avaliacoes/pets/src/main/java/view/GatoScan.java new file mode 100644 index 0000000..69b5462 --- /dev/null +++ b/avaliacoes/pets/src/main/java/view/GatoScan.java @@ -0,0 +1,100 @@ +package view; + +import java.util.Scanner; +import controller.GatoController; + +public class GatoScan { + Scanner scan = new Scanner(System.in); + int index = 1; + GatoController controller = new GatoController(); + + public void menuGato() { + while (index != 0) { + System.out.println("\nMENU DO GATO:"); + System.out.println("[1] - Criar Gato\n[2] - Ler Gato\n[3] - Remover Gato\n[4] - Listar Gatos\n[0] - Voltar"); + index = scan.nextInt(); + scan.nextLine(); + + switch (index) { + case 1: + criarGato(); + break; + + case 2: + lerGato(); + break; + + case 3: + removerGato(); + break; + + case 4: + controller.listarGatos(); + break; + + case 0: + System.out.println("Voltando..."); + break; + + default: + System.out.println("Opção inválida."); + } + } + } + + private void criarGato() { + System.out.println("Nome:"); + String nome = scan.nextLine(); + + System.out.println("Nascimento:"); + String nascimento = scan.nextLine(); + + controller.criarGato(nome, nascimento); + } + + private void lerGato() { + System.out.println("\nBuscar por:\n[1] Nome\n[2] Nascimento"); + int opcao = scan.nextInt(); + scan.nextLine(); + + switch (opcao) { + case 1: + System.out.println("Nome: "); + String nome = scan.nextLine(); + controller.buscarPorNome(nome); + break; + + case 2: + System.out.println("Nascimento: "); + String nascimento = scan.nextLine(); + controller.buscarPorNascimento(nascimento); + break; + + default: + System.out.println("Opção inválida."); + } + } + + private void removerGato() { + System.out.println("\nRemover por:\n[1] Nome\n[2] Nascimento"); + int opcao = scan.nextInt(); + scan.nextLine(); + + switch (opcao) { + case 1: + System.out.println("Nome: "); + String nome = scan.nextLine(); + controller.removerPorNome(nome); + break; + + case 2: + System.out.println("Nascimento: "); + String nascimento = scan.nextLine(); + controller.removerPorNascimento(nascimento); + break; + + default: + System.out.println("Opção inválida."); + } + } +} diff --git a/avaliacoes/pets/src/main/java/view/VeterinarioScan.java b/avaliacoes/pets/src/main/java/view/VeterinarioScan.java index 56b6459..ff5cc25 100644 --- a/avaliacoes/pets/src/main/java/view/VeterinarioScan.java +++ b/avaliacoes/pets/src/main/java/view/VeterinarioScan.java @@ -84,7 +84,7 @@ private void lerVeterinario() { } private void removerVeterinario() { - System.out.println("\nRemover por:\n [1] Nome\n[2] Apelido\n[3] CRMV"); + System.out.println("\nRemover por:\n[1] Nome\n[2] Apelido\n[3] CRMV"); int index3 = scan.nextInt(); scan.nextLine();