Red de conocimiento de abogados - Derecho de sociedades - Diseño de cursos de lenguaje C (sistema de gestión del desempeño de los estudiantes) Referencia urgente (¡no descargue las en línea, otros pueden descargarlas!)

Diseño de cursos de lenguaje C (sistema de gestión del desempeño de los estudiantes) Referencia urgente (¡no descargue las en línea, otros pueden descargarlas!)

Libro de tareas de diseño de cursos de lenguaje C

1. Título: Gestión del desempeño de los estudiantes

2 Propósito y requisitos

1.

(1) Básicamente, dominar las ideas y métodos básicos de la programación orientada a procesos.

(2) Lograr el dominio de los conocimientos y habilidades básicos del lenguaje C; p> (3) Ser capaz de utilizar los conocimientos y habilidades básicos aprendidos para resolver problemas de programación sencillos

2.Requisitos

Requisitos básicos:

1. Utilice las ideas de programación orientada a procesos del lenguaje C para completar el diseño del sistema

2. Resalte las características funcionales del lenguaje C y utilice múltiples funciones para realizar cada subfunción; 3. Dibujar el diagrama del módulo de funciones;

4. Llevar a cabo un diseño de interfaz simple para 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. Ser competente en diversas operaciones con archivos en lenguaje C.

Requisitos de innovación:

Una vez que se cumplen los requisitos básicos, se pueden llevar a cabo diseños innovadores, como el control de funciones del usuario del sistema y diferentes operaciones de funciones del sistema para nivel de administrador y 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). La programación calcula el puntaje total y el puntaje promedio de cada estudiante, clasifica a los estudiantes según sus puntajes y finalmente imprime una boleta de calificaciones ordenada de puntaje alto a puntaje bajo. Requisitos:

1) La clasificación se implementa con 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) Complete el contenido experimental de acuerdo con el formato de plantilla de informe experimental electrónico.

4. Descripción de la función

1. Ingrese la información básica y las puntuaciones de los estudiantes en las materias seleccionadas.

2. Consultar y modificar información básica (departamento, clase; materia).

3. Analizar los resultados de cada materia en cada departamento o clase (es decir, encontrar el puntaje promedio, la tasa de aprobación y la tasa de excelencia de una sola materia). Análisis de los cursos ofrecidos (encontrar su puntaje promedio, puntaje más alto y puntaje más bajo).

5. Clasificar los puntajes de las pruebas de los estudiantes (las materias individuales se clasifican por departamento o clase, y para cada clase, el puntaje general); de estudiantes en el mismo semestre es Clasificar y mostrar la información de puntaje de cada materia)

5. Solución

1. Analizar los requisitos funcionales del programa y dividir los módulos funcionales del programa.

2. Dibujar un diagrama de flujo del sistema.

3. Escritura de código. Definir la estructura de datos y cada subfunción funcional.

4. Depuración de funciones del programa.

5. Complete el informe resumido del sistema y el manual de usuario.

6. Disposición del progreso.

Este curso está diseñado para durar dos semanas y se completa 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 los requisitos de diseño, descubran los métodos de implementación y sigan los pasos del análisis de la demanda, 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 de informe resumido: resuma el trabajo de diseño, escriba una especificación de diseño del curso y solicite a los estudiantes que escriban los pasos y el contenido del análisis de necesidades, el diseño general, el diseño detallado, la codificación y las pruebas.

4. Etapa de evaluación.

#include lt; stdio.hgt;

#include lt; stdlib.hgt;

#define STU_NUM 10 /*Definición de macro número de estudiantes*/

struct Student /*Defina una estructura para almacenar el número de estudiante del estudiante, las calificaciones de tres cursos, la puntuación total y la calificación promedio*/

{

char stu_id[ 20]; /*Número de identificación del estudiante;*/

puntuación flotante[3]; /*Tres resultados del curso;*/

total flotante /*Puntuación total; /p>

float aver; /*Puntuación promedio;*/

};

/*La clasificación se implementa con una función*/

void SortScore(estudiante *stu, int n)

{

estudiante semental

for(int i = 0; i lt; n-1 ; i )

for(int j = i 1 ; j lt; n; j )

{

if(stu[i].total lt; stu[j ].total)

{

stud = stu[i]

stu[i] = stu[j]

stu[j] = semental;

}

}

}

int main()

{

student stu[STU_NUM]; /*Hay 10 elementos en la matriz de estructura creada, que se utilizan para guardar la información relevante de estas 10 personas.

*/

/*Ingrese información relevante de estos diez estudiantes*/

for(int i = 0; ilt; STU_NUM; i)

{ < / p>

printf("Ingrese el número de estudiante del désimo estudiante:", i 1

scanf("s", amp; stu[i].stu_id); >

p>

printf("Ingrese la puntuación de matemáticas del estudiante d: ", i 1

scanf("f", amp; stu[i].score[0); ]);

printf("Ingrese la puntuación en inglés del estudiante d:", i 1

scanf("f", amp; stu[i].score[); 1]);

printf("Ingrese la puntuación de computadora del estudiante d: ", i 1

scanf("f", amp; stu[i].score); [2])

stu[i].total = stu[i].puntuación[0] stu[i].puntuación[1] stu[i].puntuación[2]; >

stu[i].aver = stu[i].total/3

}

printf("\n"); SortScore(stu, STU_NUM);/*Llame a la función de clasificación*/

/*Muestre las puntuaciones ordenadas de cada estudiante*/

for(i = 0; i lt; STU_NUM); ; i)

{

printf("Número de serie: d\t", i);

printf("Número de estudiante: s\t", stu[i]. stu_id);

printf("Matemáticas: f\t", stu[i].score[0]); t", stu[ i].score[1]);

printf("Equipo: f\t", stu[i].score[2]);

printf ("Puntuación promedio: f\t", stu[i].aver

printf("Puntuación total: f\t", stu[i].total

printf("\ n\n");

}

return 0;

}

Nota: (Explicación de la significado de los identificadores principales en el programa fuente)

#define STU_NUM 10 /*Macro define el número de estudiantes*/

struct Student /*Define una estructura para almacenar el número de estudiante , tres calificaciones de cursos y puntaje total y calificación promedio*/

{

char stu_id[20] /*Número de identificación del estudiante;*/

float; puntuación[3]; /*Calificación de tres cursos */

flotación total; /*Calificación total;*/

flotación promedio;*/

}

Resultados experimentales:

Entrada: (Ingrese solo los siguientes números, el texto anterior lo genera usted mismo).

Ingrese el número de estudiante del primer estudiante: 001

Ingrese el puntaje de matemáticas del primer estudiante: 1

Ingrese el puntaje de inglés del primer estudiante : 1

Ingrese la puntuación de computadora del primer estudiante: 1

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

Ingrese el número de estudiante del tercero: 003

Ingrese el puntaje de matemáticas del tercer estudiante: 3

Ingrese el puntaje de inglés del tercer estudiante: 3

Ingrese el puntaje de computadora del tercer estudiante: 3

Ingrese el número de estudiante del cuarto estudiante: 004

Ingrese el puntaje de matemáticas del cuarto estudiante: 4

Ingrese el puntaje de inglés del cuarto estudiante: 4

Ingrese el Puntuación de computadora del 4.º estudiante: 4

Ingrese el número de estudiante del 5.° estudiante: 005

Ingrese la puntuación de matemáticas del 5.° estudiante: 5

Ingrese la puntuación de inglés del 5.° estudiante : 5

Ingrese el puntaje de computadora del quinto estudiante: 5

Ingrese el número de estudiante del sexto estudiante: 006

Ingrese el puntaje de matemáticas del sexto estudiante : 6

Ingrese el puntaje de inglés del sexto estudiante: 6

Ingrese el puntaje de computadora del sexto estudiante: 6

Ingrese el número de estudiante del 7mo estudiante: 007

Ingrese el puntaje de matemáticas del 7mo estudiante: 7

Ingrese el puntaje de inglés del 7mo estudiante: 7

Ingrese el puntaje de computadora del 7mo estudiante: 7

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

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 matemáticas del noveno estudiante Puntuación en inglés: 9

Ingrese la puntuación de computadora del noveno estudiante: 9

Ingrese el número de estudiante del décimo estudiante: 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 de computadora 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.000000

Puntuación promedio: 10.000000 Puntaje 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 promedio: 9.000000 Puntaje total: 27.000000

Número de serie: 2 ID de estudiante: 008 Matemáticas: 8.000000 Inglés: 8.000000 Computadora: 8.000000

p>

Puntuación promedio: 8.000000 Puntaje total: 24.000000

Número de serie: 3 ID 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 promedio: 6.000000 Puntuación total: 18.000000

Número de serie: 5 estudios N°: 005 Matemáticas

: 5.000000 Inglés: 5.000000 Computadora: 5.000000

Puntuación promedio: 5.000000 Puntuación total: 15.000000

Número de serie: 6 ID 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 promedio: 2.000000 Puntaje 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 promedio: 1.000000 Puntaje 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 (pasos de programación detallados), pasos de prueba y contenido, resumen del diseño del curso, materiales de referencia, etc. , que no cumpla con los requisitos anteriores, de lo contrario, el diseño se marcará como fallido.

Errores comunes en lenguaje C

Al escribir identificadores, se ignora la diferencia entre letras mayúsculas y minúsculas

main()

{

p>

int a=5

printf("d",A

}

El compilador considera que a y A son dos nombres de variables diferentes y se muestra un mensaje de error. C considera que las letras mayúsculas y minúsculas son dos caracteres diferentes. Por convención, los nombres de las constantes simbólicas se escriben en mayúsculas y los nombres de las variables se escriben en minúsculas para aumentar la legibilidad.

2. Ignorar el tipo de variable y realizar una operación ilegal.

main()

{

flotante a, b

printf("d", ab

);

}

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 con constantes de cadena.

char c;

c="a";

Aquí las constantes de caracteres y las constantes de cadena se representan mediante un par de comillas simples. Una constante de cadena es una secuencia de caracteres entre comillas dobles. C estipula que "\" se usa como marca final de una cadena, que el sistema agrega automáticamente, por lo que la cadena "a" en realidad contiene dos caracteres: 'a' y '\', y se asigna a un carácter. variable Eso no es posible.

4. Ignora la diferencia entre "=" y "==".

En muchos lenguajes de alto nivel, el símbolo "=" se utiliza como operador relacional "igual". Por ejemplo, puedes escribir en un programa BÁSICO

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 comparar si a es igual a 3 y el segundo significa si a es igual a 3. , cambie el valor de b asignado a a. Los principiantes suelen cometer este tipo de errores debido a los hábitos.

5. Olvidé agregar un punto y coma.

El punto y coma es una parte indispensable 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 encuentra un punto y coma después de "a=1", por lo que reemplaza "b" en la siguiente línea =2" también forma parte de la línea anterior de declaraciones, lo que provocará un error de sintaxis. Al corregir errores, a veces, si no se encuentra ningún error en la línea donde se señaló el error, es necesario verificar si falta un punto y coma en 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. Añade más punto y coma.

Para una declaración compuesta, como:

{ z=x y

t=z/100; f ", t);

};

No se debe agregar un punto y coma después de las llaves de una declaración compuesta, de lo contrario será superfluo.

Otro ejemplo:

if (a3==0);

I

Esto es si 3 divide a, entonces I Añade 1. Sin embargo, dado que hay un punto y coma adicional después de if (a3 == 0), la declaración if termina aquí y el programa ejecutará la declaración I. Independientemente de si 3 divide a, automáticamente aumentaré en 1.

Otro ejemplo:

for (I=0; Ilt; 5; I

{scanf("d", amp; x); /p>

printf("d",x);}

La intención original es ingresar 5 números uno tras otro y luego generarlos después de ingresar cada número. Dado que se agrega un punto y coma adicional después de (), el cuerpo del bucle se convierte en una declaración vacía. En este momento, solo se puede ingresar y generar un número.

7. Olvidé agregar el operador de dirección "amp;" al ingresar variables.

int a, b;

scanf("dd", a, b

Esto es ilegal. La función de la función Scanf es almacenar los valores de ayb según las direcciones de ayb en la memoria. "&a" se refiere a la dirección de a en la memoria.

8. El método de ingreso de datos no cumple con los requisitos. ①scanf("dd",amp;a,amp;b);

Al ingresar, las comas no se pueden usar como separador entre dos datos. Por ejemplo, la siguiente entrada es ilegal:

<. p>3, 4

Al ingresar datos, separe uno o más espacios entre los dos datos. También puede usar la tecla Enter y la tecla tab.

②scanf("d, d", amp; a, amp; b);

C estipula: Si hay algo más que la descripción del formato en los caracteres de la cadena de "control de formato". , debe ingresar los mismos caracteres que estos caracteres al ingresar datos. La siguiente entrada es legal:

3, 4

Es incorrecto utilizar espacios u otros caracteres en lugar de comas en este momento.

3 4 3:4

Otro ejemplo:

scanf("a=d, b=d", amp; a, amp; b);

La entrada debe tener la siguiente forma:

a=3, b=4

9 El formato de los caracteres de entrada no coincide con los requisitos. .

Al ingresar caracteres en formato "c", tanto los "caracteres de espacio" como los "caracteres de escape" se ingresan como caracteres válidos.

scanf("ccc", amp; c1, amp; c2, amp; c3

Si ingresas a b c

El carácter "a" es enviado a c1, el carácter " " se envía a c2 y el carácter "b" se envía a c3, porque c solo requiere la lectura de un carácter y no es necesario utilizar un espacio como intervalo entre los dos caracteres. .

10. Los tipos de datos de entrada y salida son inconsistentes con el especificador de formato utilizado.

Por ejemplo, a se ha definido como tipo entero y b se ha definido como tipo real

a=3; b=4.5

printf(" fd\n" , a, b);

No se mostrará ningún mensaje de error durante la compilación, pero el resultado de la ejecución no será consistente con la intención original. Este tipo de error requiere especial atención.

11. Al ingresar datos, intente especificar la precisión.

scanf("7.2f", amp; a);

Esto es ilegal y no se puede especificar la precisión al ingresar datos.

12. Falta la declaración de interrupción en la declaración de cambio.

Por ejemplo: imprima los segmentos de porcentaje según el nivel de puntuación del examen.

cambiar(calificación)

{ caso 'A': printf("85~100\n");

caso 'B': printf(" 70~84\n");

caso 'C': printf("60~69\n");

caso 'D': printf("lt; 60\ n");

default: printf("error\n");

Debido a la omisión de la declaración de ruptura, el caso solo sirve como etiqueta, no como sentencia. . Por lo tanto, cuando el valor de calificación 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 "break;" después de cada rama. Por ejemplo

case 'A': printf("85~100\n"); break;

13.

(1)main()

{int a=0, I

scanf("d", amp; I

);

mientras(Ilt;=10)

{a=a I

I

}

printf(" d", a);

}

(2)main()

{int a=0, I;

scanf ("d", & yo);

hacer

{a=a

yo

}mientras( Ilt; ;=10);

printf("d",a);

}

Puedes ver que cuando el valor de la entrada I es menor que o igual a 10 , los dos resultados son iguales. Pero cuando Igt;10, los dos resultados son diferentes. Porque el ciclo while se juzga primero y luego se ejecuta, mientras que el ciclo do- while se ejecuta primero y luego se juzga. Para números mayores que 10, el bucle while no ejecuta el cuerpo del bucle una vez, mientras que la instrucción do- while ejecuta el cuerpo del bucle una vez.

14. Mal uso de variables al definir arrays.

int n;

scanf("d", amp; n);

int a[n]; Lo que está entre corchetes es una expresión constante, que puede incluir constantes y constantes simbólicas. Es decir, C no permite la definición dinámica del tamaño de la matriz.

15. Al definir una matriz, el "número de elementos" definido se confunde con el valor de subíndice máximo que se puede utilizar.

main()

{static int a[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; >

printf("d", a[10]);

}

El lenguaje C estipula: use a[10] al definir, lo que indica que una matriz tiene 10 elementos Su valor de subíndice comienza desde 0, por lo que el elemento de matriz a[10] no existe.

16. Al inicializar la matriz, no se utiliza almacenamiento estático.

int a[3]={0, 1, 2};

Es incorrecto inicializar la matriz de esta manera. El lenguaje C estipula que solo se pueden inicializar matrices de almacenamiento estático (estático) y matrices de almacenamiento externo (exterm). Debe cambiarse a:

static int a[3]={0, 1, 2};

17. Se agrega la operación de dirección donde no debe estar el operador de dirección. símbolo añadido.

scanf("s", amp; str);

El sistema de compilación en lenguaje C procesa el nombre de la matriz de la siguiente manera: el nombre de la matriz representa la dirección inicial de la matriz, y en la función scanf El elemento de entrada es un nombre de matriz de caracteres y no es necesario agregar el carácter de dirección amp;. Debe cambiarse a:

scanf("s", str);

18. Los parámetros formales y las variables locales en la función se definen al mismo tiempo.

int max(x,y)

int x,y,z

{z=xgt;y?x:y;

return(z);

}

Los parámetros formales deben definirse fuera del cuerpo de la función, mientras que las variables locales deben definirse dentro del cuerpo de la función. Debe cambiarse a:

int max(x, y)

int x, y

{int z

z; = xgt; y?x: y;

return(z);

}

Experiencia en lenguaje C

A través de esta pasantía Ha aumentado mi interés en aprender tecnología de software. Aunque no está claro cuál es el contenido específico de la tecnología de software, a partir del curso de lenguaje C, también descubrí la diversión de la programación en el proceso de aprendizaje. Lenguaje C. Aplicar conocimientos básicos y tener una comprensión general del cuerpo de la computadora.

En esta formación práctica, el profesor me dio un programa de muestra y, después de mi propia reescritura, me di cuenta de los requisitos. Primero haga una salida simple y luego haga otros patrones paso a paso. Algunos errores cometidos durante la operación real conducirán a ganancias inesperadas. Creo que la capacitación práctica es muy interesante. En la operación específica se consolidaron los conocimientos teóricos del lenguaje C aprendidos durante este semestre, se logró el propósito básico de la formación práctica y también se descubrieron las propias deficiencias. Debe prestarle más atención en la futura formación informática. Al mismo tiempo, se da cuenta de las ventajas del lenguaje C. Tiene las características de declaraciones concisas, uso flexible y alta eficiencia de ejecución. Descubrí el importante papel de la formación en informática, especialmente tener un conocimiento profundo de matrices y 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 propia capacidad de pensamiento lógico y cultivé la capacidad de analizar y resolver problemas. Comprender profundamente el significado de "No hay nada imposible, sólo lo inimaginable", "La unidad hace la fuerza", "La práctica es el estándar para probar la verdad", "No te avergüences de hacer preguntas"...

Espero que se lleve a cabo más capacitación práctica de este tipo en el futuro y que el tiempo de capacitación se alargue para cultivar la capacidad de los estudiantes para pensar de forma independiente y mejorar su nivel de operación práctica.

8.Materiales de referencia: "Tutorial de programación en lenguaje C"