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
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

AED Lab 01 Sab

  • 1.
    Pontif´ Universidade Cat´licade 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(intx); 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