arreglo de estructuras

Iniciado por mapers, 11 Marzo 2011, 07:56 AM

0 Miembros y 1 Visitante están viendo este tema.

mapers

señores del foro les pido que me ayuden tengo este problema necesito guardar en dos arreglos de estructuras 3 notas un nombre y un cnombre del curso y debo unir estos dos arreglos de estructuras en uno solo en la que se deve mostrar aquelos que llevan 2 cursos pero que tiene igual nombre y aquellos que llevan 1 solo curso y que tienen un solo nombre hay esta mi avance me falta para poder almacenar aquellos que solo tiene un solo  nombre y lleven un solo curso
Código (cpp) [Seleccionar]

//----------------------------------------------------------------// 
//----------------------------------------------------------------//
#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <iomanip.h>
#define MAX 50

int s=0;
int s1=0;
int arreglox[100];
int arregloy[100];
int arrex[100];
int arrey[100];
int n=0;
int m=0;
//----------------------------------------------------------------// 
//----------------------------------------------------------------// 

struct Alumno1{
       char Nombre[MAX ];
       char Curso [MAX];
       int  nota1;
       int  nota2;
       int  nota3;
       
       };
 
struct Alumno2{
       char Nombre[MAX ];
        char Curso [MAX];
       int  nota1;
       int  nota2;
       int  nota3;
       
       }; 
       
struct Alumno1_unido_Alumno2{
       char Nombre[MAX ];
       char Curso [MAX];
       char Curso1 [MAX];
       int  nota1;
       int  nota2;
       int  nota3;
       int  nota4;
       int  nota5;
       int  nota6;
       
       }; 
 
//----------------------------------------------------------------// 
//----------------------------------------------------------------// 
 
void Reguistro_Alumnos1(struct Alumno1 x[MAX],int numero_alumnos)
{
     
     for(int i=0;i<numero_alumnos;i++)
        {
        getch();
        cout<<endl;
        cout<<"\t\t ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
        cout<<"\t\tNombre ";
        cin>>x[i].Nombre;
        cout<<"\t\tMateria ";
        cin>>x[i].Curso;
        cout<<"\t\tIngrese Nota 1  ";
        cin>>x[i].nota1;
        cout<<"\t\tIngrese Nota 2  ";
        cin>>x[i].nota2;
        cout<<"\t\tIngrese Nota 3  ";
        cin>>x[i].nota3;
        }   
}
 
//----------------------------------------------------------------// 
//----------------------------------------------------------------// 

void  Leer_Reguistro(struct Alumno1 x[MAX],int numero_alumnos)
{
   cout<<"Listado del los primerol Alumnos"<<endl;
   cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
   cout<<setw (25)<<" \t"<<"Nota 1 "<<"Nota 2 "<<"Nota 1 "<<endl;
   for(int i=0;i<numero_alumnos;i++ )
   {
    cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n"; 
    cout<<x[i].Nombre<<endl;
    cout<<x[i].Curso<<endl;
    cout<<setw (25)<<" \t"<< x[i].nota1<<" \t"<<x[i].nota2<<" \t"<<x[i].nota3<<endl;     
   }
   cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
   cout<<endl;   
}

//----------------------------------------------------------------// 
//----------------------------------------------------------------// 

void Reguistro_Alumnos11(struct Alumno2 y[MAX],int numero_alumnos1)
{    system("color a");
     for(int i=0;i<numero_alumnos1;i++)
        {
        getch();
        cout<<endl;
        cout<<"\t\t ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
        cout<<"\t\t Nombre ";
        cin>>y[i].Nombre;
        cout<<"\t\t Materia ";
        cin>>y[i].Curso;
        cout<<"\t\t Ingrese Nota 1  ";
        cin>>y[i].nota1;
        cout<<"\t\t Ingrese Nota 2  ";
        cin>>y[i].nota2;
        cout<<"\t\t Ingrese Nota 3  ";
        cin>>y[i].nota3;
        }   
}

//----------------------------------------------------------------// 
//----------------------------------------------------------------// 

void  Leer_Reguistro1(struct Alumno2 y[MAX],int numero_alumnos1)
{
   cout<<"Listado del los primerol Alumnos"<<endl;
   cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
   cout<<setw (25)<<" \t"<<"Nota 1 "<<"Nota 2 "<<"Nota 3 "<<endl;
   for(int i=0;i<numero_alumnos1;i++ )
   {
    cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
    cout<<y[i].Nombre<<endl;
    cout<<y[i].Curso<<endl;
    cout<<setw (25)<< " \t"<< y[i].nota1<<" \t"<<y[i].nota2<<" \t"<<y[i].nota3<<endl;
   }
   cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
   cout<<endl;   
}

//----------------------------------------------------------------// 
//----------------------------------------------------------------// 

void Unir_Reguistros_Alumnos(struct Alumno1_unido_Alumno2 z[MAX],
struct Alumno1 x[MAX],struct Alumno2 y[MAX],int numero_alumnos,int numero_alumnos1)
{
     
//---------------------------------------------------------------//       
for(int i=0;i<numero_alumnos;i++)
{
        for(int j=0;j<numero_alumnos1;j++)
        {
                if(strcmp(x[i].Nombre,y[j].Nombre)==0 && strcmp(x[i].Curso,y[j].Curso)!=0)
                {         
                      strcpy( z[ s ].Nombre, x[ i ].Nombre );
                      strcpy( z[ s ].Curso, x[ i ].Curso );
                      strcpy( z[ s ].Curso1, y[ j ].Curso );
                      z[ s ].nota1=x[i].nota1;
                      z[ s ].nota2=x[i].nota2;
                      z[ s ].nota3=x[i].nota3;
                      z[ s ].nota4=y[j].nota1;
                      z[ s ].nota5=y[j].nota2;
                      z[ s ].nota6=y[j].nota3;
                     
                 s++;
               }
               
             
        }
       
}

}
//----------------------------------------------------------------// 
//----------------------------------------------------------------//
void Unir_Reguistros_Alumnos1(struct Alumno1_unido_Alumno2 z[MAX],
struct Alumno1 x[MAX],struct Alumno2 y[MAX],int numero_alumnos,int numero_alumnos1)
{
//---------------------------------------------------------------//     
 
for(int j=0;j<s+1;j++)
{
        for(int i=0;i<numero_alumnos;i++)
        {               
                if(strcmp(x[i].Nombre,z[j].Nombre)==0)
                {         
                 
               }     
        }
     
}
/*
//---------------------------------------------------------------// 
for(int j=0;j<s+1;j++)
{
        for(int i=0;i<numero_alumnos1;i++)
        {               
                if(strcmp(y[i].Nombre,z[j].Nombre)!=0)
                {         
                      strcpy( z[ s1 ].Nombre, y[ i ].Nombre );
                      strcpy( z[ s1 ].Curso, y[ i ].Curso );
                      z[ s1 ].nota1=y[i].nota1;
                      z[ s1 ].nota2=y[i].nota2;
                      z[ s1 ].nota3=y[i].nota3;
//----------------------------------------------------------------//
                 
                 s1++;
               }
               
             
        }
     
}

   */
cout<<"mira -------->"<<s1<<endl;
}
//----------------------------------------------------------------// 
//----------------------------------------------------------------//

void Leer_Reguistro2(struct Alumno1_unido_Alumno2 z[MAX],int s)
{
   cout<<"Listado de la Union de los Alumnos que llevan 2 cursos diferentes "<<endl;
   cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
   cout<<setw (25)<<" \t"<<"Nota 1 "<<"Nota 2 "<<"Nota 3 "<<endl;
   for(int i=0;i<s;i++ )
   {
    cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
    cout<<z[i].Nombre<<endl;
    cout<<z[i].Curso<<endl;
    cout<<setw(25)<<" \t"<<z[i].nota1<<" \t"<<z[i].nota2<<" \t"<<z[i].nota3<<endl;
    cout<<z[i].Curso1<<endl;
    cout<<setw(25)<<" \t"<<z[i].nota4<<" \t"<<z[i].nota5<<" \t"<<z[i].nota6<<endl;
       
    }
    cout<<endl;
    cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
     cout<<"Listado de la Union de los Alumnos que llevan 1 solo curso "<<endl;
    for(int i=s;i<s1;i++ )
   {
      cout<<" ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ\n";
      cout<<z[i].Nombre<<endl;
      cout<<z[i].Curso<<endl;
      cout<<setw(25)<<" \t"<<z[i].nota1<<" \t"<<z[i].nota2<<" \t"<<z[i].nota3<<endl;
    }
   cout<<endl;   
}

//----------------------------------------------------------------// 
//----------------------------------------------------------------//

int main()
{
  struct Alumno1 x[MAX];
  struct Alumno2 y[MAX];
  struct Alumno1_unido_Alumno2 z[MAX];
  int numero_alumnos,numero_alumnos1;
  system("color 4");
  cout<<"Ingrese el numero de Alumnos"<<endl;
  cin>>numero_alumnos;
  Reguistro_Alumnos1(x,numero_alumnos);
  Leer_Reguistro(x,numero_alumnos);
  cout<<"Ingrese el numero de Alumnos 2"<<endl;
  cin>>numero_alumnos1;
  Reguistro_Alumnos11(y,numero_alumnos1);
  Leer_Reguistro1(y,numero_alumnos1);
  Unir_Reguistros_Alumnos(z,x,y,numero_alumnos,numero_alumnos1);
  Unir_Reguistros_Alumnos1(z,x,y,numero_alumnos,numero_alumnos1);
  Leer_Reguistro2(z,s);
  system("pause");
}
//----------------------------------------------------------------// 
//----------------------------------------------------------------//