PUCRS
Faculdade de Informática
Laboratório de Programação II
Trabalho II - 2008/II
Criar um programa capaz de controlar um campeonato de futebol. O campeonato é
disputado por um conjunto de clubes.
O programa deve utilizar uma biblioteca de criação de interfaces
gráficas. Veja este link. Detalhes sobre este tópico serão apresentados em sala de aula. Sugere-se utilizar as bibliotecas wxWidgets ou Qt.
Existem três classes, pelo menos: Clube, Partida e Tabela.
A classe Clube representa um clube/time. A lista de nomes de clubes é lida
de um arquivo “clubes.txt”, com um nome de clube por linha. O programa deve
montar uma lista de objetos da classe Clube.
O conjunto de partidas e seus resultados
é lido de um arquivo “partidas.txt”, no seguinte formato: uma linha contém o
resultado de uma partida, como “Palmeiras 2 x 2 São Paulo”. A classe Partida representa uma partida e mantém
o nome do clube mandante, do clube visitante, e os gols marcados por cada um na
partida. O programa deve ler os resultados do arquivo e criar uma lista de
objetos da classe Partida. Para obeter
Existe uma classe chamada Tabela, que é construída com base na
lista de objetos da classe Clube e objetos da classe Partida. Com base nos
mesmos, a Tabela computa e armazena para cada clube: partidas jogadas, pontos
ganhos, número de vitórias, número de empates, número de derrotas, saldo de
gols, gols feitos e gols sofridos.
Para obter dados atualizados do Campeonato Brasileiro de Futebol 2008, sugere-se pesquisar no google por tabela do campeonato brasileiro.
Para fins de teste, os arquivos partidas-rodada31.txt e clubes.txt podem ser utilizados.
A imagem abaixo ilustra uma tabela do campeonato brasileiro de futebol
(fonte: globoesporte.globo.com).
O programa deverá atender aos seguintes requisitos:
- Utilizar uma biblioteca de criação de interfaces
gráficas. Todo a interação com o programa
deverá ser realizada através desta interface; Para maiores detalhes veja este link .
- Possuir um método imprimeTabela na classe Tabela. Este
método deverá apresentar na tela a tabela do
campeonato de maneira formatada. Sugere-se utilizar um formato semelhante ao da tabela apresentada acima;
- Possuir um método exportaTabela na classe Tabela. Este método deverá gerar um arquivo HMTL de maneira formatada. Sugere-se utilizar um formato semelhante ao da tabela apresentada acima. Veja abaixo algumas dicas de como gerar um arquivo HTML;
- Nos dois itens acima deve ser possível escolher até que rodada se deseja apresentar a pontuação;
- Apresentar um diagrama com a evolução de um certo time ao longo das rodadas do campeonato.
Geração de um arquivo HTML
Para criar um arquivo HTML programa em C/C++ tem que gravar o arquivo no formato do HMTL.
Imagine que se tenha uma classe que gerencia a gravação (HTMLClass) e
que ela tenha um método Grava, que grava uma string em um arquivo.
Veja
o exemplo abaixo:
HTMLClass ArqHTML("teste,html");
ArqHTML.grava("<html<");
ArqHTML.grava("<title>Título da Página</title>");
ArqHTML.grava("<body>");
ArqHTLM.grava("<h1>");
ArqHTLM.grava("Cabeçalho da Página");
ArqHTLM.grava("</h1>");
ArqHTLM.grava("<br>Linha 1<br>");
ArqHTLM.grava("<br>Linha 2<br>");
ArqHTLM.grava("<span style="font-weight: bold;">");
ArqHTLM.grava("Frase em negrito");
ArqHTLM.grava("<br>Linha 3<br>
ArqHTLM.grava("</span>");
ArqHTLM.grava("</body>");
ArqHTLM.grava("</html>");
ArqHTML.close();
Isto deve gerar um arquivo assim:
<html>
<title>Título da Página</title>
<body>
<h1>Cabeçalho da Página</h1>
<br>Linha 1<br>
<br>Linha 2<br>
<span style="font-weight: bold;">Frase em negrito</span>
<br>Linha 3<br>
</body>
</html>
Isto é um arquivo HTML. Entre os simbolos < > estão as chamadas TAGs de HTML.
Para ver quais as tags devem ser usadas para formatar um texto em HTML, sugiro utilizar o editor NVU. Ele permite a edição do texto e ao mesmo tempo a visualização do fonte em HTML.
O trabalho, que deverá
ser desenvolvido individualmente, deverá ser entregue no dia 26/11/2008 ANTES do inicio
da aula.
Entregas fora do prazo serão aceitas, porém serão
descontados dois ponto por dia de atraso, com o limite máximo de 2(dois) dias.
Cópia de trabalhos caracteriza fraude escolar e nesse caso, todos os envolvidos terão a sua nota anulada.