Porfa ayudenme.
Quiero un programa de c++ en stdio. H que ordene las fechas de forma ascendente. Gracias
Respuestas
====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;
}