void desplegarListaProductos(FILE *registro,int * departamento) { int opciones; int producto; do{ //Primero contamos el números de productos, por tipo de producto, no por existencias. int numeroProductos = contarTipoProducto(registro); if(numeroProductos > 0) { Producto *lista = crearListaProductos(registro,numeroProductos); lista = asignarInformacionProductos(lista,registro,numeroProductos); for(int i = 0; i < numeroProductos; i++) { printf("%d- %s Precio: $%s\n",i+1,lista[i].nombreProducto,lista[i].precioProdu); } printf("Opciones:\n"); printf("1.- Desea comprar algo?\n"); printf("2.- Salir del departamento\n"); fflush(stdout); scanf("%d",&opciones); switch(opciones) { case 1: printf("Seleccione el producto que desea comprar\n"); scanf("%d",&producto); producto --; // printf("numeroProductos: %d\n", numeroProductos); // //Aquí nos aseguramos de que la opcion esogida esté dentro del rango //Para evitar un desbordamiento. if(producto < numeroProductos && producto >= 0) { comprar(lista,producto,registro,departamento,numeroProductos); }else { printf("Por favor escoja una opcion correcta\n"); } break; case 2: break; default: printf("Por favor seleccione una opcion valida\n"); break; } rewind(registro); //fflushin(); }else { printf("Lo sentimos ya no hay productos displonibles en este departamento\n"); opciones = 2; } }while(opciones != 2); }
void hacer_compras(int monto, const char* nombre) { if (consulta_saldo() >= monto) { printf("Hay saldo suficiente %s esta por comprar.\n", nombre); usleep(1); comprar(monto); printf("%s acaba de comprar.\n", nombre); } else printf("No queda suficiente saldo (%d) para que %s haga las compras.\n", consulta_saldo(), nombre); usleep(1); }
int main(){ int opcion,depto; do{ NodoInt *lista = NULL; printf("\n\n\t Bienvenido a nuestro inventario \n\n\t Seleccione una de nuestras opciones: "); printf("\n\t1.- Ingresar un nuevo producto"); printf("\n\t2.- Eliminar un producto"); printf("\n\t3.- Venta de un producto"); printf("\n\t4.- Compra de un producto"); printf("\n\t5.- Imprimir reporte de ventas"); printf("\n\t6.- Imprimir reporte de compras"); printf("\n\t7.- Imprimir reporte por departamento"); printf("\n\t8.- Salir\n\t"); scanf("%d",&opcion); system("clear"); switch (opcion) { case 1: { do{ NodoInt *lista = NULL; printf("\n\n\t Seleccione a que departamento ingresara el nuevo producto:"); printf("\n\t1.- Comida"); printf("\n\t2.- Juguetes"); printf("\n\t3.- Vestimenta"); printf("\n\t4.- Magia"); printf("\n\t5.- Electronica"); printf("\n\t6.- Regresar al menu principal\n\t"); scanf("%d",&depto); system("clear"); switch (depto) { case 1:{ char archivo[]="comida.txt"; lista=agregar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 2:{ char archivo[]="juguetes.txt"; lista=agregar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 3:{ char archivo[]="vestimenta.txt"; lista=agregar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 4:{ char archivo[]="magia.txt"; lista=agregar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 5:{ char archivo[]="electronica.txt"; lista=agregar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } default: break; } }while(depto!=6); break; } case 2: { do{ NodoInt *lista = NULL; printf("\n\n\t Seleccione en que departamento se encuentra el producto \n que desea eliminar:"); printf("\n\t1.- Comida"); printf("\n\t2.- Juguetes"); printf("\n\t3.- Vestimenta"); printf("\n\t4.- Magia"); printf("\n\t5.- Electronica"); printf("\n\t6.- Regresar al menu principal\n\t"); scanf("%d",&depto); system("clear"); switch (depto) { case 1:{ char archivo[]="comida.txt"; lista=eliminar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 2:{ char archivo[]="juguetes.txt"; lista=eliminar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 3:{ char archivo[]="vestimenta.txt"; lista=eliminar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 4:{ char archivo[]="magia.txt"; lista=eliminar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 5:{ char archivo[]="electronica.txt"; lista=eliminar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } default: break; } }while(depto!=6); break; } case 3: { do{ NodoInt *lista = NULL; printf("\n\n\t Seleccione en que departamento se encuentra el producto \n que desea vender:"); printf("\n\t1.- Comida"); printf("\n\t2.- Juguetes"); printf("\n\t3.- Vestimenta"); printf("\n\t4.- Magia"); printf("\n\t5.- Electronica"); printf("\n\t6.- Regresar al menu principal\n\t"); scanf("%d",&depto); system("clear"); switch (depto) { case 1:{ char archivo[]="comida.txt"; vender(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 2:{ char archivo[]="juguetes.txt"; vender(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 3:{ char archivo[]="vestimenta.txt"; vender(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 4:{ char archivo[]="magia.txt"; vender(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 5:{ char archivo[]="electronica.txt"; vender(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } default: break; } }while(depto!=6); break; } case 4: { do{ NodoInt *lista = NULL; printf("\n\n\t Seleccione en que departamento se encuentra el producto que\n desea Comprar:"); printf("\n\t1.- Comida"); printf("\n\t2.- Juguetes"); printf("\n\t3.- Vestimenta"); printf("\n\t4.- Magia"); printf("\n\t5.- Electronica"); printf("\n\t6.- Regresar al menu principal\n\t"); scanf("%d",&depto); system("clear"); switch (depto) { case 1:{ char archivo[]="comida.txt"; comprar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 2:{ char archivo[]="juguetes.txt"; comprar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 3:{ char archivo[]="vestimenta.txt"; comprar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 4:{ char archivo[]="magia.txt"; comprar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } case 5:{ char archivo[]="electronica.txt"; comprar(archivo,lista); listaInt_imprimir(lista); listaInt_borrar(lista); break; } default: break; } }while(depto!=6); break; } default: break; } }while(opcion !=8); return 0; }