Вы находитесь на странице: 1из 2

Registro de maiores pontuaes

Gonzalo Travieso
2013-05-03

Introduo

Para um primero trabalho usando orientao a objetos, vamos considerar a situao em que um programador
deve realizar a implementao de um trecho de cdigo seguido as especificaes indicadas pelo projeto como
um todo. Neste caso, o trecho de cdigo a implementar corresponde a apenas uma classe. Como parte do
desenvolvimento de um pedao qualquer de programa, importante que sejam desenvolvidos testes que permitam
verificar se esse cdigo est agindo de acordo com o esperado. No caso atual, o teste ser fornecido, e voc
precisa desenvolver uma classe que atenda os requisitos, inclindo passar no teste fornecido. Lembrem-se que
nenhum teste pode ser totalmente completo, ento possvel que uma classe que passa nos testes esteja mesmo
assim errada. Portanto, preste ateno em no apenas passar nos testes, mas em atender ao que solicitado.
Encare os testes como uma forma de ajudar a compreender o que foi pedido.

Placares de pontuao

Num mundo paralelo, voc est trabalhando numa equipe que est desenvovendo um jogo de computador, no
qual os jogadores participam de diversas disputas. Para cada uma delas, o jogador recebe uma pontuao que
um nmero inteiro (e pode ser negativo), de acordo com seu desempenho. Para estimular os jogadores, o jogo
mantm placares annimos (sem referncia a jogadores) das maiores pontuaes atingidas em cada uma das
disputas. O nmero de posies mostradas em cada placar definido apenas quando se cria o placar (no
fixo).
Voc precisa ento desenvolver uma classe cujos objetos representaro esses placares. Essa classe deve
satisfazer os seguintes critrios:
Seu nome Highest_scores.
Como indicado, o nmero de pontuaes que cabe num placar especificado ao criar o placar. Um mtodo
chamado capacity() dessa classe retorna o nmero de posies disponveis.
Em um dado instante, pode haver menos valores de pontuaes na disputa do que posies no placar. Um
mtodo chamado size() retorna o nmero de pontuaes atualmente armazenadas no placar.
A maior pontuao registrada em um placar retornada por um mtodo chamado highest_score().
Se quisermos saber todos os valores armazenados num placar, basta chamar o mtodo all_scores(), que
retorna um ponteiro para um array com as pontuaes em ordem decrescente, isto , a posio de ndice
0 tem o maior valor, a de ndice 1 o segundo maior valor, etc. O tamanho desse array retornado dados
pelo mtodo size(), citado acima.
Sempre que um jogador atinge o final de uma disputa, ser chamado, pelo programa que usa essa classe,
um mtodo de nome new_score(int), que registra a ocorrncia da pontuao passada como parmetro.
Esse mtodo no retorna nada, apenas registrando no objeto a pontuao fornecida, caso necessrio.

O que entregar

Voc receber dois arquivos:


test_score.cpp o programa de teste para ajudar a verificar se seu cdigo est correto.
Makefile O arquivo que permite compilar e testar a classe, usando respectivamente os comando make e make
test, depois que voc desenvolver o cdigo da classe.
1

Voc precisa criar dois arquivos:


highest_scores.h Deve ter a declarao da classe.
highest_scores.cpp Arquivo com a implementao de todos os mtodos da classe.
Leve em considerao tambm o seguinte:
Neste primeiro trabalho, voc no deve usar mtodos inline, mesmo para mtodos bem simples.
A classe precisa de pelo menos um construtor, para receber o nmero mximo de pontuaes no placar.
Decida de acordo com seu cdigo se a classe precisa tambm de um destruidor.
Voc deve pensar e decidir se a classe precisa de construtor de cpia e operador de atribuio. Caso
implemente, ou no, esses mtodos, explique sua deciso nos comentrios do cdigo.
Voc pode assumir que os mtodos highest_score() e all_scores() nunca sero chamados antes que
alguma pontuao seja inserida. Caso isso ocorresse, seria apropriado usar excees, que ainda no foram
estudadas. Portanto, suponha que o cliente ser bem comportando quanto a isto.
Em caso de dvidas sobre a forma de uso dos objetos ou dos mtodos, consulte o cdigo de teste. Lembrese que o cdigo de teste no pode ser alterado. Voc pode fazer testes adicionais, se julgar apropriado,
mas deve coloc-los em outro programa de teste.
Para ter certeza que seu cdigo ser avaliado corretamente, mesmo que use algum outro ambiente de
programao, antes de entregar o trabalho compile e teste usando o Makefile fornecido. No entregue
cdigo sem testar, mesmo que s tenha feito alteraes triviais desde o ltimo teste.
No se esquea que o cdigo vai ser julgado no apenas por se ele funciona ou no, mas tambm por se est
bem escrito (boa organizao do cdigo, identificadores apropriados para variveis e funes, comentrios
adequados mas no excessivos, etc.)
Voc deve criar um pacote (tar.gz, tar.bz2 ou zip) com os arquivos highest_scores.h e highest_scores.cpp
e entregar esse pacote pelo site STOA da disciplina.

Вам также может понравиться