Post on 27-May-2015
Pontifıcia Universidade Catolica de Minas GeraisBacharelado em Sistemas de InformacaoAlgoritmos e Estruturas de Dados - 2009/2Waldir Ribeiro Pires Junior
Laboratorio 1: entregar ate 28/08/2009
Observacoes:
• Deverao ser entregues o codigo fonte em C# (apenas os arquivos .cs) e a documentacao.
• A documentacao do programa deve conter:
– uma breve descricao do programa;
– o manual de utilizacao do programa;
– analise de complexidade de todos os metodos implementados;
– um relatorio de testes que especifique os testes realizados e resultados obtidos.
• Devem ser realizados testes para todos os metodos da classe, abordando o funcionamentonormal e tratamentos de erros.
• Metodos e atributos auxiliares podem ser inseridos na classe mas nao e permitido alterar aassinatura nem exlcuir metodos ou atributos da interface.
• O metodo principal do programa deve ser criado em Principal.cs.
• Nao serao aceitos trabalhos com erro de compilacao.
1. Implemente uma classe Data contendo a seguinte assinatura:
using System;
namespace Data {
public class Data{
private int dia, mes, ano;
public Data();
public Data(int d, int m, int a);
public Data(Data data);
public void alteraData(int d, int m, int a);
public bool valida();
public int maiorDia();
public bool bissexto();
public void imprimeData();
public void proximoDia();
public void proximoMes();
public void proximoAno();
public void somaDia(int x);
1
public void somaMes(int x);
public void somaAno(int x);
public int compara(Data data);
}
}
Descricao:
• Construtor padrao: inicializa atributos da classe com os valores dia=1, mes=1, ano=2000
• Construtor alternativo 1: inicializa atributos com dados passado por parametro
• Construtor alternativo 2: inicializa atributos a partir de outro objeto do tipo Data
• alteraData(d, m a): altera atributos para uma nova data
• valida(): verifica se a data esta correta, deve-se considerar ano bissexto
• maiorDia(m): retorna o maior dia de mes corrente
• bissexto(): verifica se o ano corrente e bissexto
• imprimeData(): imprime a data no formato d/m/a
• proximoDia(): altera data para proximo dia
• proximoMes(): altera data para proximo mes
• proximoAno(): altera data para proximo ano
• somaDia(x): soma x dias ao dia atual
• somaMes(x): soma x meses ao mes atual
• somaAno(x): soma x anos ao ano atual
• compara(data): compara data corrente com objeo data, retorna -1, 0 ou 1 se data correntefor menor, igual ou maior que data
2