Prerrequisitos: Switch Case en C/C++ Declaración del problema: escriba un programa para crear un software simple para el sistema de gestión de información de estudiantes que pueda realizar las siguientes operaciones:
- Guarde el nombre del estudiante.
- Almacene el Apellido del estudiante.
- Guarde el número de lista único para cada estudiante.
- Almacene el CGPA de cada estudiante.
- Almacenar los cursos registrados por el alumno.
Enfoque: La idea es formar funciones individuales para cada operación. Todas las funciones se unifican para formar software.
- Agregar detalles del estudiante: obtenga datos del usuario y agregue un estudiante a la lista de estudiantes. Mientras agrega a los estudiantes a la lista, verifique la singularidad del número de registro.
- Encuentre al estudiante por el número de rollo dado: Esta función es para encontrar el registro del estudiante para el número de rollo dado e imprimir los detalles.
- Encuentre al estudiante por el nombre dado: Esta función es para encontrar a todos los estudiantes con el nombre dado e imprimir sus detalles.
- Buscar los alumnos matriculados en un curso: Esta función es para buscar a todos los alumnos que se han matriculado en un curso determinado.
- Conteo de Estudiantes: Esta función es para imprimir el número total de estudiantes en el sistema
- Eliminar un estudiante: Esta función es para eliminar el registro del estudiante para el número de registro dado.
- Actualizar Estudiante: Esta función es para actualizar los registros de los estudiantes. Esta función no solicita nuevos detalles para todos los campos, pero el usuario debería poder elegir lo que quiere actualizar.
Add
// Function to add the student into the database void add_student() { printf("Add the Students Details\n"); printf("-------------------------\n"); printf("Enter the first name of student\n"); // First name of the student st[i].fname = "Rahul"; printf("Enter the last name of student\n"); // Last name of the student st[i].lname = "Kumar"; printf("Enter the Roll Number\n"); // Roll Number of the student st[i].roll = 1; printf("Enter the CGPA you obtained\n"); // CGPA of the student st[i].cgpa = 8; printf("Enter the course ID" " of each course\n"); // Storing the courses every student // is enrolled in for (int j = 0; j < 5; j++) { st[i].cid[j] = j; } i = i + 1; }
Find by Roll No
// Function to find the details // of the student by roll number void find_rl() { int x; printf("Enter the Roll Number" " of the student\n"); // Roll number for which the details // needs to be found x = 1; // Iterating through all the students for (int j = 0; j < i; j++) { // If the roll number is found if (x == st[j].roll) { printf("The Students Details are\n"); printf("The First name is %s\n", st[j].fname); printf("The Last name is %s\n", st[j].lname); printf("The CGPA is %f\n", st[j].cgpa); // Printing the courses // in which the student // is enrolled for (int k = 0; k < 5; k++) { printf( "The course ID are %d\n", st[j].cid[k]); } break; } } }
Find by Name
// Function to search the students list // by the given first name void find_fn() { char a[50]; printf("Enter the First Name" " of the student\n"); a = "Rahul"; int c = 0; // Iterating through the students list for (int j = 0; j <= i; j++) { // Compare the first names if (!strcmp(st[j].fname, a)) { printf( "The Students Details are\n"); printf( "The First name is %s\n", st[j].fname); printf( "The Last name is %s\n", st[j].lname); printf( "The Roll Number is %d\n ", st[j].roll); printf( "The CGPA is %f\n", st[j].cgpa); printf("Enter the course ID " "of each course\n"); // Print the course ID's for (int k = 0; k < 5; k++) { printf( "The course ID are %d\n", st[j].cid[k]); } c = 1; } } }
Find registered student
// Function to find all the students // who have registered for a given course void find_c() { int id; printf("Enter the course ID \n"); // Course ID id = 1; int c = 0; // Iterating through the students list for (int j = 0; j <= i; j++) { // Checking if the student // has registered in the // given course or not for (int d = 0; d < 5; d++) { if (id == st[j].cid[d]) { printf( "The Students Details are\n"); printf( "The First name is %s\n", st[j].fname); printf( "The Last name is %s\n", st[j].lname); printf( "The Roll Number is %d\n ", st[j].roll); printf( "The CGPA is %f\n", st[j].cgpa); c = 1; break; } } } }
Count
// Function to print the // total number of students void tot_s() { printf("The total number of" " Student is %d\n", i); printf("\n you can have a " "max of 50 students\n"); printf("you can have %d more" " students\n", 50 - i); }
Delete
// Function to delete a student // by the roll number void del_s() { int a; printf("Enter the Roll Number" " which you want to delete\n"); a = 1; // Iterating through the list and // find the student with the given // roll number for (int j = 0; j <= i; j++) { if (a == st[j].roll) { for (int k = j; k < 49; k++) st[k] = st[k + 1]; i--; } } printf("The Roll Number is " "removed Successfully\n"); }
Update
// Function to update the // details of the student void up_s() { printf("Enter the roll number" " to update the entry: "); long int x; x = 1; for (int j = 0; j < i; j++) { if (st[j].roll == x) { printf("1. first name\n" "2. last name\n" "3. roll no.\n" "4. CGPA\n" "5. courses\n"); int z; // Updating the CGPA z = 4; switch (z) { case 1: printf("Enter the new first name : \n"); scanf("%s", st[j].fname); break; case 2: printf("Enter the new last name : \n"); scanf("%s", st[j].lname); break; case 3: printf("Enter the new roll number : \n"); scanf("%d", &st[j].roll); break; case 4: printf("Enter the new CGPA : \n"); st[j].cgpa = 9; break; case 5: printf("Enter the new courses \n"); scanf("%d%d%d%d%d", &st[j].cid[0], &st[j].cid[1], &st[j].cid[2], &st[j].cid[3], &st[j].cid[4]); break; } printf("UPDATED SUCCESSFULLY.\n"); } } }
A continuación se muestra la implementación del enfoque anterior:
C
// C program for the implementation of // menu driven program for student // management system #include <math.h> #include <stdio.h> #include <stdlib.h> #include <string.h> // Variable to keep track of // number of students int i = 0; // Structure to store the student struct sinfo { char fname[50]; char lname[50]; int roll; float cgpa; int cid[10]; } st[55]; // Function to add the student void add_student() { printf("Add the Students Details\n"); printf("-------------------------\n"); printf("Enter the first " "name of student\n"); scanf("%s", st[i].fname); printf("Enter the last name" " of student\n"); scanf("%s", st[i].lname); printf("Enter the Roll Number\n"); scanf("%d", &st[i].roll); printf("Enter the CGPA " "you obtained\n"); scanf("%f", &st[i].cgpa); printf("Enter the course ID" " of each course\n"); for (int j = 0; j < 5; j++) { scanf("%d", &st[i].cid[j]); } i = i + 1; } // Function to find the student // by the roll number void find_rl() { int x; printf("Enter the Roll Number" " of the student\n"); scanf("%d", &x); for (int j = 1; j <= i; j++) { if (x == st[i].roll) { printf( "The Students Details are\n"); printf( "The First name is %s\n", st[i].fname); printf( "The Last name is %s\n", st[i].lname); printf( "The CGPA is %f\n", st[i].cgpa); printf( "Enter the course ID" " of each course\n"); } for (int j = 0; j < 5; j++) { printf( "The course ID are %d\n", st[i].cid[j]); } break; } } // Function to find the student // by the first name void find_fn() { char a[50]; printf("Enter the First Name" " of the student\n"); scanf("%s", a); int c = 0; for (int j = 1; j <= i; j++) { if (!strcmp(st[j].fname, a)) { printf( "The Students Details are\n"); printf( "The First name is %s\n", st[i].fname); printf( "The Last name is %s\n", st[i].lname); printf( "The Roll Number is %d\n ", st[i].roll); printf( "The CGPA is %f\n", st[i].cgpa); printf( "Enter the course ID of each course\n"); for (int j = 0; j < 5; j++) { printf( "The course ID are %d\n", st[i].cid[j]); } c = 1; } else printf( "The First Name not Found\n"); } } // Function to find // the students enrolled // in a particular course void find_c() { int id; printf("Enter the course ID \n"); scanf("%d", &id); int c = 0; for (int j = 1; j <= i; j++) { for (int d = 0; d < 5; d++) { if (id == st[j].cid[d]) { printf( "The Students Details are\n"); printf( "The First name is %s\n", st[i].fname); printf( "The Last name is %s\n", st[i].lname); printf( "The Roll Number is %d\n ", st[i].roll); printf( "The CGPA is %f\n", st[i].cgpa); c = 1; break; } else printf( "The First Name not Found\n"); } } } // Function to print the total // number of students void tot_s() { printf("The total number of" " Student is %d\n", i); printf("\n you can have a " "max of 50 students\n"); printf("you can have %d " "more students\n", 50 - i); } // Function to delete a student // by the roll number void del_s() { int a; printf("Enter the Roll Number" " which you want " "to delete\n"); scanf("%d", &a); for (int j = 1; j <= i; j++) { if (a == st[j].roll) { for (int k = j; k < 49; k++) st[k] = st[k + 1]; i--; } } printf("The Roll Number" " is removed Successfully\n"); } // Function to update a students data void up_s() { printf("Enter the roll number" " to update the entry : "); long int x; scanf("%ld", &x); for (int j = 0; j < i; j++) { if (st[j].roll == x) { printf("1. first name\n" "2. last name\n" "3. roll no.\n" "4. CGPA\n" "5. courses\n"); int z; scanf("%d", &z); switch (z) { case 1: printf("Enter the new " "first name : \n"); scanf("%s", st[j].fname); break; case 2: printf("Enter the new " "last name : \n"); scanf("%s", st[j].lname); break; case 3: printf("Enter the new " "roll number : \n"); scanf("%d", &st[j].roll); break; case 4: printf("Enter the new CGPA : \n"); scanf("%f", &st[j].cgpa); break; case 5: printf("Enter the new courses \n"); scanf( "%d%d%d%d%d", &st[j].cid[0], &st[j].cid[1], &st[j].cid[2], &st[j].cid[3], &st[j].cid[4]); break; } printf("UPDATED SUCCESSFULLY.\n"); } } } // Driver code void main() { int choice, count; while (i = 1) { printf("The Task that you " "want to perform\n"); printf("1. Add the Student Details\n"); printf("2. Find the Student " "Details by Roll Number\n"); printf("3. Find the Student " "Details by First Name\n"); printf("4. Find the Student " "Details by Course Id\n"); printf("5. Find the Total number" " of Students\n"); printf("6. Delete the Students Details" " by Roll Number\n"); printf("7. Update the Students Details" " by Roll Number\n"); printf("8. To Exit\n"); printf("Enter your choice to " "find the task\n"); scanf("%d", &choice); switch (choice) { case 1: add_student(); break; case 2: find_rl(); break; case 3: find_fn(); break; case 4: find_c(); break; case 5: tot_s(); break; case 6: del_s(); break; case 7: up_s(); break; case 8: exit(0); break; } } }
Producción:La tarea que desea realizar 1. Agregue los detalles del estudiante 2. Busque los detalles del estudiante por número de registro 3. Busque los detalles del estudiante por nombre 4. Busque los detalles del estudiante por Id. del curso 5. Busque el número total de estudiantes 6. Eliminar los detalles de los estudiantes por número de lista 7. Actualizar los detalles de los estudiantes por número de lista 8. PARA Salir Ingrese su elección para encontrar la tarea 1 Agregue los detalles de los estudiantes ————————- Ingrese el nombre del estudiante Rahul Ingrese el apellido del estudiante Kumar Ingrese el número de registro 1 Ingrese el CGPA que obtuvo 8 Ingrese el ID del curso de cada curso 1 2 3 4 5 La tarea que desea realizar 1. Agregue los detalles del estudiante 2. Busque los detalles del estudiante por número de registro 3. Encuentre los detalles del estudiante por nombre 4. Encuentre los detalles del estudiante por ID de curso 5. Encuentre el número total de estudiantes 6. Elimine los detalles de los estudiantes por número de registro 7.Actualice los detalles de los estudiantes por número de lista 8. PARA Salir Ingrese su elección para encontrar la tarea 2 Ingrese el número de lista del estudiante 1 Los detalles de los estudiantes son El nombre es Rahul El apellido es Kumar El CGPA es 8.000000 Ingrese la identificación del curso de cada curso La identificación del curso es 1 La identificación del curso es 2 La identificación del curso es 3 La identificación del curso es 4 La identificación del curso es 5 La tarea que desea realizar 1. Agregue los detalles del estudiante 2. Busque los detalles del estudiante por número de lista 3 .Encuentre los detalles del estudiante por nombre 4. Encuentre los detalles del estudiante por ID de curso 5. Encuentre el número total de estudiantes 6. Elimine los detalles de los estudiantes por número de lista 7. Actualice los detalles de los estudiantes por número de lista 8.PARA Salir Ingrese su elección para encontrar la tarea 3 Ingrese el nombre del estudiante Rahul Los detalles de los estudiantes son El nombre es Rahul El apellido es Kumar El número de lista es 1 El CGPA es 8.000000 Ingrese la identificación del curso de cada curso El curso El ID del curso es 1 El ID del curso es 2 El ID del curso es 3 El ID del curso es 4 El ID del curso es 5 La tarea que desea realizar 1. Agregue los detalles del estudiante 2. Busque los detalles del estudiante por número de lista 3. Busque el estudiante Detalles por nombre 4. Encuentre los detalles del estudiante por Id. del curso 5. Encuentre el número total de estudiantes 6. Elimine los detalles de los estudiantes por número de lista 7. Actualice los detalles de los estudiantes por número de lista 8. Para salir Ingrese su elección para encontrar la tarea 4 Ingrese el ID del curso 1 Los detalles de los estudiantes son El nombre es Rahul El apellido es Kumar El número de registro es 1 El CGPA es 8.000000 La tarea que desea realizar 1. Agregue los detalles del estudiante 2. Busque los detalles del estudiante por número de registro 3. Busque los detalles del estudiante por nombre 4. Busque los detalles del estudiante por ID de curso 5. Busque el número total de estudiantes 6 Eliminar los detalles de los estudiantes por número de lista 7. Actualizar los detalles de los estudiantes por número de lista 8. PARA Salir Ingrese su elección para encontrar la tarea 5 El número total de estudiantes es 1 puede tener un máximo de 50 estudiantes puede tener 49 estudiantes más La tarea que desea realizar 1. Agregue los detalles del estudiante 2. Busque los detalles del estudiante por número de registro 3. Busque los detalles del estudiante por nombre 4. Busque los detalles del estudiante por Id. del curso 5. Busque el número total de estudiantes 6. Eliminar los detalles de los estudiantes por el número de lista 7. Actualizar los detalles de los estudiantes por el número de lista 8.PARA Salir Ingrese su elección para encontrar la tarea 6 Ingrese el número de lista que desea eliminar 1 El número de lista se eliminó con éxito La tarea que desea realizar 1. Agregue los detalles del estudiante 2. Busque los detalles del estudiante por número de lista 3. Encuentre los detalles del estudiante por nombre 4. Encuentre los detalles del estudiante por ID de curso 5. Encuentre el número total de estudiantes 6. Elimine los detalles de los estudiantes por número de lista 7. Actualice los detalles de los estudiantes por número de lista 8. PARA Salir Ingrese su elección para encuentre la tarea 2 Ingrese el número de lista del estudiante 1 La identificación del curso es 0 La identificación del curso es 0 La identificación del curso es 0 La identificación del curso es 0 La identificación del curso es 0 La tarea que desea realizar 1. Agregue los detalles del estudiante 2. Encuentre los detalles del estudiante por número de lista 3. Encuentre los detalles del estudiante por nombre 4. Encuentre los detalles del estudiante por ID de curso 5.Encuentre el número total de estudiantes 6. Elimine los detalles de los estudiantes por número de lista 7. Actualice los detalles de los estudiantes por número de lista 8. PARA Salir Ingrese su elección para encontrar la tarea 8
Publicación traducida automáticamente
Artículo escrito por siddharth_25 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA