Tesis sobre programación de lenguajes
Logros
Libro de Informe de Diseño del Curso
Segundo Semestre de 2009 ~ Año Académico 2010
Nombre del Curso: Diseño de Curso de Lenguaje C
p>
Profesor:
Nivel de clase: B090602
Apellido: Zang Fuyue
Número de estudiante: B09060243
Día 20 de junio 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 standpirnt.
(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, establecer 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 el 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(input<= 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 ¡La función estándar!
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
Período no válido (varios años){
/ /Aquí Pruebe la salida del formato del calendario.
int fecha[31]= { 0 }
for(int I = 0;i<31;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 <12; j++) {
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n "); >
Printf(" %d año %d mes\n ", entrada, (j+1)
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
printf(" Día 123456 \ n ");
//Configuración Número de días en un mes!
if(input % 4 = = 0 | +1)) {
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;
}
//¡Aquí para controlar saltos y saltos de línea!
for(int k = 0; k & lt volar
saltar; k++) {
if(k == 0 & amp; & ampj == 0) {
etiqueta = díaDeLaSemana(entrada); (etiqueta == 7)etiqueta = 0;
}
else if(k==0) {
Cambiar (etiqueta 2) {
Caso 0: printf(" "); romper;
caso 1: printf(" "); romper; ;
Caso tres: printf(" "); break;
Caso cuatro: printf(" ");
Caso cinco: printf(" "); romper;
Caso 6: printf(" "); romper;
}
}
printf("% 3d ", fecha[k]);
tag++;
//Recién agregado
if(fecha[k] == salto) { p >
etiqueta 2 = etiqueta-1;
}
if(etiqueta==7) {
printf(" \ n "); /p>
etiqueta = 0;
}
}
printf(" \ n "); /p>
}
Función DayOfweek:
//¡Esta función es responsable de determinar el día de la semana al ingresar el número de años!
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<day;i++) {
Año[i] = inicio+I;
if ( años[I]% 4 = = 0 |(años[I]% 100 = = 0 &&años[I]% 400!=0)) {
//printf( "Este año es bisiesto ¡año!");
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; >
printf(" "); romper;
Caso 2: valor = 3;
printf(" "); :valor=4;
printf(" ");romper;
Caso 4:valor=5;
printf(" ");romper;
Caso 5: valor = 6;
printf(" ");
Caso 6: valor = 7; (" "); break;
}
Valor de retorno;
}
Prueba y depuración de verbos intransitivos:
p>Diseñar el sistema y los 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!