[C con Clase] Calendario en c++ crear archivo en html

Steven Davidson srd4121 en njit.edu
Jue Dic 16 19:06:42 CET 2010


Hola Jadder,

2010/12/16 Jadder Antonio Moya Urbáez <jadder.antonio en gmail.com>

> Hola a todos, mi amigo esta haciendo como examen final un calendario en c++
> y que lo imprima en un archivo html.
> Tenemos problemas con organizar la fecha.. específicamente con el tabulado.
>

Primeramente, no me gusta ayudar en algo como un examen, que es un trabajo
propio para demostrar lo aprendido, y de paso uno aprende, también. De todas
maneras, daré unos consejos.

En segundo lugar, no nos dices cuál es el problema con el tabulado. Si es
para HTML, deberías usar las etiquetas de HTML para dar un formato simple.
Es posible que quieras crear un fichero de texto simple y luego lo pasas a
un "traductor" para crear el fichero HTML.

De todas formas, te doy unas cuantas pautas acerca del código que nos das.


> he aquí el código.
>
>  #include<iostream>
> #include<conio.h>
> using namespace std;
>
> main(){
>

En C++, debes indicar 'int' para el tipo de retorno de cualquier función,
sea 'main()' o no.


>  int fin_dia =0, rest=7, peq=0;
> bool puerta=false;
>
> for (int y=1;y<=12;y++){
>
>     if(y ==1){cout <<  "\n\t\tEnero"<<endl;}
>     if(y ==2){cout << "\n\t\tFebrero"<<endl;}
>     if(y ==3){cout << "\n\t\tMarzo"<<endl;}
>     if(y ==4){cout << "\n\t\tAbril"<<endl;}
>     if(y ==5){cout << "\n\t\tMayo"<<endl;}
>     if(y ==6){cout << "\n\t\tJunio"<<endl;}
>     if(y ==7){cout << "\n\t\tJulio"<<endl;}
>     if(y ==8){cout << "\n\t\tAgosto"<<endl;}
>     if(y ==9){cout << "\n\t\tSeptiembre"<<endl;}
>     if(y ==10){cout << "\n\t\tOctubre"<<endl;}
>     if(y ==11){cout << "\n\t\tNoviembre"<<endl;}
>     if(y ==12){cout << "\n\t\tDiciembre"<<endl;}
>

Podrías ahorrarte todo este código si usas un array de cadenas para guardar
los nombres de los meses. Por ejemplo,

const char meses[12][11] = { "Enero", "Febrero", "Marzo", ... };  // Rellena
el resto

int main()
{
  ...
  for( int y=1; y<=12;y++)
  {
    cout << "\n\t\t" << meses << endl;
    ...
  }
  ...
}

Así no tienes que estar comprobando algo que ya sabes y además esto es más
genérico.


>      cout << "LU \tMA \tMI \tJU \tVI \tSA \tDO" << endl;
>
>     for(int linea=0;linea<peq;linea++){ cout<<"magia\t"; }
>
>      for (int x=1;x<=31;x++){
>         cout << x <<"\t";
>         fin_dia++;
>
>         if(fin_dia > 7){
>             cout << endl;
>             fin_dia =0;
>         }peq = 7- fin_dia;
>

Nuevamente, sugiero crear un array que contenga los días máximos de cada
mes. Por ejemplo,

const int max_dias[12] = { 31, 28, 31, 30, ... };  // Rellena el resto

Deberías tener presente el año por si acaso es bisiesto y por tanto la
cantidad máximade días de Febrero es 29; o visto de otra forma, existe el
día 29 de Febrero si el año es bisiesto.


>      }cout<<endl;
> }
>
> getch();
> }
>


Espero que esto te oriente.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20101216/24ebce81/attachment.html>


Más información sobre la lista de distribución Cconclase