Declaración del problema : escriba un programa C para crear un software para el sistema de gestión de exámenes que pueda realizar las siguientes operaciones:
- Agregar/Eliminar los Detalles de los Estudiantes
- Seguimiento de asistencia de los alumnos
- Establecer/Editar criterios de elegibilidad para exámenes
- Verifique los estudiantes elegibles para los exámenes
- Imprimir todos los expedientes de los alumnos
Enfoque : La idea es formar una función individual para cada operación. Todas las funciones se unifican junto con los casos de cambio para formar software. A continuación se muestra la ilustración de las funciones:
- ejecutar(): esta función mostrará las opciones disponibles para el software y realizará la siguiente funcionalidad utilizando las declaraciones de cambio .
Funcionalidad:- Agregar detalles del estudiante
- Mostrar estudiantes elegibles
- Eliminar registro de estudiante
- Actualizar los criterios de elegibilidad
- Imprimir detalles de los estudiantes
- add(): esta función que obtiene los datos del usuario y actualiza la lista de los estudiantes. Mientras agrega al estudiante a la lista, verifique la singularidad del número de registro del estudiante. Los detalles de los estudiantes que se agregarán son:
- Nombre de estudiante
- Número de rollo
- Estado de las tarifas
- Registro de asistencia del estudiante
- elegibleStudents(): esta función muestra el porcentaje de asistencia anterior requerido para los exámenes y obtiene los datos del usuario y actualiza la elegibilidad para los exámenes. También actualiza el estado de la tarifa requerida para la elegibilidad de los exámenes iterando sobre la Lista de los registros de los estudiantes y para cada estudiante, verifique que el porcentaje de asistencia esté por encima del porcentaje requerido y el estado de la tarifa del estudiante.
- print_student(): esta función itera sobre la lista de estudiantes e imprime los detalles del estudiante.
- eliminar(): esta función obtiene el número de registro del estudiante para eliminar el registro del estudiante y actualizar la lista del estudiante.
A continuación se muestra el programa para ilustrar las funcionalidades anteriores:
agregar()
// Function that adds the student's
// record in Examination Management
// Project
void add(struct student s[50])
{
printf("Enter the total ");
printf("number of working days \n");
scanf("%f", &tdays);
printf("Enter the number"
"of students \n");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("Student number %d \n",
(i + 1));
printf("Enter the name of"
" the student \n");
scanf("%s", s[i].name);
printf("Enter the roll number \n");
scanf(" %d", &s[i].rno);
printf("Enter the fees of the"
"student 'P' for paid "
", 'N' for not paid \n");
scanf(" %c", &s[i].fees);
printf("Enter the number of"
"days the student was "
"present \n");
scanf("%f", &s[i].days);
s[i].attend = (s[i].days
/ tdays)
* 100;
printf("student attendance"
" = %f \n",
s[i].attend);
}
execute();
}
ejecutar()
// Function to execute the Examination
// Management System
void execute()
{
printf("Enter the serial number "
"to select the option \n");
printf(" 1. To show Eligible"
"candidates \n");
printf(" 2. To delete the "
"student record \n");
printf(" 3. To change the "
"eligibility criteria \n");
printf(" 4. Reset the "
"eligibility criteria \n");
printf(" 5. Print the list "
"of all the student \n");
printf(" Enter 0 to exit \n");
scanf("%d", &option);
// Switch Statement for choosing
// the desired option for user
switch (option) {
case 1:
eligibleStudents(s);
execute();
break;
case 2:
deleteRecord(s);
execute();
break;
case 3:
printf("Old Attendance "
"required = %f",
present);
printf(
"\n Enter the updated "
"attendence required \n");
scanf("%f", &present);
printf("fees status required"
" was %c \n",
money);
printf("Enter the new fees "
"status 'P' for paid 'N' "
"for not paid and "
"'B' for both \n");
scanf("%c", &money);
printf("Eligibility Criteria"
" updated \n");
execute();
break;
case 4:
present = 75.00;
money = 'P';
printf("Eligibility Criteria"
" reset \n");
execute();
break;
case 5:
printStudents(s);
execute();
break;
case 6:
execute();
break;
case 0:
exit(0);
default:
printf("Enter number only"
" from 0 - 4 \n");
execute();
}
}
estudiantes elegibles()
// Function to print the student
// details of the eligible students
void eligibleStudents(struct student s[])
{
printf("________________"
"________________"
"_______________"
"_____________ \n");
printf("Qualified student are = \n");
// Iterate over the list of the
// students records
for (i = 0; i < n; i++) {
// Condition to check the
// eligibility of the student
if (s[i].fees == money || 'B' == money) {
if (s[i].attend >= present) {
printf("Student name = %s \n",
s[i].name);
printf("Student roll no. = %d \n",
s[i].rno);
printf(" Student fees = %c \n",
s[i].fees);
printf(" Student attendence = %f \n",
s[i].attend);
}
}
}
}
Eliminar()
// Function to delete any Student Record
void delete (struct student s[])
{
int a = 0;
printf("Enter the roll number of"
"the student to delete it ");
scanf("%d", &a);
// Iterate over the student's
// records to delete the Data
for (i = 0; i <= n; i++) {
// Check the current student
// roll number is same as the
// user input roll number
if (s[i].rno == (a)) {
// Update record at ith index
// with (i + 1)th index
for (j = i; j < n; j++) {
strcpy(s[j].name,
s[j + 1].name);
s[j].rno = s[j + 1].rno;
s[j].fees = s[j + 1].fees;
s[j].days = s[j + 1].days;
s[j].attend = s[j + 1].attend;
}
printf("Student Record deleted");
}
}
}
imprimir_estudiante()
// Function to print the students record
void print_student(struct student s[])
{
// Iterate over the students
// students records
for (i = 0; i < n; i++) {
printf("Name of student %s \n",
s[i].name);
printf("Student roll number = %d \n",
s[i].rno);
printf("Student fees status = %c \n",
s[i].fees);
printf("student number of days "
"present = %d \n",
s[i].days);
printf("Student attendence = %f \n",
s[i].attend);
}
}
Complete Code
// C program for the Examination // Management System #include <stdio.h> #include <stdlib.h> #include <string.h> int option = 0; int i = 0; int n = 0; int j = 0; float present = 75.00; char money = 'P'; float tdays = 1; // Structure of Student struct student { char name[20]; int rno; char fees; float days; float attend; } s[50]; // Functions void add(struct student s[]); void eligibleStudents(struct student s[]); void execute(); void printStudents(struct student s[]); void deleteRecord(struct student s[]); // Function to execute the software // for the student examination // registration system void execute() { printf( " Enter the serial number" "to select the option \n"); printf(" 1. To show Eligible" "candidates \n"); printf(" 2. To delete the " "student record \n"); printf(" 3. To change the " "eligibility criteria \n"); printf(" 4. Reset the " "eligibility criteria \n"); printf(" 5. Print the list " "of all the student \n"); printf(" Enter 0 to exit \n"); scanf("%d", &option); // Switch Statement for choosing // the desired option for the user switch (option) { case 1: eligibleStudents(s); execute(); break; case 2: deleteRecord(s); execute(); break; case 3: printf("Old Attendance " "required = %f", present); printf( "\n Enter the updated " "attendence required \n"); scanf("%f", &present); printf("fees status required" " was %c \n", money); printf("Enter the new fees " "status 'P' for paid 'N' " "for not paid and " "'B' for both \n"); scanf("%c", &money); printf("Eligibility Criteria updated \n"); execute(); break; case 4: present = 75.00; money = 'P'; printf("Eligibility creitria reset \n"); execute(); break; case 5: printStudents(s); execute(); break; case 6: execute(); break; case 0: exit(0); default: printf("Enter number only from 0-4 \n"); execute(); } } // Function to print the students record void printStudents(struct student s[]) { // Loop to iterate over the students // students records for (i = 0; i < n; i++) { printf("Name of student %s \n", s[i].name); printf("Student roll number = %d \n", s[i].rno); printf("Student fees status = %c \n", s[i].fees); printf("Student number of days " "present = %f \n", s[i].days); printf("Student attendence = %f \n", s[i].attend); } } // Function to Student Record void deleteRecord(struct student s[]) { int a = 0; printf("Enter the roll number of " "the student to delete it "); scanf("%d", &a); // Loop to iterate over the students // records to delete the Data for (i = 0; i <= n; i++) { // Condition to check the current // student roll number is same as // the user input roll number if (s[i].rno == (a)) { // Update record at ith index // with (i + 1)th index for (j = i; j < n; j++) { strcpy(s[j].name, s[j + 1].name); s[j].rno = s[j + 1].rno; s[j].fees = s[j + 1].fees; s[j].days = s[j + 1].days; s[j].attend = s[j + 1].attend; } printf("Student Record deleted"); } } } // Function to print the student // details of the eligible students void eligibleStudents(struct student s[]) { printf("________________" "________________" "_______________" "_____________ \n"); printf("Qualified student are = \n"); // Iterate over the list // of the students records for (i = 0; i < n; i++) { // Check for the eligibility // of the student if (s[i].fees == money || 'B' == money) { if (s[i].attend >= present) { printf("Student name = %s \n", s[i].name); printf("Student roll no. = %d \n", s[i].rno); printf(" Student fees = %c \n", s[i].fees); printf(" Student attendence = %f \n", s[i].attend); } } } } // Function to add the students record void add(struct student s[50]) { printf("Enter the total "); printf("number of working days \n"); scanf("%f", &tdays); printf("Enter the number"); printf("of students \n"); scanf("%d", &n); for (i = 0; i < n; i++) { printf("Student number %d \n", (i + 1)); printf("Enter the name of" " the student \n"); scanf("%s", s[i].name); printf("Enter the roll number \n"); scanf(" %d", &s[i].rno); printf("Enter the fees of the" "student 'P' for paid " ", 'N' for not paid \n"); scanf(" %c", &s[i].fees); printf("Enter the number of" "days the student was " "present \n"); scanf("%f", &s[i].days); s[i].attend = (s[i].days / tdays) * 100; printf("student attendence = %f \n", s[i].attend); } execute(); } // Driver Code int main() { printf("Welcome to Student " "database registration \n"); printf("Enter 0 to exit \n"); printf("Enter 1 to add student" " record \n"); scanf("%d", &option); // Switch Statements switch (option) { case 0: exit(0); case 1: add(s); break; default: printf("Only enter 0 or 1"); execute(); } return 0; }
Salida:
A continuación se muestra la salida de las funcionalidades anteriores:
- Para agregar los detalles del estudiante:
- Para estudiantes elegibles:
- Para los criterios de elegibilidad:
- Para imprimir los detalles del estudiante:
- Para eliminar el registro del estudiante:
Publicación traducida automáticamente
Artículo escrito por AkashDubey3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA