Informática, pregunta formulada por polar37, hace 1 año

Porfa ayudenme.
Quiero un programa de c++ en stdio. H que ordene las fechas de forma ascendente. Gracias


polar37: quería un programa donde ingrese tres fechas con día, mes y año la cual. al poner las 3 se ordenen de mayor a menir
polar37: menor**

Respuestas a la pregunta

Contestado por CarlosMath
1

====Creacion de una clase ===========================

#ifndef FECHA_H

#define FECHA_H

class Fecha

{

public:

 short dia;

 short mes;

 int anho;

 

 void setDia(short dia){ this->dia = dia;}

 void setMes(short mes){ this->mes = mes;}

 void setAnho(int anho){ this->anho = anho;}

 

 short getDia(){return dia;}

 short getMes(){return mes;}

 int getAnho() {return anho;}

 

};

#endif

=============================================

#include <iostream>

#include "Fecha.h"

using namespace std;

void ordenar(Fecha *fechas, int dim){

int anho;

short dia, mes;

 

for(int i = 0; i < dim - 1; i++){

 for(int j = i+1; j < dim ; j++){

  if (fechas[i].getAnho() > fechas[j].getAnho()) {

   anho = fechas[i].getAnho();

   fechas[i].setAnho(fechas[j].getAnho());

   fechas[j].setAnho(anho);

  }

 }

}

 

 

for(int i = 0; i < dim - 1; i++){

 for(int j = i+1; j < dim ; j++){  

  if (fechas[i].getAnho() == fechas[j].getAnho() & fechas[i].getMes() > fechas[j].getMes() ){

      mes = fechas[i].getMes();

   fechas[i].setMes(fechas[j].getMes());

   fechas[j].setMes(mes);

   }

  }

 }

 

for(int i = 0; i < dim - 1; i++){

 for(int j = i+1; j < dim ; j++){  

  if (fechas[i].getAnho() == fechas[j].getAnho() & fechas[i].getMes() == fechas[j].getMes()  &

   fechas[i].getDia()  > fechas[j].getDia()) {

               dia = fechas[i].getDia();

   fechas[i].setDia(fechas[j].getDia());

   fechas[j].setDia(dia);

   }

 }

}

 

 

}

int main(){

int n;

short data;

 

cout << "Ingrese la cantidad de fechas : ";

cin >> n;

 

Fecha fechas [n];

 

for(int i = 0; i<n; i++){

 cout << "Fecha " << (i+1) << " : \n";

 cout << "(+) Dia  : ";

 cin  >> data;

 fechas[i].setDia(data);

 cout << "(+) Mes  : ";

 cin  >> data;

 fechas[i].setMes(data);

 cout << "(+) Anho : ";

 cin  >> data;

 fechas[i].setAnho((int)data);  

 cout << "\n";

}

 

ordenar(fechas, n);

for(int i = 0; i<n; i++){

 cout << "Fecha " << (i+1) << " : " << fechas[i].getDia() << " - " << fechas[i].getMes() << " - " << fechas[i].getAnho();

 cout << "\n";

 

}

 

return 0;

}

Otras preguntas