Sistema Futebol - Java ARTEFATO 01 Indice 1. CLASSE PESSOA... 2 2. CLASSE JOGADOR... 3 3. CLASSE TECNICO... 5 4. CLASSE SISTEMAFUTEBOL... 6 5. CLASSE SISTEMAFUTEBOLMAIN... 10 6. EXERCÍCIOS... 10 AT01 Sistema Futebol Page 1 of 11
1. Classe Pessoa import javax.swing.joptionpane; public class Pessoa { protected String nome, RG; public Pessoa(){ public Pessoa(String nome, String RG){ //Chamando o construtor da superclasse this.nome = nome; //Armazenando o RG enviado para o construtor this.rg = RG; public void imprimenome() { System.out.println("Nome: " + nome); public String retornanome(){ return nome; public void imprimetodososdados() { String result; result = "Dados cadastrais\nnome: " + nome + "\nrg: " + RG; JOptionPane.showMessageDialog( null, result, "Dados cadastrais", JOptionPane.INFORMATION_MESSAGE); public void solicitadados() { JOptionPane.showMessageDialog( null, "Digite os dados da pessoa a ser cadastrada", "Dados da pessoa", JOptionPane.INFORMATION_MESSAGE); solicitanome(); solicitarg(); public void solicitanome() { nome = JOptionPane.showInputDialog("Digite o nome:"); Page 2 of 11
public void solicitarg() { RG = JOptionPane.showInputDialog("Digite o RG:"); 2. Classe Jogador //Esta é uma subclasse da classe Pessoa import javax.swing.joptionpane; public class Jogador extends Pessoa { private String posicao; int flagreserva = 0;//quando for zero, significa que jogador nao esta na reserva --> 0=FALSE public Jogador(){ public Jogador(String nome, String RG, String posicao){ super(nome, RG); this.posicao = posicao; public void imprimeposicao() { System.out.println("posicao: " + posicao); public void switchreserva(){ //Troca jogador de reserva <-> titular if(flagreserva == 0 ) else flagreserva = 1; flagreserva = 0; public String retornaposicao(){ Page 3 of 11
return posicao; public void imprimetodososdados() { String result; posicao; result = "Dados cadastrais\nnome do jogador: " + nome + "\nrg: " + RG + "\nposicao do jogador : " + if(flagreserva==1) result = result + "\njogador na reserva"; JOptionPane.showMessageDialog( null, result, "Dados cadastrais do jogador", JOptionPane.INFORMATION_MESSAGE); public void solicitaposicao() { posicao = JOptionPane.showInputDialog("Digite a posição do jogador:"); public void setaposicao(string posicao) { this.posicao = posicao; public void solicitastatus(){ String opcao, s = "Jogador esta na reserva (0 - não / 1 - sim)"; opcao = JOptionPane.showInputDialog(s); flagreserva = Integer.parseInt(opcao); public void solicitadados() { super.solicitadados(); solicitastatus(); solicitaposicao(); Page 4 of 11
3. Classe Tecnico //Esta é uma subclasse da classe Pessoa import javax.swing.joptionpane; public class Tecnico extends Pessoa { private String timecomandado; public Tecnico(){ public Tecnico(String nome, String RG, String timecomandado){ //Chamando o construtor da superclasse super(nome, RG); //Armazenando o time comandado enviado pelo construtor this.timecomandado = timecomandado; public void imprimetimecomandado() { System.out.println("time Comandado: " + timecomandado); public String retornatimecomandado(){ return timecomandado; public void imprimetodososdados() { String result; result = "Dados cadastrais\nnome do treinador: " + nome + "\nrg: " + RG + "\ntime liderado pelo treinador: " + timecomandado; JOptionPane.showMessageDialog( null, result, "Dados cadastrais do treinador", JOptionPane.INFORMATION_MESSAGE); public void solicitatimecomandado() { timecomandado = JOptionPane.showInputDialog("Digite o time liderado pelo treinador:"); public void solicitadados() { super.solicitadados(); solicitatimecomandado(); Page 5 of 11
4. Classe sistemafutebol import java.util.*; import java.text.decimalformat; import javax.swing.joptionpane; public class sistemafutebol{ //O array list é uma collection da plataforma JAVA //Nela podemos armazenar, deletar objetos de classes diferentes e procurar pelos mesmos //É utilizada neste programa, para armazenar os jogadores e tecnicos de uma seleçao private ArrayList selecao; public sistemafutebol(){ selecao = new ArrayList(); public void administraselecao(){ Tecnico t = new Tecnico(); String s="", mensagem = "Opcoes de administracao do sistema\n1-adicionar treinador\n2-adicionar jogador\n3-ver integrantes da seleção"; mensagem = mensagem + "\n4-localisar jogador pelo numero da camisa\n5-trocar jogador reserva <- > titular\n6-trocar jogadores de posicao\n7-sair"; int opcao=0; for(;;){ try{ s = JOptionPane.showInputDialog(mensagem); opcao = Integer.parseInt(s); switch(opcao){ case 1: t.solicitadados(); selecao.add(t); break; case 2: Jogador j = new Jogador(); j.solicitadados(); selecao.add(j); break; case 3: imprimetodososdados(); break; case 4: localizarjogador(); Page 6 of 11
break; case 5: trocarjogadorreservatitular(); break; case 6: trocarjogadoresdeposicao(); break; case 7: catch (java.lang.numberformatexception e) {// Catch any IO exceptions. JOptionPane.showMessageDialog(null, "Na foi digitada opcao valida!\ndigite novamente!", "Mensagem de erro", JOptionPane.ERROR_MESSAGE); public void imprimetodososdados() { Pessoa p; if(!verificaintegrantescadastrados()) for(int m=0; m<selecao.size(); m++){ p = (Pessoa) selecao.get(m); p.imprimetodososdados(); private boolean verificaintegrantescadastrados(){ //Verificando se existem pessoas cadastradas if(selecao.size() == 0){ JOptionPane.showMessageDialog( null, "Nao existem integrantes cadastrados no time!", "Mensagem", JOptionPane.ERROR_MESSAGE); return false; return true; public Jogador retornajogador(string numerodacamisa) { Jogador p; String posicao = ""; Page 7 of 11
//Procurando se existe jogador na lista com o numero da camisa enviado for(int m=0; m<selecao.size(); m++){ p = (Jogador) selecao.get(m); posicao = p.retornaposicao(); //Caso seja igual, retorna o objeto if (Integer.parseInt(posicao) == Integer.parseInt(numeroDaCamisa)) return p; //Caso nao encontre, imprime mensagem e retorna NULL JOptionPane.showMessageDialog( null, "Nao existe jogador cadastrado com este numero de camisa", "Mensagem", JOptionPane.ERROR_MESSAGE); return null; public void localizarjogador(){ Jogador j; String camisa, s = "Digite o número da camisa do Jogador"; if(!verificaintegrantescadastrados()) camisa = JOptionPane.showInputDialog(s); j = retornajogador(camisa); if(j!= null) j.imprimetodososdados(); public void trocarjogadorreservatitular(){ //Este metodo, troca jogador de reserva para titular e vice-versa Jogador j; String camisa, s = "Digite o número da camisa do Jogador)"; if(!verificaintegrantescadastrados()) Page 8 of 11 camisa = JOptionPane.showInputDialog(s); j = retornajogador(camisa); if(j!= null) { j.switchreserva(); j.imprimetodososdados();
public void trocarjogadoresdeposicao(){ //Este metodo, troca jogador de reserva para titular e vice-versa Jogador j1, j2; String camisa1, camisa2, s = "Digite o número da camisa ", posicao1, posicao2; if(!verificaintegrantescadastrados()) //Solicitando o numero da camisa do primeiro jogadro camisa1 = JOptionPane.showInputDialog(s + " do primeiro jogador"); j1 = retornajogador(camisa1); //CAso nao exista, fornece mensagem de erro e sai da funcao if(j1 == null) j1.imprimetodososdados(); //Solicitando o numero da camisa do segundo jogadro camisa2 = JOptionPane.showInputDialog(s + " do segundo jogador"); j2 = retornajogador(camisa2); //CAso nao exista, fornece mensagem de erro e sai da funcao if(j2 == null) j2.imprimetodososdados(); posicao1 = j1.retornaposicao(); posicao2 = j2.retornaposicao(); j1.setaposicao(posicao2); j2.setaposicao(posicao1); JOptionPane.showMessageDialog(null, "Alteracao de posicao realizada com sucesso!", "Mensagem de erro", JOptionPane.INFORMATION_MESSAGE); Page 9 of 11
5. Classe sistemafutebolmain public class sistemafutebolmain{ public static void main(string[] args) { sistemafutebol s = new sistemafutebol(); //chamando o metodo da classe sistemafutebol que apresenta as opcoes do sistema s.administraselecao(); //saindo do sistema System.exit(0); 6. Exercícios Baseado nas classes descritas nos itens de 1 a 5 deste documento, realize as seguintes tarefas: No Eclipse, crie um novo projeto de nome sistemafutebol No projeto sistemafutebol insira as classes: Pessoa, Tecnico, Jogador, sistemafutebol, FutebolMain Teste o projeto e veja o mesmo funcionando. Acerte o nome da classe sistemafutebol para o padrão internacional de nomenclatura SistemaFutebol e acerte o programa para ele voltar a funcionar. Insira a propriedade endereço do tipo String na classe Pessoa e garanta o funcionamento do programa. Crie um documento word e para cada uma das 5 classes descreva: o Finalidade o Métodos que ela possui o Finalidade de cada método o Membros de dados o Finalidade de cada membro de dado Responda as seguintes questões: Para que serve o ArrayList na classe sistemafutebol? O que significa a instrução: public class Tecnico extends Pessoa Page 10 of 11
No código abaixo, para que servem as instrução (i) e (ii) public Jogador(String nome, String RG, String posicao){ super(nome, RG); //(i) this.posicao = posicao; //(ii) Para que serve o método verificaintegrantescadastrados() da classe sistemafutebol Page 11 of 11