¿Cómo definir la programación fraccionaria?
2. Propósito y requisitos
1. Propósito:
(1) Dominar las ideas y métodos básicos de la programación orientada a procesos;
(2) Dominar los conocimientos y habilidades básicos del lenguaje C;
(3) Ser capaz de utilizar los conocimientos y habilidades básicos aprendidos para resolver problemas de programación simples.
2. Requisitos
Requisitos básicos:
1. Se requiere utilizar el concepto de programación orientada a procesos del lenguaje C para completar el diseño del sistema; /p>
2. Resalte las características funcionales del lenguaje C y utilice múltiples funciones para realizar cada subfunción;
3. Dibuje el diagrama del módulo funcional;
4. el diseño de la interfaz puede lograr una interacción amigable;
5. Tener un diagrama de flujo del programa claro y una definición detallada de la estructura de datos
6.
Requisitos de innovación:
Una vez cubiertas las necesidades básicas, se pueden llevar a cabo diseños innovadores, como el control de funciones del usuario del sistema. Las funciones del sistema son diferentes para el nivel de administrador y el general. usuarios de nivel.
3. Descripción de la información
Ingrese el número de estudiantes de 10 estudiantes en una clase y las calificaciones de cada estudiante en tres materias (matemáticas, inglés, conceptos básicos de computación). El programa calcula el puntaje total y el puntaje promedio de cada estudiante, los clasifica por desempeño y finalmente imprime una transcripción ordenada de puntaje alto a puntaje bajo. Requisitos:
1) La clasificación se implementa mediante una función.
2) Los elementos del expediente académico impreso incluyen: número de serie, número de estudiante, matemáticas, inglés, computadora, puntaje total y puntaje promedio.
3) Rellenar el contenido experimental según el formato de plantilla electrónica del informe experimental.
4. Descripción de la función
1. Ingresar la información básica del estudiante y los resultados de la materia seleccionada.
2. Consulta y modificación de información básica (departamento, clase; subtema).
3. Analizar los resultados de cada departamento o clase (es decir, encontrar el puntaje promedio, la tasa de aprobación y la tasa de excelencia de una sola materia);
4. cursos ofrecidos (busque el puntaje promedio, el puntaje más alto, el puntaje más bajo)
5. Clasifique los puntajes de las pruebas de los estudiantes (las materias individuales se clasifican por departamento o clase, clasifique los puntajes completos de los estudiantes en cada clase y semestre); y muestra la información de puntuación de cada materia)
Solución de verbo (abreviatura de verbo)
1. Analice los requisitos funcionales del programa y divida los módulos funcionales del programa.
2. Dibujar un diagrama de flujo del sistema.
3. Escritura de código. Definir estructuras de datos y varias subfunciones funcionales.
4. Depuración de funciones del programa.
5. Complete el informe resumido del sistema y el manual de instrucciones.
Horario de verbos intransitivos
Este curso tiene una duración de dos semanas y se realiza en cuatro etapas:
1 Etapa de análisis y diseño. Los instructores deben guiar activamente a los estudiantes para que estudien y profundicen en los problemas de forma independiente, aclaren las necesidades de diseño, descubran métodos de implementación y sigan los pasos del análisis de necesidades, el diseño general y el diseño detallado.
2. Etapa de codificación y depuración: escriba el código C de acuerdo con el plan de análisis del diseño y luego depure el código para lograr las funciones requeridas por el proyecto.
3. Etapa del informe resumido: resuma el trabajo de diseño, escriba una descripción del diseño del curso y solicite a los estudiantes que escriban los pasos y el contenido del análisis de la demanda, el diseño general, el diseño detallado, la codificación y las pruebas.
4. Etapa de evaluación.
# include ltstdio.h gt
# include ltstdlib.h gt
#define STU_NUM 10 /*Definición de macro número de estudiantes*/
Estructura estudiante/*Defina una estructura para almacenar el número de estudiante del estudiante, puntajes de tres cursos, puntaje total y puntaje promedio*/
{
char stu _ id[20 ]; /*Tarjeta de identificación del estudiante;*/
Puntuación flotante [3]; /*Puntuaciones de tres cursos;*/
Cantidad flotante total /*Puntuación total;*/< / p>
Promedio flotante/*Puntuación promedio;*/
};
/*La clasificación se implementa mediante funciones*/
void SortScore( estudiante *stu, int n)
{
Estudiante estudiante;
for(int I = 0; iltn-1; i)
for(int j = I 1; j ltn; j )
{
if (Stu[i].Total ltStu[j].Total)
{
stud = stu[I];
stu[I]= stu[j];
stu[j]= semental; p>
}
}
}
int main()
{
Estudiante STU [STU_NUM];/*Hay 10 elementos en la matriz de estructura creada, que se utilizan para almacenar la información relevante de estas 10 personas. */
/*Ingrese información relevante de estos diez estudiantes*/
for(int I = 0; IltSTU _ NUMi)
{ p>
Printf("Ingrese el número de estudiante del estudiante d: ", I 1
scanf("s ", ampStu[I]. stu_id);
Printf); ("Ingrese la puntuación de matemáticas del estudiante d: ", I 1
scanf("f ", ampStu[I]. Score[0]); puntuación de inglés de d: ", I 1);
scanf("f ", ampStu[I]. Score[1]);
Printf("Ingrese la puntuación de computadora del estudiante d: ", I 1);
scanf("f ", ampStu[I]. Puntuación[2]);
Stu[i]. total = estu[i]. puntuación[0] estu[i]. puntuación[1] estu[i]. puntuación[2];
Stu[i]. aver = estu[i]. total/3;
}
printf(" \n ");
ordenar puntuación(stu, stu_num); /* llamar a la función de clasificación* /
/*Envíe las puntuaciones de los estudiantes ordenadas*/
for(I = 0; IltSTU _ NUMi)
{
Printf(" Número de serie: d\t ", I);
Printf("ID de estudiante: s\t ", stu[i]. stu _ id);
Printf ("Matemáticas : f\t ", stu[i]. Puntuación[0]);
Printf("Inglés: f\t ", stu[i]. Puntuación[1]);
Printf("Equipo: f\t ", stu[i].
Puntuación[2]);
Printf("GPA: f\t ", stu[i].aver);
Printf("Puntuación total: f\t ",stu [i].Total);
printf(" \ n \ n ");
}
Devuelve 0;
}
Nota: (Descripción del identificador principal en el programa fuente)
#define STU_NUM 10 /*Definición de macro número de estudiantes*/
Estructura estudiante/ *Definición Una estructura para almacenar el número de estudiante del estudiante, los puntajes de tres cursos, el puntaje total y el puntaje promedio*/
{
char stu _ id[20] /*ID del estudiante; ; */
Puntuación flotante[3];/*Puntuaciones de tres cursos;*/
Puntuación flotante total;/*Puntuación total;*/
Flotante aver /*Puntuación promedio;*/
}
Resultados experimentales:
Ingreso: (Ingrese solo los siguientes números, y las palabras anteriores se generarán por tú mismo).
Por favor introduzca el número de estudiante 1: 001.
Ingrese la puntuación de matemáticas del primer estudiante: 1.
Ingrese la puntuación de inglés del primer estudiante: 1.
Ingrese la puntuación informática del estudiante 1: 1.
Por favor ingrese el número de estudiante del segundo estudiante: 002.
Ingrese la puntuación de matemáticas del segundo estudiante: 2
Ingrese la puntuación de inglés del segundo estudiante: 2
Ingrese la puntuación de computadora del segundo estudiante: 2
Por favor ingrese el número de estudiante del tercer estudiante: 003.
Ingrese la puntuación de matemáticas del tercer estudiante: 3
Ingrese la puntuación de inglés del tercer estudiante: 3
Ingrese la puntuación de computadora del tercer estudiante: 3
Por favor ingrese el número de estudiante del cuarto estudiante: 004.
Ingrese la puntuación de matemáticas del cuarto estudiante: 4
Ingrese la puntuación de inglés del cuarto estudiante: 4
Ingrese la puntuación de computadora del cuarto estudiante: 4
Por favor ingrese el número de estudiante del quinto estudiante: 005.
Ingrese la puntuación de matemáticas del quinto estudiante: 5
Ingrese la puntuación de inglés del quinto estudiante: 5
Ingrese la puntuación de computadora del quinto estudiante: 5
Por favor ingrese el número de estudiante del sexto estudiante: 006.
Ingrese la puntuación de matemáticas del sexto estudiante: 6
Ingrese la puntuación de inglés del sexto estudiante: 6
Ingrese la puntuación de computadora del sexto estudiante: 6
Por favor ingrese el número de estudiante del séptimo estudiante: 007.
Ingrese la puntuación de matemáticas del séptimo estudiante: 7
Ingrese la puntuación de inglés del séptimo estudiante: 7
Ingrese la puntuación de computadora del séptimo estudiante: 7
Por favor ingrese el número de estudiante del octavo estudiante: 008.
Ingrese la puntuación de matemáticas del octavo estudiante: 8
Ingrese la puntuación de inglés del octavo estudiante: 8
Ingrese la puntuación de computadora del octavo estudiante: 8
Por favor ingrese el número de estudiante del noveno estudiante: 009.
Ingrese la puntuación de matemáticas del noveno estudiante: 9
Ingrese la puntuación de inglés del noveno estudiante: 9
Ingrese la puntuación de computadora del noveno estudiante: 9
Por favor ingrese el número de estudiante del estudiante No. 10: 010.
Ingrese la puntuación de matemáticas del décimo estudiante: 10.
Ingrese la puntuación de inglés del décimo estudiante: 10.
Ingrese la puntuación informática del décimo estudiante: 10.
Salida:
Número de serie: 0 ID de estudiante: 010 Matemáticas: 10.000000 Inglés: 10.000000 Computadora: 10.00000.
Puntuación media: 10.000000 Puntuación total: 30.000000.
Número de serie: 1 ID de estudiante: 009 Matemáticas: 9.000000 Inglés: 9.000000 Computadora: 9.000000.
Puntuación media: 9.000000, puntuación total: 27.000000.
Número de serie: 2 Número de estudiante: 008 Matemáticas: 8.000000 Inglés: 8.000000 Computadora: 8.000000.
Puntuación media: 8.000000, puntuación total: 24.000000.
Número de serie: 3 Número de estudiante: 007 Matemáticas: 7.000000 Inglés: 7.000000 Computadora: 7.000000.
Puntuación media: 7.000000, puntuación total: 21.000000.
Número de serie: 4 Número de estudiante: 006 Matemáticas: 6.000000 Inglés: 6.000000 Computadora: 6.000000.
Puntuación media: 6.000000, puntuación total: 18.000000.
Número de serie: 5 Número de estudiante: 005 Matemáticas: 5.000000 Inglés: 5.000000 Computadora: 5.000000.
Puntuación media: 5.000000, puntuación total: 15.000000.
Número de serie: 6 Número de estudiante: 004 Matemáticas: 4.000000 Inglés: 4.000000 Computadora: 4.000000.
Puntuación media: 4.000000, puntuación total: 12.000000.
Número de serie: 7 Número de estudiante: 003 Matemáticas: 3.000000 Inglés: 3.000000 Computadora: 3.000000.
Puntuación media: 3.000000, puntuación total: 9.000000.
Número de serie: 8 ID de estudiante: 002 Matemáticas: 2.000000 Inglés: 2.000000 Computadora: 2.000000.
Puntuación media: 2.000000, puntuación total: 6.000000.
Número de serie: 9 ID de estudiante: 001 Matemáticas: 1.000000 Inglés: 1.000000 Computadora: 1.000000.
Puntuación media: 1,000000 Puntuación total: 3,000000.
7. Redactar un informe de diseño del curso o un resumen del diseño del curso.
Requisitos del informe de diseño del curso:
El informe resumido incluye análisis de demanda, diseño general, diseño detallado, codificación (los pasos de programación están escritos en detalle), pasos y contenido de prueba, resumen del diseño del curso. , Materiales de referencia, etc. Si no se cumplen los requisitos anteriores, el diseño se marcará como fallido.
Errores comunes en el lenguaje C
Al escribir identificadores se ignora la diferencia entre letras mayúsculas y minúsculas.
main()
{
int a = 5;
printf("d ", A);
}
El compilador trata y como dos nombres de variables diferentes y muestra un mensaje de error. c considera las letras mayúsculas y minúsculas como dos caracteres diferentes. Tradicionalmente, los nombres de constantes simbólicas están en mayúsculas y los nombres de variables en minúsculas para aumentar la legibilidad.
2. Ignora el tipo de variable y realiza una operación ilegal.
Principal()
{
Float a, b;
printf("d ", a b
);}
Es una operación de resto para obtener el resto entero de a/b. Las variables enteras A y B pueden realizar operaciones de resto, mientras que las variables reales no pueden realizar operaciones de "resto".
3. Confundir constantes de caracteres y constantes de cadena.
char c;
c = " a
Aquí, las constantes de caracteres se confunden con las constantes de cadena. Las constantes de caracteres están encerradas entre un par de comillas simples. carácter, la constante de cadena es una secuencia de caracteres encerrados entre un par de comillas dobles.
c especifica "\" como el final de la cadena, que el sistema agrega automáticamente, por lo que la cadena "a" en realidad contiene dos caracteres: 'a' y '\', y no está permitido asignarla a un carácter. variable.
4. Ignora la diferencia entre "=" y "==".
En muchos lenguajes de alto nivel, el símbolo "=" se utiliza como operador relacional "igual". Por ejemplo, puedes escribirlo en el programa BASIC.
Si (a=3) entonces...
Pero en lenguaje C, "=" es un operador de asignación y "==" es un operador relacional. Por ejemplo:
if(a = = 3)a = b;
El primero es para comparar si A es igual a 3, y el segundo es para asignar el valor B a A si A y 3 son iguales... Los principiantes suelen cometer este tipo de errores debido a los hábitos.
5. Olvídate del signo más.
El punto y coma es una parte integral de la declaración C y debe haber un punto y coma al final de la declaración.
a=1
b=2
Al compilar, el compilador no encontró el punto y coma después de "a=1", por lo que cambió la siguiente línea "b =2" como parte de la línea anterior, lo que provocará un error de sintaxis. Al corregir errores, a veces el error no se encuentra en la línea donde se señaló el error. Depende de si falta el punto y coma de la línea anterior.
{ z = x y;
t = z/100
printf("f ", t
}
Para declaraciones compuestas, el último punto y coma de la última declaración no se puede ignorar (esto es diferente de PASCAL).
6. Puntos extra.
Para declaraciones compuestas, por ejemplo:
{ z = x y;
t = z/100; " , t);
};
No puede haber símbolos adicionales después de las llaves de una oración compuesta, de lo contrario será superfluo.
Otro ejemplo es:
if(a 3 = = 0);
i;
Originalmente si 3 es divisible por A , agregaré 1. Pero como hay un punto y coma (a3 == 0) después de if, la declaración if termina aquí y el programa ejecutará la declaración I. Independientemente de si 3 es divisible por A, agregaré automáticamente 1.
Otro ejemplo es:
for(I = 0;ilt5;i);
{scanf("d", ampx);
p>
printf("d ",x);}
La intención original es ingresar cinco números en secuencia y luego generar cada número. Debido a que se agrega un punto y coma después de for(), el cuerpo del bucle se convierte en una declaración vacía. En este momento, solo se puede ingresar y emitir un número.
7. Olvidé agregar el operador de dirección "" al ingresar variables. .
int a, b;
scanf("dd ", a, b
Esto es ilegal. La función Scanf se utiliza para almacenar los valores de A y B en función de sus direcciones en la memoria. "amp "A" se refiere a la dirección de A en la memoria.
8. El método de entrada de datos no cumple con los requisitos. ①scanf("dd", amp one, ampb);
Entrada Al ingresar datos, las comas no se pueden usar como separador entre dos datos. Por ejemplo, la siguiente entrada es ilegal:
3, 4
Al ingresar datos, déjela. un espacio entre los dos datos Ingrese uno o más espacios, o presione Enter o tab
②scanf("d, d", amp one, ampb
c especifica que si. el carácter de "control de formato" Si hay caracteres distintos a la descripción del formato en la cadena, se deben ingresar los mismos caracteres que estos al ingresar datos. La siguiente entrada es legal:
3, 4
Utilizar en este momento Es un error utilizar espacios u otros caracteres en lugar de comas.
3 4 3: 4
Otro ejemplo es:
scanf("a=d, b=d", amp one, ampb); p>
La entrada debe tener la siguiente forma:
a=3, b=4
9. El formato de los caracteres de entrada no cumple con los requisitos.
Al ingresar caracteres en formato "c", tanto el "carácter de espacio" como el "carácter de escape" se ingresan como caracteres válidos.
scanf("ccc ", ampc 1; c2 y ampC3);
Por ejemplo, ingrese a b c
El carácter "a" se envía a c1, el carácter "" se envía a c2, el carácter "b" se envía a c3, porque c solo necesita leer un carácter y no necesita usar un espacio como intervalo entre los dos caracteres.
10. Los tipos de datos de entrada y salida son inconsistentes con los especificadores de formato utilizados.
Por ejemplo, A se define como un número entero y B se define como un tipo de número real.
a = 3; b = 4.5
printf("fd\n ", a, b);
No se mostrará ningún mensaje de error durante la compilación. Sin embargo, los resultados no serán consistentes con la intención original. Este error requiere atención especial.
11.Se intentó especificar la precisión al ingresar los datos.
scanf("7.2f ", ampa);
Hacerlo es ilegal y no se puede especificar la precisión al ingresar datos.
12. La declaración de interrupción se omite en la declaración de cambio.
Por ejemplo, imprima un campo de porcentaje basado en el nivel de puntuación del examen.
Cambiar (nivel)
{ case ' A ': printf(" 85 ~ 100 \ n ");
Caso ' B ': printf(" 70 ~ 84 \ n ");
caso ' C ': printf (" 60 ~ 69 \ n ");
caso ' D ': printf (" lt; 60 \ n");
Valor predeterminado: printf(" error \ n ");
Debido a la omisión de la declaración break, case solo funciona como una etiqueta y no juega un papel en el juicio. Por lo tanto, cuando el valor del nivel es a, la función printf ejecuta la segunda, tercera, cuarta y quinta declaración de la función printf después de ejecutar la primera declaración. La forma correcta de escribirlo es agregar "descanso" después de cada rama. . Por ejemplo
caso 'A': printf(" 85 ~ 100 \ n ");
13. Ignore las diferencias detalladas entre las declaraciones while y do- while.
(1)main()
{int a=0, I
scanf("d ", ampI
mientras(ilt=10)
{ a = a I
i;
}
printf("d ", a);
}
(2) principal()
{int a=0, I
scanf(" d; ", ampI);
Hacer
{ a = a I;
i;
} mientras(I lt; = 10 );
printf("d ", a);
}
Se puede observar que cuando el valor de la entrada I es menor o igual a 10, ambos obtuvieron los mismos resultados. Cuando mi gt está en 10, el resultado es diferente. Porque el bucle while se juzga antes de la ejecución, mientras que el bucle do- while se juzga después de la ejecución.
Para números mayores que 10, el bucle while no ejecuta el cuerpo del bucle una vez, pero la instrucción do- while ejecuta el cuerpo del bucle una vez.
14. Mal uso de variables al definir arrays.
int n;
scanf("d ", ampn);
int a[n]; nombre de matriz Los corchetes son expresiones constantes que pueden contener constantes y constantes simbólicas. Es decir, C no permite definir dinámicamente el tamaño de una matriz.
15. Al definir una matriz, el "número de elementos" definido se confunde con el valor máximo del subíndice.
main()
;
printf("d",a[10]);
}
< El lenguaje p>C estipula que se usa a [10] al definir, lo que significa que la matriz A tiene 10 elementos. Su valor de subíndice comienza desde 0, por lo que el elemento de matriz a[10] no existe.16. No se utiliza almacenamiento estático al inicializar la matriz.
int a[3]=;
Es incorrecto inicializar una matriz como esta. El lenguaje C estipula que solo se pueden inicializar matrices de almacenamiento estáticas y matrices de almacenamiento externo. Debe cambiarse a:
static int a[3]=;
17. El operador de dirección no debe agregarse a la posición.
scanf("s ", ampstr);
El sistema de compilación en lenguaje C procesa el nombre de la matriz de esta manera: el nombre de la matriz representa la dirección inicial de la matriz y la entrada en la función scanf Los elementos son nombres de matrices de caracteres, por lo que no es necesario agregar símbolos de dirección. Debe cambiarse a:
scanf("s ", str);
18. Se definen tanto los parámetros formales como las variables locales en la función.
int max(x, y)
int x, y, z;
{ z = x gty? x: y;
Return (z);
}
Los parámetros formales deben definirse fuera de la función, mientras que las variables locales deben definirse dentro de la función. Debe cambiarse a:
int max(x, y)
int x, y
{ int z
z; = x gty? x: y;
Return (z);
}
c experiencia lingüística
A través de esta formación he aumentado mi aprendizaje. Interés por la tecnología del software. Aunque no conocía el contenido específico de la tecnología de software, encontré la diversión de programar a partir del curso de lenguaje C. En el proceso de aprendizaje del lenguaje C, también aprendí muchos conocimientos básicos de aplicaciones informáticas y también obtuve un conocimiento básico. Comprensión del cuerpo de la computadora.
En esta capacitación, el profesor dio un programa de muestra y, después de su propia reescritura, se cumplieron los requisitos. Primero realice una salida simple y luego realice otros modos paso a paso. Algunos errores cometidos durante la operación real conducirán a ganancias inesperadas y la capacitación es muy interesante. En la operación específica se consolidaron los conocimientos teóricos del lenguaje C aprendidos este semestre y se logró el propósito básico de la capacitación. Al mismo tiempo, también descubrí mis propios defectos y debería prestarles más atención en el futuro. Al mismo tiempo, me di cuenta de que el lenguaje C tiene las características de declaraciones concisas, uso flexible y alta eficiencia de ejecución. Descubra el importante papel de la formación en informática, especialmente una comprensión profunda de las matrices y los bucles.
A través de operaciones prácticas, aprendí los pasos y métodos básicos de la programación en lenguaje C, desarrollé mi capacidad de pensamiento lógico y cultivé mi capacidad para analizar y resolver problemas. Entiendo profundamente el significado de "nada es imposible, sólo imaginable", "la unidad hace la fuerza", "la práctica es el estándar para probar la verdad" y "No me avergüenzo de hacer preguntas".
Espero llevar a cabo más capacitaciones de este tipo en el futuro, ampliar la sala de diseño, cultivar la capacidad de los estudiantes para pensar de forma independiente y mejorar su nivel de operación práctica.
Ocho. Referencia: Tutorial de programación en lenguaje C
Además, el grupo IDC tiene muchos productos online con precios bajos y buena reputación.