Challenge “Shopping Cart” on C

Cristian Sotomayor
5 min readDec 3, 2017

--

En este post hablare acerca de como escribi el codigo del shopping cart , ademas de enlistar algunas de las fuentes que use para realizar este desafio.

Bueno empecemos, yo empece creando un bucle para hacer el menu principal

En este menu presentaria las opciones y pediria al cliente en que opcion querria entrar.

Esto lo hice con la sentencia switch para que se ejecuten ciertas partes del codigo dependiento de cada sentencia (cabe mencionar que se podia hacer con if pero me parece que el switch para estos casos da mas orden).

E incluso anide las sentencias switch para hacer submenus

Ahora una vez creada la base o recorrido que podria seguir el cliente, pase a crear las funcionalidades .

Por ejemplo cree la estructura para depositar los productos en la lista

Despues me di cuenta que necesitaria otra estructura para los productos que depositaria en la boleta

Y para que las estructuras ? para guardar los datos de manera mas ordenada y optima , com uo una especie de plantilla donde me seria mas facil guardar los datos y llamarlos sin tener que redeclarar las variables.

Luego de ya tener la ruta del usuario y donde guardar su informacion pase a crear un sistema que lo hiciera de la manera mas optima que se me ocurrio.

Para la primera opcion:

Tenia que hacer dos cosas en especfico.

Agregar productos y ver los productos que se tienen.

Aqui se puede ver como se agregan los productos.

Un dato interesante seria porque puse la variable iterProducts ?? y la razon es para que por cada producto agregado este se cuente y tenga una indice para poder llamarlo de una manera mas optima con un bucle. Por eso puse que se aumentara de uno en uno por cada producto agregado.

Luego tuve que hacer que se puedan ver los productos que ya tenemos agregados

Aqui se puede notar la utilidad de haber usado la variable iterProducts porque ahora nos permite iterar exactamente en el numero de productos que tenemos puespor cada prodcuto esta variable se le aumento una unidad.

Ahora para la segunda opcion del menu principal :

Lo que necesitaba era poder pasar los prodcutos de la lista a poder ser agregados en la factura. Como pasar los elementos a una lista intermedia.

Y como haremos esto ? con la segunda estructura ProductoBoleta

Para que sea mas interactivo y util puse una lista de los producto actuales con su respectivo indice.

Luego pido que me de el indice del producto que quiere comprar, con su respectiva confirmacion pues cabe la posibilidad que el ususario se equivoque

Otro dato curioso C a diferencia de python u otro lenguaje interpretado ncesita un manejo especial para los strings necesita que usemos funciones tales como strcmp o strcpy (string compare o string copy) para manipular estas listas pues si igualas una string con otra como le harias con un numero el compialdor te dira que el un error.

ejm

string cadena[20];

cadena = “hola”;

esto te botaria un error

si quisieramos depositar el “hola” en nuestra variable deberiamos usar la funcion

strcpy(cadena,”hola”);

Luego de hacer esto pasariamos a implementar la tercera opcion del menu principal

Que es pasar los productos de la lista intermedia hacia nuestra factura (la cual es un fichero)

Asi que tuve qeu crear un fichero y decirle que agregue los proudcto que el usuario selecciona.

Y tambien habilitar que pueda ver los productos que tiene en la lista.

Y asi es como hice esta desafio, aqui esta mi resumen.

Unas cuantas cositas interesantes que use para mi codigo que descubri mientras lo hacia son estas :

  • Para limpiar la pantalla use una funcion de C que nos permite ingresar a la terminal y limpiar esta misma -> system(“pause”). Esta funcion de C nos ayuda a enviar todo lo escrito dentro de system(“<argumentos>”), menciono esto porque volveremos a utilizar esta funcion mas tarde.
  • Para que nuestro programa funcione donde sea necesitamos saber la direccion del archivo en donde estamos para poder crear el fichero y luego llamarlo. Y para esto usamos otra vez el system() porque desde la terminal cuando escribimos pwd nos devuelve el lugar en donde el archivo .c se encuentra y apartir de eso crearlo.

Para mas informacion acerca del codigo visiten mi git

https://github.com/pystudent1913/FedoraPeruRumbo-GSoC/blob/master/Clase_02/tareaShoppingCart/Tarea.c

Para dar una pequeña referencia de donde investigue acerca de este lenguaje :

Y use los libros de :

deitel y deitel

A. M. Vozmediano (aprende a programar en c de 0 a 99 )

--

--