Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jul 15th, 2012  |  syntax: None  |  size: 24.41 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. #include<string>
  4. #include<fstream>
  5. #include <iostream>
  6. #include <cstring>
  7. using namespace std;
  8.  
  9. fstream entrada;
  10.  
  11.  
  12.  char* readword(){
  13.        char* word;
  14.        word=new char[100];
  15.        strcpy(word,"\n");
  16.                     do{
  17.                         fgets(word,100,stdin);
  18.                                         if (word[strlen(word)-1] == '\n'){
  19.                                            word[strlen(word)-1] = 0;
  20.                                         }
  21.                                         //printf("%s",word);
  22.                                
  23.                     }while  (fgets(word,100,stdin)=="\n") ;
  24.                     //(strcmp(noma,"")==-1  && strcmp(noma,"\n")==-1);
  25.                     printf("%s",word);
  26.                     if (word[strlen(word)-1] == '\n'){
  27.                                            word[strlen(word)-1] = 0;
  28.                                 }
  29.                                        
  30.            return word;
  31.  }
  32.  
  33. class Atleta{
  34.         public:
  35.         char nomA[100];
  36.         int ced;
  37.         int edad;
  38.         char escuela[100];
  39.         char deporte[100];
  40.         int anosEx;
  41.         Atleta *proxA;
  42.  
  43.         Atleta (char nom[100], int ci, int ed, char esc[100], char dep[100],int Ex){
  44.                 strcpy(nomA,nom);
  45.                 ced=ci;
  46.                 edad=ed;
  47.                 strcpy(escuela,esc);
  48.                 strcpy(deporte,dep);
  49.                 anosEx=Ex;
  50.                 proxA=NULL;
  51.         }
  52. };
  53.  
  54. class Deporte{          
  55.         public:
  56.                 char nomD[100];
  57.                 int cantA;
  58.                 int medallas;
  59.                 int cantJ;
  60.                 Deporte *proxD;
  61.                 Atleta *primAtle;
  62.  
  63.         Deporte(char nom[100], int cant, int med){
  64.                 strcpy(nomD,nom);
  65.                 cantA=0;
  66.                 cantJ=cant;
  67.                 medallas=med;
  68.                 proxD=NULL;
  69.                 primAtle=NULL;
  70.         }
  71. };
  72.  
  73. class Lista{
  74.   private:
  75.         Deporte* primD;
  76.         int n_dep;
  77.    
  78.   public:
  79.         Lista(){
  80.       primD=NULL;
  81.           n_dep=0;
  82.     }
  83.         void insertarDeporte(char nomd[100],int cant, int  med){
  84.                 Deporte *punact, *punant;
  85.                 Deporte *pnodo=new Deporte(nomd,cant,med);
  86.                 punant=NULL; //apuntadores de apoyo para la insercion
  87.                 punact=primD;
  88.                 while((punact!=NULL)&&(punact->medallas > med)){ // Recorrer la lista buscando
  89.                         punant=punact;
  90.                         punact=punact->proxD;
  91.                 }
  92.                 //Actualizar los enlaces a los nodos para insertar             
  93.                 if(punant==NULL){
  94.                         pnodo->proxD=primD;
  95.                         primD=pnodo;
  96.                         n_dep++;
  97.                 }else{
  98.                         punant->proxD=pnodo;
  99.                         pnodo->proxD=punact;
  100.                         n_dep++;
  101.                 }
  102.         }
  103.        
  104.         void mostrarDeportes(){
  105.                 Deporte *punact;
  106.                 if(primD==NULL)
  107.                         printf("\n\n La lista esta vacia, no hay elementos para mostrar \n\n");
  108.                 else{
  109.                         punact=primD;
  110.                         while (punact!=NULL){
  111.                                 printf("\n nombre:%s atletas:%d  medallas:%d \n\n",punact->nomD, punact->cantA, punact->medallas);
  112.                                 punact=punact->proxD;
  113.                         }
  114.                 }
  115.         }
  116.        
  117.         void eliminarDeporte(char nomd[100]){
  118.                 Deporte *punact, *punant;
  119.                
  120.                 if (primD==NULL)
  121.                         printf("\n La Lista de deportes esta vacia, no hay para mostrar \n\n");
  122.                 else{
  123.                         punact=primD;
  124.                        
  125.                         if (strcmp(primD->nomD,nomd)==0){
  126.                                 printf("\n entro en el if esta de primero y lo eliminaremos");
  127.                                 //eliminando el primer deporte
  128.                                 primD=primD->proxD;             //actualizado el inicio de la lista
  129.                                 free(punact);               //Liberando memoria
  130.                                 punact=NULL;
  131.                                 n_dep--;
  132.                                 printf("\n El deporte %s fue eliminado \n\n",nomd);
  133.                         }else{
  134.                                 while ( (punact!=NULL) && (strcmp(punact->nomD,nomd)) ){
  135.                                 //Avanzar en la lista buscando el deporte
  136.                                 punant=punact;
  137.                                 punact=punact->proxD;      
  138.                                 }
  139.                                 if (punact==NULL){
  140.                                 printf("\n El deporte %s no esta en la lista \n\n",nomd);
  141.                                 }else{
  142.                                         punant->proxD=punact->proxD;
  143.                                         free(punact); //Liberando memoria
  144.                                         punact=NULL;
  145.                                         n_dep--;
  146.                                         printf("\n El deporte %s fue eliminado \n\n",nomd);
  147.                                 }
  148.                         }
  149.                 }
  150.                 printf("\n\n\n");
  151.         }      
  152.                
  153.         void buscarDeporte(char deporte[100]){
  154.                 Deporte *punact;
  155.                 Atleta *punactA;
  156.                 int enc=0;
  157.        
  158.                 punact=primD;
  159.                 while((punact!=NULL) && (enc==0)){
  160.                         if ((strcmp(punact->nomD,deporte))==0){              
  161.                                 enc=1;
  162.                                 printf("\n\n Cantidad de atletas que lo representara:  %d  ", punact->cantA);
  163.                                 printf("\n\n Medallas obtenidas:  %d  ", punact->medallas);
  164.                                 punactA=punact->primAtle;
  165.                                 while(punactA!=NULL){
  166.                                         printf("Atletas que lo practican: \n\n");
  167.                     printf("Atleta: %s\n\n Edad %d\n\n Anos %d",punactA->nomA, punactA->edad, punactA->anosEx);
  168.                                         punactA=punactA->proxA;
  169.                                 }
  170.        
  171.                         }
  172.                         punact=punact->proxD;
  173.                 }
  174.                 if (enc==0){
  175.                         printf("\n\n El deporte %s NO esta en la lista",deporte);
  176.                 }
  177.         }
  178.        
  179.         void mejoresAtletas(char deporte[100]){
  180.                 Deporte *punact;
  181.                 Atleta *punactA;
  182.                 punact=primD;
  183.                 int enc=0;
  184.                 while(punact!=NULL && enc==0){
  185.                         if ((strcmp(punact->nomD,deporte))==0){
  186.                 enc=1;
  187.                 punactA=punact->primAtle;
  188.                         if (punactA==NULL){
  189.                     printf("El deporte %s no tiene atletas para mostrar \n\n", punact->nomD);  
  190.                 }else{
  191.                                 printf("Deporte: %s \n\n",punact->nomD);
  192.                                 while(punactA!=NULL){
  193.                                         if(punactA->edad<=35){
  194.                         printf("Atleta %s Edad %d Anos %d \n\n", punactA->nomA, punactA->edad, punactA->anosEx);
  195.                         }
  196.                         punactA=punactA->proxA;
  197.                              }
  198.                 }
  199.             }
  200.                 punact=punact->proxD;
  201.                 }
  202.                 if(enc==0){
  203.             printf(" El deporte no se encuentra en la lista, no podemos mostrar sus mejores atletas \n\n");
  204.         }
  205.     }
  206.        
  207.         void insertarAtleta(char noma[100],int ced, int edad, char escuela[100], char deporte[100], int anosEx){
  208.                 Deporte *punact, *punant; Atleta *punactA, *punantA;
  209.                 Atleta  *pnodoA=new Atleta(noma,ced,edad,escuela,deporte,anosEx);
  210.             Atleta *menorN=NULL; int menor, edadM;
  211.                 int enc=0, resp, cantJ, meda;
  212.                 punact=primD;
  213.                 //printf("\n %s ",noma);
  214.                 while((punact!=NULL) && (enc==0)){
  215.                         if ((strcmp(punact->nomD,deporte))==0){              //equivalente en pseudo(punact->nombre==nom)
  216.                                 enc=1;
  217.                                 //printf("\n\n El deporte %s esta en la lista, medallas:%d, atletas:%d  ",deporte, punact->medallas, punact->cantA);
  218.                                 break;
  219.                         }
  220.                         punact=punact->proxD;
  221.                 }
  222.                 if (enc==0){
  223.                           printf("Disculpe, este deporte no se encuentra registrado en la Universidad\n\n");
  224.                 printf("\nDesea agregarlo?  0=si, 1=no\n");
  225.                 scanf("%d",&resp);
  226.                        
  227.                         if( resp==0){
  228.                     //if(n_dep < 25){
  229.                          cout<<"Nombre del deporte: ";
  230.                              strcpy(deporte,readword());
  231.                    
  232.                           cout<<"Numero de atletas que lo representaran: ";
  233.                           scanf("%d",&cantJ);
  234.                          
  235.                           cout<<"Cant de medallas en Juviness anterior: ";
  236.                           scanf("%d",&meda);          
  237.                           insertarDeporte(deporte,cantJ,meda);
  238.                           insertarAtleta(noma,ced,edad,escuela,deporte,anosEx);
  239.                           //mostrarDeportes();
  240.                           //mostrarAtletas();
  241.                     //}
  242.                 }
  243.                 } else {
  244.                         if (punact->cantA <25){
  245.                 pnodoA->proxA= NULL;
  246.                         punantA=NULL; //apuntadores de apoyo para la insercion
  247.                         punactA=punact->primAtle;
  248.                         while((punactA!=NULL)&&(punactA->anosEx > anosEx)){ // Recorrer la lista buscando
  249.                                 punantA=punactA;
  250.                                 punactA=punactA->proxA;
  251.                         }
  252.                         //Actualizar los enlaces a los nodos para insertar             
  253.                         if(punantA==NULL){
  254.                                 pnodoA->proxA=punact->primAtle;
  255.                                 punact->primAtle=pnodoA;
  256.                                 punact->cantA++;
  257.                         }else{
  258.                                 pnodoA->proxA=punactA;
  259.                                 punantA->proxA=pnodoA;
  260.                                 punact->cantA++;
  261.                         }
  262.             }else{
  263.                 punactA=punact->primAtle;
  264.                 menor=punactA->anosEx;
  265.                 while(punactA!=NULL){
  266.                     if (punactA->anosEx < menor){
  267.                         menor=punactA->anosEx;
  268.                         menorN=punactA;
  269.                     }
  270.                     punactA=punactA->proxA;
  271.                 }
  272.                 if((pnodoA->anosEx > menor) && (pnodoA->edad < 35)){
  273.                     eliminarAtleta(menorN->ced);
  274.                     pnodoA->proxA= NULL;
  275.                                 punantA=NULL; //apuntadores de apoyo para la insercion
  276.                                 punactA=punact->primAtle;
  277.                                 while((punactA!=NULL)&&(punactA->anosEx > anosEx)){ // Recorrer la lista buscando
  278.                                         punantA=punactA;
  279.                                         punactA=punactA->proxA;
  280.                                 }
  281.                                 //Actualizar los enlaces a los nodos para insertar             
  282.                                 if(punantA==NULL){
  283.                                         pnodoA->proxA=punact->primAtle;
  284.                                         punact->primAtle=pnodoA;
  285.                                         punact->cantA++;
  286.                                 }else{
  287.                                         pnodoA->proxA= punactA;
  288.                                         punantA->proxA=pnodoA;
  289.                                         punact->cantA++;
  290.                                 }
  291.                 }
  292.  
  293.             }
  294.                 }
  295. }      
  296.  
  297.        
  298.         void mostrarAtletas(){
  299.                 Deporte *punact;
  300.                 Atleta *punactA;
  301.                 if (primD==NULL)
  302.                         printf("La lista de deportes esta vacia \n\n");
  303.                 else{
  304.                         punact=primD;
  305.                         while(punact!=NULL){
  306.                                 printf("\nDeporte: %s \n\n", punact->nomD);
  307.                                 punactA=punact->primAtle;
  308.                                 if(punactA==NULL){
  309.                     printf("El deporte no posee ningun atleta \n\n");
  310.                 }
  311.                                 while(punactA!=NULL){
  312.                                         printf("%s \n\n", punactA->nomA);
  313.                                         punactA= punactA->proxA;
  314.                                 }
  315.                                 punact=punact->proxD;
  316.                         }
  317.       }
  318.         }
  319.        
  320.                
  321.         void eliminarAtleta(int ced){
  322.                 Deporte *punact, *punant;
  323.                 Atleta  *punactA,*punantA ;
  324.                 int enc;
  325.                 punact=primD;
  326.                
  327.                 while(punact!=NULL){
  328.                                 enc=0;
  329.                                 punantA=NULL;
  330.                                 punactA=punact->primAtle;
  331.                                 while( punactA!=NULL && enc==0){
  332.                                         if (punactA->ced==ced){            
  333.                                                 enc=1;
  334.                                                  if(punantA==NULL){
  335.                                                         punact->primAtle=punactA->proxA;             //actualizado el inicio de la lista
  336.                                                         free(punactA);                          //Liberando memoria
  337.                                                         punactA=NULL;
  338.                                                         punact->cantA--;
  339.                                                 }else{
  340.                                                         punantA->proxA=punactA->proxA ;
  341.                                                          free(punactA);
  342.                                                          punactA=NULL ;
  343.                                                         punact->cantA--;
  344.                                                 }
  345.                                                 printf("El atleta fue encontrado en el deporte %s", punact->nomD);
  346.                                                 printf("...eliminando");
  347.                                                 break;
  348.                                
  349.                                         }
  350.                                         punantA=punactA;
  351.                                         punactA=punactA->proxA;    
  352.                                                          
  353.                                 }
  354.                                 if (enc==0)  // printf("El atleta no fue encontrado en %s deporte", punact->nomD);
  355.                                
  356.                                 punact=punact->proxD;  
  357.                 }
  358.    }
  359.    
  360.         void buscarAtleta (int ced){
  361.          Deporte *punact; Atleta *punactA;
  362.          punact=primD; int enc=0;
  363.         while(punact!=NULL){
  364.             punactA=punact->primAtle;
  365.             while((punactA!=NULL)){
  366.                 if ((punactA->ced==ced) && (enc==0)){
  367.                     enc=1;
  368.                     printf("Nombre: %s \n\nCI: %d \n\nEdad: %d\n\n Escuela: %s \n\nDeporte: %s\n\n Anos de Experiencia: %d \n\n", punactA->nomA, punactA->ced, punactA->edad, punactA->escuela, punactA->deporte, punactA->anosEx);          
  369.                     }else{
  370.                         if(punactA->ced==ced && enc==1)
  371.                         printf("Deporte: %s \n\nAnos de Experiencia: %d \n\n", punactA->deporte,punactA->anosEx);
  372.                     }
  373.                         punactA= punactA->proxA;
  374.                     }
  375.             punact= punact->proxD;
  376.         }
  377.         if (enc==0){
  378.             printf(" El atleta con cedula %d no se encuentra en ninguna lista de Atletas de ningun deporte \n\n",ced);
  379.         }
  380.  
  381.     }
  382.  
  383.     void ordenar_deportes(){
  384.         printf("entro al ordenar \n\n");
  385.         Deporte *punant, *punact, *aux;
  386.         int i=0,x;
  387.         punact=primD; aux=punact->proxD;
  388.         punant=NULL;
  389.         while(i++ < n_dep){
  390.             printf("primer while \n\n");
  391.             while(aux->proxD!=NULL){
  392.                 printf("segundo while \n\n");
  393.                 if(aux->cantA > punact->cantA){
  394.                         printf("entro al if \n\n");
  395.                         x = aux->cantJ;
  396.                         aux->cantA= punact->cantA;
  397.                         punact->cantA=x;
  398.                     }
  399.                     aux=aux->proxD;
  400.                 }
  401.                 printf("salgo del while \n\n");
  402.                 if(aux->proxD==NULL){
  403.                     printf("entro al ultimo if \n\n");
  404.                     aux = primD;
  405.                 }
  406.                 punact=punact->proxD;
  407.         }      
  408.     }
  409.  
  410.     int deportes_Juvines (int num){
  411.         Deporte *punact, *punant;
  412.         int enc=0, enc2=0, cont=0, i;
  413.         punact=primD; punant=NULL;
  414.         while ((punact!=NULL) && (enc==0)){
  415.             punant=punact; punact=punact->proxD;
  416.             if (punant->medallas==punact->medallas){
  417.                 enc=1;    
  418.             }
  419.         }
  420.         if (enc==1){
  421.             printf("Antes de 'ordenar' si es que algun dia lo hace :( \n\n");
  422.             mostrarDeportes();
  423.             ordenar_deportes();
  424.             printf("Despues de y que 'ordenar' \n\n");
  425.             mostrarDeportes();
  426.             /*punact=primD; punant=NULL;
  427.             while((punact!=NULL) &&(enc2==0)){
  428.                 punant=punact; punact=punact->proxD;
  429.                 if(punant->cantA==punact->cantA){
  430.                         enc2=1; cont++;
  431.                 }
  432.             }
  433.             if(enc2==1){
  434.                 punact=primD; punant=NULL;
  435.                 for (i=1;i<=num;i++){
  436.                     //printf("%d)%s\n\n",i,punact->nomD);
  437.                     punact=punact->proxD;
  438.                 }
  439.                 for (i=0;i<cont;i++){
  440.                     //printf("Los siguientes deporten cumplen con la condicion pero superan el numero de deportes: \n\n");
  441.                     num++;
  442.                     //printf("%d)%s\n\n",num,punact->nomD);
  443.                     punact=punact->proxD;
  444.                 }
  445.             }else{
  446.                 punact=primD; punant=NULL;
  447.                 for (i=1;i<=num;i++){
  448.                     //printf("%d)%s\n\n",i,punact->nomD);
  449.                     punact=punact->proxD;
  450.                 }
  451.             }
  452.         }else{
  453.             punact=primD; punant=NULL;
  454.             for (i=1;i<=num;i++){
  455.                 //printf("%d)%s\n\n",i,punact->nomD);
  456.                 punact=punact->proxD;        
  457.             }        
  458.         }
  459.         return(cont);*/
  460.         }
  461.     }
  462.    
  463.     void mostrar_Juvines(int num){
  464.         int cont, i; Deporte *punact, *punant;
  465.         cont= deportes_Juvines(num);
  466.         punact=primD; punant=NULL;
  467.             for (i=1;i<=num;i++){
  468.                 printf("%d)%s\n\n",i,punact->nomD);
  469.                 punact=punact->proxD;
  470.             }
  471.             for (i=0;i<cont;i++){
  472.                 printf("Los siguientes deporten cumplen con la condicion pero superan el numero de deportes: \n\n");
  473.                 num++;
  474.                 printf("%d)%s\n\n",num,punact->nomD);
  475.                 punact=punact->proxD;
  476.             }
  477.     }    
  478.  
  479.  
  480.         void cargar_datos(){  
  481.                 string x;
  482.                 char nomd[100], noma[100], escuela[100], deporte[100];
  483.                 int n_disc=0,atle1,meda1, ndep,ced,edad,anosEx;
  484.                 int n_atl=0;
  485.                 int n_atld=0;
  486.                 //Leer datos persona
  487.                 entrada.open("entrada.dat",ios::in);
  488.                         getline (entrada,x);
  489.                         n_disc=atoi(x.c_str());
  490.                         if (n_disc<0 || n_disc>20){
  491.                            do{
  492.                                   //printf("Recuerde que la cantidad de disciplinas con que la universidad participa se encuentra entre 0-20");
  493.                            }while (n_disc<0 || n_disc>20);                  
  494.                         }else{
  495.                                           for (int i=0; i<(n_disc); i++ ){
  496.                                                   getline(entrada,x);
  497.                                                   strcpy(nomd,x.c_str());
  498.                                                   getline(entrada,x);
  499.                                                   atle1=atoi(x.c_str());
  500.                                                   getline(entrada,x);
  501.                                                   meda1=atoi(x.c_str());
  502.                                                   insertarDeporte(nomd,atle1,meda1);
  503.                                           }    
  504.                         }  
  505.          
  506.                         getline (entrada,x);
  507.                         n_atl=atoi(x.c_str());
  508.                         for(int i=0;i<n_atl;i++){
  509.                            getline(entrada,x);
  510.                            strcpy(noma,x.c_str());
  511.                            getline(entrada,x);
  512.                            ced=atoi(x.c_str());
  513.                            getline(entrada,x);
  514.                            edad=atoi(x.c_str());
  515.                            getline(entrada,x);
  516.                            strcpy(escuela,x.c_str());
  517.                            getline(entrada,x);
  518.                            n_atld=atoi(x.c_str());
  519.                            if(n_atld<=0){
  520.                                    //printf("Recuerde que el atleta debe practicar al menos un deporte \n\n");
  521.                            }else{
  522.                                         for (int j=0;j<n_atld;j++){
  523.                                                 getline (entrada, x);
  524.                                                 strcpy(deporte,x.c_str());
  525.                                                 getline (entrada,x );
  526.                                                 anosEx=atoi(x.c_str());
  527.                                                 insertarAtleta(noma,ced,edad,escuela,deporte,anosEx);
  528.                                    }
  529.                                 }
  530.                         }
  531.                                  
  532.                         entrada.close();
  533.                         //Fin leer datos
  534.          }        
  535. };
  536. typedef struct deporte{
  537.         char nomD[100];
  538.         int cantA;
  539.         int medallas;
  540.         int cantJ;
  541. };
  542.  
  543. typedef struct atleta{
  544.         char nomA[100];
  545.         int ced;
  546.         int edad;
  547.         char escuela[100];
  548.         char deporte[100];
  549.         int anosEx;
  550. };
  551.  
  552. static deporte respaldoDep[500];
  553. static atleta respaldoAtl[500];
  554. static int n_dep=0;
  555. static int n_atl=0;
  556.  
  557. void cargarDatosRespaldo() {
  558.         string x;
  559.         entrada.open("respaldo.dat",ios::in);
  560.         getline(entrada,x);
  561.         n_dep = atoi(x.c_str());
  562.         printf("Deportes en \"respaldo.in\":\n");
  563.         for(int i=0; i<n_dep; i++) {
  564.                 getline(entrada,x);
  565.                 strcpy(respaldoDep[i].nomD, x.c_str());
  566.                 getline(entrada,x);
  567.                 respaldoDep[i].cantA = atoi(x.c_str());
  568.                 getline(entrada,x);
  569.                 respaldoDep[i].medallas = atoi(x.c_str());
  570.                 getline(entrada,x);
  571.                 respaldoDep[i].cantJ = atoi(x.c_str());
  572.                 printf("%s %d %d %d\n", respaldoDep[i].nomD, respaldoDep[i].cantA, respaldoDep[i].medallas, respaldoDep[i].cantJ);
  573.         }
  574.         getline(entrada,x);
  575.         n_atl = atoi(x.c_str());
  576.         printf("\nAtletas en \"respaldo.in\":\n");
  577.         for(int i=0; i<n_atl; i++) {
  578.                 getline(entrada,x);
  579.                 strcpy(respaldoAtl[i].nomA, x.c_str());
  580.                 getline(entrada,x);
  581.                 respaldoAtl[i].ced = atoi(x.c_str());
  582.                 getline(entrada,x);
  583.                 respaldoAtl[i].edad = atoi(x.c_str());
  584.                 getline(entrada,x);
  585.                 strcpy(respaldoAtl[i].escuela, x.c_str());
  586.                 getline(entrada,x);
  587.                 strcpy(respaldoAtl[i].deporte, x.c_str());
  588.                 getline(entrada,x);
  589.                 respaldoAtl[i].anosEx = atoi(x.c_str());
  590.                 printf("%s %d %d %s %s %d\n", respaldoAtl[i].nomA, respaldoAtl[i].ced, respaldoAtl[i].edad, respaldoAtl[i].escuela, respaldoAtl[i].deporte, respaldoAtl[i].anosEx);
  591.         }
  592.         printf("\n");
  593. }
  594.  
  595.  
  596. int main (){
  597.     Lista L;
  598.     L.cargar_datos();
  599.     //L.mostrarDeportes();
  600.     //L.mostrarAtletas();
  601.     //cargarDatosRespaldo();
  602.    
  603.       int meda,cantJ, edad,n_dep, anosEx, i,r,a;
  604.       int ced,op=0, num;
  605.   a=0;
  606.   char nomd[100], x[100], noma[100], escuela[100], deporte[100];
  607.     cout<<"Universidad Central de Venezuela Facultad Ciencias Escuela Computacion"<<endl;
  608.     cout<<"Proyecto Algoritmo y Estructura de Datos: Deportes JUVINES UCV "<<endl;
  609.     cout<<"\nMenu de Opciones>"<<endl;
  610.     do{
  611.         cout<<"MENU PRINCIPAL:"<<endl;
  612.         cout<<"========================================================="<<endl;
  613.         cout<<"1-AGREGAR INFORMACION"<<endl;
  614.         cout<<"2-MOSTRAR INFORMACION"<<endl;
  615.         cout<<"3-ELIMINAR INFORMACION"<<endl;
  616.         cout<<"4-MOSTRAR RESPALDO"<<endl;
  617.         cout<<"5-DESARROLLADORES"<<endl;
  618.         cout<<"6-SALIR"<<endl;
  619.         cout<<"=========================================================="<<endl;
  620.         cin>>a;
  621.         if(a==1){
  622.             do{
  623.                 cout<<" "<<endl;
  624.                 cout<<"MENU AGREGAR INFORMACION"<<endl;
  625.                 cout<<"=========================================================="<<endl;
  626.                 cout<<"1-AGREGAR ATLETA"<<endl;
  627.                 cout<<"2-AGREGAR DEPORTE"<<endl;
  628.                 cout<<"3-VOLVER A PRINCIPAL"<<endl;
  629.                 cout<<"4-SALIR DE LA APLICACION"<<endl;
  630.                 cout<<"=========================================================="<<endl;
  631.                 cin>>r;
  632.                 if(r==1){    
  633.                     cout<<" "<<endl;
  634.                         printf("Nombre: ");
  635.                     strcpy(noma,readword());
  636.                     cout<<"\nCedula: ";
  637.                     scanf("%d", &ced);
  638.                     cout<<"Edad: ";
  639.                         scanf("%d", &edad);
  640.                         cout<<"Escuela: ";
  641.                         scanf("%s", &escuela);
  642.                     cout<<"Num de deportes que practica: ";
  643.                         scanf("%d", &n_dep);
  644.                         if(n_dep>5) printf("El atleta no puede practicar mas de 5 deportes");
  645.                        
  646.                         else{
  647.                         for (i=0; i<n_dep;i++){
  648.                                 printf("Nombre Deporte: ");
  649.                             strcpy(deporte,readword());
  650.                                
  651.                             cout<<"Anos de experiencia:  ";
  652.                                 scanf("%d", &anosEx);
  653.                                
  654.                             L.insertarAtleta(noma,ced,edad,escuela,deporte,anosEx);
  655.                             L.mostrarDeportes();
  656.                             L.mostrarAtletas();
  657.                         }
  658.                     }    
  659.                 }
  660.                
  661.                 if(r==2){    
  662.                         do{
  663.                    cout<<"Nombre del Deporte: ";
  664.                         strcpy(deporte,readword());
  665.                    
  666.                         cout<<"\nNumero de medallas del anterior JUVINES: "<<endl;;
  667.                     scanf("%d",&meda);
  668.  
  669.                     cout<<"Cantidad de atletas que o representaran: ";
  670.                     scanf("%d",&cantJ);
  671.                                      
  672.                     L.insertarDeporte(deporte,cantJ,meda);
  673.                     L.mostrarDeportes();
  674.                     printf("Desea agregar otro Deporte? 0=si, 1=no");
  675.                     scanf("%d", &op);
  676.                     }while (op==0);
  677.                  }
  678.                  
  679.                 if(r==4){
  680.                     a=6;
  681.                 }
  682.              }while(r!=3 && r!=4);
  683.         }
  684.                
  685.                 if (a==2){
  686.                          do{
  687.                 cout<<" "<<endl;
  688.                 cout<<"MENU MOSTRAR INFORMACION"<<endl;
  689.                 cout<<"=========================================================="<<endl;
  690.                 cout<<"1-Listado de atletas"<<endl;
  691.                 cout<<"2-Listado de mejores atletas por deporte"<<endl;
  692.                 cout<<"3-Informacion de un atleta especĂ­fico."<<endl;
  693.                 cout<<"4-Informacion de una deporte especifico y la cantidad de medallas obtenidas."<<endl;
  694.                 cout<<"5-Listado de deportes o disciplinas que representaran a la UCV."<<endl;
  695.                                 cout<<"6-VOLVER A PRINCIPAL"<<endl;
  696.                 cout<<"7-SALIR"<<endl;
  697.                 cout<<"=========================================================="<<endl;
  698.                 cin>>r;
  699.                                 if (r==1){
  700.                                         printf("\n\nLista de Atletas: \n\n");
  701.                                         L.mostrarAtletas();
  702.                                 }
  703.                                 if(r==2){
  704.                                         printf("\n Deporte: \n\n");
  705.                                         strcpy(deporte,readword());
  706.                                         printf("\n\nLista de Mejores Atletas: \n\n");
  707.                                         L.mejoresAtletas(deporte);
  708.                                 }
  709.                                
  710.                                 if(r==3){
  711.                                         do{
  712.                         printf("Cedula: \n\n");
  713.                         scanf("%d",&ced);
  714.                         L.buscarAtleta(ced);
  715.                         printf("Desea la informacion de otro atleta? 0.-Si 1.-No\n\n");
  716.                         scanf("%d",&op);
  717.                     }while(op!=1);
  718.                                 }
  719.                                 if(r==4){
  720.                                         printf("\n\nDeporte: \n\n");
  721.                                         strcpy(deporte,readword());
  722.                                         L.buscarDeporte(deporte);
  723.                                        
  724.                                 }
  725.                                 if(r==5){
  726.                                     printf("Introduzca la cantidad de deportes permitidos: \n\n");
  727.                     scanf("%d",&num);
  728.                     printf("Deportes que representaran a la UCV son: \n\n");
  729.                     L.deportes_Juvines(num);
  730.                     //L.mostrar_Juvines(num);
  731.                                         //va en proceso...
  732.                                 }
  733.                                 if (r==7){
  734.                                         a=6;
  735.                                 }
  736.                                
  737.                         }while(r!=6 && r!=7);
  738.                 }
  739.                
  740.         if(a==3){
  741.             do{
  742.                 cout<<" "<<endl;
  743.                 cout<<"MENU ELIMINAR"<<endl;
  744.                 cout<<"=========================================================="<<endl;
  745.                 cout<<"1-ELIMINAR ATLETA"<<endl;
  746.                 cout<<"2-ELIMINAR DEPORTE"<<endl;
  747.                 cout<<"3-VOLVER A PRINCIPAL"<<endl;
  748.                 cout<<"4-SALIR"<<endl;
  749.                 cout<<"=========================================================="<<endl;
  750.                 cin>>r;
  751.                 if(r==1){
  752.                     cout<<"Diga la cedula del atleta que desea eliminar"<<endl;
  753.                    scanf("%d", &ced);
  754.                    
  755.                    
  756.                     L.eliminarAtleta(ced);
  757.                     L.mostrarAtletas();
  758.                 }
  759.                                
  760.                                 if(r==2){
  761.                     cout<<"Diga el nombre de la disciplina que desea eliminar"<<endl;
  762.                     strcpy(deporte,readword());
  763.                    
  764.                     L.eliminarDeporte(deporte);
  765.                     L.mostrarDeportes();
  766.                 }
  767.                 if(r==4){
  768.                     a=6;
  769.                 }
  770.                  
  771.             }while(r!=3 && r!=4);
  772.         }
  773.                
  774.  
  775.     }while(a!=0);
  776.     system("Pause");
  777.     return 0;
  778.     }