PUCRS
Faculdade de Informática
Laboratório de Programação II

Trabalho II - 2008/II

Descrição

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).

Requisitos


O programa deverá atender aos seguintes requisitos:

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.


Entrega

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.