Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //practico de supermercado
- #include "stdafx.h"
- #include <iostream>
- #include "string"
- #define MAX 2000
- using namespace std;
- //VAR
- struct FechaI
- {
- int dia;
- int mes;
- int año;
- };
- struct Empleado
- {
- char nombre[150];
- int Categoria;
- char Departamento[40];
- struct FechaI Fecha;
- };
- void CargarDatos ( Empleado empleado[],int & i) //
- { // Pedir variable contador, que va a ser la i;
- char Seguir;
- do{ i++;
- fflush(stdin);
- cout<<"Ingrese el Apellido y Nombre del empleado."<<endl;
- gets_s(empleado[i].nombre);
- //fflush(stdin);
- //cout<<"Ingrese la categoria."<<endl;
- //cin>>empleado[i].Categoria;
- //fflush(stdin);
- //cout<<"Ingrese el departamento."<<endl;
- //gets_s(empleado[i].Departamento);
- //fflush(stdin);
- //cout<<"Ingrese la fecha de ingreso. (dd/mm/aaaa)"<<endl;
- //cin>>empleado[i].Fecha.dia;
- //cin>>empleado[i].Fecha.mes;
- //cin>>empleado[i].Fecha.año;
- cout<<"Si desea seguir ingresando datos presiones 'y' o 'Y', en caso contrario presione cualquier otra tecla."<<endl;
- cin>>Seguir;
- }
- while((Seguir=='y')||(Seguir=='Y'));
- }
- void ShellSortChar(Empleado empleado[], int fin) //Se cambio TAM por fin (marca el final del arreglo)
- {
- int k = (fin / 2);
- while (k>=1)
- {
- for (int sub = 0; sub < k ; sub++)
- {
- for (int i = (k+sub); i < fin ; i+=k)
- {
- char v[30];
- strcpy_s(v, empleado[i].nombre);
- int j = (i - k);
- while (j<=0&&strcoll(empleado[j+k].nombre,v)>0)
- {
- strcpy_s(empleado[j + k].nombre, empleado[j].nombre);
- j -= k;
- }
- strcpy_s(empleado[j + k].nombre, v);
- }
- }
- k /= 2;
- }
- }
- //Funcion de Mario (solo le arregle el char)
- void Binaria(Empleado empleado[],int izq,int der,char clave[]){
- int centro;
- centro=(der+izq)/2;
- if(izq>der)
- cout<<"No se encuentra el elemento";
- else if(strcmp(empleado[centro].nombre,clave)== 0){
- cout<<"Nombre: "<<empleado[centro].nombre<<endl;
- cout<<"Departamento en el que trabaja: "<<empleado[centro].Departamento<<endl;
- cout<<"Fecha de ingreso: "<<empleado[centro].Fecha.dia<<"/"<<empleado[centro].Fecha.mes<<"/"<<empleado[centro].Fecha.año<<endl;
- cout<<"Categoria: "<<empleado[centro].Categoria<<endl;
- }
- else if(strcmp(empleado[centro].nombre,clave)== 1)
- Binaria(empleado,centro+1,der,clave);
- else
- Binaria(empleado,izq,centro-1,clave);
- }
- void main()
- {
- //var
- int fin=-1; //marca el final del arreglo.
- char clave[100];
- struct Empleado empleado[MAX];
- int Switch; //Variable utiliazada solo para el switch
- do
- {
- cout<<"Bienvenido a la base de datos del supermercado <Insertar nombre aqui>!"<<endl;
- cout<<"Seleccione una opcion: "<<endl
- <<endl
- <<"1.Ingresar un empleado"<<endl
- <<"2.Ordenar la lista de empleados"<<endl
- <<"3.Buscar un empleado"<<endl
- <<"0.Salir"<<endl
- ;
- cin>>Switch;
- switch(Switch)
- {
- case 1:
- CargarDatos(empleado,fin);
- break;
- case 2:
- ShellSortChar(empleado,fin);
- cout<<"Ordenamiento realizado con exito"<<endl;
- system("pause");
- system("cls"); // check it.
- break;
- case 3:
- do{
- cout<<"Ingrese Apellido y Nombre"<<endl;
- cout<<"(Se puede ingresar tambien una parte)"<<endl; //
- cin>>clave;
- Binaria(empleado,0,fin,clave,strlen(clave)); //
- }while(Switch == 1);
- break;
- }
- }while(Switch != 0);
- cout<<"Creado por:"<<endl
- <<"Arriola Mario"<<endl
- <<"Lopez Sebastian"<<endl
- <<"Mercado Federico"<<endl
- <<"Ojeda Brayam"<<endl
- ;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement