Supermercado ETSIDI - aigora/twE105-christian-andres-miguel GitHub Wiki

SUPERMERCADO


Objetivos:

  • El objetivo principal ha sido crear un programa que 'imite' una aplicación informática de un supermercado, donde el usuario va eligiendo entre los artículos disponibles, y cuando haya terminado, se muestre en pantalla una 'factura' en la que aparece el total a pagar, los artículos que ha elegido, la cantidad seleccionada de cada uno de ellos, etc

Funcionalidades:

  • Nuestro supermercado virtual consta de 4 secciones en las que están ordenadas los artículos disponibles.

  • El usuario entrará en la sección que quiera para ir 'añadiendo productos a la cesta'.
  • Una vez haya acabado de elegir artículos se le pregunta si tiene o no una tarjeta en la que acumular puntos. Si ya tiene, introduce su nombre y contraseña, si no, puede crearse una nueva.
  • Además, los usuarios tienen disponible el uso de un parking, gratuito si solo se tarda hasta cierto límite de tiempo.

Guía de uso:

Durante el programa, el usuario deberá ir respondiendo a las preguntas que se le vayan haciendo. Para ello solo tiene que marcar la tecla indicada entre paréntesis que tiene cada opción.

  • Al iniciar el programa, se pregunta si se quiere comprar, o si se quieren canjear los puntos en la tienda de regalos.
  • Si es la primera vez que usa el programa, indique la opción comprar, y así accederá a las listas de artículos.(Pulsar letra 'c' y darle a enter.)
    Una vez hecho esto, deberá elegir una de las secciones indicadas, y seguidamente el artículo deseado.
  • Justo después de elegir artículo, debe poner la cantidad de productos iguales que necesitas. Si solo quiere comprar uno, pulse 1. Los productos elegidos se añaden a su cesta.
  • Si quiere seguir comprando responda con una n a la siguiente pregunta y volverá a repetir el proceso. Una vez tenga todo, responda 's' a esa pregunta.
  • Luego responda si ha usado o no parking.
  • Introduce tu nombre y contraseña de tarjeta de puntos si ya la tienes, o créate una si aun no la tienes. Los puntos acumulados por esta compra se añadirán automáticamente a tu tarjeta.
  • A continuación se le mostrará la factura final, con los artículos escogidos y el total a pagar. Introduzca el dinero con los números del teclado y se le dará el correspondiente cambio.
  • ¿Cómo canjear los puntos?

    • Muy sencillo, en la pregunta inicial solo tiene que indicar la letra 'p', (de puntos) y se le llevará a la tienda de regalos.
    • Debe identificarse con el nombre de usuario y contraseña, y después elegir el regalo que quiera (siempre que disponga de puntos suficientes).

Código:

Funciones:

En 'libreria.c' estan situadas las funciones que seran utilizadas para realizar acciones varias.

  1. Función printLista , nos permite imprimir una lista de productos de cada sección, introduciendo el vector de estructura de la sección y la cantidad de articulos de esa sección.

  2. Función printRegalos, nos permitirá imprimir la lista de regalos, introduciendo el vector de estructura para los regalos y la cantidad de regalos.

  3. Función anadir_a_lista, es la que nos permite elegir un producto entre los que hay en la lista de cada sección, además, te pedirá una cantidad de este y se guardará en una estructura llamada productos como ListaCompra y cada vez que se compre un articulo el puntero que apunta a ListaCompra se ira moviendo para ir agregando mas artículos a la lista.

    Ademas el precio de la lista sera igual al precio del articulo por la cantidad de este.

  4. Función precioTotal, utilizada para calcular el precio de la compra, la cual suma el precio de todos los productos que haya en ListaCompra, ademas de sumar el parking y restar el descuento en caso de existir. Te pedira que pagues tu compra y te devolverá el cambio sobrante.

  1. Función puntos, usada para agregar puntos a los usuarios dependiendo del precio de su compra sin sumar parking ni restar descuento, los puntos dados irán también en función de el precio de la compra, se obtendrá mas puntos con compras superiores a 50 euros que con inferiores.

Ficheros:

  • Hemos usado un fichero de texto para cada sección, con el fin de tener en cada uno los datos de los productos disponibles y si fuese necesario cambiarlos(por ejemplo el precio) o añadir alguno nuevo, no tener que tocar el código.
  • El programa lee los artículos existentes en los bloc de notas y los pasa a un vector de estructuras, mientras una variable suma el numero de artículos en cada sección. ç

    Tras iniciar sesión se vuelve a escribir el fichero 'usuarios' sustituyendo los puntos antiguos por los nuevos y dejando lo demás igual. Al registrar un usuario se escribe ese usuario en el fichero 'usuarios' con su correspondiente nombre,contraseña y puntos. Al ir a canjear puntos e introducir usuario contraseña; y comprar un regalo con puntos se volverá a escribir en el fichero 'usuarios' modificándose los puntos de este usuario.