Primeros auxilios, tarea de programación en C!!
// 2.cpp: Define el punto de entrada de la aplicación de consola.
//
#include "stdafx.h"
# include lt;iostreamgt;
# include lt;fstreamgt;
# include lt; string.hgt;
#include lt; conio.hgt; //Utiliza getch(); >
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Clase de estudiante﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Clase de estudiante
{
público:
nombre de char[20];
ID de char[20];
int Cnum;
int Mnum; //Puntuación del curso de matemáticas
int Enum; //Puntuación del curso de inglés
int sum; //Puntuación total
Estudiante * Siguiente ;
void Input()
{
coutlt;lt;"\t\tPor favor ingrese el nombre del estudiante:"; /p>
coutlt;lt;"\t\tPor favor ingrese el número de estudiante del estudiante: "; cingt;gt;Id;
coutlt;lt;"\t\tPor favor ingrese C La calificación de el curso: "; cingt; gt; Cnum;
coutlt; lt; "\t\t Por favor ingrese la calificación del curso de matemáticas: "; cingt; gt; Mnum;
cout<
void ReadFile(istream amp; in)
{
ingt;gt;namegt;gt;Idgt;gt;Cnumgt;gt;Mnumgt;gt;Enumgt ;gt;sum ;
}
void Show()
{
coutlt;lt;"Nombre:"lt;lt ;namelt;lt ;endllt;lt;"Número de estudiante:"lt;lt;Idlt;lt;endllt;lt;"C:"lt;lt;Cnumlt;lt;endl
lt;lt; "Matemáticas:" lt; lt; endllt; "Puntuación total: "lt; /p>
};
//﹌﹌﹌﹌﹌﹌﹌﹌Clase de masaje para estudiantes﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
clase de masaje para estudiantes p>
{
público:
Masaje Estudiantil();
~Masaje Estudiantil();
void ShowMenu();
void Buscar();
void Guardar();
;
void ModifyItem();
void RemoveItem();
void Swap(Estudiante *, Estudiante *); ordenar();
//void Unpass();
int ListCount()
//void Average(); > void Display()
{
for(Estudiante * p=Head-gt; Siguiente; p!=Fin; p=p-gt; Siguiente)
p-gt; Mostrar();
coutlt; "¡Ingrese cualquier carácter! Continuar..."; }
void AddItem()
{
Fin-gt; Entrada();
Fin-gt; ;
End=End-gt;Siguiente;
coutlt;lt;"¡Agregado exitosamente!"lt;lt;endl;
coutlt;lt;" Ingrese cualquier carácter. Continuar...";
getch();
}
privado:
Estudiante * Jefe, * Fin;
ifstream in;
ofstream out;
Estudiante *FindItem(char * nombre)
{
for(Student * p=Head; p-gt; Next!=End; p=p-gt; Next)// Si la coincidencia es exitosa, se devolverá el puntero anterior; de lo contrario, se devolverá vacío
if(! strcmp(p-gt; Next-gt; nombre, nombre)) return p;
return NULL
}
Estudiante *FindID(char *Id )
{
for(Estudiante * p=Cabeza; p-gt; Siguiente!=Fin; p=p-gt; Siguiente)// Si la coincidencia es exitosa, se devuelve el puntero anterior; si no, devuelve NULL
if(!strcmp(p-gt; Next-gt; Id, Id)) return
return NULL;
}
};
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Constructor﹌﹌﹌﹌﹌ ﹌﹌﹌﹌﹌﹌﹌
Masaje estudiantil::Masaje estudiantil()
{
Jefe=nuevo estudiante;
Jefe-gt ;Siguiente=nuevo estudiante;
End=Head-gt;Siguiente;
in.open("sort.txt");
if(!in )
coutlt;lt ;"Este es un sistema nuevo y no hay información del estudiante. Por favor ingresa primero.
"lt;lt;endl;
else
{
while(!in.eof())
{
Fin-gt; ReadFile(in);
if(End-gt; nombre[0]=='\0')break
Fin-gt; Siguiente=nuevo estudiante;
End=End-gt;Siguiente;
}
in.close();
coutlt; lt;\t\tLeer la información del estudiante exitosamente!lt;
}
}
//﹌﹌﹌﹌﹌ ﹌﹌ ﹌﹌﹌﹌﹌Destructor﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Masaje de estudiante::~Masaje de estudiante()
{
Guardar() ;
for(Estudiante * temp; Head-gt; Next!=Fin;)
{
temp=Head-gt;Siguiente ;
Cabeza-gt; Siguiente=Cabeza-gt; Siguiente-gt; Siguiente;
eliminar temp
}
eliminar cabeza, fin;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Menú﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage ::ShowMenu()
{
coutlt;lt;"〓〓〓〓〓〓〓〓〓〓 ☆ Sistema de gestión de puntuación de estudiantes☆ 〓〓〓〓 〓〓〓〓〓 〓"lt;lt;endl;
coutlt;lt;"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓 〓〓〓〓〓 〓"lt;lt;endl;
coutlt;lt;"〓〓〓〓〓〓〓〓〓★ ☆ 1. Incrementar el rendimiento de los estudiantes☆ ★〓〓〓〓〓〓〓 〓〓"lt; lt;endl;
coutlt;lt;"〓〓〓〓〓〓〓〓〓★ ☆ 2. Mostrar puntuaciones de los estudiantes☆ ★〓〓〓〓〓〓〓〓〓"lt ;lt;endl;
coutlt;lt;"〓〓〓〓〓〓〓〓〓★ ☆ 3. Ordenar resultados estadísticos☆ ★〓〓〓〓〓〓〓〓〓"lt;lt;endl ;
coutlt;lt;"〓〓〓〓〓〓〓〓〓★ ☆ 4. Encuentra las calificaciones de los estudiantes☆ ★〓〓〓〓〓〓〓〓〓"lt;lt;endl;
coutlt ;lt;"〓〓〓〓〓〓〓〓〓★ ☆ 5. Eliminar puntuaciones de estudiantes☆ ★〓〓〓〓〓〓〓〓〓"lt;lt;endl;
coutlt;lt;" 〓〓〓〓〓〓〓〓〓★ ☆ 6. Modificar información del estudiante☆ ★〓〓〓〓〓〓〓〓〓"lt;lt;endl;
coutlt;lt; "〓〓〓〓 〓〓〓〓〓★ ☆ 0. Salga del sistema de forma segura
☆ ★〓〓〓〓〓〓〓〓〓"lt;lt;endl;
coutlt;lt;"\n\t\t\n\t\tPor favor seleccione: ";
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Función de búsqueda﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage: :Buscar ()
{
nombre de char[20], Id[10]
int x
Estudiante * p =NULL; ;
coutlt;lt;"\n\t\t********************************* *** ****\n";
coutlt;lt;"\t\t※ 1. Buscar por nombre del estudiante\n\t\t※ 2. Buscar por número de estudiante";
p>coutlt;lt;"\n\t\t********************************* *****\ nPor favor seleccione: ";
cingt;gt;x;
switch(x)
{
caso 1: {coutlt ;lt;"\t\tIngrese el nombre del estudiante que desea encontrar: ";cingt;gt;name;
if(p=FindItem(name)) p>
{
p-gt;Next-gt;Show();
coutlt;lt;"¡Ingresa cualquier carácter! Continuar...";
getch();
}
else
{
coutlt; lt ;"\t\t¡No se encontró ningún estudiante con este nombre! "lt;lt;'\n'lt;lt;endl;
coutlt;lt;"¡Ingresa cualquier carácter! Continuar...";
getch();
}
}break;
caso 2:
{
coutlt;lt;"\t\tPor favor ingrese el número de identificación del estudiante que desea encontrar: ";cingt;gt;Id;
if(p =FindID(Id ))
{
p-gt;Next-gt;Show();
coutlt;lt;"¡Ingresa cualquier carácter! Continuar...";
getch();
}
else
{
coutlt; lt ;"\t\t¡El estudiante que debería aprender bien no fue encontrado! "lt;lt;'\n'lt;lt;endl;
coutlt;lt;"¡Ingresa cualquier carácter! Continuar...";
getch();
}
}romper;
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Modificar información﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ModifyItem() / / Modificar información
{
char name[20];
Estudiante * p=NULL;
coutlt;lt;"\ t \tPor favor ingrese el nombre de la persona que desea modificar: ";cingt;gt;nombre;
if(p=F
indItem(nombre))
{
coutlt;lt;"\t\tSe ha encontrado la información del estudiante, ¡ingrese nueva información!"lt;lt;endl; p >
p-gt;Next-gt;Input();
coutlt;lt;"¡Modificación exitosa!"lt;lt;endl;
coutlt;lt; ¡Ingrese cualquier carácter! Continuar...";
getch();
}
else
{
coutlt;lt;"\t\t¡No encontrado!"lt;lt;endl;
coutlt;lt;"¡Ingrese cualquier carácter! Continuar...";
getch ();
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Eliminar información﹌﹌﹌﹌﹌﹌﹌﹌ ﹌﹌﹌﹌
void Studentmassage::RemoveItem() // Eliminar información
{
char name[20];
Estudiante * p=NULL, *temp=NULL;
coutlt;lt;"\t\tPor favor ingrese el nombre del estudiante que desea eliminar:"lt;lt;endl;cingt;gt;name;
if(p=FindItem(nombre))
{
temp=p-gt;Siguiente;
p-gt; Siguiente =p-gt;Siguiente-gt;Siguiente;
eliminar temp;
coutlt;lt;"\t\tEliminar correctamente!"lt;lt;endl;
coutlt;lt;"¡Ingrese cualquier carácter! Continuar...";
getch();
}
else
{
coutlt;lt;"\t\t¡No encontrado!"lt;lt;endl;
coutlt;lt;"¡Ingresa cualquier carácter! Continuar..."
getch();
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ ﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Swap(Student *p1, Student *p2)//Intercambia los campos de datos de dos variables combox
{< / p>
Estudiante *temp=nuevo Estudiante
strcpy(temp-gt; nombre, p1-gt; nombre
strcpy(temp-gt; Id, p1); -gt; id);
temp-gt; Cnum=p1-gt;
temp-gt; > temp-gt; enumeración = p1-gt; enumeración;
temp-gt; suma=p1-gt; suma
strcpy(p1-gt; nombre, p2-gt; ; nombre);
strcpy(p1-gt; Id., p2-gt; Id.
p1-gt; Cnum=p2-gt; p>p1-gt;Mnum=p2-gt;
p1
-gt; enumeración=p2-gt; enumeración;
p1-gt; suma=p2-gt; suma
strcpy(p2-gt; nombre, temp-gt; nombre
strcpy(p2-gt; Id, temp-gt; Id
p2-gt; Cnum=temp-gt; p2-gt;Mnum=temp-gt;Mnum;
p2-gt;Enum=temp-gt;Enum;
p2-gt;sum=temp-gt;sum;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int Studentmassage :: ListCount () // Cuenta el número total de registros en la lista vinculada actual y devuelve un número entero
{
if(! Head)
return 0;
int n=0;
for(Estudiante * p=Head-gt; Siguiente; p!=Fin; p=p-gt; Siguiente)
{
n;
}
devolver n
}
//﹌﹌﹌﹌﹌ ﹌﹌ ﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Sort()//Ordenar la lista vinculada actual
{
cout lt; "Clasificando..." lt; endl
Estudiante *p=NULL, *p1=NULL, *k =NULL; > int n=MasajeEstudiante::ListCount();
if(nlt;2)
return;
for(p=Head-gt;Next; p !=Fin;p=p-gt;Siguiente)
for(k=p-gt;Siguiente;k!=Fin;k=k-gt;Siguiente)
{
if(p-gt;sumgt;k-gt;sum)
{
Masaje estudiantil::Swap(p,k);
}
}
cout lt; "Clasificación completada" lt;
getch(); >
return;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Función de guardado﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ p>
void Studentmassage::Save()
{
out.open("sort.txt");
for(Estudiante *p =Encabezado-gt;Siguiente;p!=End;p=p-gt;Siguiente)
outlt;lt;p-gt;namelt;lt;"\t"lt;lt;p-gt ;Idlt;lt;"\t"lt;lt;p-gt;Cnumlt;lt;"\t"
lt;lt;p-gt;Mnumlt;lt;"\t"lt; lt;p-gt;Enumlt;lt;"\t"lt;lt;p-gt;sumlt;lt;'\n';
out.close();
p>
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ función principal﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int main ( )
{
int x, i=0;
bool quit=false
coutlt "\t \ t§§§§§§§§§§§§§§§§§§§§§§§§§"lt;lt;endl;
for(i=0;ilt; 3 ; i )
coutlt;lt;"\t\t◎\t\t\t\t\t\t ◎"lt;lt;endl;
coutlt; ;"\t\t◎★★★★ Bienvenido al sistema de gestión del desempeño estudiantil★★★★◎"lt;lt;endl;
for(i=0;ilt;3;i)
coutlt;lt;"\t\t◎\t\t\t\t\t\t ◎"lt;lt;endl;
coutlt;lt;"\t \t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"lt;lt;endl;;
Calificación de masaje estudiantil; p> p>
coutlt;lt;"Presiona cualquier tecla para comenzar...";
getch();
while(!quit)
{
system("cls");
Grado.ShowMenu()
cingt; switch(x)
{
caso 0: quit=true;
caso 1: Grade.AddItem();
caso 2: Grade.Display(); break;
caso 3: Grade.Sort(); caso 4: Grade.Find();
caso 5: Grade.RemoveItem(); descanso;
caso 6: Grade.ModifyItem(); > }
p>return 0;
}
//Puedes usarlo con cualquier modificación, no es original