Red de conocimiento informático - Conocimiento del nombre de dominio - Buscando urgentemente respuestas a la programación en lenguaje C

Buscando urgentemente respuestas a la programación en lenguaje C

// test.cpp: Define el punto de entrada de la aplicación de consola.

//

// test1.cpp: define el punto de entrada para la aplicación de consola.

//

// test .cpp: Define el punto de entrada para la aplicación de consola.

# include "stdafx.h"

# include "stdio.h"

# include " stdlib.h"

# include lt; iostreamgt;

# include lt; fstreamgt;

# include lt; iomanipgt; /*Archivos de encabezado a citar */

usando el espacio de nombres std;

struct node /*Definir la estructura del nodo para guardar la información del nodo*/

{

struct Student /*Defina la variable de estructura estudiante para guardar la información del estudiante*/

{

char estudiantenúmero[10] /*Número de estudiante*/

char estudiantenombre[; 5]; /*Nombre del estudiante*/

struct course /*Defina la variable de estructura Curso para guardar la información del curso*/

{

float course1 ; /************************************

curso flotante2

float course3; //Puntuaciones y puntuaciones promedio de cada curso

float Averagemark //********************** ** *******

}; estructura del curso todo el curso;

}; estructura del estudiante

nodo de estructura *siguiente; >

};

nodo *top;

estructura nodo *createlist(char info[2][9], float marksinfo[]) //***** ** *******************

{

nodo de estructura estática *new_node, *current_node;

new_node=(struct node *)new(node); /*Crear un nuevo nodo*/

strcpy(new_node-gt; stu.studentnumber, info[0]); p > strcpy(new_node-gt;stu.studentname,info[1]);

new_node-gt;stu.allcourse.course1=marksinfo[0];

new_node-gt;stu.allcourse.course2=marksinfo[1];

new_node-gt;stu. allcourse.course3=marksinfo[2]; //Paga valor a los elementos del nodo

new_node-gt; stu.allcourse.averagemark=(marksinfo[0]

marksinfo[ 1 ] marksinfo[2])/3;

new_node-gt; next=NULL;

if (top==NULL)

{

top=new_node;

current_node=top;

}

current_node-gt; next=new_node /*apunta al nuevo nodo* /

current_node=new_node; /*Siempre apunta al nuevo nodo*/

return top; ****** ************

}

void Studentaverage(nodo *top) /*Mostrar función de puntuación promedio*/

{

int i=0, maxcount=0 /*Número de nodos maxcount*/

char respuesta='y';

struct node *t =top;

fstream readcount("countsave.txt",ios::in /*Definir flujo de archivos*/

readcountgt;gt; maxcount; /*Convertir información del archivo Leer en la variable Maxcount*/

system("cls"); /*Borrar pantalla*/

cout.flags(ios::left) ; /*El formato de salida está alineado a la izquierda */

coutlt;lt;setw(14)lt;lt;"número de estudiante"lt;lt;setw(14)lt;lt;"nombre"; lt;lt;setw(14)lt; lt;"Curso 1"lt;lt;setw(14)

lt;lt;"Curso 2"lt;lt;setw(14)lt;lt ;"Curso 3"lt;lt;" Puntuación media"lt;lt;endl;

para (i=0;ilt;maxcount;i)

{

t=top;

top=top-gt;siguiente;

cout.flags(ios::left);

coutlt;lt; setw(14)lt;lt;t- gt;stu.studentnumberlt;lt;setw(14)lt;lt;

t-gt;st

u.studentnamelt;lt;setw(14)lt;lt;t-gt;stu.allcourse.course1lt;lt;setw(14)lt;lt;t-gt;stu.allcourse.course2

lt;lt;setw(14)lt;lt;t-gt;stu.allcourse.course3lt;lt;setw(14)lt;lt;t-gt;stu.allcourse.averagemarklt;lt;endl;

}

system("pause");

}

void courseaverage(node ​​​​*top)/*Mostrar la puntuación promedio de cada uno curso* /

{

int maxcount;

nodo *t=top;

float courseaverage_1=0.00; ** ******************************

float courseaverage_2=0.00 // Variable para guardar el puntuación promedio de cada curso

float courseaverage_3=0.00 //*********************************; *

fstream readcount("countsave.txt",ios::in);

readcountgt;gt;maxcount;

system("cls");

for (int i=0;ilt;maxcount;i) //****************************** ****** *************************************

{

t =top;

top=top-gt;next; //Recorre los nodos y acumula las puntuaciones de cada curso para encontrar el valor promedio

float(courseaverage_1) =float(t-gt;stu .allcourse.course1);

courseaverage_2 =t-gt;stu.allcourse.course2;

courseaverage_3 =t-gt; stu.allcourse.course3;

} //************************************ ************ *************************

cout.flags(ios:: left);

coutlt;lt; setw(25)lt;lt;"Curso 1"lt;lt;setw(25)lt;lt;"Curso 2"lt;lt;setw(25) lt;lt;"Curso 3"lt;lt;endl;

coutlt;lt;setw(25)lt;lt;float(courseaverage_1/(maxcount 1))lt;lt;setw(25) lt;l

t;

courseaverage_2/float(maxcount 1)lt;lt;setw(25)lt;lt;courseaverage_3/float(maxcount 1)lt;lt;endl;

system( "pausa");

}

void orderWithAverageMark(node ​​​​*top)/*Ordenar por promedio*/

{

struct node *t=top;

struct node estático *t0=top; /*Guardar la cabeza del nodo*/

float Averagemark_1=0.00; p> float Averagemark_2=0.00;

static char temp[10]; /*Variable intermedia para guardar cadena*/

float temp0 /*Variable intermedia para variable entera*/

int maxcount;

int i;

bool flag; /*Determinar si el algoritmo de burbuja ha finalizado*/

fstream readcount( " countsave.txt",ios::in||ios::out);

readcountgt;gt;maxcount;

//*********** ** ************************************************* *** ****************

//Clasificación de burbujas

//si (cuenta

para (int j=0; jlt; maxcount; j )

{

top=t0; //El puntero del nodo apunta al encabezado de la tabla, realiza la siguiente clasificación

for (i=0; ilt; (maxcount-1); i )

{

flag=false

t=top;

promediomark_1=t-gt;stu.allcourse.averagemark;

promediomark_2=top-gt;next-gt;stu.allcourse.averagemark;

if (averagemark_1lt;=averagemark_2 )

{ //********************************* ******* *************************

strcpy(temp, t-gt; stu.studentnumber

strcpy(t-gt; stu.studentnumber, top-gt; next-gt; stu.studentnumber;

strcpy(top-gt; next-gt; stu); .número de estudiante, tem

p);

strcpy(temp, t-gt; stu.nombredelestudiante);

strcpy(t-gt; stu.nombre del estudiante, top-gt; next-gt; stu. nombre del estudiante);

strcpy(top-gt; next-gt; stu.nombre del estudiante, temp0=t-gt; stu.allcourse.course1;

t-gt; stu.allcourse.course1=top-gt; next-gt; stu.allcourse.course1; // Intercambia los valores de los dos nodos

top-gt; -gt ;stu.allcourse.course1=temp0;

temp0=t-gt;stu.allcourse.course2;

t-gt;stu.allcourse.course2=top-gt ;next -gt;stu.allcourse.course2;

top-gt;next-gt;stu.allcourse.course2=temp0;

temp0=t-gt;stu.allcourse .course3 ;

t-gt;stu.allcourse.course3=top-gt;next-gt;stu.allcourse.course3;

top-gt;next-gt;stu .allcourse .course3=temp0;

temp0=t-gt;stu.allcourse.averagemark;

t-gt;stu.allcourse.averagemark=top-gt;next-gt ;stu .allcourse.averagemark;

top-gt; siguiente-gt; stu.allcourse.averagemark=temp0; ** *******************************************

bandera= verdadero;

}

top=top-gt;siguiente;

}

}

// *********************************************** *** *******************************************

}

int menu()//menú principal

{

int elección;

coutlt;lt;"** ** ************************************************* *** *************************"lt;lt;endl;

coutlt;lt;"*

*"lt;lt;endl;

coutlt;lt;"* 1. Ingrese la información del estudiante *"lt;lt;endl;

coutlt;lt;"* *"lt ;lt; endl;

coutlt;lt;"* 2. Mostrar el puntaje promedio del estudiante*"lt;lt;endl;

coutlt;lt;"* *"lt; lt ;endl;

coutlt;lt;"* 3. Mostrar la puntuación promedio de cada curso*"lt;lt;endl;

coutlt;lt;"* *"lt ; lt;endl;

coutlt;lt;"* 4. Mostrar los estudiantes cuyo puntaje total está por encima de un puntaje promedio determinado*"lt;lt;endl;

coutlt;lt; "* *"lt;lt;endl;

coutlt;lt;"* 5. Guardar datos *"lt;lt;endl;

coutlt;lt;"* *" lt; lt;endl;

coutlt;lt;"* 0. Salir*"lt;lt;endl;

coutlt;lt;"* *"lt;lt;endl ;

coutlt;lt;"*************************************** ***** *************************************

****"lt;lt;endl;

coutlt;lt;" "lt;lt;endl;

coutlt;lt;" Seleccione: ";

bucle: cingt; gt; elección;

if (choicegt; =0amp; amp; elecciónlt; =5)

devuelve elección;

else

ir al bucle

}

int findstdentnumber(nodo *top, char nombrestr[5])

{

nodo *t=top;

int recuento;

fstream readcount("countsave.txt", ios::in

readcountgt ;gt;count;

for (int i=0;ilt;count;i)

{

t=top;

top=top-gt; siguiente;

if (strcmp(namestr, t-gt; stu.studentnumber)==0)

{

devolver 1;

}

}

devolver 0

}

nodo *getinfo();

{

char Response='y';

char Studentinfo[2][9] //La matriz bidimensional guarda el número y el nombre del estudiante

float Studentcoursemark[3]; //Guarda las puntuaciones de cada materia

int count=0

static int count0; void savestudentinfo(nodo ​​*);

nodo *readstudentinfo();

void freelist(nodo

fstream readcount("countsave) .txt", ios::in) ;/*Leer valor del nodo*/

readcountgt;gt;count0;

readcount.close();

hacer

{

loop0: system("cls");

coutlt;lt;endl;

coutlt;lt;" Por favor ingrese su ID de estudiante:";

cingt; gt; Studentinfo[0];

coutlt; lt; endl;

if(findstdentnumber(top, Studentinfo[0]))

p>

{

coutlt;lt;"El número de estudiante ya existe:"lt;lt;endl;

sistema("pausa");

strcpy(studentinfo[0], " ");

goto loop0;

}

coutlt; "Nombre: "; p> cingt;gt;studentinfo[1];

coutlt;lt;endl;

coutlt;lt;"Curso 1:";

cingt; gt;studentcoursemark[0];

coutlt;lt;endl;

coutlt;lt;"Curso 2:";

cingt;gt;studentcoursemark[ 1];

coutlt;lt;endl;

coutlt;lt;"Curso 3:";

cingt;gt;studentcoursemark[2];

top=createlist(studentinfo,studentcoursemark);

count;

coutlt;lt;endl;

coutlt;lt;"Para ¿Continuar? (s o n)";

cingt;gt;response;

} while(countgt;=0amp;amp;countlt;30amp;amp;(response== ' y'||response=='Y'));

orderWithAverageMark(top); /*Ordenar la lista vinculada según las puntuaciones promedio de los estudiantes*/

fstream savecount("countsave .txt", ios::out);

savecountlt;lt;(count count0);/*Guardar valores de nodo y acumular*/

savecount.close();

savestudentinfo(top); /*Guardar información del estudiante en un archivo*/

volver arriba;

}

void savestudentinfo(node) ​​* top) /*Guardar información del estudiante*/

{

int i, númerodeestudiante

nodo *head=top; p> fstream count("countsave.txt",ios::in);

countgt;gt;numberofstudent /*Obtener el número de estudiantes*/

count.close( );

p>

orderWithAverageMark(head);

fstream estudiante("studentinfosave.txt", ios::out

system("cls");

//Recorre la lista enlazada y guarda información

para (i=0; ilt; numberofstudent; i)

{

head=top;

p>

top=top-gt;siguiente;

Studentlt;lt;head-gt;stu.studentnumberlt;lt;" "lt;

lt;head-gt;stu.studentnamelt;lt;" "lt;lt;

head-gt;stu.allcourse.course1lt;lt;" "lt;lt;head-gt;stu.allcourse .course2lt;lt;" "lt;lt;

head-gt;stu.allcourse.course3lt;lt;endl;

}

estudiante.close ();

//************************

coutlt;lt;"Guardar correctamente !"lt ;lt; endl;

system("pause");

}

nodo *readstudentinfo() /*Leer información del estudiante del archivo* /

{

int númerodeestudiante;

char estudianteinfo[2][9];

float estudiantecursomarca[3];

fstream readcount("countsave.txt", ios::in);

fstream readstuinfo("studentinfosave.txt", ios::in

readcountgt); ; gt ;númerodeestudiante;

for (int i=0; ilt; númerodeestudiante; i )

{

readstuinfogt;gt;studentinfo[0]gt; gt; información de estudiante[1]gt;gt;marca de curso de estudiante[0]gt;gt;

marca de curso de estudiante[1]gt;gt;marca de curso de estudiante[2];

top=createlist(info de estudiante , marca del curso de estudiante );

}

readcount.close();

readstuinfo.close()

volver arriba

p>

}

void find(nodo *top)/*find function*/

{

int lowmark=0, i= 0, count= 0;

struct node *t=top;

system("cls");

coutlt;lt;"Ingrese un valor inferior límite para la puntuación media: ";

cingt;gt;lowmark;

system("cls");

fstream readcount("countsave.txt" ,ios::in) ;

readcountgt;gt;count;

cout.flags(ios::left);

coutlt;lt;setw( 14)lt;lt; "Número de estudiante"lt;lt;setw(14)lt;lt;"Nombre"lt;lt;setw(14)lt;lt;"Curso 1

"lt;lt;setw(14)

lt;lt;"Curso 2"lt;lt;setw(14)lt;lt;"Curso 3"lt;lt;setw(14)lt; lt; "Puntuación promedio"lt; endl;

if(lowmarkgt;=0amp;amp;lowmarklt;=100)

{

for( int j=0; jlt; contar; j )

{

t=top; p> if(lowmarklt;=(t-gt;stu.allcourse.averagemark))//***************************** *mostrar información que cumple las condiciones

{

coutlt;lt;setw(14)lt;lt;t-gt;stu.studentnumberlt;lt;setw(14)lt; lt;t -gt;stu.studentnamelt;lt;setw(14)lt;lt;t-gt;stu.allcourse.course1lt;lt;setw(14)

lt;lt;t-gt ;stu.allcourse.course2lt;lt;setw(14)lt;lt;t-gt;stu.allcourse.course3lt;lt;setw(14)lt;lt;t-gt;stu.allcourse.averagemarklt;lt;endl ;

i ;

}

} //********************** ******** ***

if (i==0)

{

coutlt;lt;endl;

system("cls" );

coutlt;lt;"¡No se puede encontrar la información del estudiante!"lt;lt;endl;

}

coutlt ;lt;"*** Encontrado "lt;lt;ilt;lt;"¡Mensaje!"lt;lt;endl;

system("pausa");

}

}

void main()

{

top=readstudentinfo() /*Leer información del estudiante*/

for(; ;)

{

sistema("cls");

cambiar(menú())

{

caso 1:

top=getinfo();

descanso

caso 2:

Studentaverage(arriba);

descanso

caso 3:

cursoaverage(arriba);

descanso

caso 4:

buscar(arriba);

romper;

caso 5:

p>

savestudentinfo(arriba);

descanso;

caso 0:

salida(0);

}

}

}