PUCRS
Faculdade de Informática
Programação para Engenharia II

Trabalho I - 2008/I


Calendário Permanente

Descrição

Fazer um programa que exiba na tela o calendário de um ano selecionado, da seguinte forma:



January 2008
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

February 2008
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29

... até Dezembro.

Requisitos da Implementação


O programa deverá ser composto a partir de uma classe denominada Calendario, que deve apresentar os seguintes métodos:


Para calcular em que dia da semana determinada data (dia, mes, ano) cai, utilize a seguinte fórmula, onde todas as variáveis e divisões são inteiras:


a = (14 - mes) / 12;
y = ano - a;
m = mes + 12*a - 2;
d = (dia + y + y/4 - y/100 + y/400 + 31*m/12) % 7

No final, a variável d armazenará um número de 0 a 6, onde 0 => domingo ... 6 => sábado.

O programa deve ter também uma função main, onde pergunta-se ao usuário o ano desejado, cria-se um objeto da classe Calendario e chama-se o método responsável por exibir o calendário completo.



Entrega


O trabalho deverá consistir de um único arquivo .cpp contendo a classe Calendario e a função main. Esse arquivo deverá ser enviado para o email dentro do prazo indicado pelo sistema. Entregas fora do prazo serão aceitas, porém será descontado um ponto por dia de atraso, com o limite máximo de 3 dias.

Cópia de trabalhos caracteriza fraude escolar e nesse caso, todos os envolvidos terão a sua nota anulada.


Data de Entrega

O trabalho, que deverá ser desenvolvido individualmente, deverá ser entregue no dia 06/05/2008 durante o horário da aula.