La Red de Conocimientos Pedagógicos - Conocimientos matemáticos - ¡Ayuda para el examen universitario de idioma C! ~

¡Ayuda para el examen universitario de idioma C! ~

Estoy gestionando las calificaciones de un estudiante. Lo he ejecutado en VC, pero no sé mucho sobre TC. Pruébelo usted mismo, es posible que tenga muchas preguntas. Esta es la versión C ++. Debe cambiarla a la versión C y puede que no sea factible después del cambio. La razón principal es que TC no es compatible con los estándares, lo que no favorece la depuración. no utilizar TC.

# include & ltiostream & gt

# include & ltiomanip & gt

# include & ltfstream & gt

# include & lt String>

Usar espacio de nombres std

#define max 100;

Estudiantes de la clase

{

Público:

Estudiante*Siguiente;

Público:

Nombre de cadena; //nombre

Núm largo//Número de estudiante

int x, y, z; //Matemáticas, chino, inglés

int AA//Puntuación total

void play(){ cout & lt ;& ltName& lt& lt" El número de estudiante es"

estudiante(string sname, long snum, int sx, int sy, int sz)

{

nombre = sname

num = snum

x = sx

y = sy

z = sz

}

};

Categoría cla

{

Público:

Cla()//Función de construcción

{

stu = 0;

carga();

}

~cla() //Destructor

{

Estudiante* p;

p = estu

mientras(p)

{

p = p-& gt; siguiente;

Eliminar stu

stu = p

}

stu = 0;

}

void sadd(); //Agregar

void s remove(); //Eliminar

void Samend(); /Modificar

void s search(); //Consultar

void stat xis(); //Ordenar

void ssave(); /p>

void sload(); //Leer

//Función de clasificación

void pxh();

void psx();

void pyw();

void pyy();

void pAA();

Privado:

Estudiante* stu//Contacto principal

};

Voidcla:: sad ()//Agregar

{

Estudiante* q;

Nombre de cadena 1;

número largo 1;

int x1, y1, z 1;

system("cls ");

cout & lt& lt" \n **Estudiantes adicionales* * \n " & lt& ltendl

cout & lt& lt"Ingrese estudiantes (separados por espacios)" < & ltendl

cout & lt& ltNombre, número de estudiante, puntaje de matemáticas, puntaje de chino y puntaje de inglés: "< & ltendl

CIN>>name 1>>num 1>>x 1>>y 1>>z 1;

q = nuevo estudiante(nombre1, num1, x1, y1, z 1);

q->; >q->; AA = x 1+y 1+z

1;

si (Stu)

{

Estudiante * t;

t = stu

si (t->;num==num1)

{

cout & lt& ltEl número de estudiante ya existe, vuelva a ingresar

Volver;

}

mientras(t->; siguiente)

{

if(t->;num==num1)

{

cout & lt& ltEl número de estudiante ya existe, vuelva a ingresar

Devolución;

}

t = t- & gt; siguiente;

}

t->; siguiente = q;

}

Otro

{

stu = q;

}

cout & lt& lt"Entrada completada"

}

Void cla::sremove()// eliminar

{

System("cls");

int num 1;

cout & lt& lt"\n**Eliminar información del estudiante* *\n";

cout & lt& lt"Ingrese el número de estudiante del estudiante que desea eliminar:";

CIN>>num 1;

//Encuentre el nodo que desea eliminar.

Estudiante *p1, * p2

p 1 = stu;

mientras(p1)

{

if(p 1->;num==num1)

Descanso;

Otro

{

p2 = p 1;

p 1 = p 1->; Siguiente

}

}

//Eliminar nodo

if(p1!=NULL)//Si se encuentra un nodo, elimínelo.

{

p 1->;play();

cout & lt& lt"¿Estás seguro de que quieres eliminarlo? [Sí/No] " & lt;& ltendl

char c;CIN & gt;& gtc;

if(toupper(c)!='Y ')return;

If (p1==stu) //El nodo a eliminar es el primer nodo.

{

stu = p 1->; Siguiente;

Eliminar p 1; De lo contrario //El nodo que se eliminará es el nodo siguiente.

{

p2->; siguiente = p 1->; siguiente;

Eliminar p 1; >

cout & lt& lt"Se encontró que el número de estudiante era "

}

Else //Nodo encontrado

cout & lt& lt"No ¡Encuentre al estudiante que desea eliminar! \n ";

}

Void cla::samend()//Modificar

{

System("cls");

long num 1;

cout & lt& lt"\n**Modificar información del estudiante* *\n";

cout & lt& lt"Ingrese el número de estudiante a modificar";

CIN & gt;& gtnum 1;

//Encuentre el nodo a modificar.

Estudiante *p1, * p2

p 1 = stu;

mientras(p1)

{

if(p 1->;num==num1)

Descanso;

Otro

{

p2 = p 1;

p 1 = p 1->; siguiente

}

}

if(p1!=null)

p>

{

cout & lt& lt"El número de estudiante es"

cout & lt& lt"Nombre"

cout & lt& lt"Ingrese información modificada: nombre, puntajes de matemáticas, puntajes de chino y puntajes de inglés" >y>& gtp 1->z

p 1->AA = p 1->x+p 1->y+ p 1->z

cout & lt& lt"Modificación exitosa"

}

Else //No se puede encontrar el contacto.

cout & lt& lt"¡No encontrado!\n ";

}

Void cla::ssearch()//Consulta

{

System("cls");

cout & lt& lt" \n**Consultar información del estudiante* * \n " & lt& ltendl

cout & lt& lt"Por favor ingrese el método de consulta:"

cout & lt& lt"1. Consulta por número de estudiante"

cout & lt& lt"2. Consulta por nombre"

cout & lt& lt" p>

cout & lt& lt"3.Return"

char c; CIN & gt; & gtc;

Cambiar (c)

{

Caso "1":

{

número largo 1;

cout & lt& lt"ID de estudiante a consultar"

CIN>& gtnum 1;

//Encuentre el nodo a consultar.

Estudiante *p1, * p2

p 1 = stu;

mientras(p1)

{

if(p 1->;num==num1)

Descanso;

Otro

{

p2 = p 1;

p 1 = p 1->; siguiente

}

}

if(p1!=null)

p>

{

cout & lt& lt"El número de estudiante es"

cout & lt& lt"Nombre:"

cout & lt& lt"query Done...";

}

Else //No se puede encontrar el contacto.

cout & lt& lt"¡No encontrado! \n "

Romper

}

Caso "2":

p>

{

Nombre de cadena 1;

cout & lt& lt"El nombre del estudiante a consultar"

CIN & gt;& gtname 1 ;

//Encuentra el nodo a consultar.

Estudiante *p1, * p2

p 1 = stu;

mientras(p1)

{

if(p 1->;nombre==nombre1)

Romper;

Otro

{

p2 = p 1;

p 1 = p 1->; siguiente

}

}

if(p1!=null)

p>

{

cout & lt& ltname 1 & lt;& lt"Información del estudiante" < & ltendl

cout & lt& lt"Número de estudiante:"

cout & lt& lt"Consulta completada...";

}

Else //Contacto no encontrado.

cout & lt& lt "¡No encontrado! \n ";

Romper

}

Caso "3": retorno;

}

}

Void cla::pxh() //Ordenar por número de estudiante.

{

Estudiante *p1, *p2

int n;

p 1 = stu; n = 1;

mientras(p 1->; siguiente)

{ n++; p 1 = p 1->; siguiente;}

cout & lt& lt"* * *Sí"

int I;

p 1 = stu;

for(I = 1;i<n; i++)

{

p 1 = stu;

if(p 1->num & gtp 1->next->Num ) //Si el primer nodo es más grande que el segundo.

{

p2 = p 1->; siguiente;

p 1->; siguiente = p 1->; /p>

p2->; next = p 1; //Intercambio de nodo principal

stu = p2

}

p 1 = stu;

while(p 1->; next-> next)//Intercambio intermedio

{

p2 = p 1 ;

p 1 = p 1->siguiente;

if(p 1->num & gtp 1->siguiente->número)

p>

{

p2->; siguiente = p 1->; siguiente;

p2->; >Siguiente-& gt;siguiente = p 1;

p1=p2->Siguiente; //Intercambio

}

}

}

p 1 = estu;

hacer

{

p 1->;jugar();

p 1 = p 1->;siguiente;

} while(p 1);

}

Void cla::psx()/ /Ordenar por puntuaciones de matemáticas.

{

Estudiante *p1, *p2

int n;

p 1 = stu; n = 1;

mientras(p 1->; siguiente)

{ n++; p 1 = p 1->; siguiente;}

cout & lt& lt"* * *Sí"

int I;

p 1 = stu;

for(I = 1;i<n; i++)

{ p 1 = stu;

if(p 1->x>p 1->next->X) //Si el nodo principal es mayor que el segundo.

{ p2 = p 1->; siguiente

p 1->; siguiente = p 1->; p2->; next = p 1; //Intercambio de nodo principal

stu = p2

}

p 1 = stu;

mientras(p 1->; siguiente-> siguiente)//intercambio intermedio

{ p2 = p 1;

p 1 = p 1- >Siguiente;

if(p 1->x>p 1->Siguiente->x)

{

p2 ->siguiente = p 1->siguiente;

p 1->siguiente = p 1->siguiente->siguiente;

p2- >Siguiente->siguiente = p 1;

p1=p2-> Siguiente; //Intercambio

}

}

}

p 1 = stu;

hacer

{ p 1->;play();

p 1 = p 1->; siguiente

} mientras(p 1); >

}

Void cla::pyw()//Clasificación de puntuación china.

{

Estudiante *p1, *p2

int n;

p 1 = stu; n = 1;

mientras(p 1->; siguiente)

{ n++; p 1 = p 1->; siguiente;}

cout & lt& lt"* * *Sí"

int I;

p 1 = stu;

for(I = 1;i<n; i++)

{ p 1 = stu;

if(p 1->y>p 1->next->Y) //Si el primer nodo es mayor que

{ p2 = p 1->; siguiente;

p2->; siguiente = p 1; //Intercambio de nodo principal

stu = p2

}

p 1 = stu;

while(p 1->; next -& gt; siguiente paso) // Intercambio intermedio

{ p2 = p 1;

p 1 = p 1->siguiente;

if(p 1->y>p 1->siguiente->y)

{

p2->siguiente = p 1->siguiente;

p 1-> siguiente = p 1->siguiente->siguiente;

p2->Siguiente->siguiente = p 1;

p1=p2->Siguiente //Intercambio

}

}

}

p 1 = estu;

hacer

{ p 1->;jugar();

p 1 = p 1->; siguiente

} mientras(p 1); p>

Void cla::pyy( )//Ordenar por partitura en inglés.

{

Estudiante *p1, *p2

int n;

p 1 = stu; n = 1;

mientras(p 1->; siguiente)

{ n++; p 1 = p 1->; siguiente;}

cout & lt& lt"* * *Sí"

int I;

p 1 = stu;

for(I = 1;i<n; i++)

{ p 1 = stu;

if(p 1->z & gtp 1->next->Z) //Si el nodo principal es mayor que el segundo.

{ p2 = p 1->; siguiente

p 1->; siguiente = p 1->; p2->; next = p 1; //Intercambio de nodo principal

stu = p2

}

p 1 = stu;

mientras(p 1->; siguiente-> siguiente)//intercambio intermedio

{ p2 = p 1;

p 1 = p 1- >Siguiente;

if(p 1->z>p 1->Siguiente->z)

{

p2 ->siguiente = p 1->siguiente;

p 1->siguiente = p 1->siguiente->siguiente;

p2- >Siguiente->siguiente = p 1;

p1=p2-> Siguiente; //Intercambio

}

}

}

p 1 = stu;

hacer

{ p 1->;play();

p 1 = p 1->; siguiente

} mientras(p 1); >

}

Nulo cla::pAA()//pulse total Ordenar por puntos.

{

Estudiante *p1, *p2

int n;

p 1 = stu; n = 1;

mientras(p 1->; siguiente)

{ n++; p 1 = p 1->; siguiente;}

cout & lt& lt"* * *Sí"

int I;

p 1 = stu;

for(I = 1;i<n; i++)

{ p 1 = stu;

if(p 1->AA>p 1->Next->AA) //Si el primer nodo es mayor que

{ p2 = p 1->; siguiente;

p2->; siguiente = p 1; //Intercambio de nodo principal

stu = p2

}

p 1 = stu;

while(p 1->; next -& gt; siguiente paso) // Intercambio intermedio

{ p2 = p 1;

p 1 = p 1->Siguiente;

if(p 1->AA>p 1->Siguiente->AA)

{

p2->siguiente = p 1->siguiente;

p 1-> siguiente = p 1->siguiente->siguiente;

p2->Siguiente->siguiente = p 1;

p1=p2->Siguiente //Intercambio

}

}

}

p 1 = estu;

hacer

{ p 1->;jugar();

p 1 = p 1->; siguiente

} mientras(p 1); p>

void cla::s taxi ()//sort

{

system("cls");

char c;

cout & lt& lt"Por favor seleccione el método de clasificación: "

cout & lt& lt"1 ...Ordenar por número de estudiante"

cout & lt& lt" 2 ...Ordenar por puntuación de matemáticas"

cout & lt& lt"3...clasificado por puntuación de chino"< & ltendl

cout & lt& lt"4...clasificado por puntuaciones en inglés"< & ltendl

cout & lt& lt"5...Ordenar por puntuación total"

cout & lt& lt"6...Regresar"

cout & lt& lt"Seleccione (1 -6)"

CIN & gt;& gtc;

Interruptor (c)

{

caso ' 1 ':pxh (); romper

Caso "2": psx (); romper

; ; romper;

Caso " 4":pyy(); romper;

Caso "5": pAA(); romper;

Caso "6" : return;

}

}

Void cla::ssave() //Guardar en archivo.

{

System("cls");

char c;

cout & lt& lt"\nGuardar información del estudiante (Este sobrescribirá el archivo original).

¿Quieres continuar? [Sí/No]: "CIN>>c;

if(toupper(c)!='Y ') devuelve;

ofstream tfile("date.txt ", IOs _ base::binary);

Estudiante * p = stu

Mientras(p)//Escribir en el archivo

{

tfile<<p ->nombre<<"\t"<<p->num<<"\t"<<p->x<<"\t"<<p- >y & lt& lt" \ t " & lt& ltp->z;

tarchivo & lt& ltendl

p = p-& gt; siguiente;

}

tfile();

cout & lt& lt. "Guardado..."

}

Void cla::sload() // leer

{

estudiante* p;

p = stu

mientras(p)

{

stu = p-& gt; p>Eliminar p;

p = stu

}

ifstream tfile("date.txt ", IOs _ base::binary

Nombre de cadena 1;

núm largo 1;

int x1, y1, z 1;

tfile>& gtname 1>& gtnum 1>& gtx 1>& gty 1>& gtz 1 ;

while(tfile.good())

{

//Crear contacto de estudiante

Estudiante;

s = estu

s = nuevo estudiante (nombre1, num1, x1, y1, z 1);

s-> next = 0;

s-& gt;AA = x 1+y 1+z 1;

If(stu) //Si ya existe un nodo

{

Estudiante* p2

p2 = stu

Y (p2->Siguiente paso)//Encuentra el nodo de cola

{

p2 = p2-& gt;

}

p2->; //Conexión

>}

En caso contrario//si no hay ningún nodo (tabla vacía)

{

stu = s; }

tfile & gt& gtname 1 & gt;& gtnum 1 & gt;& gtx 1 & gt;& gty 1 & gt;& gtz 1;

}

tfile . close(); /p>

cout & lt& lt" \ nSe ha cargado la información del estudiante...\ n "; ()

{

char c;

cla a;

hacer

{

cout & lt& lt”\ nSistema de gestión del desempeño estudiantil\n";

cout & lt& lt"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

* * * * * * \n";

cout & lt& lt"Autor: Ingeniería de software 06110119:zgjxwl \n";

cout & lt& lt"1...Agregar estudiantes\n ";

cout & lt& lt"2...Eliminar estudiantes\n ";

cout & lt& lt"3...Modificar estudiantes\n ";

cout & lt& lt"4...consultar información del estudiante\ n ";

cout & lt& lt"5...sort\ n ";

cout & lt& lt"6...Guardar información\ n ";

cout & lt& lt"7...Leer información\ n ";

cout & lt& lt" 8 ...salir\n";

cout<<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \n";

cout & lt& ltPor favor seleccione (1-8):;

CIN & gt;& gtc;

Cambiar(c)

{

caso ' 1 ':a sadd(); break;

Caso " 2": a. . s remove(); roto;

Caso "3": a . Samend();

Caso "4": a . /p>

Caso "5": a . stat xis();

Caso "6": a .ssave(); ": a . sload(); romper;

}

}mientras(c!='8');

}