1. Pontif´ Universidade Cat´lica de Minas Gerais
ıcia o
Bacharelado em Sistemas de Informa¸˜o
ca
Algoritmos e Estruturas de Dados - 2009/2
Waldir Ribeiro Pires Junior
Laborat´rio 1: entregar at´ 28/08/2009
o e
Observa¸oes:
c˜
• Dever˜o ser entregues o c´digo fonte em C# (apenas os arquivos .cs) e a documenta¸ao.
a o c˜
• A documenta¸ao do programa deve conter:
c˜
– uma breve descri¸ao do programa;
c˜
– o manual de utiliza¸˜o do programa;
ca
– an´lise de complexidade de todos os m´todos implementados;
a e
– um relat´rio de testes que especifique os testes realizados e resultados obtidos.
o
• Devem ser realizados testes para todos os m´todos da classe, abordando o funcionamento
e
normal e tratamentos de erros.
• M´todos e atributos auxiliares podem ser inseridos na classe mas n˜o ´ permitido alterar a
e a e
assinatura nem exlcuir m´todos ou atributos da interface.
e
• O m´todo principal do programa deve ser criado em Principal.cs.
e
• N˜o ser˜o aceitos trabalhos com erro de compila¸ao.
a a c˜
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
2. public void somaMes(int x);
public void somaAno(int x);
public int compara(Data data);
}
}
Descri¸˜o:
ca
• Construtor padr˜o: inicializa atributos da classe com os valores dia=1, mes=1, ano=2000
a
• Construtor alternativo 1: inicializa atributos com dados passado por parˆmetro
a
• 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 est´ correta, deve-se considerar ano bissexto
a
• maiorDia(m): retorna o maior dia de mˆs corrente
e
• bissexto(): verifica se o ano corrente ´ bissexto
e
• imprimeData(): imprime a data no formato d/m/a
• proximoDia(): altera data para pr´ximo dia
o
• proximoMes(): altera data para pr´ximo mˆs
o e
• proximoAno(): altera data para pr´ximo ano
o
• somaDia(x): soma x dias ao dia atual
• somaMes(x): soma x meses ao mˆs atual
e
• somaAno(x): soma x anos ao ano atual
• compara(data): compara data corrente com objeo data, retorna -1, 0 ou 1 se data corrente
for menor, igual ou maior que data
2