Advertisement
Guest User

Untitled

a guest
Aug 27th, 2014
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.66 KB | None | 0 0
  1. //practico de supermercado
  2.  
  3. #include "stdafx.h"
  4. #include <iostream>
  5. #include "string"
  6. #define MAX 2000
  7.  
  8. using namespace std;
  9.  
  10. //VAR
  11. struct FechaI
  12. {
  13.     int dia;
  14.     int mes;
  15.     int año;
  16. };
  17.  
  18. struct Empleado
  19. {
  20.     char nombre[150];
  21.     int Categoria;
  22.     char Departamento[40];
  23.     struct FechaI Fecha;
  24. };
  25.  
  26.  
  27. void CargarDatos ( Empleado empleado[],int & i)      //
  28. {                                             // Pedir variable contador, que va a ser la i;
  29.     char Seguir;
  30.    
  31.     do{ i++;
  32.     fflush(stdin);
  33.     cout<<"Ingrese el Apellido y Nombre del empleado."<<endl;
  34.     gets_s(empleado[i].nombre);
  35.     //fflush(stdin);
  36.     //cout<<"Ingrese la categoria."<<endl;
  37.     //cin>>empleado[i].Categoria;
  38.     //fflush(stdin);
  39.     //cout<<"Ingrese el departamento."<<endl;
  40.     //gets_s(empleado[i].Departamento);
  41.     //fflush(stdin);
  42.     //cout<<"Ingrese la fecha de ingreso. (dd/mm/aaaa)"<<endl;
  43.     //cin>>empleado[i].Fecha.dia;
  44.     //cin>>empleado[i].Fecha.mes;
  45.     //cin>>empleado[i].Fecha.año;
  46.  
  47.  
  48.     cout<<"Si desea seguir ingresando datos presiones 'y' o 'Y', en caso contrario presione cualquier otra tecla."<<endl;
  49.     cin>>Seguir;
  50.     }
  51.  
  52.     while((Seguir=='y')||(Seguir=='Y'));
  53. }
  54.  
  55.  
  56. void ShellSortChar(Empleado empleado[], int fin) //Se cambio TAM por fin (marca el final del arreglo)
  57. {
  58.     int k = (fin / 2);
  59.     while (k>=1)
  60.     {
  61.         for (int sub = 0; sub < k ; sub++)
  62.         {
  63.             for (int i = (k+sub); i < fin ; i+=k)
  64.             {
  65.                 char v[30];
  66.                 strcpy_s(v, empleado[i].nombre);
  67.                 int j = (i - k);
  68.                 while (j<=0&&strcoll(empleado[j+k].nombre,v)>0)
  69.                 {
  70.                     strcpy_s(empleado[j + k].nombre, empleado[j].nombre);
  71.                     j -= k;
  72.                 }
  73.                 strcpy_s(empleado[j + k].nombre, v);
  74.             }
  75.         }
  76.     k /= 2;
  77.     }
  78. }
  79.  
  80. //Funcion de Mario (solo le arregle el char)
  81. void Binaria(Empleado empleado[],int izq,int der,char clave[]){
  82.     int centro;
  83.     centro=(der+izq)/2;
  84.     if(izq>der)
  85.         cout<<"No se encuentra el elemento";
  86.     else    if(strcmp(empleado[centro].nombre,clave)== 0){
  87.                 cout<<"Nombre: "<<empleado[centro].nombre<<endl;
  88.                 cout<<"Departamento en el que trabaja: "<<empleado[centro].Departamento<<endl;
  89.                 cout<<"Fecha de ingreso: "<<empleado[centro].Fecha.dia<<"/"<<empleado[centro].Fecha.mes<<"/"<<empleado[centro].Fecha.año<<endl;
  90.                 cout<<"Categoria: "<<empleado[centro].Categoria<<endl;
  91.  
  92.             }
  93.             else if(strcmp(empleado[centro].nombre,clave)== 1)
  94.                     Binaria(empleado,centro+1,der,clave);
  95.                         else
  96.                             Binaria(empleado,izq,centro-1,clave);
  97. }
  98.  
  99.  
  100. void main()
  101. {
  102.     //var
  103.     int fin=-1; //marca el final del arreglo.
  104.     char clave[100];
  105.     struct Empleado empleado[MAX];
  106.     int Switch;  //Variable utiliazada solo para el switch
  107.    
  108.    
  109.     do
  110.     {
  111.         cout<<"Bienvenido a la base de datos del supermercado <Insertar nombre aqui>!"<<endl;
  112.    
  113.         cout<<"Seleccione una opcion: "<<endl
  114.             <<endl
  115.             <<"1.Ingresar un empleado"<<endl
  116.             <<"2.Ordenar la lista de empleados"<<endl
  117.             <<"3.Buscar un empleado"<<endl
  118.             <<"0.Salir"<<endl
  119.         ;
  120.  
  121.         cin>>Switch;
  122.         switch(Switch)
  123.         {
  124.         case 1:
  125.             CargarDatos(empleado,fin);
  126.             break;
  127.         case 2:
  128.             ShellSortChar(empleado,fin);
  129.             cout<<"Ordenamiento realizado con exito"<<endl;
  130.             system("pause");
  131.             system("cls");                                                                             // check it.
  132.             break;
  133.         case 3:
  134.             do{
  135.                 cout<<"Ingrese Apellido y Nombre"<<endl;
  136.                 cout<<"(Se puede ingresar tambien una parte)"<<endl;                                  //
  137.                 cin>>clave;
  138.                 Binaria(empleado,0,fin,clave,strlen(clave));                                           //
  139.             }while(Switch == 1);
  140.             break;
  141.         }
  142.     }while(Switch != 0);
  143.    
  144.     cout<<"Creado por:"<<endl
  145.         <<"Arriola Mario"<<endl
  146.         <<"Lopez Sebastian"<<endl
  147.         <<"Mercado Federico"<<endl
  148.         <<"Ojeda Brayam"<<endl
  149.     ;
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement