Olá amigos, foi-me proposto um problemão com pouco tempo para aprender e desenvolver, que está fora do meu horizonte de programador iniciante. é o seguinte
Pretende-se tratar a informação de um campeonato mundial de futebol. Já decorreu a fase de grupos
onde as equipas, de cada grupo, já jogaram entre si.
Parte da informação existente encontra-se armazenada num ficheiro de texto (PracticalWork.csv) com a
seguinte estrutura: Grupo,Equipa,Jogos,Vitorias,Empates,Derrotas,GolosMarcados,GolosSofridos
Exemplo:
A,Uruguai,3,3,0,0,5,0
B,Portugal,3,1,2,0,5,4
Com o objetivo de responder aos requisitos deste trabalho, recorra a modularização e estruturas de
dados indexadas (arrays) e implemente um programa em Java, orientado por um menu (descrevendo os
pontos pedidos), para permitir:
-
Ler a informação disponível no ficheiro de texto (PracticalWork.csv) e armazená-la em
memória (evitar variáveis globais); -
Inserir manualmente informação de uma seleção (B,Portugal,3,1,2,0,5,4). Não permitir equipas
com o mesmo nome; -
Calcular e armazenar em memória a pontuação de todas as equipas. O número de pontos de
uma equipa é calculado através da seguinte fórmula: Pontos = Vitorias * 3 + Empates * 1; -
Calcular e armazenar em memória a classificação de todas as equipas nos respetivos grupos. A
classificação obtém-se pela ordenação decrescente dos seguintes critérios, por ordem de
importância: (1) número de pontos; (2) golos marcados; (3) menos golos sofridos; (4) menor
nome da equipa (ordem alfabética); -
Listar a classificação das equipas por grupo;
-
Listar as equipas cujos golos marcados é igual ao máximo de golos marcados;
-
Listar as equipas com um determinado número de golos sofridos (definido pelo utilizador);
-
Listar as equipas que têm mais golos sofridos do que golos marcados, ordenadas
alfabeticamente; -
Listar o primeiro classificado de cada grupo;
-
Listar informação completa de uma equipa (definida pelo utilizador);
-
Criar um ficheiro de texto (Statistics.txt) com estatísticas dos jogos, respeitando o seguinte
conteúdo:
Total de jogos=
Total de vitórias=
Total de empates=
Total de derrotas=
Total de golos marcados=
Total de golos sofridos=
Média de golos marcados por jogo= (1 casa decimal)
Média de golos sofridos por jogo= (1 casa decimal) -
Remover da memória as equipas que não vão disputar a fase seguinte (3º e 4º classificados de
cada grupo); -
Criar um ficheiro de texto (FinalStage.csv) com as equipas que vão disputar a fase seguinte do
campeonato, com o seguinte conteúdo por linha:
,<Classificação no Grupo>,, -
Criar um ficheiro de texto (FinalStageGames.txt) com os jogos da fase final. Os jogos serão
disputados da seguinte forma:
GrupoA 1º - GrupoB 2º;
GrupoA 2º - GrupoB 1º;
GrupoC 1º - GrupoD 2º;
GrupoC 2º - GrupoD 1º;
…
O ficheiro de texto deve respeitar o seguinte conteúdo:
,<Classificação no Grupo>, - ,<Classificação no Grupo>,
OBS: Todas as listagens devem apresentar-se devidamente formatadas, e os valores das colunas
alinhados na vertical (números à direita e texto à esquerda) da seguinte forma:
| Grp | Pos | Equipa | Pts| J | V | E | D | GM | GS | GD |
|=====|=====|=================|====|====|====|====|====|====|====|====|
|–5--|–5--|------------17—|-4–|-4–|-4–|-4–|-4–|-4–|-4–|-4–|
…
Exemplo:
| Grp | Pos | Equipa | Pts| J | V | E | D | GM | GS | GD |
|=====|=====|=================|====|====|====|====|====|====|====|====|
|B | 2|Portugal | 5| 3| 1| 2| 0| 5| 4| 1|
Isto aqui foi o que já fiz, e não tenho ideia de como desenvolver o resto, não sei se estou indo pelo caminho certo nem se o meu codigo consegue fazer a leitura do ficheiro.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Formatter;
import java.util.Scanner;
public class Main {
public static void main(String[] abc) throws FileNotFoundException{
String lin;
String[ ][ ] selecao;
int l,c;
Scanner fi=new Scanner(new File(“C:\jogadores.txt”));
while(fi.hasNextLine()){
for (int i=0; i<l; i++){
for (int j=0; j<c; j++){
lin = fi.nextLine();
jogador[l][c] = lin.split(":");
}
}
}
for(int p=0; p<jogador.length; p++) {
System.out.println("Nº"+p+"nome"+selecao[l]+"golos"+selecao[c]);
}
}
}