Jump to content

Recommended Posts

Posted

Ola a todos,

eu estou com algumas dúvidas e gostaria que vocês me ajudassem no que for possível.

Gostaria de uma ajuda com relação aos métodos excluir e listar e se eu estou fazendo certo o método cadastro. Se vocês pudessem me dar exemplos ou mesmo me ajudar no código agradeço muito.

pai

import javax.swing.JOptionPane;
/**
*
* @author luis1
*/
public class Pessoa {
private String nome;
private int numero = 0;
public Pessoa() {
 nome = "sem nome";
 numero++;
}
public Pessoa(String nomeInicial, int numfiscal) {
 nome = nomeInicial;
 numero = numfiscal;
}
public void setNome(String novoNome) {
 nome = novoNome;
}
public void setNumero(int numfiscal) {
 numero = numfiscal;
}
public String getNome() {
 return nome;
}
public int getNumero() {
 return numero;
}
public void cadastro() {
 setNome(JOptionPane.showInputDialog("Introduza o nome da pessoa: "));
 setNumero(numero++);
}
public void excluir() {
}
public void alterar() {
}
public void listar() {

}
 @Override
 public String toString() { return ("Nome: " + nome + "numerofiscal:" + numero); }

 public boolean temMesmoNome(Pessoa outraNome) { return
 this.nome.equalsIgnoreCase(outraNome.nome);
}
}

filho

public class Artista extends Pessoa {
public Artista(){
 super();
}
public void cadastro() {
 super.cadastro();
}
public void excluir() {
 super.excluir();
}
public void alterar() {
 super.alterar();
}
public void listar() {
 super.listar();
}
}

menu

import java.util.ArrayList;
import javax.swing.JOptionPane;
/**
*
* @author luis1
*/
public class Menu {
public void Menu() {
 ArrayList<Pessoa> pessoa = new ArrayList<Pessoa>();
 int op = 0;
 int opt = 0;
 while (op != 5) {
	 try {
		 op = Integer.parseInt(JOptionPane.showInputDialog("Digite a opção\n"
				 + "1 = Inserir\n"
				 + "2 = Excluir\n"
				 + "3 = Alterar\n"
				 + "4 = Listar\n"
				 + "5 = Sair"));
		 Pessoa a;
		 switch (op) {
			 case 1:
				 while (opt != 5) {
					 opt = Integer.parseInt(JOptionPane.showInputDialog("Digite a opção\n"
							 + "1 = Artista\n"
							 + "2 = Agente\n"
							 + "3 = Evento\n"
							 + "4 = Renumeracao\n"
							 + "5 = Contrato"));
					 switch (opt) {
						 case 1:
							 a = new Artista();
							 a.cadastro();
							 break;
						 case 2:
							 break;
						 case 3:
							 break;
						 case 4:
							 break;
						 case 5:
							 break;
					 }
				 }
			 case 2:
				 break;
			 case 3:
				 break;
			 case 4:
				 break;
			 case 5:
				 System.exit(0);
				 break;
			 default:
				 JOptionPane.showMessageDialog(null, "A opção escolhida é inválida. Por favor digite a opcao correcta...");
				 break;
		 }
	 } catch (Exception e) {
		 JOptionPane.showMessageDialog(null, "A opção escolhida é inválida. Por favor digite a opcao correcta...");
	 }
 }
}
}

Obrigado e comprimentos

Posted

Esta na class do menu,

ArrayList<Pessoa> pessoa = new ArrayList<Pessoa>();

Mas nao sei se este metodo e correcto para fazer. Esto a tentar fazer herança pois o artista e o agente vao ter um nome e um numero fiscal

Posted (edited)

O que eu faria, era criar uma class, daria-lhe o nome de BaseDeDados por exemplo, em que esta class apenas terá 1 arrayList de pessoas, e será esta classe que tem os metodos de excluir e listar

public class BaseDeDados{
 private ArrayList<Pessoa> _listapessoas = new ArrayList<Pessoa>;

 public void adicionar(Pessoa p){
		 _listapessoas.add(p);
 }
 public void excluir(Pessoa p){
	 for(Pessoa p1 : _listapessoas)
			 {
			 if(p.getNome().equals(p1.getNome())){
				 //eleminas do arraylista, nao sei bem como fazer essa parte)
				 break;
				 }
	 }
@Override
public String toString(){
String s="";
for(Pessoa p : _listapessoas){
s+="Nome é: " + p.getName()........... "\n";
}
return s;
}
}

Depois no menu, logo no inicio crias uma instancia de BaseDeDados (BaseDeDados base = new BaseDeDados() 😉 no adicionar, basta fazeres base.adicionar(pessoa);, para exluir, base.excluir(pessoa), e no listar base.toString();

e isto guarda Pessoa e todas as classes que façam extend de pessoa

Edited by apocsantos
Posted (edited)

se tiveres mais alguma duvida diz, para excluires é melhor usares o numero Fiscal em vez do nome visto so existir um numero fiscal para cada pessoa, já os nomes pode haver muitos iguais

Edited by Primordius
Posted (edited)

Boa noite,

Estou com umas duvida em obter um valor de um objecto class para outra.

No trabalho fiz uma class para as variaveis globais onde estao la as arraylist demostrada abaixo.

public class Variaveisglobais {
public static String[] opcoes = {"1", "2", "3", "4", "5", "6"};
public static String[] opcoes2 = {"1", "2", "3", "4", "5"};
public static int op = 1;
public static int ide, idc = 0;
public static int menu, submenu, d, m, a,dd,mm,aa;
public static ArrayList<Sujeito> artistas = new ArrayList<Sujeito>();
public static ArrayList<Sujeito> agentes = new ArrayList<Sujeito>();
public static ArrayList<Evento> evento = new ArrayList<Evento>();
public static ArrayList<Contrato> contrato = new ArrayList<Contrato>();
}

Criei outra class com herança, para criar pessoa e o seu numero fiscal. Esta de mostrado abaixo

class

public class Pessoa extends Variaveisglobais{
public String nome;
public Pessoa() {
 nome = "sem nome";
}
public Pessoa(String nomeInicial) {
 nome = nomeInicial;
}
public void setNome(String novoNome) {
 nome = novoNome;
}
public String getNome() {
 return nome;
}
@Override
public String toString() {
 return ("Nome: " + nome);
}
public boolean temMesmoNome(Pessoa outraPessoa) {
 return this.nome.equalsIgnoreCase(outraPessoa.nome);
}
}

heranca

public class Sujeito extends Pessoa {
public int numfiscal;
public Sujeito() {
 super();
 numfiscal = 0;
}
public Sujeito(String nomeInicial, int numfiscall) {
 super(nomeInicial);
 numfiscal = numfiscall;
}
public int getNumfiscal() {
 return numfiscal;
}
public void setNumfiscal(int numfiscall) {
 numfiscal = numfiscall;
}
@Override
public String toString() {
 return ("Nome: " + getNome() + " Número Fiscal: " + numfiscal);
}
}

A minha duvida consiste em obter os valor da class Sujeito para class contrato, criando um contrato com um o agente e com um artista, como faço isto. Pois a class do sujeito estao as listas do artistas e dos agentes, e gostaria de obter o nome de um agente e de um artista para poder criar um contrato.

por ex:

Agente : Luisa Artista : Ana

Ja procurei no google e nao encontro nada...

Se vocês pudessem me dar exemplos de código agradeço muito.

obrgd e comprimentos....

Edited by apocsantos
Posted

epa .. isso está uma confusão ... além da estruturação da aplciação não estar correctamente feita

1ª regra de criação de variáveis : declarar-las onde estas são relevantes

só isso basta para dizer que pelo aspecto da informação que apresentas, só deverias ter duas variáveis estáticas que seriam de pessoas e eventos.

um contacto é informação de uma pessoa, se essa pessoa tiver mais que um contacto, então será uma lsita de contacto, mas não deixa de ser informação associada a uma pessoa, por outras palavras : deverá ser uma variável da classe Pessoa.

a estruturação de classes Pessoa e suas derivações está completamente errada.

1º - toda a gente tem número fiscal, a minha filha tinha duas semanas e já tinha NIF, isso não é previlégio de um grupo de Pessoa's a que chamas Sujeito's

2º - A classe Sujeito não faz sentido, qual a diferença entre Pessoa e Sujeito ?

3º - Artista e Agente é que deveriam ser classes derivadas de Pessoa

e isto é o início porque não faço ideia do enunciado do trabalho

IRC : sim, é algo que ainda existe >> #p@p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.