LykyD 0 Posted July 13, 2015 Report Share Posted July 13, 2015 Boas pessoal, Estou de volta de um trabalho escolar, a elaborar uma aplicação em consola usando o Eclipse e surgiu-me um problema. A minha aplicação é para uma equipa de futebol para manter toda a informação desse clube actualizada. Resumidamente, o clube tem arraylist de escalões que por sua vez irá ter dirigentes, treinadores e jogadores, associados a diferentes escalões. Exemplo: Equipa --> Escalão Escolinhas --> Dirigentes, treinadores, jogos, jogadores --> Escalão Júniores --> Dirigentes, treinadores, jogos, jogadores --> Escalão Sérniores --> Dirigentes, treinadores, jogos, jogadores O meu problema é algo que não estou a conseguir implementar que me irá facilitar a continuação do projeto. Ou seja, no momento em que um dirigente efetue o login, eu gostaria de guardar a posição do escalão que está na ArrayList da equipa a que esse dirigente está associado numa variável, para que futuramente esse dirigente não poder efetuar alterações aos dados de outros escalões, ou sempre que esse dirigente efetuar o login, já se saber a que escalão pertence. Esta é a classe Equipa: package classesSec; import java.io.Serializable; import java.util.ArrayList; public class Equipa implements Serializable { private static final long serialVersionUID = 1L; private String nomeEquipa; private ArrayList<Escalao> escalao = new ArrayList<Escalao>(); private ArrayList<Medico> medico = new ArrayList<Medico>(); public Equipa(){} public Equipa(String nomeEquipa, Escalao escalao1, Medico medico1) { super(); this.nomeEquipa = nomeEquipa; this.escalao.add(escalao1); this.medico.add(medico1); } public String getNomeEquipa() { return nomeEquipa; } public void setNomeEquipa(String nomeEquipa) { this.nomeEquipa = nomeEquipa; } public ArrayList<Escalao> getEscalao() { return escalao; } public void setEscalao(Escalao escalao) { this.escalao.add(escalao); } public ArrayList<Medico> getMedico() { return medico; } public void setMedico(Medico medico) { this.medico.add(medico); } @Override public String toString() { return "Equipa [nomeEquipa=" + nomeEquipa + ", escalao=" + escalao + ", medico=" + medico + "]"; } } Esta é a classe Escalão: package classesSec; import java.io.Serializable; import java.util.ArrayList; public class Escalao implements Serializable { private static final long serialVersionUID = 1L; private String tipoEscalao; private int vitoria, empate, derrota; private String ab; private String tipoCampeonato; private ArrayList<Jogador> escalaoJ = new ArrayList<Jogador>(); private ArrayList<Treinador> escalaoT = new ArrayList<Treinador>(); private ArrayList<Dirigente> escalaoD = new ArrayList<Dirigente>(); private ArrayList<Treino> escalaoTr = new ArrayList<Treino>(); private ArrayList<Jogo> escalaoJo = new ArrayList<Jogo>(); public Escalao(){} public Escalao(int vitoria, int empate, int derrota, String ab, String tipoCampeonato, String tipoEscalao, Jogador escalaoJ1, Treinador escalaoT1, Dirigente escalaoD1, Treino escalaoTr1, Jogo escalaoJo1) { super(); this.vitoria = vitoria; this.empate = empate; this.derrota = derrota; this.ab = ab; this.tipoCampeonato = tipoCampeonato; this.tipoEscalao = tipoEscalao; this.escalaoJ.add(escalaoJ1); this.escalaoT.add(escalaoT1); this.escalaoD.add(escalaoD1); this.escalaoTr.add(escalaoTr1); this.escalaoJo.add(escalaoJo1); } public int getVitoria() { return vitoria; } public void setVitoria(int vitoria) { this.vitoria = vitoria; } public int getEmpate() { return empate; } public void setEmpate(int empate) { this.empate = empate; } public int getDerrota() { return derrota; } public void setDerrota(int derrota) { this.derrota = derrota; } public String getAb() { return ab; } public void setAb(String ab) { this.ab = ab; } public String getTipoCampeonato() { return tipoCampeonato; } public void setTipoCampeonato(String tipoCampeonato) { this.tipoCampeonato = tipoCampeonato; } public String getTipoEscalao() { return tipoEscalao; } public void setTipoEscalao(String tipoEscalao) { this.tipoEscalao = tipoEscalao; } public ArrayList<Jogador> getEscalaoJ() { return escalaoJ; } public void setEscalaoJ(Jogador escalaoJ) { this.escalaoJ.add(escalaoJ); } public ArrayList<Treinador> getEscalaoT() { return escalaoT; } public void setEscalaoT(Treinador escalaoT) { this.escalaoT.add(escalaoT); } public ArrayList<Dirigente> getEscalaoD() { return escalaoD; } public void setEscalaoD(Dirigente escalaoD) { this.escalaoD.add(escalaoD); } public ArrayList<Treino> getEscalaoTr() { return escalaoTr; } public void setEscalaoTr(Treino escalaoTr) { this.escalaoTr.add(escalaoTr); } public ArrayList<Jogo> getEscalaoJo() { return escalaoJo; } public void setEscalaoJo(Jogo escalaoJo) { this.escalaoJo.add(escalaoJo); } @Override public String toString() { return "Escalao [tipoEscalao=" + tipoEscalao + ", vitoria=" + vitoria + ", empate=" + empate + ", derrota=" + derrota + ", ab=" + ab + ", tipoCampeonato=" + tipoCampeonato + ", escalaoJ=" + escalaoJ + ", escalaoT=" + escalaoT + ", escalaoD=" + escalaoD + ", escalaoTr=" + escalaoTr + ", escalaoJo=" + escalaoJo + "]"; } } Esta é a classe Dirigente: package classesSec; import java.io.Serializable; public class Dirigente implements Serializable { private static final long serialVersionUID = 1L; private String user, pass; private String nomeDirigente; private int idade; private int numTele; private String nacionalidade; public Dirigente(){} public Dirigente(String user, String pass, String nomeDirigente, int idade, int numTele, String nacionalidade) { super(); this.user = user; this.pass = pass; this.nomeDirigente = nomeDirigente; this.idade = idade; this.numTele = numTele; this.nacionalidade = nacionalidade; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } public String getNomeDirigente() { return nomeDirigente; } public void setNomeDirigente(String nomeDirigente) { this.nomeDirigente = nomeDirigente; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } public int getNumTele() { return numTele; } public void setNumTele(int numTele) { this.numTele = numTele; } public String getNacionalidade() { return nacionalidade; } public void setNacionalidade(String nacionalidade) { this.nacionalidade = nacionalidade; } @Override public String toString() { return "Dirigente [user=" + user + ", pass=" + pass + ", nomeDirigente=" + nomeDirigente + ", idade=" + idade + ", numTele=" + numTele + ", nacionalidade=" + nacionalidade + "]"; } } Esta é a função que irá validar o login, onde pretendo aplicar a minha ideia: public static void validaLogin(ArrayList<Equipa> equipa, String user, String pass) throws IOException { @SuppressWarnings("resource") Scanner ler = new Scanner(System.in); int logado = 1, i = 0; String usernameTreinador = "", passwordTreinador = "", usernameDirigente = "", passwordDirigente = "", usernameMedico = "", passwordMedico = ""; Iterator<Escalao> it = equipa.get(0).getEscalao().iterator(); Iterator<Escalao> it5 = equipa.get(0).getEscalao().iterator(); Iterator<Treinador> it2; Iterator<Dirigente> it3; Iterator<Medico> it4 = equipa.get(0).getMedico().iterator(); while(it.hasNext()){ it2 = it.next().getEscalaoT().iterator(); it3 = it5.next().getEscalaoD().iterator(); while(it2.hasNext()){ Treinador t = it2.next(); if(user.equals(t.getUser()) && pass.equals(t.getPass())){ usernameTreinador = t.getUser(); passwordTreinador = t.getPass(); ler.nextLine(); } i++; } while(it3.hasNext()){ Dirigente d = it3.next(); if(user.equals(d.getUser()) && pass.equals(d.getPass())){ usernameDirigente = d.getUser(); passwordDirigente = d.getPass(); } } while(it4.hasNext()){ Medico m = it4.next(); if(user.equals(m.getUser()) && pass.equals(m.getPass())){ usernameMedico = m.getUser(); passwordMedico = m.getPass(); } } } if(user.equals("admin") && pass.equals("admin") || user.equals(usernameTreinador) && pass.equals(passwordTreinador) || user.equals(usernameDirigente) && pass.equals(passwordDirigente) || user.equals(usernameMedico) && pass.equals(passwordMedico)){ if(user.equals("admin") && pass.equals("admin")){ logado = 0; Menus.menuInicial(logado); } if(user.equals(usernameTreinador) && pass.equals(passwordTreinador)){ logado = 2; Menus.menuInicial(logado); } if(user.equals(usernameDirigente) && pass.equals(passwordDirigente)){ logado = 3; Menus.menuInicial(logado); } if(user.equals(usernameMedico) && pass.equals(passwordMedico)){ logado = 4; Menus.menuInicial(logado); } } else{ System.out.println("Erro nos dados de Login"); ler.nextLine(); user = ""; pass = ""; Menus.menuLogin(equipa, user, pass); } } Queira que nesta função, conseguisse arranjar maneira de saber a posição do escalão a que um determinado dirigente está associado. Para mais detalhes do código, é só pedir, que estarei disposto a partilhar. Se alguém me conseguir ajudar, ficarei agradecido. Link to post Share on other sites
HappyHippyHippo 1,162 Posted July 13, 2015 Report Share Posted July 13, 2015 não vou comentar o código de login, mas o que pedes é isto: while(it.hasNext()){ Escalao escalao = it.next(); // ... fazer tudo em relação à variável escalão ... } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
LykyD 0 Posted July 14, 2015 Author Report Share Posted July 14, 2015 Já fiz isso, e corri a arraylist do escalão, mas não consegui. Eu acredito que exista uma maneira de saber a qual escalão pertence um dirigente, e saber a posição que esse escalão ocupa na arraylist. tenho o sensação que é por causa de heranças ou hierarquias, algo do tipo. porque quando faço algo do género: equipa.get(0).getEscalao().get(numEscalao).getDirigente().get(numDirigente); eu tenho que efetuar sempre uma pergunta antes, para saber qual o escalao que estou a tratar, mas não devia já que cada dirigente não pode alterar dados de outros escaloes. a variavel numEscalao, devia conseguir obte-la no momento que um determinado dirigente efetue o login. Obrigado pela ajuda Link to post Share on other sites
HappyHippyHippo 1,162 Posted July 14, 2015 Report Share Posted July 14, 2015 já te disse como fazer: guardas a referência do objecto escalão da forma que te foi dito. nota : é óbvio que tens de parar o ciclo de pesquisa quando encontras o dirigente a ser pesquisado IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now