Ian Curtis Posted May 20, 2014 at 06:14 PM Report #556400 Posted May 20, 2014 at 06:14 PM Boas, estou à procura de ajuda para realizar um trabalho para a universidade. Vou colocar em anexo o trabalho que já tentei realizar até agora, e o enunciado do projecto. Espero que alguém me possa ajudar 🙂 http://www.speedyshare.com/KW9Ph/Projeto.rar
HappyHippyHippo Posted May 20, 2014 at 06:38 PM Report #556402 Posted May 20, 2014 at 06:38 PM em que ponto do enunciado tens dúvidas ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Ian Curtis Posted May 20, 2014 at 07:57 PM Author Report #556407 Posted May 20, 2014 at 07:57 PM O verdadeiro problema é fazer o main, porque não sei o que tenho de lá colocar. E o frontend, a interactividade, acho que vou ter alguns problemas a fazê-lo.. Ainda sou novato nestas matérias..
charlie_v Posted May 21, 2014 at 09:45 AM Report #556441 Posted May 21, 2014 at 09:45 AM (edited) onde queres colocar o main? Já desenvolveste o frontend? A mim parece-me que vais precisar de mais algumas classes na tua 'Resolução' para conseguires desenvolver todo o projeto. Em que pontos específicos precisas de ajuda? Edited May 21, 2014 at 09:52 AM by charlie_v
HappyHippyHippo Posted May 21, 2014 at 09:55 AM Report #556443 Posted May 21, 2014 at 09:55 AM tenta resolver de outra forma. - primeiro cria todo o sistema de gestão de dados, isto é, classes que guardam e manipulam os elementos do projecto (jogadores, equipas, sistema de persistência, etc). - segundo, cria uma aplicação em consola que irá testar dos os pontos relevantes dessas classes. sem menus ou outro tipo de interacção. é tudo hard-coded onde somente irá criar/alterar/remove dados ou associações entre objecto e apresentar listagem para determinar se está tudo correcto. - terceiro, vê alguns video no youtube sobre utilização do SWING ou JavaFX (acho que vem substituir tudo o que existe actualizamente) para teres uma noção do que é e como se faz, faz pequenos testes de criação de janelas e outros elementos visuais que achas que irás necessitar mas sem usar as classes que criaste anteriormente. este código é para praticar e "deitar para o lixo". - quarto, desenha no papel as janelas que necessitas - quinto e último, cria as janelas que desenhaste juntando o código criado inicialmente. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Ian Curtis Posted May 21, 2014 at 02:40 PM Author Report #556485 Posted May 21, 2014 at 02:40 PM Que classes acham mais que preciso? Na criação do main ( não sei o que tenho de lá colocar ) e nas classes, podem surgir algumas dúvidas que vou tentar tirar à medida que for fazendo.. Quanto a resolver de outra forma, não percebi bem como fazer isso (sou mesmo leigo nesta matéria :\ ) -O sistema de gestão de dados de que falas não são as classes que criei? -Para criar uma aplicação em consola para testar como faço? :\ (Estive a pesquisar, e a única coisa que consegui além do código básico que tenho tentado até agora, foi fazer uma calculadora..) -Aconselhas algum tutorial de JavaFX? E devo ir por aí?
charlie_v Posted May 21, 2014 at 04:20 PM Report #556494 Posted May 21, 2014 at 04:20 PM (edited) Há várias maneiras de abordar o problema. Vais precisar de classes para gerir os vários grupos e os respectivos jogos, classes onde possas guardar e manipular os elementos de que necessitas, por exemplo, lista de jogos, lista de seleções, lista de grupos, lista de jogadores, etc. Estas permitem-te aceder/manipular/guardar/remover objetos que vais criando ou precisarás de criar quando quiseres testar o funcionamento da tua aplicação como referiu o ' HappyHippyHippo' e, para quando a colocares a funcionar totalmente. Quanto ao JAVAFX existem imensos tutoriais no Youtube como: https://www.youtube.com/embed/jUEOWVjnIR8?feature=oembed Para testares a tua aplicação na consola tens de idealizar uma situação ou seja, por exemplo o funcionamento de um jogo. A título de exemplo, podes no teu main() criar correctamente 2 equipas e em seguida um jogo que envolva essas 2 equipas. Em seguida fazes vários testes aos métodos que definiste para ambas as classes : Seleção e Jogo. Desta forma consegues testar se os métodos estão bem escritos e, ao mesmo tempo, se o resultado retornado é o que necessitas/esperavas. É um exemplo simplista porque a tua aplicação vai precisar de um pouco mais de complexidade contudo, com pequenos testes consegues ir corrigindo e melhorando o teu código. Edited May 21, 2014 at 04:22 PM by charlie_v
Ian Curtis Posted May 21, 2014 at 04:56 PM Author Report #556511 Posted May 21, 2014 at 04:56 PM Não posso por exemplo criar uma classe com o nome Listas e nela criar vários Arrays (para lista de jogos, lista seleções, lista jogadores... etc)? Era possível manipular esses Arrays certo? Já vi alguns tutoriais de Swing e AWT, mas não estou a ver como posso relacionar o código (das classes) com as Janelas :\
charlie_v Posted May 21, 2014 at 09:17 PM Report #556536 Posted May 21, 2014 at 09:17 PM (edited) Não posso por exemplo criar uma classe com o nome Listas e nela criar vários Arrays (para lista de jogos, lista seleções, lista jogadores... etc)? Era possível manipular esses Arrays certo? Já vi alguns tutoriais de Swing e AWT, mas não estou a ver como posso relacionar o código (das classes) com as Janelas :\ sim podes criar somente uma classe Listas e nela construir todos os Set's, Map's e ArrayList's que quiseres (: sim é possível manipulá-los. Vais ter de definir métodos para aceder e modificar cada uma das listas obviamente, é até possível que consigas utilizar um mesmo método para mais do que uma das listas, mas deves evitar isso. Cada classe tem os seus Campos e Métodos que definem e permitem manipular os Objetos dessa Classe. Não deves misturar Seleções com Jogadores ou com Jogos na mesma classe. Vou ver se te consigo dar um exemplo concreto (ainda que esta não seja a forma recomendável de fazer isto): import java.util.List; import java.util.ArrayList; import java.util.Set; import java.util.HashSet; public class Listas { public static ArrayList<Jogadores> listaJogadores = new ArrayList<>(); public static Set<Selecao> listaSelecoes = new HashSet<>(tamanhoPretendido); //Exemplos de métodos public static void addObjetoJogador(Jogadores jogador) { listaJogadores.add(jogador); } public static void addObjetosSelecao(HashSet selecoes) { listaSelecoes.addAll(selecoes); } public static Selecao procuraSelecao(String nomeSelecao) { //objeto do tipo Selecao Selecao resultado = null; //ciclo foreach for(Selecao s : listaSelecoes) { if (s.getNomeSelecao().equals(nomeSelecao)) { resultado = s; } } return resultado; } public static void listarTodosJogadores() { for(Jogadores j : listaJogadores) { System.out.println(j.toString()); //Método toString() deve estar escrito na classe Jogadores } } } Edited May 22, 2014 at 09:59 PM by charlie_v
Ian Curtis Posted May 21, 2014 at 10:37 PM Author Report #556547 Posted May 21, 2014 at 10:37 PM Não sei como implementar os HashSets, vou pesquisar e em breve trago as minhas dúvidas. Obrigado desde já 🙂
charlie_v Posted May 21, 2014 at 10:47 PM Report #556550 Posted May 21, 2014 at 10:47 PM Não sei como implementar os HashSets, vou pesquisar e em breve trago as minhas dúvidas. Obrigado desde já 🙂 São semelhantes ao ArrayList na medida em que implementam os mesmos métodos ( add(), addAll(), remove(), iterator(), get(), equals(), etc) mas o Set não preserva a ordem pela qual os elementos lhe são adicionados (salvo no SortedSed) mas acima de tudo, o Set não permite elementos duplicados. Além disso, o ArrayList não precisa de ter um tamanho pré-definido quando é criado mas o tamanho do HashSet deve ser definido à partida.
Ian Curtis Posted May 23, 2014 at 01:23 PM Author Report #556780 Posted May 23, 2014 at 01:23 PM Então qual a vantagem de aplicar um HashSet em vez de um ArrayList? Posso obter melhores resultados, ou mais facilmente? O trabalho até agora ficou assim: http://www.speedyshare.com/ZcPqX/FIFA-WC-14.rar Como posso testar para ver se está tudo bem? (Já criei 8 Seleções e dois Grupos no main)
charlie_v Posted May 26, 2014 at 09:16 AM Report #556953 Posted May 26, 2014 at 09:16 AM Então qual a vantagem de aplicar um HashSet em vez de um ArrayList? Posso obter melhores resultados, ou mais facilmente? O trabalho até agora ficou assim: http://www.speedyshare.com/ZcPqX/FIFA-WC-14.rar Como posso testar para ver se está tudo bem? (Já criei 8 Seleções e dois Grupos no main) A vantagem é que se forem introduzidos 2 elementos iguais eles não ficam duplicados, ou seja se tentasses introduzir 2 jogos ou 2 jogadores com os mesmo atributos o 2º introduzido substituiria o 1º. Uma vez que já criaste um grupo e lhe atribuiste seleções cria um método que te gere os jogos do grupo, métodos que organizem as equipas segundo o critério de pontos e diferença de golos dentro do grupo e em seguida fazes o update desses jogos (podes ser tu próprio a atribuir resultados e golos como quiseres uma vez que é um teste). No final, verificas as estatísticas das equipas (se os resultados dos jogos estão corretos, se os pontos das equipas e as respetivas vitórias/empates/derrotas também) e verificas se os métodos que tratam os jogadores (golos, amarelos, presenças, etc) estão corretos e se realmente fazem o update às estatísticas de cada jogador.
Ian Curtis Posted May 26, 2014 at 11:02 AM Author Report #556969 Posted May 26, 2014 at 11:02 AM Uma vez que já criaste um grupo e lhe atribuiste seleções cria um método que te gere os jogos do grupo, métodos que organizem as equipas segundo o critério de pontos e diferença de golos dentro do grupo e em seguida fazes o update desses jogos (podes ser tu próprio a atribuir resultados e golos como quiseres uma vez que é um teste). Não sei como gerar um método que faça essas coisas, eu pareço um burro a olhar para um palácio x)
Ian Curtis Posted May 28, 2014 at 01:45 PM Author Report #557360 Posted May 28, 2014 at 01:45 PM O projecto já evoluiu um bocado mais e na consola, ao testar já aparece a seguinte informação: run: ----------------| |---------------- | Dados do Jogo 1 | ----------------| |---------------- Resultado: 2-1 Data: 10-06-2014 Hora: 18:50 Estádio: Maracaná Equipas: Brasil vs Croácia Equipa de Arbitragem: Chin, Zau, XINZAU Autores dos Golos: Neimar, Hulk, Rakitic _______________________________________________ ----------------|----------------|---------------- | | Dados do Grupo A | | ----------------|----------------|---------------- Selecções: Pontos: BRA - Brasil 6 HRV - Croácia 3 MEX - México 4 CMR - Camarões 0 _______________________________________________ ----------------------------------------------- Nome: Ronaldo Número da camisola: 10 Altura: 1.78 Peso: 78.0 Internacionalizações: 2 Golos: 13 Amarelos: 0 Vermelhos: 1 _______________________________________________ ----------------------------------------------- Nome: Messi Número da camisola: 10 Altura: 1.76 Peso: 68.0 Internacionalizações: 1 Golos: 15 Amarelos: 2 Vermelhos: 5 _______________________________________________ Ao todo, a seleção integra 5 membro(s). Ao todo, a seleção integra 5 membro(s). BUILD SUCCESSFUL (total time: 0 seconds) Na última parte, quando conta o número de membros por seleção, está a dar o mesmo número para todas as seleções. (o número de membros (jogadores, staff) que adiciono a cada seleção no main. Ele soma tudo) Alguma ideia? :\
joao90psilva Posted May 28, 2014 at 07:28 PM Report #557414 Posted May 28, 2014 at 07:28 PM O projecto já evoluiu um bocado mais e na consola, ao testar já aparece a seguinte informação: run: ----------------| |---------------- | Dados do Jogo 1 | ----------------| |---------------- Resultado: 2-1 Data: 10-06-2014 Hora: 18:50 Estádio: Maracaná Equipas: Brasil vs Croácia Equipa de Arbitragem: Chin, Zau, XINZAU Autores dos Golos: Neimar, Hulk, Rakitic _______________________________________________ ----------------|----------------|---------------- | | Dados do Grupo A | | ----------------|----------------|---------------- Selecções: Pontos: BRA - Brasil 6 HRV - Croácia 3 MEX - México 4 CMR - Camarões 0 _______________________________________________ ----------------------------------------------- Nome: Ronaldo Número da camisola: 10 Altura: 1.78 Peso: 78.0 Internacionalizações: 2 Golos: 13 Amarelos: 0 Vermelhos: 1 _______________________________________________ ----------------------------------------------- Nome: Messi Número da camisola: 10 Altura: 1.76 Peso: 68.0 Internacionalizações: 1 Golos: 15 Amarelos: 2 Vermelhos: 5 _______________________________________________ Ao todo, a seleção integra 5 membro(s). Ao todo, a seleção integra 5 membro(s). BUILD SUCCESSFUL (total time: 0 seconds) Na última parte, quando conta o número de membros por seleção, está a dar o mesmo número para todas as seleções. (o número de membros (jogadores, staff) que adiciono a cada seleção no main. Ele soma tudo) Alguma ideia? :\ boas ! tens cntg o ficheiro?? tenta fazer um array, posso te tentar ajudar, mas tenta enviar o ficheiro pra ver como esta isso !
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