PUCRS
Faculdade de Informática
Programação para Engenharia II
Trabalho I - 2008/I
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:
- um método que recebe o ano desejado por parâmetro.
- um método que calcula e retorna o dia da semana em que inicia determinado mês, recebido como parâmetro. Para realizar esse cálculo, veja a fórmula no final deste enunciado.
- um método que constrói e exibe na tela o calendario de um determinado mês,
recebido como parâmetro. Obviamente, este método
irá utilizar o anterior para descobrir em que dia o mês
deve começar.
- um método que exibe o calendário completo
(todos os meses) do ano informado anteriormente na tela. Este
método utilizará o método anterior para exibir
cada mês.
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.
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.
O trabalho, que deverá
ser desenvolvido individualmente, deverá ser entregue no dia 06/05/2008 durante o horário da aula.