Salida de carro o moto en programa simulador de estacionamiento en ANSI C

Estacionamiento en ANSI C – Ejercicio de programación resuelto

Hoy vamos a ver un pequeño sistema de estacionamiento en el lenguaje de programación C, también conocido como ANSI C. Es un ejercicio resuelto. El mismo dice así:

Un estacionamiento posee 10 puestos para carros y 6 para moto. La empresa desea un software que le permita mantener el registro de los autos que entran y salen del estacionamiento para saber cuáles puestos quedan libres.

Consideraciones del sistema.

  1. Los puestos del estacionamiento están enumerados y el usuario podrá elegir en donde desea estacionarse, adicionalmente se deberá marcar la hora de entrada y la hora de salida.
  2. En cada puesto solo puede haber un único auto/moto.
  3. A medida que los puestos se estén llenando se deberá mostrar por pantalla cuales están disponibles.
  4. El valor por hora es de 3 mil pesos los carros y 1 mil pesos las motos.
  5. No se debe registrar dos veces el mismo vehículo.
  6. Al final cada usuario se le imprimirá la factura de la cantidad de horas, minutos y segundos que usó el estacionamiento. Y si se pasó por 2 minutos las horas que indicó en el registro, este deberá pagar un excedente de 200 pesos por cada minuto.
  7. Adicional, se deberá imprimir en la factura la placa del vehículo. Horas/minutos extras, Total a pagar, Hora de entrada del vehículo, hora de salida del vehículo y Horas consumidas.
  8. Una vez que alguien paga y sale del estacionamiento, el puesto debe quedar libre para otro usuario pueda usarlo.

Veamos cómo hacer este ejercicio de estacionamiento en C.

(más…)

PSeInt: ejercicio de precio según lugar en estadio

Hoy vamos a resolver un ejercicio en PSeInt que trata sobre el cálculo de un precio según la cantidad de entradas y el sector en un estadio. El mismo dice así:

Escriba un programa que permita seleccionar un sector del estadio; en la salida deberá mostrar: sector seleccionado, precio unitario de la entrada, cantidad de entradas, total a pagar.

Datos a solicitar:

  • Sector
  • Número de entradas a comprar

Sectores y precios:

  • Tribuna: precio $ 15.00
  • Sombra: precio $ 10.00
  • Sol general: precio $ 5.00

Veamos cómo resolverlo.

(más…)

PHP: acceso al sistema entre hora inicial y final

En el post de hoy veremos cómo podemos hacer un sistema en PHP para hacer que los usuarios entren solo en determinada hora específica, por ejemplo, desde las 10 de la mañana hasta las 2 de la tarde.

Básicamente vamos a ver cómo guardar la hora de entrada y salida, y dejar que el usuario ingrese solo si está en ese rango.

Te voy a mostrar un ejemplo de cómo guardar los datos en la base de datos y cómo comparar al momento de iniciar sesión. Te aviso desde ahora que el código será como un ejemplo para que tú puedas tomarlo y adaptarlo al tuyo.

(más…)

Ajustes del sistema - Impresora y acceso a través de la LAN

Software para control de eventos, aforo y boletería

En este post te mostraré otro sistema que he realizado recientemente. Se trata de un programa para llevar el control de eventos por tiempo, en donde se cobra por el tiempo que la persona ingresa al evento.

Esto está pensado para controlar el acceso a eventos como parques, piscinas, juegos, etcétera; ya que se registra el tiempo de entrada y de salida a partir de un número de pulsera.

Cuando la persona sale del evento se realiza el cobro del mismo y se imprime un ticket. Las características del software son:

  • Control de aforo: Indica cuántas personas están dentro del establecimiento o evento
  • Registro de datos con número de pulsera para tener un identificador
  • Posibilidad de acceder desde el teléfono o cualquier dispositivo para que una persona esté en la entrada y otra en la salida del evento a través de la LAN
  • Opción para anular los tickets
  • Reporte de ventas en donde se incluyen filtros por fecha y hora, así como un reporte que indica la cantidad de tickets vendidos o anulados.
  • Reporte de ticket con mayor costo y ticket con menor costo
  • Impresión de tickets en impresora térmica

Realmente este programa fue pensado para llevar el control de eventos a donde asisten niños acompañados con sus padres (en donde dependiendo del tiempo de la estancia, se realiza el cobro) pero se puede adaptar a cualquier circunstancia.

(más…)

Ejercicio resuelto de copias de exámenes en Python

Python – Detectando copia en exámenes (ejercicio resuelto)

Hoy vamos a resolver un ejercicio de programación en Python que trata sobre detectar copia en exámenes. Básicamente es trabajar con entrada y salida de datos así como con listas y las operaciones que estas conllevan.

El ejercicio está confuso (me parece que a propósito) ya que da información innecesaria, pero supongo que es parte de su complejidad.

Veamos cómo resolverlo en pocas líneas usando Python.

(más…)

Solución a comportamiento raro de Scanner en Java

Java – Problemas con Scanner: no hace pausa

Hoy vamos a ver un problema y su solución de Java en cuanto al uso del Scanner. Obviamente si leímos la documentación probablemente no tengamos este problema, pero si no, en algún momento de la vida nos vamos a encontrar con él.

Al usar Scanner podemos solicitar datos de entrada y leerlos con nextInt, nextLine, etcétera. Pero en ocasiones al solicitar datos el Scanner no hace una pausa, es decir, no espera a que el usuario introduzca datos.

Esto no pasa siempre, y tampoco pasa de manera aleatoria; en este post te demostraré el problema y te explicaré la solución.

(más…)

Dashboard de sistema para estacionamientos - Mostrar gráficas y total de pagos

Sistema para estacionamientos gratuito

En este post te voy a mostrar un programa que acabo de crear (totalmente original) que sirve para el control de estacionamiento o parqueadero.

Básicamente es un software gratuito que sirve para llevar el registro en un parqueadero. Este sistema es gratuito, por lo que puedes usarlo sin ningún costo, además de explorar su código fuente.

Las características generales son:

  • Registro de vehículo, ya sea motocicleta, auto, camionetas, etcétera.
  • Registro de fecha y hora de entrada
  • Cálculo del tiempo que el vehículo pasó estacionado
  • Ajuste de costo por hora con redondeo y tolerancia
  • Reporte de vehículos con tiempo de estancia y ganancia
  • Escritorio con reporte general y gráficas
  • Soporte de impresión de ticket de entrada para comprobante de ingreso y comprobante de pago en impresora térmica

A lo largo de este post te mostraré los detalles del software así como las instrucciones de descarga y la ubicación del código fuente.

Nota: en las capturas de pantalla probablemente verás datos aleatorios o incoherentes, pues los he generado aleatoriamente así que no esperes que tengan sentido, solo son de relleno para mostrarte los módulos.

(más…)

Redireccionar salida a archivo

Enviar contenido de archivo a programa y automatizar pruebas

En este post de programación te enseñaré a automatizar pruebas cuando solicitamos datos por teclado, sin importar el lenguaje de programación.

Cuando escribimos programas en donde se solicitan datos al usuario a través del teclado y probamos esos programas, debemos escribir los valores manualmente.

Si modificamos el programa o hay un error, lo volvemos a ejecutar y a llenar esos valores. Esto se hace tedioso cada vez, pues invertimos más tiempo probando que arreglando los errores o agregando mejoras.

Obviamente me estoy refiriendo a los programas por consola y en cuanto a “automatizar” me refiero a usar un archivo de texto con valores para pasarlos al programa en lugar de escribirlos manualmente.

Veamos entonces cómo automatizar la entrada de datos en programas. Te enseñaré un ejemplo con C y otro con Python, aunque este paradigma funcionará para cualquier otro lenguaje.

(más…)

Leer datos de entrada del usuario con Go

Introducción En la mayoría de programas por consola, necesitamos que el usuario introduzca datos. Ya sea para pedirle información o para hacer que seleccione determinada acción. Hoy veremos cómo leer datos por consola en el maravilloso lenguaje de programación Go. Leer entrada del teclado Para esto necesitamos crear un reader, Leer más…