Papel de reloj giratorio

Mi informe de diseño del curso, ¡espero que te sea de ayuda!

Logros

Libro de informe de diseño del curso

Segundo semestre del año académico 2009 ~ 2010

Nombre del curso: Diseño de curso de lenguaje C

Profesor:

Nivel de clase: B090602

Apellido: Zang Fuyue

Número de estudiante: B09060243

20 de junio Día 10

1 Tema de diseño del curso: Calendario Perpetuo

2. Requisitos del título:

(1) Cuando el programa comience a ejecutarse, se mostrará el almanaque actual.

(2) El calendario mensual se puede mostrar según el año introducido.

(3) Al ingresar un año menor a 1900, salga del programa.

Tres. Análisis de temas:

Análisis de temas de diseño del curso y división de módulos funcionales.

(1) Primero determine el día de la semana del primer día de cada año según el año inicial, y luego controle la salida de espacio de la primera fila de cada mes según el día de la semana. !

(2) ¡Determine si cada año es bisiesto y establezca el día de febrero correspondiente!

4. Diseño del módulo (diagrama de flujo):

Descripción del diseño de cada módulo, incluido el nombre del módulo, la función, la descripción de los parámetros de entrada y los valores de retorno, así como el proceso de implementación de Descripción de cada módulo (dibuja un diagrama de flujo si es necesario).

(1) Función principal: esta función es la entrada del programa. A través de un do- while, cuando el año de entrada es menor que 1900, el programa sale. De lo contrario, la función principal llama a la función claculate y pasa. el año de entrada como parámetro para clasificar la función.

(2)Función de cálculo: esta función tiene un parámetro, que es el año de entrada pasado por la función principal, y el tipo de retorno es nulo. Esta función es responsable de recibir el año de entrada de la función principal y mostrarlo, y luego llamar a la función estándar.

(3)Función standpirnt: esta función tiene un parámetro, que es el año de entrada pasado por la función de cálculo, y el tipo de retorno es nulo. ¡Esta función es responsable de realizar la salida del formato de calendario estándar, configurar el número de días de cada mes de acuerdo con el número de ciclos y controlar el espacio al comienzo de cada mes a través de etiqueta y etiqueta2! ¡Y llame a dayOfweek para obtener el día de la semana del primer día del año de entrada y genere el espacio correspondiente!

(4) Función dayOfweek: esta función tiene un parámetro, que es el número de años ingresados, y el valor de retorno es el día de la semana. ¡Esta función es responsable de devolver un día de la semana como el primer día del año y generar una cantidad de espacios que coincidan con ese día!

Código fuente del verbo (abreviatura de verbo):

Código fuente de cada módulo.

Funciones principales:

void main() {

int input = 0;

int Jude = 1;

Haga {

printf("¡Ingrese el año!\n ");

scanf("d", amp input);

if (Entrada lt= 1900) {

printf("¡¡¡Error de datos!!!");

Jude= 0;

}

printf("El año es d\n ", input);

// ¡Aquí determina si es un año bisiesto!

si(Judas)

calcular(entrada);

} mientras(Judas);

}

*************************************************** *** ****************

Función de cálculo:

//Esta función es responsable de mostrar el año y llamar al standpirnt ¡función!

Cálculo no válido (entre años){

printf("d\n ", año);

standpirnt(año);

//día de la semana(año);

}

Funciones excelentes

Periodo no válido (entre años){

//Prueba aquí ¡Salida en formato de calendario!

int fecha[31]= { 0 };

for(int I = 0; i lt31; i ) {

Fecha[I]= I 1;

}

int entrada = año;

int etiqueta = 0;

int etiqueta 2 = 0; >

int salto = 0;

int ccyd = 0;

int error = 0;

for(int j = 0; j lt12; j ) {

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

Printf(" d año d mes\n ", entrada, (j 1));

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

printf(" Día 123456 \ n ");

//Establecer el número de días en ¡un mes!

if(input 4 = = 0 | /p>

Caso 1: salto = 31; roto;

Caso 2: ccyd? Salto = 29: Salto = 28;

Caso 3: salto = 31;

Caso 4: salto = 30; Cinco: salto = 31;

Caso 6: salto = 30;

Caso 7: salto = 31; salto = 31;

Caso 9: salto = 30;

Caso 10: salto = 31

Caso 11: salto = 31;

30; Break;

Caso 12: salto = 31; Break;

}

//¡Esto controla saltos y saltos de línea!

for(int k = 0; k lt salto; k ) {

if(k = = 0 amp; ampj == 0) {

etiqueta = díade la semana(entrada);

if(etiqueta = = 7)etiqueta = 0;

}

si no(k==0) { p>

Cambiar (etiqueta 2) {

Caso 0: printf(" "); break

caso 1: printf(" "); /p >

Caso 2: printf(" "); descanso

Caso 3: printf(" "); caso 4: printf(" ") ; romper ;

Caso 5: printf(" "); roto

Caso 6: printf(" "); roto; >

}

printf("3d ", fecha[k]);

etiqueta

//Recién agregado

if(fecha[k] == salto) {

etiqueta 2 = etiqueta-1;

}

if(etiqueta==7) {< / p>

printf(" \ n ");

etiqueta = 0;

}

}

printf( " \n ");

}

}

Función DayOfweek:

//Esta función se encarga de determinar el día de la semana en la que se introduce el número del año.

int díade la semana(int día) {

int valor = 0

int entrada2 = día

int inicio = 1990;

int días = 1;

Número de días = ingresar 2 - inicio

int total = 0

int años[100000; ]= { 0 };

for(int I = 0; i lt días; i) {

Año[i] = inicioI

if( años [I] 4 = = 0 |(años[I] 100 = = 0 amp; ampyear[I] 400!=0)) {

//printf("Este año es bisiesto !") ;

Total = 366;

}

En caso contrario {

//¡Año normal!

Total = 365;

}

}

int semana = total 7

Alternar (semana); ){

Caso 0: valor = 1;

printf(" "); caso 1: valor = 2; p>printf(" "); romper;

Caso 2: valor = 3;

printf(" "); = 4;

printf(" ");

Caso 4: valor = 5; printf(" "); >

Caso 5: valor = 6;

printf(" "); roto;

Caso 6

: valor = 7;

printf(" "); romper;

}

valor de retorno;

Prueba y depuración de verbos intransitivos:

Diseñar sistemas y métodos y planes de prueba para cada módulo.

(1) Después de completar la función principal, observe si el programa sale ingresando una función menor que 1900 para probar si el módulo principal del programa es normal.

(2) Después de completar la función de cálculo, llame a la función de cálculo en main, genere la información relevante en el cálculo y determine si la función de cálculo es normal.

(¡Después de completar la función standpirnt, llámela en la función calcular y observe si el formato de salida del calendario en la consola es correcto!

(4) Después de completar la función dayOfweek, llámelo en la función standpirnt y finalmente observe el resultado.

7. Resumen del diseño del curso:

(1) Mejore la comprensión y el dominio de las llamadas a funciones y los saltos de línea en lenguaje C.

p>

(2) ¡Profundice su comprensión de la programación orientada a procesos!

(3) ¡Comprenda profundamente la implementación específica del calendario perpetuo!

ca china All rights reserved