eduardo17445
Desconectado
Mensajes: 162
|
UGMA - Universidad Gran Mariscal de Ayacucho PROGRAMACIÓN II Profesor: Othswaid Perdomo. Proyecto (Simulación de Supermercado) Puerto Ordaz, 22 de mayo de 2012. Descripción del problema. Un importante supermercado necesita su ayuda para desarrollar una simulación del comportamiento de sus clientes y cajeros, lo que le permitirá tomar decisiones para mejorar el servicio que presta. Al supermercado le interesa obtener datos respecto al tiempo promedio que esperan los clientes en la caja, y quiere a su vez dar los primeros pasos en la dirección de implementar un completo sistema de control financiero y de inventario. Para esto, Usted debe implementar una simulación del comportamiento de los clientes en el supermercado, empezando con la selección de los productos que van a comprar, y eligiendo una caja en la cual pagar. Asimismo, el simulador debe llevar registro de las boletas generadas a cada cliente de modo que se puedan conocer datos como el producto más vendido en un día, el monto vendido por cada caja, y el monto total vendido por el supermercado. La lista de los productos disponibles en el supermercado se encuentra en un archivo de texto en el que en cada línea aparece el código del producto, su descripción y su precio unitario (opcional). Cada cliente generado debe simular aleatoriamente la selección de los productos (tipo y cantidad) que va a comprar. Estos productos los llevará a la caja de su elección para proceder al pago. Los clientes eligen la caja con la cola más corta. Durante el proceso de cobro, el cajero construye una boleta con el detalle de los productos comprados, y el monto total a pagar. Estas boletas son acumuladas en la caja para poder generar reportes posteriormente. En esta tarea Ud. debe formar un equipo de trabajo con máximo 3 integrantes e implementar un programa en C++ que satisfaga los requerimientos del supermercado. Co nsideraciones especiales: 1. Los Clientes se pueden cambiar de caja, si la caja del lado derecho o izquierdo tiene menos carritos que en la caja donde está ubicado. 2. Los valores tales como: selección del producto, cantidad de productos, tiempo de un nuevo cliente y tiempo de permanencia del cliente en la caja serán generados aleatoriamente. 3. El supermercado tiene 8 cajas, las cuales al iniciar el día se abren solo las requeridas por el dueño. 4. El supermercado siempre debe tener abierta en todo momento una caja rápida y una caja normal. 5. La caja rápida solo atenderá a clientes con un número de productos no mayor a 6. Página 1 de 2 UGMA - Universidad Gran Mariscal de Ayacucho PROGRAMACIÓN II Profesor: Othswaid Perdomo. Proyecto (Simulación de Supermercado) 6. Los clientes se pueden cambiar a una caja rápida, si y solo si, no haya clientes que cumplan con la consideración anterior. 7. Los valores de cada cliente, tales como: cantidad de productos, tiempo de permanencia en la cola deben ser visualizado en todo momento, así como también el TIMER o RELOJ de la simulación. Los informes de avance que Usted debe entregar para la evaluación de este sistema deben tener la siguiente estructura: 1era. Entrega (07/06/2012). - Análisis detallado del problema. - Definición y detalle de los datos a utilizar. - Definición y detalle de las clases a utilizar. - Prototipo de interfaz del programa. 2da. Entrega (Última semana del semestre). - Correcciones de la 1era. entrega. - Pantallas definitivas del programa. - Código fuente. - Revisión de la implementación de los requerimientos solicitados en el programa. La 2da. Entrega del proyecto debe suministrarse en formato electrónico grabado en CD o DVD. Página 2 de 2
#include <stdio.h> #include <iostream> #include <stdlib.h> #include <string.h> using namespace std; class producto{ double codigo; char nombre; double precio; public: void codigo(); void nombre(); void precio(); }; void producto::codigo_precio() { cout<<"ingresar codigo"; cin>>codigo; cout<<"ingresar precio"; cin>>precio; } void producto::nombre() { cout<<"ingresar nombre"; cin>>nombre; } class clientes_cajas{ int info,posi,*lista_clientes,nodo,sig,aux,null,nuevo; public: void insertar lista_cajascajas(); void imprimir (); void eliminar(); void liberar(); void insertar lista_clientes(); void imprimir(); void eliminar(); void liberar(); }; void clientes_cajas::lista_de_cajas { if(posi==0||*lista_cajas==null) { nuevo->sig=*lista_cajas; *lista_cajas=nuevo; } else nodo*aux=*lista_cajas; while(posi>1 && aux && aux->sig) { posi--; aux=aux->sig; } nuevo->sig=aux->sig; aux->sig=nuevo; } } void clientes_cajas::eliminar() { if(posi==0&&*lista_cajas) { nodo*aux=*lista_cajas; *lista_cajas=aux->sig; free(aux); } else { nodo*aux=*lista_cajas; while(aux&&pos>1) { posi--; aux=aux->sig; } if(aux&&aux->sig) { nodo*elim=aux->sig; aux->sig=elim->sig; free(elim); } } } void clientes_cajas::imprimir() { int lista_clientes; while(lista_clientes) { printf("%d ",lista_clientes->info); lista_clientes=lista_clientes->sig; } } void clientes_cajas::liberar() { while(lista_clientes) { printf("%d ",lista_cajas->info); lista_cajas=lista_cajas->sig; } } void clientes_cajas::lista_clientes() { if(posi==0||*lista_clientes==null) { nuevo->sig=*lista_clientes; *lista=nuevo; } else nodo*aux=*lista_clientes; while(posi->1 && aux && aux->sig) { posi--; aux=aux->sig; } nuevo->sig=aux->sig; aux->sig=nuevo; } void clientes_cajas::eliminar() { int elim; if(posi==0&&*lista_clientes) { nodo*aux=*lista_clientes; *lista_clientes=aux->sig; free(aux); } else nodo*aux=*lista_clientes; while(aux&&posi>1) { posi--; aux=aux->sig; } if(aux&&aux->sig) { nodo*elim=aux->sig; aux->sig=elim->sig; free(elim); } }
|