You are on page 1of 2

// EstructDatos.cpp: archivo de proyecto principal.

#include "stdafx.h"
#include <iostream>
using namespace std;
struct Curso
{
char NomCurso[50];
int Creditos;
int Nota;
};
struct Alumno
{
char NroMatricula[10];
char Nombre[50];
float PromPonderado;
int NroCursos;
Curso CU[10];
};

int main()
{
Alumno ALM[50];
char TNom[50];
char TNM[10];
float PromSec = 0;
int TA, TC, A, B;
cout << "Total de alumnos ", cin >> TA;
for (A = 1; A <= TA; A += 1)
{
cout << "Nombres alumnos ", cin >> ALM[A].Nombre;
cout << "NroMatricula alumnos ", cin >> ALM[A].NroMatricula;
cout << "Total de cursos ", cin >> ALM[A].NroCursos;
PromSec = 0; TC = 0;
for (B = 1; B <= ALM[A].NroCursos; B += 1)
{
cout << "Nombre curso ", cin >> ALM[A].CU[B].NomCurso;
cout << "Creditos ", cin >> ALM[A].CU[B].Creditos;
cout << "Nota ", cin >> ALM[A].CU[B].Nota;
PromSec += ALM[A].CU[B].Nota*ALM[A].CU[B].Creditos;
TC += ALM[A].CU[B].Creditos;
}
ALM[A].PromPonderado = PromSec / TC;
}
// ordenado alfabetico en base a nombre de A a Z
for (A = 1; A <= TA - 1; A += 1)
for (int B = A + 1; B <= TA; B += 1)
for (int C = 0; C <= 49; C += 1)
if (ALM[B].Nombre[C] < ALM[A].Nombre[C])
{
PromSec = ALM[A].PromPonderado;
ALM[A].PromPonderado = ALM[B].PromPonderado;
ALM[B].PromPonderado = PromSec;
TC = ALM[A].NroCursos;
ALM[A].NroCursos = ALM[B].NroCursos;
ALM[B].NroCursos = TC;
strcpy_s(TNom, ALM[A].Nombre);
strcpy_s(ALM[A].Nombre, ALM[B].Nombre);
strcpy_s(ALM[B].Nombre, TNom);
strcpy_s(TNM, ALM[A].NroMatricula);
strcpy_s(ALM[A].NroMatricula, ALM[B].NroMatricula);
strcpy_s(ALM[B].NroMatricula, TNM); C = 49;
if (ALM[B].NroCursos>ALM[A].NroCursos)
TC = ALM[B].NroCursos;
else
TC = ALM[A].NroCursos;
for (int D = 1; D <= TC; D += 1)
{
PromSec = ALM[A].CU[D].Nota;
ALM[A].CU[D].Nota = ALM[B].CU[D].Nota;
ALM[B].CU[D].Nota = PromSec;
PromSec = ALM[A].CU[D].Creditos;
ALM[A].CU[D].Creditos = ALM[B].CU[D].Creditos;
ALM[B].CU[D].Creditos = PromSec;
strcpy_s(TNom, ALM[A].CU[D].NomCurso);
strcpy_s(ALM[A].CU[D].NomCurso, ALM[B].CU[D].NomCurso);
strcpy_s(ALM[B].CU[D].NomCurso, TNom);
}
}
else
if (ALM[B].Nombre[C] > ALM[A].Nombre[C])
C = 49;

PromSec = 0;
cout << endl << "Lista ordenada " << endl;
for (A = 1; A <= TA; A += 1)
{
cout << ALM[A].NroMatricula << " ";
cout << ALM[A].Nombre << " ";
cout << ALM[A].PromPonderado << endl;
PromSec += ALM[A].PromPonderado;
for (B = 1; B <= ALM[A].NroCursos; B += 1)
{
cout << ALM[A].CU[B].NomCurso << " ";
cout << ALM[A].CU[B].Creditos << " ";
cout << ALM[A].CU[B].Nota << endl;
}
}
cout << "Promedio de seccion " << PromSec / TA << endl;
system("pause");

return 0;
}

You might also like