Red de conocimiento informático - Problemas con los teléfonos móviles - Programación de impresión Vc

Programación de impresión Vc

//El código es muy complejo e implica algoritmos inusuales. Por favor lea atentamente.

/*Año: 2012

****Enero*****

Domingo, Lunes, Martes, Miércoles, Jueves, Viernes, Sábado

p>

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 31

Pulsa cualquier tecla para continuar...

****Febrero*****

p>

Domingo Lunes Martes Miércoles Jueves Viernes Sábado

1 2 3 4

5 6 7 8 9 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28 29

Pulsa cualquier tecla para continuar...

****Marzo*****

Domingo Lunes Martes Miércoles Jueves Viernes Sábado

1 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30 31

Por favor presione alguna clave para continuar...

****Abril*****

Domingo Lunes Martes Miércoles Jueves Viernes Sábado

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30

Presiona cualquier tecla para continuar...

*/

# include ltstdio.h gt

# include ltstdlib .h gt

int JudgeLeapYear(int); //Juzga si es un año bisiesto.

int MonthDay(int m, int y); //Devuelve el número de días de este mes.

void print header(void); //Encabezado de salida

int FirstWeek(int m, int y); Devuelve el día de la semana en el que es el 1 de este mes. es.

void print mes(int m); //Título del mes de salida

int main(int argc, char* argv[]) {

int año, Mes, día, prueba, semana;

printf("Año:");

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

for(mes = 1; meslt= 12; mes) {

prueba = 1;

imprimirMes(mes);

imprimir encabezado();

semana = Primera Semana(mes, año);

if (semana lt6){// Genera la primera semana de cada mes.

for(I = 0; i lt=semana; i) {

putchar('\t');

prueba;

}

}

for(I = 1; i lt= MonthDay (mes, año); i, prueba) {

//Cada uno La producción mensual no es la primera semana.

printf("d\t ",I);

if(prueba 7 == 0)poner char('\n');

}

putchar('\n');

System("pause"); //Pausa para observar la salida.

}

Devuelve 0;

}

//Determina si se ejecuta el año.

int JudgeLeapYear(int y) {

return((y 4 == 0) amp; amp(y100) || (y400 == 0))? 1: 0;

}

//¿Qué día de la semana es el 1 de este mes?

int Primera Semana(int mes, int año) {

if (mes lt3) {

mes = 12

año - ;

}

return(1 2 *mes 3*(mes 1)/5 año año/4 - año/100 año/400) 7;

}

//Cuántos días tiene enero

int MonthDay (int mes, int año){

int d;

Switch(mes){

Caso 1:

Caso 3:

Caso 5:

Caso 7:

Caso 8:

Caso 10:

Caso 12: d = 31; roto;

Caso 4:

Caso 6:

Caso 9:

Caso 11: d = 30; roto;

Caso 2: d = JudgeLeapYear(año)? 29:28;Pausa;

}

Regresar d;

}

//Imprimir título del calendario

void printHeader(void) {

printf(" s \ t s \ t s \ t s \ t s \ t s \ t s \ t s \ t \ n ", " Sol ", " Lun ", " Mar ", " Mié ", " Jueves ", " Viernes ", " Sábado ");

}

//Imprimir el mes

void printMonth(int m) {

Interruptor (m) {

Valor predeterminado:

Caso 1: puts("\t*****Enero* * * * *) ; Break;

Caso 2: Opción de venta (" \t****Febrero* * * * *); Break;

Caso 3: Opción de venta (" \ t *****Marzo* * * * *); Descanso;

Caso 4: Opción de venta (" \ t * * * * *Mes* * * * *); Descanso;

p>

Caso 5: Opción de venta ("\t*****posible* * * * *); Break;

Caso 6: Opción de venta (" \t* * * * * Mes* * * * *); Descanso;

Caso 7: Opción de venta ("\t * * * * *Mes* * * * *); Descanso;

Caso 8 : Opción de venta("\t * * * * *mes* * * * *); Descanso;

Caso 9: Opción de venta(" \t * * * * *mes* * * * *) ;Break;

Caso 10: puts("\t*****Octubre* * * * *);Break;

Caso 11: puts(" \t * * * * * Noviembre * * * * *); Descanso

Caso 12: Opción de venta ("\t * * * * * * Mes * * * * *); Descanso;

}

}