document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*
  2.     Autor: Joel Cesar Fernandez Segura
  3.     Curso: Estructura de Datos
  4.     Ejercicio: REGISTRAR PACIENTES
  5.     IDE: CodeBlocks
  6.     Pagina Web: http://codebotic.blogspot.com
  7.  
  8. */
  9.  
  10. #include<iostream>
  11. #include<cstdlib>
  12. #include<string.h>
  13. #define maxchar 50
  14.  
  15. using namespace std;
  16.  
  17.  
  18. struct nodo{
  19.  
  20.     int codigo;     // campo codigo
  21.     char nombres[maxchar]; // campo que almacena el nombre
  22.     char apellidos[maxchar];// campo que almacena el apellido
  23.     char direccion[maxchar];// campo que almacena la direccion
  24.     int telefono;// campo que almacena el telefono
  25.     struct nodo *sgte;
  26.  
  27. };
  28.  
  29.  
  30. typedef struct nodo *PLista;
  31.  
  32. /*--------------------- FUNCION MENU PRINCIPAL --------------------*/
  33. void menu(void){
  34.  
  35.     cout<<"\\n\\t\\t[    REGISTRO DE PACIENTES    ]\\n";
  36.     cout<<"\\t\\t----------------------------\\n\\n";
  37.     cout<<" 1. REGISTRAR PACIENTE                          "<<endl;
  38.     cout<<" 2. ELIMINAR DATOS DE PACIENTE                  "<<endl;
  39.     cout<<" 3. ACTUALIZAR PACIENTES                        "<<endl;
  40.     cout<<" 4. MOSTRAR LISTADO                             "<<endl;
  41.     cout<<" 5. COPIAR DATOS DE UN PACIENTE A OTRO          "<<endl;
  42.     cout<<" 6. SALIR                                       "<<endl;
  43.  
  44.     cout<<"\\n Ingrese opcion : ";
  45. }
  46.  
  47.  
  48. /*----------------- CUNCION PARA ACTUALIZAR UN DATO---------------*/
  49. void menu_actualizar(void){
  50.  
  51.     cout<<"\\n\\t\\t[    ESPECIFIQUE CAMPO A ACTUALIZAR    ]\\n";
  52.     cout<<"\\t\\t----------------------------\\n\\n";
  53.     cout<<" 1. NOMBRES                       "<<endl;
  54.     cout<<" 2. APELLIDOS                     "<<endl;
  55.     cout<<" 3. DIRECCION                     "<<endl;
  56.     cout<<" 4. TELEFONO                      "<<endl;
  57.     cout<<" 5. SALIR                         "<<endl;
  58.  
  59.     cout<<"\\n Ingrese opcion : ";
  60. }
  61.  
  62.  
  63. /*-------------------- FUNCION REGISTRAR PACIENTES ------------------*/
  64. void registrar_pacientes(PLista &lista){
  65.  
  66.     PLista t,q = new(struct nodo);
  67.  
  68.     cout<<"\\n\\n\\t\\t[  REGISTRO  ]\\n";
  69.     cout<<"\\t\\t------------";
  70.     cout<<"\\n\\tDATOS DEL PACIENTE ";
  71.     cin.ignore();cout<<"\\n\\n\\tCODIGO:"; cin>>q->codigo;
  72.     cin.ignore();cout<<"\\n\\tNOMBRES:"; cin.getline(q->nombres,maxchar);
  73.     cin.ignore();cout<<"\\tAPELLIDOS:"; cin.getline(q->apellidos,maxchar);
  74.     cin.ignore();cout<<"\\tDIRECCION:"; cin.getline(q->direccion,maxchar);
  75.     cin.ignore();cout<<"\\n\\tTELEFONO:"; cin>>q->telefono;
  76.  
  77.     system("cls");
  78.  
  79.     q->sgte = NULL;
  80.  
  81.     if(lista==NULL){
  82.  
  83.         lista = q;
  84.  
  85.     } else {
  86.  
  87.         t = lista;
  88.  
  89.         while(t->sgte!=NULL){
  90.  
  91.                 t = t->sgte;
  92.         }
  93.  
  94.         t->sgte = q;
  95.  
  96.     }
  97. }
  98.  
  99. /*------------------------ FUNCION ELIMINAR PACIENTE ---------------------*/
  100. void eliminar_paciente(PLista &lista){
  101.  
  102.     int cod;
  103.     PLista q,t;
  104.     q=lista;
  105.  
  106.     cout<<"\\n\\n\\n\\tELIMINAR UN PACIENTE";
  107.     cout<<"\\n\\n\\tINGRESE CODIGO:"; cin>>cod;
  108.  
  109.     while(q!=NULL){
  110.  
  111.             if(q->codigo==cod){
  112.  
  113.                 if(q==lista)
  114.                     lista=lista->sgte;
  115.  
  116.                 else
  117.                     t->sgte=q->sgte;
  118.  
  119.                 delete(q);
  120.  
  121.                 cout<<"\\n\\n\\tREGISTRO ELIMINADO...!!!!!\\n";
  122.  
  123.                 return;
  124.  
  125.             }else {
  126.  
  127.                 t=q;
  128.                 q=q->sgte;
  129.  
  130.         }
  131.  
  132.     }
  133.     if(q==NULL)
  134.         cout<<"\\n\\tCODIGO INCORRECTO...!!\\n";
  135.  
  136. }
  137.  
  138.  
  139. /*-------------------- FUNCION ACTUALIZAR PACIENTE -------------------*/
  140. void actualizar_paciente(PLista lista){
  141.  
  142.     int cod, x;
  143.     PLista q;
  144.     q=lista;
  145.  
  146.     cout<<"\\n\\n\\n\\tACTUALIZAR REGISTRO DE PACIENTE";
  147.     cout<<"\\n\\n\\tINGRESE CODIGO:"; cin>>cod;
  148.  
  149.     while(q!=NULL){
  150.  
  151.             if(q->codigo==cod){
  152.                 system("cls");
  153.                 cout<<"\\n\\tDATOS DEL PACIENTE  ";
  154.                 cout<<"\\n\\t--------------------";
  155.                 cout<<"\\n\\n\\tCODIGO   : "<<q->codigo<<endl;
  156.                 cout<<"\\n\\tNOMBRES  : "<<q->nombres<<endl;
  157.                 cout<<"\\tAPELLIDOS: "<<q->apellidos<<endl;
  158.                 cout<<"\\tDIRECCION: "<<q->direccion<<endl;
  159.                 cout<<"\\tTELEFONO : "<<q->telefono<<endl;
  160.  
  161.                 menu_actualizar();
  162.                 cin>>x;
  163.  
  164.                 switch(x){
  165.  
  166.                     case 1: cout<<"\\n\\n\\tINGRESE NOMBRES:";
  167.                             cin.ignore(); cin.getline(q->nombres,maxchar);
  168.                             break;
  169.  
  170.                     case 2: cout<<"\\n\\n\\tINGRESE APELLIDOS:";
  171.                             cin.ignore(); cin.getline(q->apellidos,maxchar);
  172.                             break;
  173.  
  174.                     case 3: cout<<"\\n\\n\\tINGRESE DIRECCION:";
  175.                             cin.ignore(); cin.getline(q->direccion,maxchar);
  176.                             break;
  177.  
  178.                     case 4: cout<<"\\n\\n\\tINGRESE TELEFONO:";
  179.                             cin>>q->telefono;
  180.                             break;
  181.  
  182.                     default: cout<<"\\nINGRESE UNA OPCION VALIDA...\\n"; break;
  183.  
  184.                 }
  185.                 cout<<"\\n\\n\\tREGISTRO ACTUALIZADO...!!!!!\\n";
  186.  
  187.                 return;
  188.  
  189.             }else {
  190.  
  191.  
  192.                 q=q->sgte;
  193.  
  194.         }
  195.  
  196.     }
  197.     if(q==NULL)
  198.         cout<<"\\n\\tCODIGO INCORRECTO...!!\\n";
  199. }
  200.  
  201.  
  202. /*---------------------- FUNCION MOSTRAR PACIENTE -------------------*/
  203. void mostrar_pacientes(PLista q){
  204.  
  205.     int i=1;
  206.  
  207.     while(q!=NULL){
  208.  
  209.         cout<<"\\n\\tDATOS DEL PACIENTE ["<<i<<"] ";
  210.         cout<<"\\n\\t------------------------";
  211.         cout<<"\\n\\n\\tCODIGO   : "<<q->codigo<<endl;
  212.         cout<<"\\n\\tNOMBRES  : "<<q->nombres<<endl;
  213.         cout<<"\\tAPELLIDOS: "<<q->apellidos<<endl;
  214.         cout<<"\\tDIRECCION: "<<q->direccion<<endl;
  215.         cout<<"\\tTELEFONO : "<<q->telefono<<endl;
  216.  
  217.         q=q->sgte;
  218.  
  219.         i++;
  220.     }
  221.  
  222. }
  223.  
  224. /*--------------- FUNCION COPIAR DATOS DE UN PACIENTEA OTRO ------------------*/
  225. void copiar_datos_paciente(PLista lista){
  226.  
  227.     int cod1,cod2, x;
  228.     PLista p,q,t;
  229.     p=lista;
  230.     q=lista;
  231.     char dato[maxchar];
  232.  
  233.     cout<<"\\n\\n\\n\\tCOPIAR DATOS DE PACIENTE A OTRO";
  234.     cout<<"\\n\\n\\n\\t--------------------------------";
  235.     cout<<"\\n\\n\\tINGRESE CODIGO DE PACIENTE A COPIAR:"; cin>>cod1;
  236.     cout<<"\\n\\n\\tINGRESE CODIGO DE PACIENTE A SUSTITUIR:";cin>>cod2;
  237.     system("cls");
  238.  
  239.     while(p!=NULL){
  240.  
  241.             if(p->codigo==cod1){
  242.                 t=p;
  243.                 cout<<"\\n\\tDATOS DEL PACIENTE  COPIAR ";
  244.                 cout<<"\\n\\t---------------------------";
  245.                 cout<<"\\n\\n\\tCODIGO   : "<<p->codigo<<endl;
  246.                 cout<<"\\n\\tNOMBRES  : "<<p->nombres<<endl;
  247.                 cout<<"\\tAPELLIDOS: "<<p->apellidos<<endl;
  248.                 cout<<"\\tDIRECCION: "<<p->direccion<<endl;
  249.                 cout<<"\\tTELEFONO : "<<p->telefono<<endl;
  250.  
  251.             }
  252.                 p=p->sgte;
  253.  
  254.         }
  255.     while(q!=NULL){
  256.  
  257.             if(q->codigo==cod2){
  258.  
  259.                 cout<<"\\n\\tDATOS DEL PACIENTE A SUSITUIR ";
  260.                 cout<<"\\n\\t--------------------";
  261.                 cout<<"\\n\\n\\tCODIGO   : "<<q->codigo<<endl;
  262.                 cout<<"\\n\\tNOMBRES  : "<<q->nombres<<endl;
  263.                 cout<<"\\tAPELLIDOS: "<<q->apellidos<<endl;
  264.                 cout<<"\\tDIRECCION: "<<q->direccion<<endl;
  265.                 cout<<"\\tTELEFONO : "<<q->telefono<<endl;
  266.  
  267.                 menu_actualizar();
  268.                 cin>>x;
  269.  
  270.                 switch(x){
  271.  
  272.                     case 1: strcpy(dato,t->nombres);
  273.                             strcpy(q->nombres,dato);
  274.                             break;
  275.  
  276.                     case 2: strcpy(dato,t->apellidos);
  277.                             strcpy(q->apellidos,dato);
  278.                             break;
  279.  
  280.                     case 3: strcpy(dato,t->direccion);
  281.                             strcpy(q->direccion,dato);
  282.                             break;
  283.  
  284.                     case 4: q->telefono=t->telefono;
  285.                             break;
  286.  
  287.                     default: cout<<"\\nINGRESE UNA OPCION VALIDA...\\n"; break;
  288.  
  289.                 }
  290.                 cout<<"\\n\\n\\tREGISTRO ACTUALIZADO...!!!!!\\n";
  291.  
  292.                 return;
  293.  
  294.             }else {
  295.  
  296.  
  297.                 q=q->sgte;
  298.  
  299.         }
  300.  
  301.     }
  302.  
  303.     if(q==NULL)
  304.         cout<<"\\n\\tCODIGO INCORRECTO...!!\\n";
  305.  
  306. }
  307.  
  308. /*------------------------- FUNCION PRINCIPAL -------------------*/
  309. int main(void){
  310.  
  311.     system("color 0a");
  312.  
  313.     PLista lista=NULL;
  314.  
  315.     int opcion;
  316.  
  317.     do{
  318.             menu();
  319.             cin>>opcion;
  320.  
  321.             switch(opcion){
  322.  
  323.                 case 1: registrar_pacientes(lista);
  324.                         break;
  325.  
  326.                 case 2: if(lista==NULL){
  327.  
  328.                             cout<"\\n\\tNo Hay Pacientes Registrados.....!!!!\\n";
  329.  
  330.                         }else{
  331.  
  332.                             eliminar_paciente(lista);
  333.  
  334.                         }
  335.                         break;
  336.  
  337.                 case 3: if(lista==NULL){
  338.  
  339.                             cout<"\\n\\tNo Hay Pacientes Registrados.....!!!!\\n";
  340.  
  341.                         }else{
  342.  
  343.                             actualizar_paciente(lista);
  344.  
  345.                         }
  346.                         break;
  347.  
  348.                 case 4: if(lista==NULL){
  349.  
  350.                             cout<"\\n\\tNo Hay Pacientes Registrados.....!!!!\\n";
  351.  
  352.                         }else {
  353.  
  354.                             mostrar_pacientes(lista);
  355.  
  356.                         }
  357.                         break;
  358.  
  359.                 case 5: if(lista==NULL){
  360.  
  361.                             cout<"\\n\\tNo Hay Pacientes Registrados.....!!!!\\n";
  362.  
  363.                         }else{
  364.  
  365.                             copiar_datos_paciente(lista);
  366.  
  367.                         }
  368.                         break;
  369.  
  370.                 case 6: return 0;
  371.  
  372.  
  373.                 default: cout<<"\\nINGRESE UNA OPCION VALIDA...\\n"; break;
  374.  
  375.             }
  376.  
  377.             system("pause");  system("cls");
  378.  
  379.         }while(opcion!=6);
  380.  
  381.     system("pause");
  382.  
  383.     return 0;
  384. }
');