Red de conocimientos turísticos - Preguntas y respuestas turísticas - ¡Urgente! ~ ~ ~ ~Los requisitos del programa para escribir e imprimir un calendario perpetuo en C o c son los siguientes

¡Urgente! ~ ~ ~ ~Los requisitos del programa para escribir e imprimir un calendario perpetuo en C o c son los siguientes

Se han implementado las funciones básicas:

/************************************ ** ******************************

*Autor: wacs5

*¿Fecha? :20101110(aammdd)

*¿Correo electrónico? : wacs5@126.com

*Función: Escribir e imprimir calendario perpetuo en c.

*¿Objetivo? :/question/195084859.html

*Compilador: TC2.0, Gcc aprobado (si es VC, elimine #include? ltconio.h gt)

* *Además, getch La función () se puede reemplazar por una declaración del sistema ("pausa").

********************************************* *** **********************/

¿#Incluir? lttime.h gt

#¿Contiene? ltmath.h gt

#¿Contiene? ltstdio.h gt

#¿Contiene? ltconio.h gt

int? DíasEnMes[13]={0, 31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31};

int? DíasEnAño[13]={0, 31, 59, 90, 120, 15181, 212, 243, 273, 304, 334, 365};

Carácter? MonthInfo[13][4]={ " ", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto" ","septiembre"," Octubre","Noviembre","Diciembre"};

Ciel? WeekInfoEng[8][4]={"Dom","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"};

Char? WeekInfoChs[8][3]={"天","一","二","三","四","五","六"};

int? principal()

{

int? Año, mes, día;

int? flag = 1; /*Si enviar al archivo, 1 significa salida, 0 significa sin salida*/

Dragon? fecha 1;

int? IsLoopYear(int? año);

int? CheckDay(int? año, int? mes, int? día);

Dragón? Date2Long(int? año, int? mes, int? día);

int? Semana (¿duración? días);

int? PrintNow(int? bandera);

int? MonthCalendar(int? año, int? mes, int? bandera);

int? AñoCalendario(int? año, int? bandera);

int? PrintNumMask(int? año, char? ch, file? * FP);

imprimir ahora(flag);/*Generar el calendario del mes actual y la hora.

flag=1 significa salida al archivo */?

printf(" año = ");

scanf("d ", amp año);

AñoCalendario(año, bandera);? /*Muestra el almanaque de 2010, flag=1 significa enviar al archivo*/

getch();

}

/*Juzga el año bisiesto*/< /p >

int? IsLoopYear(int? año)

{

¿Regresar? Año 400==0? ||?(Año 100? amp amp? Año 4 = = 0);

}

/*Comprueba la validez de la fecha*/

int ? CheckDay(int? año, int? mes, int? día)

{

int? IsLoopYear(int? Year);

/*La fecha es mayor que cero, el mes es 1-12 y la fecha es 1 hasta el número máximo de días del mes. Preste atención al mes bisiesto de febrero*/

¿Y si? (Año gt=0? amp amp? Mes gt0? amp amp? Mes lt=12? amp amp? Día gt0? amp amp?\

día lt=(?DaysInMonth[mes] (mes = = 2 amperios; ampIsLoopYear(año))? ))

¿Regresar? 1;

Otros

¿Volver? 0;

}

/*Devuelve el número de días en un año desde el día del mes hasta 65438 octubre 0,0000 (tiempo abstracto))*/

龙? Date2Long(int? año, int? mes, int? día)

{

¿Largo? Días;

Número de días = año * 365 l año/4 años/100 años/400? ?(año gt0);? /*El número de días del 0 de octubre del año 65438, 0 es un año bisiesto*/

días = DíasEnAño[mes-1]? (mes gt2 amp ampIsLoopYear(año))? ?Día;/*Agregar mes y día*/

¿Volver? Día;

}

/*Calcular día de la semana*/

int? Semana (¿duración? días)

{

¿Regreso? (Número de días 5) 7;?

}

/*Imprimir la hora actual y el calendario del mes actual*/

int? Imprimir ahora (int? bandera)?

{

tiempo_t? Ahora;

estructura? ¿tm? *TM_1;?

int? Semana (¿duración? días);

int? CheckDay(int? año, int? mes, int? día);

Dragón? Date2Long(int? año, int? mes, int? día);

int? MonthCalendar(int? año, int? mes, int? bandera);

Hora (amp ahora);

tm_1=hora local.

ahora);

calendario mensual(TM_1->;tm_year 1900,TM_1->;tm_mon 1,flag);

Printf("Hoy es: 02d 02d, semana s\n ",TM_1-gt;tm_year 1900,TM_1->;tm_mon 1,TM_1->;tm_mday,WeekInfoChs[TM_1-gt;TM_wday]);

Printf("La hora actual es 02d minutos 02d segundos \n ", TM_1- gt; tm_hora, TM_1->; tm_min, TM_1->; TM_ seg);

¿Volver? 1;

}

/*Calendario mensual de salida*/

int? MonthCalendar(int? año, int? mes, int? cuando bandera)/*flag=1, escribir en el archivo */

{

int? Yo, k, día, semana;

¿Dragón? Cielo;

¿Ciel? Nombre de archivo[80];

int? Semana (¿duración? días);

int? CheckDay(int? año, int? mes, int? día);

Dragón? Date2Long(int? año, int? mes, int? día);

¿Archivo? * fp

¿Y si? (Bandera)

{

sprintf(nombre de archivo, "04d_02d.txt", año, mes);

fp=fopen(nombre de archivo, "w ") ;

¿Si? (fp==NULL)

{

printf("¿Archivo? ¿Abrir? ¿Error? ¿En? Función: CalendarioMes\n¿Presionar? ¿Hay? ¿Clave? ¿Dónde? Salir: ");

getch();

Salir(-1);

}?

}

Día = 1;

¿Si? (!CheckDay(Año, Mes, Día))

{

printf("Formato: d-d-1(AAAA-MM-DD)? ¿Sí? ¿No válido? ¿En? Función: MonthCalendar\n ", año, mes);

¿Volver? 0;

}

días=Fecha2Long (año, mes, día

semana=semana

k); =(4 * 7-9)/2;

¿Para qué? (I = 0;i ltk;i)

Nombre de archivo[i]= '? ';

Nombre de archivo [k] = '\0';

printf("calendario mensual:\n s d- s\n", nombre de archivo, año, información del mes[ mes]);

¿Si? (Bandera)

fprintf(fp, " sd - s\n ", nombre de archivo, año, mes info[mes]);

¿Para qué? (I = 0; i lt7; i )

{

printf("s?", WeekInfoEng[I]);

¿Si? (Bandera)

fprintf(fp, " s?", WeekInfoEng[I]);

}

printf(" \n ");

¿Y si? (Bandera)

fprintf(fp, "\n

");

¿Para qué? (I = 0; Iltweek; i)

{

printf(" ");

if? (flag)

fprintf(fp, "");

}

¿Para qué (I=Días; ilt= DíasEnMes] ( mes = = 2)*(is loopyear(year)); i )? /*En febrero del año bisiesto, agregue uno*/

{

printf("3d? " ,i);

if?(flag)

fprintf(fp,"3d?",i);

if?((I semana) 7 ==0)

{

printf(" \ n ");

si? (bandera);

fprintf( fp , " \ n ");

}?

}

printf(" \n ");

Si (marca? )

{

fprintf(fp, "\n");

fclose(FP);

}

Regresar? 1;

}

/*Anuario de salida*/

int? YearCalendar(int? año, int? bandera)

{

int? mes _ col = 2;? /*¿Cuántos meses calendario por fila?*/

int? espacios en el calendario de dos meses*/

int? Month_row =(int)ceil(12.0/month_col);

int? end_day[13], continúa[13] ]= { 1 };

int? I, j, k, mes, día[13], semana[13];

Dragón ]; >Carácter?[3][80];

int? Semana (longitud? día);

int? >

Fecha2Long(int? año, int? día);

int año, char ?ch,archivo?*FP);

archivo?*fp

if?(bandera)

char? Nombre de archivo[80];

sprintf(nombre de archivo, "04d.txt", año);

fp=fopen(nombre de archivo, "w");

¿Y si? (fp==NULL)

{

printf("¿Archivo? ¿Abrir? ¿Error? ¿En? Función: Almanaque\n¿Presionar? ¿Hay? ¿Clave? ¿A dónde ir? Salir:"

get();

Salir (-1

}?

}

¿para qué? (mes=1;mes lt=12;mes)

{

Día[mes]=1;

¿Si? (!CheckDay(año, mes, día [mes])

{

printf("Formato: d-d-1(AAAA-MM-DD)? ¿Sí? ¿No válido? en ? Función: YearCalendar\n ", año, mes);

Retorno? 0;

}

días[mes]=Fecha2Long

(año, mes, día [mes]);

semana [mes] = semana (día [mes]

sigue [mes] = 1;

}

k =(7 * 4-3)/2;

¿Para qué? (I = 0;I ltk;I)/*Espacio antes de la marca del mes*/

Espacio[0][i]= '? ';

espacio[0][I]= '\0';?

¿Para qué? (I = 0; i lt7 * 4-3-k; i )? /*Espacio después de la marca del mes*/

espacio[1][i]= '? ';

espacio[1][I]= ' \ 0 ';

¿Para qué? (I = 0; i lt columna_espacio; i )? /*El espacio entre las dos columnas*/

Espacio[2][i]= '? ';

espacio[2][I]= ' \ 0 ';

PrintNumMask(año, ' * ', salida estándar);

PrintNumMask(año , ' * ', FP);

Mes = 1;

¿Para qué? (I = 0; i ltmonth _ rowi )

{

¿Para qué? (j = 0; j lt columna_mes; j )? /*Ingrese la abreviatura del mes*/

{

printf("sss ", espacio[0], MonthInfo[mes j], espacio[1]); espacio inicial, abreviatura del mes, seguido de un espacio inicial*/

¿Si? (Bandera)

fprintf(fp, "sss", espacio[0], MonthInfo[mes j], espacio[1]);

¿Si? (j ltMonth_col-1)/*Espacio entre cada columna del mes*/

{

printf("s ", espacio[2]);

¿Y si? (bandera)

fprintf(fp, " s ", espacio[2]

}?

}

printf( " \ n "); /*Nueva línea*/

¿Si? (Bandera)

fprintf(fp, "\n");?

¿Para qué? (j = 0; j lt columna_mes; j )?

{

¿Para qué? (k = 0; k lt7; k )? /*Abreviatura de la semana*/

{

printf("s?", WeekInfoEng[k]);

¿Si? (Bandera)

fprintf(fp, "s?", WeekInfoEng[k]);

}

¿Si? (j ltMonth_col-1)/*Espacio entre cada columna del mes*/

{

printf("s ", espacio[2]);

¿Y si? (bandera)

fprintf(fp, " s ", espacio[2]

}?

}

printf( " \ n "); /*Nueva línea*/

¿Si? (Bandera)

fprintf(fp, "\n");?

¿Para qué? (j = 0; j lt columna_mes; j )? /*Línea horizontal*/

{

¿Para qué? (k = 0; k lt7; k

)? /*Línea horizontal*/

{

printf(" _ _ _ _ _ _ ", WeekInfoEng[k]);

¿Si? (Bandera)

fprintf(fp, " _ _ _ _ _ _ ", WeekInfoEng[k]);

}

¿Si? (j ltMonth_col-1)/*Espacio entre cada columna del mes*/

{

printf("s ", espacio[2]);

¿Y si? (bandera)

fprintf(fp, " s ", espacio[2]

}?

}

printf( " \ n "); /*Nueva línea*/

¿Si? (Bandera)

fprintf(fp, "\n");?

¿Para qué? (j = 0;j ltmonth_column;J)/*Primera fila*/

{

¿Para qué? (k = 0; k lt semana [mes j]; k )? /*Ventilación antes del número 1*/

{

printf(" ");

¿Si? (Bandera)

fprintf(fp, " ");

}

¿Para qué? (k = 1; k lt = 7; k )?

{

printf("3d?",k);

¿Si? (Bandera)

fprintf(fp, "3d?", k);

Si? ((k semana[mes j])7==0)

{

fin_día[mes j]= k 1;

printf(" s ", espacio[2]);

¿Si? (bandera)

fprintf(fp, " s ", espacio[2]

Romper

}

}

}

printf(" \ n "); /*Nueva línea*/

¿Si? (Bandera)

fprintf(fp, "\n");?

¿Para qué? (línea = 0; línea lt5; línea )

{

¿Para qué? (j = 0;j ltmonth_column;j)

{

¿Si? (sigue[mes j]==0)/*Llena una línea en blanco*/

¿Para qué? (k = 0; k lt7; k )

{

printf(" ");

¿Si? (Bandera)

fprintf(fp, " ");

}

Otro

{

Para ¿Qué? (k = fin _ día[mes j]; k lt= DíasEnMes[mes j] (mes = = 2)*(es bucleaño(año)); k )

{

printf("3d?",k);

¿Si? (Bandera)

fprintf(fp, "3d?", k);

Si? ((k semana[mes j])7==0)

{

fin_día[mes j]= k 1;

Descanso;

}

}

¿Y si? (k gt = D

aysInMonth[mes j] (mes = = 2)*(es loopyear(year)))

seguir adelante[mes j]= 0;?

¿Y si? (k gtdays en mes[mes j] (mes = = 2)*(es bucleaño(año)))? /*llena el espacio en blanco*/?

{

¿Para qué? (; k lt100; k )

{

printf(" ");

¿Si? (Bandera)

fprintf(fp, " ");

¿Si? ((k semana [mes j])7==0)

Descanso;

}

}

}

¿Y si? (j ltMonth_col-1)/*Espacio entre cada columna del mes*/

{

printf("s ", espacio[2]);

¿Y si? (bandera)

fprintf(fp, " s ", espacio[2]

}

}?

printf( "\n");? /*Nueva línea*/

¿Y si? (Bandera)

fprintf(fp, "\n");?

/*Si se han generado todos los meses de cada fila*/

k = 0;

¿Para qué? (j = 0; j lt columna_mes; j )

k = seguir adelante[mes j];

¿Si? (k==0)

Descanso;

}

¿Mes? =?Columna_Mes;

printf(" \ n "); /*Nueva línea*/

Si? (Bandera)

fprintf(fp, "\n");?

}

¿Y si? (Bandera)

fclose(FP);

¿Volver? 1;

}

/*Salida analógica digital*/

int? PrintNumMask(int? año, char? ch, file? *fp)

{

/*5*5 módulo digital*/

int? máscara[10][5]={? {31,17,17,17,31},{?1,?1,?1,?1,?1},\

{31,1?,31,16,31}, {31,?1,31,?1,31},\

{17,17,31,?1,?1}, {31,16,31,?1,31},\

{31, 16, 31, 17, 31}, {31, ?1, ?1, ?1, ?1}, \

{31, 17, 31, 17,31},{31,17,31,?1,31}};

int? dígito[16]= { 0 };

¿Carácter? espacio = '? ';

int? I, j, k, n;

n = 0

Cuando (año)

{

dígito[n ]= Año 10;

año/= 10;

}

¿Para qué? (I = 0; I lt5; I )/* Línea */

{

¿Para qué? (k = 0; k ltn; k )? /*La primera línea de la palabra*/

{

¿Para qué? (j = 0; j

lt5;j)? /*Columna*/

{

¿Y si? (?mask[dígito[n-1-k]][i]? amp?(1 lt; lt(4-j))?)

fprintf(fp, " c ", ch);

Otros

fprintf(fp, "c", espacio

}

fprintf(fp, "c", espacio); );

}

fprintf(fp, "\n");

}

¿Volver? 1;

}

Resultados de salida:

El calendario mensual del mes actual y el calendario de 2010.