Buscamos ayuda de expertos para crear un "sistema de gestión del estado de los estudiantes" en lenguaje C++
El diseño de mi curso el año pasado fue este, me gustaría compartirlo contigo.
Es absolutamente utilizable.
Lo aceptaré con una sonrisa
#include
#include
#include
#include
usando el espacio de nombres std;
int sum,avarage;
int cantidad=0 //Registra el número de estudiantes p>
de flujo *archivo[50]
////////////////////////////// /// Estructura de puntuación de los estudiantes
struct score
{
float yw
float sx; float yy;
int suma;
int avarage;
puntuación de estructura *siguiente;
}; >// ////////////////////////////////Datos del estudiante clase
clase estudiante
{
público:
cadena mun;
nombre de cadena;
int suma;
int avarage;
puntuación sc1; //puntuación;
estudiante de clase *siguiente;
}; ///// ////////////////////////Declaración de función
void input(student *head); //Entrada
void search1(estudiante *head); //Consulta de nombre
void search2(student *head); //Consulta de número de estudiante
void change(estudiante * head); //Modificar
void shanchu(student *head); //Eliminar
void get(student *head); //Obtener datos
void tongji(student *head) ); //Puntuación estadística total y datos de puntuación media
void display(); //Mostrar menú
void show(student *head); /Mostrar datos
void readin(student *head); //Guardar datos
///////////////////// //////// /////Función principal
void main() //Función principal
{
system("color ff ");
char x;
bool flag2=0;
estudiante *head=nuevo estudiante; //Inicializa los datos del sistema de gestión de estado de estudiantes
head-> next=NULL;
cout<<" ★ ---- Diseño: Fang Bing, Clase 2, 06 Xinke▕ Todos los derechos reservados. Los infractores serán procesados- ---★ \n ";
display(); //Mostrar interfaz de operación
do
{
p>
hacer
{
cin>>x
if((x>='0'&&x<='8'))
flag2=1;
else
{
cout<<"!!!!!!!!!!!! !!!!Error de comando!!!!!!!!!!!!!!!!"< cout<<" Seleccione el número correspondiente para operar: "; } } while(flag2==0); cambiar(x) { caso '1 ': cout<<"******************Ingrese los datos del estudiante ahora************** * **\n"; input(head); cout<<"La información del estudiante ingresada es:\n"; show(head ) mostrar(); romper caso '2': cout<<"************ * **Modificar los datos del estudiante ahora******************\n"; change(head); display() ; break; //Modificar por nombre case '3': cout<<"************ ******Ahora muestra toda la información del estudiante******************\n"; show(head); display(); break; //Mostrar datos case '4': { char z; > cout<<"****************** Ahora consulta la información del estudiante****************** ** \n"; cout<<"Seleccione el método de consulta:"; cout<<"(1) Consulta de nombre; (2) Consulta de identificación del estudiante: "; cin >>z; while(z!='1'&&z!='2') { cout<<"!! !!! !!!!Error de comando <¡Por favor elija (1) o (2)!>!!!!!!!!!!!!"< cout<<"Por favor elija método de consulta: (1). Consulta de nombre; (2). Consulta de número de estudiante: "; cin>>z; } switch(z) { <). /p> case '1': search1(head);break;//Buscar por nombre case '2': search2(head);break;//Buscar por número de estudiante Consulta } mostrar(); romper } case '5': cout<<"************Ahora consulta las calificaciones totales y promedio de los estudiantes************ ***\n"; tongji(cabeza); display(); break; caso '6': cout<<"******************Ahora guarda la información del estudiante*********************\n "; readin(head); display(); break; caso '7': cout<<"******************Ahora elimine la información del estudiante especificada******************\ n" ; shanchu(cabeza); show(cabeza); display(); break; //Eliminar p> caso '8': cout<<" ╔══════════════════════════ ═╗ \n"; cout<<" ║ Has salido del sistema de gestión de estado de estudiante, ¡gracias por usarlo ║\n"; cout<<" ╚ ════ ═══════════════════════╝\n"; cout< salir(0 ); romper } }mientras(bandera2==1 } //////////////////////////////////Menú de visualización visualización nula( ) { cout<<" ╔═══════════════════════════╗" < cout<<" ║ ☆ Sistema de gestión del estado del estudiante☆ ║"< cout<<" ║══════════ ═══════ ══════════║"< cout<<" ║ ║"< cout< <" ║ (1)Ingreso de datos del estudiante║"< cout<<" ║ (2) Modificación de datos del estudiante║"< cout<< " ║ (3) Mostrar información del estudiante║"< cout<<" ║ (4) Consultar información del estudiante║"< cout<<" ║ - -(1) Buscar por número de estudiante║"< cout<<" ║ --(2) Buscar por nombre║"< cout<< " ║ --Puntuaciones estadísticas totales y puntuaciones medias║"< cout<<" ║ (5) Consulta las puntuaciones totales y puntuaciones medias de los estudiantes║"< cout<<" ║ (7) Eliminar información especificada del estudiante║"< cout<<" ║ ║"< cout<<" ║══; ═ ════════════════════════║"< cout<<" ║Nota: Por favor ingrese los corchetes correspondientes ¡Números arábigos para realizar operaciones relacionadas! ║"< cout<<" ║ Para guardar los datos, cree primero el archivo especificado: ║"< cout<<" ║ (D: \ \Sistema de gestión de estado de estudiantes\\resultados de estudiantes.txt) ║"< cout<<" ╟——————————————————— — ——————╢"< cout<<" ║====================Gracias por su uso === ====================║"< cout<<" ╚════════ ═══════════════════╝"< cout<<" →Por favor seleccione el número correspondiente para operar: "< } ///////////////////////////////////Pantalla datos del estudiante void show(estudiante *head) { estudiante *stu=head->next; cout<< " | ID de estudiante | Nombre | Chino | Matemáticas | Inglés | Puntuación total | Puntuación media |"< while(stu!=NULL) { cout<<" | "< cout<<" | "< cout<<" | "< cout<<" | "< cout<<" | "< cout<<" | "< cout<<" | "< stu=stu->siguiente; } sistema( "pausa "); } /////////////////////////////// ///Guardar datos del estudiante void readin(estudiante *head) { char a estudiante *stu=head; ->next; cout<<"Guarda los datos del estudiante ingresados ahora, ¿quieres continuar? (s/n)" cin>>a; > ofstream outfile( "D:\\Sistema de gestión del estado del estudiante\\Resultados del estudiante.txt",ios::out if(! outfile) { cout <<"!!!!!!!!!!!!Error al abrir el archivo!!!!!!\n" cout<<"!!! Para guardar datos , primero cree el archivo especificado: D :\\Student Status Management System\\Student Scores.txt!!!\n"; exit(0); } while(a! ='n') { while(stu!=NULL) { archivo de salida<<"**** ** **********Los datos del "< archivo de salida <<"| Número de estudiante| Nombre| Chino| Matemáticas| Inglés|Puntuación total|Puntuación promedio|"< cantidad++; stu=stu->siguiente; } descanso } cout<<"...¡Se guardaron correctamente los datos del estudiante en outfile.close() } anular entrada(estudiante * cabeza) { char c int j=0 estudiante *p=cabeza; p> file[j]=new ofstream("D:\\Sistema de gestión del estado del estudiante\\Resultados del estudiante.txt",ios::app do { estudiante *stu=nuevo estudiante; cout<<"Ingrese el número de estudiante (limitado a 4 dígitos):"< cout<<"Por favor, introduzca el nombre:"< cout<<" Por favor ingrese la puntuación del idioma: "< cin>>(*stu).sc1.yw; //cout<<(*stu). sc1.yw< cout<<"Ingrese su puntaje de matemáticas:"< cin>>(*stu).sc1.sx; ; //cout<<(*stu).sc1.sx< cout<<"Ingrese su puntuación en inglés:"< cin>>(*stu).sc1.yy; //cout<< ;(*stu).sc1.yy< (*stu).sc1.sum=(*stu).sc1.yw+(*stu).sc1.sx+(*stu). sc1.yy; //cout<<(*stu).sc1.sum< (*stu).sc1.avarage=((*stu). sc1.yw+(*stu).sc1.sx+(*stu).sc1.yy)/3; //cout<<(*stu).sc1.avarage< stu->next=p->next; p->next=stu; cantidad++; Éxito, quieres seguir escribiendo (y/n)"; cin>>c; p=p->next; while(c!='y'&&c != 'n') { cout<<"!!!!!!!! Error de comando <¡ingrese y/n!>!!!!!!! !!!"< cout<<"Ingreso de datos exitoso, desea continuar (s/n)"; cin>>c; } } while(c=='y'); j++ cout<<"Entró"< } ////////////////////// /// ////////Consulta datos de estudiantes usando nombre void search1(student *head)//Consulta de nombre { char c; nombre de cadena hacer { estudiante *stu=head->siguiente > bool flag =0; cout<<"Ingrese el nombre del estudiante que desea consultar:" cin>>nombre; do{ if(stu!=NULL&&name==(*stu).name) //Salida de las puntuaciones de los estudiantes { flag=1; p> cout <<" | ID de estudiante | Nombre | Chino | Matemáticas | Inglés | Puntaje total | Puntaje promedio |"< cout<<" | "< cout<<" | "< cout<<" | "< cout<<" | "< cout<<" "< cout<<" | "< cout<<" | "< cout<<" | "< } stu=stu->siguiente; } while(stu!=NULL if(flag==0) p> p> cout<<"!!!!!!!!!!!!!!!! ¡¡¡Lo siento! ¡¡¡¡¡El alumno que deseas consultar no existe!!!!!!!!!!!!"<< endl; cout<<"¿Quieres continuar consultando? (y/n)" cin>>c; 'n') p> { cout<<"!!!!!!!!!!!!!!!Error de comando <¡ingrese y/n!>!!! !!!!!! !!"< cout<<"¿Quieres seguir consultando? (y/n)"; cin>>c; } } mientras(c=='y'); } //////////////// //////// /////////Consultar datos del estudiante usando el número de estudiante void search2(estudiante *head)//Consultar número de estudiante { char c;string no; hacer { estudiante *stu=head->siguiente int flag=0; cout<<"Ingrese el número de estudiante que desea consultar:" cin>>no do; { if(stu!=NULL&&no==(*stu).mun) { flag=1; /p> cout< <"El estudiante que desea consultar es: "< cout<<" | Número de estudiante | Nombre | Chino | Matemáticas | Inglés | Puntuación total | Puntuación media |" < cout<<" "< cout< <" | "< cout<<" | "< cout<< " | "< cout<<" | "< /p> cout<<" | "< cout<<" | "< cout<<" | "< } stu=stu->siguiente; p> p> } while(stu!=NULL); if(bandera==0) cout<<"!!!!!!!!! !!!!!!!!!!!!!!!"< cout<<"Do ¿Quieres seguir consultando? (y/n)"; cin>>c; while(c!='y'&&c!='n') { cout<<"!!!!!!!!!Error de comando <¡ingrese y/n!>!!!!!!!!!!!!"< cout<<"¿Quieres continuar consultando? (s/n)"< cin>>c } ; p> }mientras(c=='y'); } /////////////////// ///// /////////Modificar datos del estudiante void change(student *head) { string name; c; hacer { bool flag2=0; estudiante *stu=head->siguiente; puntuación sc1 ; cout<<"Ingrese el nombre del estudiante que desea modificar:" cin>>nombre; hacer { if(nombre==(*stu).nombre) { flag2=1; > cout<<" Ingrese una nueva puntuación de idioma chino (puntuación del estudiante): "; cin>>sc1.yw cout<<"Ingrese una nueva puntuación de matemáticas (puntuación del estudiante) Puntuación):"; cin>>sc1.sx; cout<<"Ingrese una nueva puntuación de inglés (puntuación del estudiante):"; cin>>sc1.yy; (*stu).sc1.yw=sc1.yw (*stu).sc1.sx=; sc1.sx; (*stu).sc1.yy=sc1.yy; (*stu).sc1.sum=(*stu).sc1.yw+(* stu).sc1.sx+(*stu).sc1.yy; (*stu).sc1.avarage=((*stu).sc1.yw+(*stu).sc1.sx+(* stu).sc1. yy)/3; p> cout<<" | ID de estudiante | Nombre | Chino | Matemáticas | Inglés | Puntuación total | Puntuación media | "< cout<<" | "< cout<<" | "< cout<<" | "<< setw(4)<<(*stu).sc1.yw; cout<<" | "< cout<<" | "< cout<<" | "< cout<<" | "<< endl; cout<<"....¡Datos modificados exitosamente!\n" break } stu; =stu->siguiente; }mientras(stu!=NULL if(flag2==0) { cout<<"!!!¡¡Lo siento! ¡¡¡El estudiante que deseas modificar no existe! ¡¡¡Por favor revisa y vuelve a ingresar!!!!!"< } cout<<"¿Quieres continuar modificando?(s/n)" cin>>c if(c!='y'&&c!='n'; ) { cout<<"!!!!!!!!!!!!!!!! ¡¡¡Error de comando! ¡¡¡Vuelva a ingresar cin>>c; } }mientras(c=='y'); } //////////////////////////////////// Eliminar datos del estudiante void shanchu(estudiante *cabeza)//número de estudiante { char c;string no do; { int flag=0; cout<<"Ingrese el número de estudiante que desea eliminar:"; cin>> no; estudiante *q,*p; q=cabeza while(q->siguiente!=NULL&&q->siguiente- >mun! =no) q=q->siguiente; if(q->siguiente!=NULL) { bandera =1; p=q->ne xt; q->next=q->siguiente->siguiente; cantidad--; p> cout<<"...¡Eliminado exitosamente! "; } if(flag==0) cout<<" !!! !!!!!!!!!!!!Lo siento! El estudiante que deseas eliminar no existe!!!!!!!!!"< cout<<"Quieres para continuar ¿Eliminar?(s/n)"; cin>>c; while(c!='y'&&c!='n') { cout<<"!!!!!!!!!!!! Error de comando cout<<"¿Quieres continuar eliminando? (s/n)" cin>>c } }mientras(c=='y'); } //////////////////// / /////////////Cálculo de calificaciones totales y calificaciones promedio void tongji(estudiante *cabeza) { char c; nombre de cadena hacer { estudiante *stu=head->siguiente; p > bool flag=0; cout<<"-----Cálculo de la puntuación total y puntuación media-----"< cout<< " Ingrese el nombre del estudiante que desea consultar: "; cin>>nombre do{ if(stu!=NULL&&name= =(*stu ).name) //Resultado de las puntuaciones de los estudiantes { flag=1; cout<<" | ID del estudiante | Nombre | Total Puntuación | Puntuación media |"< cout<<" | "< cout<<" | "< cout<<" | "< cout <<" | "< cout<<" | "< stu=stu->siguiente; } while(stu!=NULL if(flag==0) > cout<<"¿Quieres continuar consultando?(y/n)" cin>>c while(c!='y'&&c!='n') { cout<<"!!!!!!!!!!!! Error de comando <¡ingrese y/n!>!!!!!!!!!!!!" < cout<<"¿Quieres continuar consultando? (y/n)"; cin>>c; (c=='y'); }