• Domingo 22 de Diciembre de 2024, 13:08

Autor Tema:  Cambio De Java A C++ Orientado A Objetos  (Leído 1054 veces)

markdark

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
Cambio De Java A C++ Orientado A Objetos
« en: Domingo 24 de Febrero de 2008, 04:52 »
0
hola tengo este problema... esta es una tarea que me dejaron en la universidad primero me dijeron que haga este problema en java que lo logre hacer ahora me piden que lo convierta a c++ lo cual se me hace dificil la verda es que c++ ya me olvide por eso les rugeo si me pueden ayudar y pasarlo a c++ gracias de antemano si no fuera un asunto de " vida o muerte " no se los pediria ... gracias...


public class Fecha {

    public int dia;

    public static int[] diasMes={31,28,31,30,31,30,31,31,30,31,30,31};

    public Fecha(int dia) {

   this.dia= dia;
    }
}


    public int getDiaSemana() {

   return (dia + 1) % 7;
    }


    public Fecha(int dia, int mes, int anho) throws Exception {
   int suma= 0;

   if ((anho < 1901) || (anho > 2099))
       throw new Exception("Año incorrecto");

   if ((mes < 1) || (mes > 12))
       throw new Exception("Mes incorrecto");

   if (dia < 0)
       throw new Exception("Día incorrecto");

   if ((dia > diasMes[mes - 1]) &&
       ((mes != 2) || (anho%4 != 0) || (dia != 29)))
       throw new Exception("Día incorrecto");
      
   suma= (anho - 1901) * 365;

   suma= suma + (anho - 1901) / 4;

   for (int i=1; i<mes; i++)
       suma= suma + diasMes[i-1];

   if ((anho%4 == 0) && (mes > 2)) suma++;

   suma= suma + dia - 1;

   this.dia= suma;
    }


    public Fecha vacuna(int num) {
   
   if (num==1) return this;
   else if (num==2) return suma(3);
   else {
       Fecha f= vacuna(num-1);
       return f.suma(2 * f.diferencia(vacuna(num-2)));
   }
    }


    public Fecha vacuna(int num) {
   
   if (num==1) return this;
   else if (num==2) return suma(3);
   else return vacuna(suma(3),this,num);
    }

    public Fecha vacuna(Fecha f1, Fecha f0, int num) {

   if (num <= 3) return f1.suma(2 * f1.diferencia(f0));
   else return vacuna(f1.suma(2 * f1.diferencia(f0)), f1, num-1);   
    }