Sei sulla pagina 1di 8

OBJETIVO GENERAL

Optimizar la distribución, administración y organización de trabajo en un taller mecánico, mejorar la


atención del cliente de forma rápida y eficiente con calidad en el servicio.
OBJETIVOS ESPECIFICOS
 Distribuir la carga de trabajo: de forma adecuada conforme a los trabajadores con los que
se cuenta conforme a su eficiencia y dificultad de cada trabajo. Para brindar un servicio más
eficaz.
 Obtener una base de datos: para organizar la parte administrativa del taller, la cual agilizara
la distribución de carga y se contara con una forma mas eficaz de realizar algún diagnóstico.
 Contar con un sistema de seguridad: que no sea manipulable por el personal, para beneficio
propio.
 Presupuesto: obtener de forma rápida y precisa un valor unitario, del costo de la reparación
conforme al servicio que se proporcionara y el valor de las refacciones a utilizar.
Problemática :
Saturación y mal manejo de la distribución de carga de trabajo, clientes al entrar y salir y así mismo
el tiempo que tarda en realizarse un trabajo. Y de la administración del taller.
METODOLOGIA DE SOLUCION DE PROBLEMA
cola:
Esta función de cola, se tiene prevista como un filtro en el cual entran las ordenes de trabajo, las cuales
una vez después de ser asignada la carga pasa a una pila si la carga es atendida y en el caso contrario
si la orden está pendiente pasa hacia una LSE de ordenes pendientes. Para así poder observar la
carga de trabajo total, tanto la pendiente como la resuelta y llevar un control ordenado del proceso
laboral.
typedef struct ADCT{ void cola_save(ADCT *t);
int id_trab,id_cliente; void cola_Resave();
string des_trab, int cola_recuperar(ADCT *t);
Fecha,Estatus,nom_clien,Hora; };
struct ADCT *siguiente;
}; void cola::cola_insertar(ADCT *t){
ADCT *nuevo=new ADCT;
class cola{ nuevo->id_trab=t->id_trab;
nuevo->id_cliente=t->id_cliente;
ADCT *inicio, *final; nuevo->nom_clien=t->nom_clien;
string nom_arc_col; nuevo->Hora=t->Hora;
public: nuevo->Fecha=t->Fecha;
cola(string NDAC){ nuevo->des_trab=t->des_trab;
inicio=NULL; nuevo->Estatus=t->Estatus;
final = NULL; if(inicio!=NULL){
nom_arc_col=NDAC; final->siguiente = nuevo;
}; final = nuevo;
nuevo->siguiente = NULL;
void cola_insertar(ADCT *t); }
void cola_ver(); else{
ADCT cola_quitar(); inicio=nuevo;
void cola_bus(int Serv); final=nuevo;
nuevo->siguiente = NULL; ADCT *aux=inicio;
}
} while(aux!=NULL && aux->id_trab !=
Serv){
ADCT cola::cola_quitar(){ aux=aux->siguiente;
ADCT *aux=inicio; }
ADCT Retu; if(aux !=NULL){
if(aux!=NULL){ cout<<" El servicio aun se
encuentra pendiente de ser atendido
Retu.id_cliente=aux->id_cliente; "<<endl;
Retu.nom_clien=aux->nom_clien; }
Retu.Estatus=aux->Estatus; else{
Retu.Fecha=aux->Fecha; cout<<" El servicio ya se
Retu.Hora=aux->Hora; encuentra en atencion "<<endl;
Retu.des_trab=aux->des_trab; }
Retu.id_trab=aux->id_trab; cout<<"\n";
system("pause");
inicio=aux->siguiente; }
return Retu;
delete aux;
} void cola::cola_save(ADCT *t){
ofstream archivo;
}
archivo.open(nom_arc_col.c_str(),ios::ap
void cola::cola_ver(){ p);
system("cls"); archivo<<t->id_trab<<","
cout<<"Ordenes de trabajo"<<endl; <<t->id_cliente<<","
ADCT *aux=inicio; <<t->nom_clien<<","
int i=1; <<t->Hora<<","
if(aux==NULL){ <<t->Fecha<<","
cout<<"No hay nuevas ordenes de <<t->des_trab<<","
trabajo"<<endl; <<t->Estatus;
} archivo<<"\n";
else{ cout<<"\n\t\t *** Orden de trabajo
while(aux!=NULL){ guardada en sistema - con Exito ***
cout<<"Orden: "<<aux- \n\n";
>id_trab<<endl; system("pause");
archivo.close();
cout<<"Cliente:"<<aux->id_cliente<<"
"<<aux->nom_clien<<endl; }
cout<<"Hora y fecha de la void cola::cola_Resave(){
orden: "<<aux->Hora<<" "<<aux- ADCT *tx=inicio;
>Fecha<<endl; ofstream archivo;
cout<<"Descripcion de la
orden:"<<aux->des_trab<<endl; archivo.open(nom_arc_col.c_str(),ios::tr
cout<<"Estatus del unc);
pedido:"<<aux->Estatus<<endl; while(tx!=NULL){
cout<<"------------------------ archivo<<tx->id_trab<<","
---------------------------------------- <<tx->id_cliente<<","
-----------"<<endl; <<tx->nom_clien<<","
aux=aux->siguiente; <<tx->Hora<<","
<<tx->Fecha<<","
} <<tx->des_trab<<","
system("pause"); <<tx->Estatus;
} archivo<<"\n";
tx=tx->siguiente;
} }
cout<<"\n\t\t *** Sistema
void cola::cola_bus(int Serv){ actualizado - con Exito *** \n\n";
system("pause"); cout<<"\n\t\t *** -
archivo.close(); "<<nom_arc_col<<" - Ordenes Recuperadas
con Exito *** \n\n";
} return t->id_trab;
archivo.close();
int cola::cola_recuperar(ADCT *t){ }
string line,tline; }
string separador=",";
int cortar; /*main(){
ifstream archivo(nom_arc_col.c_str()); cola l;
if(archivo.is_open()){ ADCT T;
while(getline(archivo,line)){ cout<<"Orden: 0";cin>>T.id_trab;
for(int i=0;i<7;i++){
cout<<"Cliente:";cin>>T.id_cliente;
tline=line.substr(0,line.find(separador) cout<<"Hora :
); ";cin>>T.Hora;
cortar=tline.length();
switch(i){ cout<<"Fecha:";
case 0:t- fflush(stdin);
>id_trab=atoi(tline.c_str());break; getline(cin,T.Fecha);
case 1:t-
>id_cliente=atoi(tline.c_str());break; cout<<"Descripcion de la
case 2:t- orden:";
>nom_clien=tline;break; fflush(stdin);
case 3: getline(cin,T.des_trab);
t->Hora=tline;break;
case 4:
t->Fecha=tline;break; l.insertar(&T);
case 5: system ("pause");
t->des_trab=tline;break; system ("pause");
case 6:
t->Estatus=tline;break;
} l.ver();
line.erase(0,cortar+1); system ("pause");
}
cola_insertar(t);
} }*/

LSE:
Esta LSE, se usa para obtener los datos del cliente y del vehículo. Y se pretende que estos datos se
manden a una pila donde se utilizaran para realizar una estructura de base de datos, la cual permitirá
tener un expediente del cliente y poder tener un control y mejor servicio particularmente a los clientes
ayudando al trabajador a identificar posible falla a través del expediente del vehículo.
typedef struct EST{ inicio=NULL;
int id_trab,id_cliente; final = NULL;
string des_trab, Fecha,Estatus, nom_arc_est=NDAE;
Nom_mecanic,nom_clien,Hora; };
struct EST *siguiente;
}; void LSEE_insert(EST *u);
void LSEE_imp();
class LSEE{ void LSEE_buscar(int e);
void LSEE_save(EST *t);
EST *inicio, *final; int LSEE_rescu(EST *t);
string nom_arc_est; EST LSEE_quitar(int id);
public: void LSEE_Resave();
LSEE(string NDAE){ };
}
void LSEE::LSEE_insert(EST *t){
EST *nuevo=new EST; }
nuevo->id_trab=t->id_trab;
nuevo->id_cliente=t->id_cliente; void LSEE::LSEE_buscar(int e){
nuevo->nom_clien=t->nom_clien; EST *aux=inicio;
nuevo->Hora=t->Hora;
nuevo->Fecha=t->Fecha; while(aux!=NULL && aux->id_trab!=e){
nuevo->des_trab=t->des_trab; aux=aux->siguiente;
nuevo->Estatus=t->Estatus;
nuevo->Nom_mecanic=t- }
>Nom_mecanic; if(aux !=NULL){
cout<<" El servicio esta siendo
atendido"<<endl;
if(inicio!=NULL){ }
final->siguiente = nuevo; else{
final = nuevo; cout<<" El servicio no esta aun
nuevo->siguiente = NULL; siendo atendido o se encuentra
} finalizado"<<endl;
else{ }
inicio=nuevo; cout<<"\n";
final=nuevo; system("pause");
nuevo->siguiente = NULL; }
}
} EST LSEE::LSEE_quitar(int id){
EST *aux=inicio;
void LSEE::LSEE_imp(){ EST *ant, *tem;
system("cls"); EST Retu;
cout<<"Ordenes de trabajo ya en
servicio"<<endl;
EST *aux=inicio; if (aux!=NULL&&aux->id_trab==id){
int i=1; inicio=aux->siguiente;
if(aux==NULL){ }
cout<<"No hay nuevas ordenes de else if(aux!=NULL&&aux->id_trab!=id){
trabajo atendidas ahora"<<endl; while(aux!=NULL && aux-
} >id_trab!=id){
else{ ant=aux;
while(aux!=NULL){ aux=aux->siguiente;
cout<<"Orden: "<<aux- }
>id_trab<<endl;
if(aux->siguiente!=NULL){
cout<<"Cliente:"<<aux->id_cliente<<" tem=aux->siguiente;
"<<aux->nom_clien<<endl; ant->siguiente=tem;
cout<<"Hora y fecha de la
orden: "<<aux->Hora<<" "<<aux- }
>Fecha<<endl; else if(aux-
cout<<"Descripcion de la >siguiente==NULL){
orden:"<<aux->des_trab<<endl;
cout<<"Estatus del final=ant;
pedido:"<<aux->Estatus<<endl; ant->siguiente=NULL;
cout<<"Mecanico que atiende }
servicio:"<<aux->Nom_mecanic<<endl; }
cout<<"------------------------
---------------------------------------- Retu.id_cliente=aux->id_cliente;
-----------"<<endl; Retu.nom_clien=aux->nom_clien;
aux=aux->siguiente; Retu.Estatus=aux->Estatus;
Retu.Fecha=aux->Fecha;
} Retu.Hora=aux->Hora;
system("pause"); Retu.des_trab=aux->des_trab;
Retu.id_trab=aux->id_trab; case 3:t-
Retu.Nom_mecanic=aux- >Hora=tline;break;
>Nom_mecanic; case 4:t-
return Retu; >Fecha=tline;break;
delete aux; case 5:t-
system("pause"); >des_trab=tline;break;
} case 6:t-
>Estatus=tline;break;
case 7:t-
>Nom_mecanic=tline;break;
void LSEE::LSEE_save(EST *t){
ofstream archivo; }
line.erase(0,cortar+1);
archivo.open(nom_arc_est.c_str(),ios::ap }
p); LSEE_insert(t);
}
archivo<<t->id_trab<<"," cout<<"\n\t\t *** -
<<t->id_cliente<<"," "<<nom_arc_est<<" - Trabahjos en proceso
<<t->nom_clien<<"," Recuperados con Exito *** \n\n";
<<t->Hora<<"," return t->id_trab;
<<t->Fecha<<"," archivo.close();
<<t->des_trab<<"," }
<<t->Estatus<<"," }
<<t->Nom_mecanic;
archivo<<"\n"; void LSEE::LSEE_Resave(){
cout<<"\n\t\t *** Se asigno un EST *tex=inicio;
mecanico con Exito *** \n\n"; ofstream archivo;
system("pause");
archivo.close(); archivo.open(nom_arc_est.c_str(),ios::tr
} unc);
while(tex!=NULL){
int LSEE::LSEE_rescu(EST *t){ archivo<<tex->id_trab<<","
string line,tline; <<tex->id_cliente<<","
string separador=","; <<tex->nom_clien<<","
int cortar; <<tex->Hora<<","
ifstream archivo(nom_arc_est.c_str()); <<tex->Fecha<<","
if(archivo.is_open()){ <<tex->des_trab<<","
while(getline(archivo,line)){ <<tex->Estatus<<","
for(int i=0;i<8;i++){ <<tex->Nom_mecanic;
archivo<<"\n";
tline=line.substr(0,line.find(separador) tex=tex->siguiente;
); }
cortar=tline.length(); cout<<"\n\t\t *** Sistema
switch(i){ actualizado - con Exito *** \n\n";
case 0:t- system("pause");
>id_trab=atoi(tline.c_str());break; archivo.close();
case 1:t-
>id_cliente=atoi(tline.c_str());break; }
case 2:t-
>nom_clien=tline;break;
PILA :
Esta pila, se obtiene de la lista simplemente enlazada para estructural la base de datos como un
registro de los vehículos como clientes y empleados asignados a los trabajas y así mismo el estado
de trabajo
typedef struct ESTFIN{
int id_trab,id_cliente; tot=tot+t->ManObra;
float
precios[10]={0,0,0,0,0,0,0,0,0,0};
float total=0,ManObra; nuevo->total=tot;
string des_trab, Fecha,Estatus,
Nom_mecanic,nom_clien,Hora,des_final; if(inicio!=NULL){
string nuevo->siguiente=inicio;
refac[10]={"N/A","N/A","N/A","N/A","N/A"," inicio = nuevo;
N/A","N/A","N/A","N/A","N/A"}; }
struct ESTFIN *siguiente; else{
}; inicio=nuevo;
nuevo->siguiente=NULL;
class PILA{ }
ESTFIN *inicio; }
string nom_arc_fin;
void PILA::pila_ver(){
system("cls");
public: cout<<"trabajos terminados en
PILA(string NDAF){inicio=NULL; pila"<<endl;
nom_arc_fin=NDAF;}; ESTFIN *aux=inicio;
if(aux==NULL){
void pila_insertar(ESTFIN *t, int cout<<"No hay nuevas ordenes de
E); trabajo atendidas "<<endl;
void pila_ver(); }
ESTFIN pila_quitar(); else{
void pila_save(ESTFIN *t); while(aux!=NULL){
void pila_rescu(ESTFIN *t); cout<<"Orden: "<<aux-
>id_trab<<endl;
}; cout<<"Cliente:"<<aux-
>id_cliente<<" "<<aux->nom_clien<<endl;
void PILA::pila_insertar(ESTFIN *t, int cout<<"Hora y fecha de la
e){ orden: "<<aux->Hora<<" "<<aux-
ESTFIN *nuevo=new ESTFIN; >Fecha<<endl;
float tot=0; cout<<"Descripcion de la
nuevo->id_trab=t->id_trab; orden: "<<aux->des_trab<<endl;
nuevo->id_cliente=t->id_cliente; cout<<"Estatus del pedido:
nuevo->nom_clien=t->nom_clien; "<<aux->Estatus<<endl;
nuevo->Hora=t->Hora; cout<<"Mecanico que atendio
nuevo->Fecha=t->Fecha; servicio: "<<aux->Nom_mecanic<<endl;
nuevo->des_trab=t->des_trab; cout<<"Refacciones usadas:
nuevo->Estatus=t->Estatus; "<<endl;
nuevo->Nom_mecanic=t->Nom_mecanic;
nuevo->des_final=t->des_final; for(int
nuevo->ManObra=t->ManObra; i=0;i<10;i++){

for(int i=0;i<e;i++){ cout<<aux-


>refac[i]<<" : "<<aux->precios[i]<<"
nuevo->refac[i]=t- MN."<<endl;
>refac[i]; }
nuevo->precios[i]=t- cout<<"Costo mano
>precios[i]; de obra: "<<aux->ManObra<<endl;
tot=tot+t->precios[i]; cout<<"Descripcion final:
} "<<aux->des_final<<endl;
cout<<"Costo Total: string separador=",";
"<<aux->total<<endl; int cortar;
cout<<"------------------ ifstream archivo(nom_arc_fin.c_str());
------------------------------------------ if(archivo.is_open()){
---------------"<<endl; while(getline(archivo,line)){
aux=aux->siguiente; for(int i=0;i<31;i++){

} tline=line.substr(0,line.find(separador));
system("pause"); cortar=tline.length();
} switch(i){
} case 0:t-
>id_trab=atoi(tline.c_str());break;
ESTFIN PILA::pila_quitar(){ case 1:t-
ESTFIN *aux=inicio; >id_cliente=atoi(tline.c_str());break;
ESTFIN *valor; case 2:t-
if(aux!=NULL){ >nom_clien=tline;break;
valor =aux; case 3:t-
inicio=aux->siguiente; >Hora=tline;break;
delete aux; case 4:t-
} >Fecha=tline;break;
return *valor; case 5:t-
} >des_trab=tline;break;
case 6:t-
>Estatus=tline;break;
case 7:t-
>Nom_mecanic=tline;break;
case 8:t-
>des_final=tline;break;
case 9:t-
void PILA::pila_save(ESTFIN *t){ >total=atof(tline.c_str());break;
ofstream archivo; case 10:t-
>ManObra=atof(tline.c_str());break;
archivo.open(nom_arc_fin.c_str(),ios::app)
; case 11: t-
>refac[0]=tline; break;
archivo<<t->id_trab<<"," case 12: t-
<<t->id_cliente<<"," >precios[0]=atof(tline.c_str()); break;
<<t->nom_clien<<","
<<t->Hora<<"," case 13: t-
<<t->Fecha<<"," >refac[1]=tline; break;
<<t->des_trab<<"," case 14: t-
<<t->Estatus<<"," >precios[1]=atof(tline.c_str()); break;
<<t->Nom_mecanic<<","
<<t->des_final<<"," case 15: t-
<<t->total<<"," >refac[2]=tline; break;
<<t->ManObra<<","; case 16: t-
>precios[2]=atof(tline.c_str()); break;
for(int i=0;i<10;i++){
case 17: t-
archivo<<t->refac[i]<<"," >refac[3]=tline; break;
<<t->precios[i]<<","; case 18: t-
} >precios[3]=atof(tline.c_str()); break;

archivo<<"\n"; case 19: t-


cout<<"\n\t\t *** Se finalizo trabajo >refac[4]=tline; break;
con Exito *** \n\n"; case 20: t-
system("pause"); >precios[4]=atof(tline.c_str());break;
archivo.close();
} case 21: t-
>refac[5]=tline; break;
void PILA::pila_rescu(ESTFIN *t){ case 22: t-
string line,tline; >precios[5]=atof(tline.c_str()); break;
case 29: t-
case 23: t- >refac[9]=tline;break;
>refac[6]=tline; break; case 30: t-
case 24: t- >precios[9]=atof(tline.c_str()); break;
>precios[6]=atof(tline.c_str()); break;
}
case 25: t- line.erase(0,cortar+1);
>refac[7]=tline; break; }
case 26: t- pila_insertar(t,10);
>precios[7]=atof(tline.c_str()); break; }
cout<<"\n\t\t *** - "<<nom_arc_fin<<"
case 27: t- - Trabahjos terminados Recuperados con
>refac[8]=tline; break; Exito *** \n\n";
case 28: t- archivo.close();
>precios[8]=atof(tline.c_str()); break; }
}

Mejoras al futuro
1.-Mediante un árbol binario
Obtener un mejor rendimiento en el programa y facilitar el uso. Ya que ayudaría para
• Poder buscar a un cliente y los trabajos que se le han realizado .
• Buscar un trabajo realizado en lapsos de tiempos determinados o específicos con su id.
• Mostrar de manera mas rápida el estatus del servicio.
• Organizar de manera mas adecuada la base de datos
2.- mediante una aplicación (app)
Creación de una aplicación, que contenga una interfaz que permita al cliente elegir un servicio ofrecido
en el taller. De manera cómoda y fácil hacia el cliente y ofreciendo también un sistema de presupuestos
precisos (netos al momento).
La ejecución del programa esta pensado realizase ya sea a través
• vía bluetooth a través de una aplicación para móviles.
• Un sistema o maquina fija que sea manipulable por clientes y empleados para (agregar, realizar
y cobro) de los trabajos seleccionados por el cliente.
El alcance esperado para estas 2 opciones mencionadas se espera que sea:
• Crecimiento del negocio.
• Venta de software a negocios locales o industriales.
Seguridad
Contar con niveles de seguridad en el programa para el manejo de información.
dependiendo :
• Puesto o cargo del negocio.
Para evitar: Evitar manipulación para bien propio, Mal manejo del equipo, Tener un buen control y
seguridad de los datos obtenidos.

Potrebbero piacerti anche