Está en la página 1de 33

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN FACULTAD DE CONTADURÍA PÚBLICA Y ADMINISTRACIÓN

PRODUCTO INTEGRADOR DE APRENDIZAJE

Introducción a la Programación
App de escritorio VSC y Python que permita interactuar con usuarios e
información para generar un flujo real de contenido, cuyo propósito sirva
para un caso práctico real.
Lic En Administración

Semestre: 3° Grupo: CG
Maestro: Walter Alejandro Araujo de Luna
Integrantes de equipo:
Camarillo Martinez Zaira Abigail 2011144
Enriquez Valdez David Israel 1995706
Hinojosa Montalvo Fernanda Itzamara 2017109
Moreno González Ashley Monserrat 2053561
Rodríguez Pérez Erika Valeria 1997053

Contenido Mínimo A Evaluar Cumplimiento


Índice ☐
Introducción. - incluye valores ☐
UANL aplicados
Análisis y emisión de juicio ☐
Conclusiones individuales ☐
Conclusión del equipo ☐
Actividad en inglés ☐
---------------------------------------------------------------------------------------------------
Calificación PIA Calificación final.

Firma:
Índice
Introducción………………………………………………………..………………………2
Abstract……………………………………………………………………………………..3
Estructura de Datos……………………………………………………………………….4
Sarze Spa……………………………………………………………………………...4
¿Por qué escogimos a Sarze Spa para nuestro proyecto?................................4
Entidades………………………………………………………………………………6
Entidad-Relación……………………………………………………………………...8
Interfaz gráfica en Python……………………………………………………………….12
Programa……………………………………………………………………………..12
Resultado…………………………………………………………………………………15
Conectividad entre la Base de Datos y la Interfaz Gráfica de Usuario…………….16
Programa………………………………………………………………………………….16
Conclusión Grupal……………………………………………………………………….25
Group Conclusión………………………………………………………………………..26
Conclusiones individuales………………………………………………………………27
Individual Conclusions…………………………………………………………………..29

1
Introducción

En este producto integrador de aprendizaje veremos los diferentes temas vistos en


clase, estos temas fueron llevados como evidencias en el semestre y en este PIA
juntaremos las distintas evidencias.

Uno de los temas que se verán es el proceso de la elaboración del algoritmo utilizado
para cada programa, como se ejecutan y como se obtiene la funcionalidad a los
resultados esperados.

En este PIA también se verá cómo pusimos en práctica los diferentes temas del
semestre con capturas de pantalla.

2
Abstract

In this integrative learning product we will see the different topics seen in class, these
topics were taken as evidence in the semester and in this PIA we will bring together the
different evidence.
One of the topics that will be seen is the process of developing the algorithm used for
each program, how they are executed and how the functionality is obtained with the
expected results.
This PIA will also show how we put the different topics of the semester into practice
with screenshots.

3
Estructura de datos
SARZE SPA

¿Por qué escogimos a Sarze Spa para nuestro proyecto?

Elegimos esta empresa ya que nos pareció muy interesante el hecho de


aprender un poco más sobre cómo se clasifican los clientes, los servicios, los
proveedores, los trabajadores, la cuenta bancaria y los materiales teniendo
como referencia el giro al que se dedica esta empresa, que es la salud y
belleza.

En primer , por la demanda creciente, la industria de los spas ha


experimentado un crecimiento constante debido a la creciente demanda de
bienestar y relajación, está en constante crecimiento todo el tiempo, lo que
proporciona estabilidad laboral y además es muy rentable, ya que los spas
suelen tener márgenes de beneficio saludables, por que ofrecen servicios
Premium que los clientes están dispuestos a pagar y en una visión a futuro se
podrían considerar las oportunidades de franquicias, muchos spas exitosos se
han expandido mediante la franquicia, lo que puede ser una forma de
crecimiento rentable y con una ubicación adecuada como un destino turístico o
una zona residencial próspera, puede ser clave para el éxito considerando
también las estrategias de marketing debido a que las estrategias de marketing
sólidas pueden atraer a una clientela constante y aumentar la visibilidad del
spa.
Un factor que también nos brinda mucha ayuda en un spa es la lealtad del
cliente, ya que los clientes de los spas tienden a ser leales, lo que lleva a
relaciones de mucho tiempo y a recomendaciones por parte del cliente, y
mantenerse al día con las últimas tendencias en tratamientos y terapias ayuda
mucho a mantener la relevancia de la empresa, pero para hacer esto es
necesario tener en cuenta que debemos de hacer mucho trabajo, por qué hay
varios servicios que se pueden ofrecer en un spa,

4
como masajes, tratamientos faciales y terapias de bienestar, lo que permite
llegar a un público diverso ya que además los spas se alinean con la creciente
conciencia de la importancia del bienestar y el autocuidado.

5
Entidades

● Servicios: Id
servicio
Tipo de servicio
Descripción
Id Material Id
Marca Precio
Cosmetóloga

● Cliente s: Id
Cliente
Nombre
Dirección CP
Teléfono Gmail
Id Servicio Fecha
de Alta
Cosmetóloga

● Materiales: Id
Material
Nombre de Material Id
Marca
Id Proveedor Cantidad
Disponible Cantidad
Utilizada Costo

● Trabajadores
Id Trabajador
Puesto
Nombre
Curp
RFC
Teléfono
Correo electrónico
Dirección
Id banco
Sueldo
Id cuenta

6
● Proveedores
Id Proveedor
Nombre
Teléfono
Correo Electrónico
Ubicación
Giro/rubro
Id Banco
Id Cuenta
RFC

● Cuentas bancarias
Id banco
Id cuenta
RFC
Tipo transacción
Monto
Fecha transacción

7
Entidad Relación.

Tablas de Entidades

8
9
10
11
Interfaz gráfica en Python
Programa:
Para comenzar con la interfaz gráfica elaborada en el programador SQL server,
primeramente pusimos el nombre que le dimos, el cual fue dirigido al negocio de
nuestro proyecto “Sarze Spa", así que lo pusimos en título, modificamos el
tamaño en un 800x1000 y el color lo cambiamos a Blue. Seguido de esto,
comenzamos con la primera entidad que es “Pacientes", donde modificamos el
Frame a FramePacientes, también lbl y self para ir añadiendo el titulo de los
objetos que utilizare en esa tabla. En todas acomodamos las coordenadas de
Row y Column.

12
Aquí prácticamente fue lo mismo, al final añadimos los botones de la tabla de
“Pacientes" y acomodamos las coordenadas de donde las queríamos poner, que
fueron row y column.

En esta se añadió la tabla número 2, donde nos basamos del primer frame para
hacerla, esta tabla fue “Servicios" y repetimos los mismos pasos que realizamos al
principio con la tabla de “Pacientes"

13
Por último, añadimos la tabla de “Proveedores" y cada uno de los objetos que
ocupamos en la interfaz, botones y acomodamos coordenadas.

14
Resultados:
Finalmente, le dimos Click en “ejecutar" y se formo nuestra interfaz con cada uno de
los datos y especificaciones que pusimos en nuestro lenguaje de programación.

15
Conectividad entre la Base de Datos y la Interfaz
Gráfica de Usuario
Programa:

Descripción del código:


Importación de módulos: from tkinter import ttk: Importa widgets mejorados de tkinter para
la interfaz gráfica.
from tkinter import *: Importa todos los widgets de tkinter. Conexión a
la base de datos:
Se intenta establecer una conexión a una base de datos de Microsoft Access utilizando
pyodbc.
16
La ruta de la base de datos se proporciona en la cadena de conexión
("Driver=Microsoft Access Driver (*.mdb, *.accdb);DBQ=...").
Función Borrar(self):
Intenta eliminar registros de la tabla de la base de datos.
Obtiene valores de la interfaz gráfica (puesto, nombre, curp) mediante
self.nombre_del_widget.get() (donde nombre_del_widget es el nombre del campo
en la interfaz).
Utiliza un bloque try-except para manejar errores potenciales durante la conexión
o la eliminación de registros.
Bloque try-except:
Intenta realizar la conexión y operaciones en la base de datos.
Si hay algún error durante la conexión o la eliminación de registros, se imprime un
mensaje de error genérico.
Sentencia SQL para eliminar registros:
Utiliza cursor.execute() con una sentencia SQL DELETE FROM nombre WHERE
curp = ?.
Falta el valor de curp en la sentencia SQL (?). Este valor debería proporcionarse
como un parámetro adicional en cursor.execute().

17
Propósito:
El código está destinado a interactuar con una base de datos de Microsoft Access
desde una interfaz gráfica creada con tkinter en Python. La función Borrar está
diseñada para eliminar registros de una tabla específica en la base de datos
utilizando los datos ingresados por el usuario en la interfaz gráfica.

Detalles del código:


Importaciones de módulos:
from tkinter import ttk e import pyodbc: Importa los módulos necesarios para
trabajar con interfaz gráfica y la base de datos de Access, respectivamente.
Función Borrar(self): Intenta establecer una conexión con la base de datos de
Access utilizando pyodbc.
Captura valores ingresados por el usuario desde la interfaz gráfica para su
posterior uso en la operación de eliminación.
Ejecuta una sentencia SQL DELETE para eliminar registros de la tabla
especificada en la base de datos, usando un valor específico del campo curp.
Guarda los cambios en la base de datos utilizando conn.commit() y cierra la
conexión con la base de datos.
Manejo de excepciones:
Usa un bloque try-except para manejar posibles errores que puedan ocurrir
durante la conexión a la base de datos, la ejecución de la sentencia SQL o
cualquier otra parte del código. Captura excepciones específicas (pyodbc.Error,
tkinter.TclError, Exception) para identificar y manejar diferentes tipos de errores.
18
Propósito:

El código busca conectar con una base de datos de Microsoft Access y ejecutar
una consulta (SELECT) para obtener registros de una tabla específica utilizando
valores ingresados por el usuario en una interfaz gráfica.

Detalles del código:


Establecer la conexión: Intenta establecer una conexión con la base de datos de Access
utilizando pyodbc. Utiliza la cadena de conexión especificada para la ruta del archivo de la
base de datos.
Función Consultar(self): Captura los valores ingresados por el usuario desde la
interfaz gráfica para usarlos en la consulta. Ejecuta una consulta SQL (SELECT
* FROM descripcion WHERE idmaterial =) para recuperar registros de la tabla
descripcion basándose en un criterio de búsqueda (idmaterial).
Recupera todas las filas que coinciden con la consulta utilizando q.fetchall().
Manejo de resultados:Itera a través de las filas recuperadas e imprime cada una
en la consola. Si no hay datos devueltos por la consulta, imprime un mensaje
indicando que no hay datos en la tabla.
Manejo de excepciones: Utiliza un bloque try-except para manejar posibles errores durante
la conexión a la base de datos, la ejecución de la consulta u otras partes del código.
Captura cualquier excepción general y muestra un mensaje indicando un error al

19
intentar conectar.

20
Propósito:
El código intenta conectarse a una base de datos de Access y realizar una
consulta para recuperar datos de la tabla descripcion basada en valores
ingresados por el usuario en una interfaz gráfica.

Detalles del código:


Establecer la conexión: Intenta establecer una conexión con la base de datos de
Access mediante pyodbc. Usa la cadena de conexión especificada para la ruta del
archivo de la base de datos.
Función Consultar(self): Captura los valores ingresados por el usuario desde la
interfaz gráfica (costo, cantidad_disponible) para usarlos en la consulta.
Ejecuta una consulta SQL (SELECT * FROM descripcion WHERE idmaterial =)
para recuperar registros de la tabla descripcion basados en un criterio de
búsqueda (idmaterial). Intenta recuperar todas las filas que coinciden con la
consulta utilizando q.fetchall().
Manejo de resultados: Itera a través de las filas recuperadas e imprime cada una
en la consola. Si no hay datos devueltos por la consulta, imprime un mensaje
indicando que no hay datos en la tabla.
Manejo de excepciones: Utiliza un bloque try-except para manejar posibles errores
durante la conexión a la base de datos, la ejecución de la consulta u otras partes
del código. Captura cualquier excepción general y muestra un mensaje indicando

21
un error al intentar conectar.

22
Propósito:
El código intenta establecer una conexión con una base de datos de Access y
ejecutar una consulta para obtener datos de la tabla descripcion basada en
valores ingresados por el usuario en la interfaz gráfica.

Detalles del código:


Establecer la conexión: Intenta establecer una conexión con la base de datos de
Access utilizando pyodbc. Utiliza la cadena de conexión especificada para la ruta
del archivo de la base de datos.
Función Consultar(self): Captura los valores ingresados por el usuario desde la
interfaz gráfica (tipo_transaccion, id_cuenta) para usarlos en la consulta.
Ejecuta una consulta SQL (SELECT * FROM descripcion WHERE idcuenta =) para
recuperar registros de la tabla descripcion basados en un criterio de búsqueda
(idcuenta). Intenta recuperar todas las filas que coinciden con la consulta utilizando
q.fetchall().
Manejo de resultados: Itera a través de las filas recuperadas e imprime cada una
en la consola.Si no hay datos devueltos por la consulta, imprime un mensaje
indicando que no hay datos en la tabla.
Manejo de excepciones: Utiliza un bloque try-except para manejar posibles errores
durante la conexión a la base de datos, la ejecución de la consulta u otras partes
del código.Captura cualquier excepción general y muestra un mensaje indicando
un error al intentar conectar.

23
Propósito:
La función Consultar tiene como objetivo conectarse a una base de datos de
Access y ejecutar una consulta para recuperar datos de la tabla descripcion
basada en un valor proporcionado por el usuario en la interfaz gráfica.

Detalles del código:


Establecer la conexión: Intenta establecer una conexión con la base de datos de
Access mediante pyodbc. Utiliza la cadena de conexión especificada para la ruta
del archivo de la base de datos.
Función Consultar(self): Captura los valores ingresados por el usuario desde la
interfaz gráfica (gmail, direccion) para utilizarlos en la consulta.
Ejecuta una consulta SQL (SELECT * FROM descripcion WHERE direccion =)
para recuperar registros de la tabla descripcion basados en un criterio de
búsqueda (direccion). Intenta recuperar todas las filas que coinciden con la
consulta utilizando q.fetchall().
Manejo de resultados: Itera a través de las filas recuperadas e imprime cada una
en la consola. Si no hay datos devueltos por la consulta, imprime un mensaje
indicando que no hay datos en la tabla.
Manejo de excepciones: Utiliza un bloque try-except para manejar posibles errores durante
la conexión a la base de datos, la ejecución de la consulta u otras partes del código.
Captura cualquier excepción general y muestra un mensaje indicando un error al
intentar conectar.

24
Propósito:
La clase ENTIDADES1 está destinada a crear una interfaz gráfica utilizando la
biblioteca Tkinter en Python. Esta interfaz permite interactuar con una base de
datos de Microsoft Access para realizar operaciones como registrar, consultar y
eliminar datos de la tabla descripción.
25
Detalles del código:
Inicialización: La clase ENTIDADES1 se inicializa con una ventana principal (root)
donde se creará la interfaz. Se configuran las características de la ventana, como
título, tamaño y color de fondo.
Variables globales: Se definen variables globales (StringVar) para los diferentes
campos que se utilizarán en la interfaz (id_cliente, puesto, nombre, curp, etc.).
Creación de la interfaz gráfica: Se crea una etiqueta de marco (LabelFrame) que
actúa como contenedor para los elementos de la interfaz.
Se agregan etiquetas (Label) y cuadros de entrada (Entry) para introducir valores
en la interfaz. Por ejemplo, campos como nombre y teléfono.
Se agregan botones (Button) para realizar acciones como registrar, consultar,
cancelar y borrar descripciones en la tabla descripción.
Asociación de funciones con botones: Los botones están vinculados a funciones
específicas (Registrar, Consultar, Borrar) mediante el uso de command=lambda:
....Estas funciones se espera que realicen operaciones relacionadas con la base
de datos, como insertar registros, consultar datos y eliminar registros.
Proceso de arranque: La aplicación inicia la ejecución del código dentro de if
_name_ == '_main_':.Se crea una instancia de la clase ENTIDADES1 y se inicia el
bucle principal (mainloop()) de Tkinter para mostrar la interfaz y permitir la
interacción con el usuario.

26
Conclusión:

De todo lo anterior, podemos concluir que gracias a cada tema visto y evidencias
realizadas, las cuales incluimos en este Producto Integrador de Aprendizaje fueron
el crear una base de datos, tomando en cuenta nuestro proyecto que fue un “SPA"
, generando nuestras clases incluidas por objetos, así como también creando una
relación dentro de la base de datos, después la creación de una interfaz gráfica
que es donde incluimos todo el lenguaje , tipo de datos, la forma de nuestra
interfaz. Como equipo realizamos un excelente trabajo en cada evidencia, a pesar
de que se nos complicó algunas partes, nos apoyamos para encontrar una
solución.

27
Group Conclusión:

From all of the above, we can conclude that thanks to each topic seen and
evidence made, which we included in this Integrative Learning Product, we created
a database, taking into account our project, which was a “SPA", generating our
classes included by objects, as well as creating a relationship within the database,
then creating a graphical interface which is where we include all the language, data
type, the form of our interface. As a team we do an excellent job in each evidence,
even though some parts were complicated for us, we supported each other to find
a solution.

28
Conclusiones individuales:

Camarillo Martinez Zaira Abigail 2011144

No hay duda de que Python se ha convertido en un programa popular en este


campo, especialmente entre los estudiantes. Al principio pensé que este tema era
imposible de entender, porque no había visto nada sobre estos temas, pero a
medida que fue avanzando el curso, aprendí mucho, como esta vez y, para
demostrarlo, hice algo diferente, comencé a entender. . Entiendo la lógica que
puede existir al escribir código u otras cosas relacionadas. Espero seguir
aprendiendo a través de este programa porque me resulta interesante y útil para el
trabajo que se realiza en PIA, que se enfoca en los negocios y los temas vistos en
el aula.

Enriquez Valdez David Israel 1995706

Para concluir este trabajo, puedo decir que gracias a él pude comprender y
aprender un poco más acerca de lo que es la programación, y personalmente me
ayudó mucho a entender más la materia, gracias a mi equipo pudimos realizar
este pia, ya que de manera muy colaborativa nos organizamos siempre muy bien y
me quedo con un buen recuerdo de esta materia.

Hinojosa Montalvo Fernanda Itzamara 2017109

En conclusión puedo decir que en este PIA pusimos en práctica todo lo que vimos
en este semestre de programas en Python y SQL y como para manejarlos.
Nuestro maestro nos dijo que eligiéramos una empresa y gracias a eso teníamos
que hacer una página para nuestra empresa o negocio. También en este semestre
es una de las materias que trabajamos más en equipo porque todas las evidencias
las trabajamos juntos.

Todos los temas que aplicamos en este proyecto fueron basados para seguir
conociendo poco a poco sobre el tema de programación que en un futuro
podríamos aplicar para otro tipo de proyectos en el campo laboral.

29
Moreno González Ashley Monserrat 2053561

A lo largo de todo el semestre pude conocer y utilizar herramientas que aprendí a


usarlas para crear una base de datos, asi mismo, conocer lo que es una interfaz
gráfica y cada uno de sus elementos que la componen, para mi todas las
evidencias que realizamos fue todo un reto pues como equipo también tuvimos
que acoplarnos para trabajar en las evidencias complicadas.

Rodríguez Pérez Erika Valeria 1997053

En conclusión este PIA fue de mucha ayuda para poner el práctica todos lo temas
visto durante todo el semestre, aparte de todos los temas que aprendimos también
aprendí mucho del trabajo en equipo, ya que todos supimos apoyarnos tanto en
este trabajo como en las evidencias anteriores.

30
Individual Conclusions

Camarillo Martinez Zaira Abigail 2011144

There is no doubt that Python has become a popular program in this field,
especially among students. At first I thought that this topic was impossible to
understand, because I had not seen anything about these topics, but as the course
progressed, I learned a lot, like this time and, to prove it, I did something different, I
began to understand. . I understand the logic that can exist when writing code or
other related things. I hope to continue learning through this program because I
find it interesting and useful for the work done at PIA, which focuses on business
and topics seen in the classroom.

Enriquez Valdez David Israel 1995706

To conclude this work, I can say that thanks to it I was able to understand and learn
a little more about what programming is, and personally it helped me a lot to
understand the subject more, thanks to my team we were able to carry out this
project, since in a way Very collaborative, we always organize ourselves very well
and I am left with good memories of this subject.

Hinojosa Montalvo Fernanda Itzamara 2017109

In conclusion I can say that in this PIA we put into practice everything we saw in
this semester about Python and SQL programs and how to handle them. Our
teacher told us to choose a company and thanks to that we had to make a page for
our company or business. Also in this semester it is one of the subjects in which we
work more as a team because we work on all the evidence together.

All the topics that we applied in this project were based on continuing to learn little
by little about the topic of programming that in the future we could apply to other
types of projects in the work field.

31
Moreno González Ashley Monserrat 2053561

Throughout the entire semester I was able to know and use tools that I learned to
use to create a database, likewise, know what a graphical interface is and each of
its elements that make it up, for me all the evidence that we make It was quite a
challenge because as a team we also had to adapt to work on complicated
evidence.

Rodríguez Pérez Erika Valeria 1997053

In conclusion, this PIA was very helpful to put into practice all the topics covered
throughout the semester. Apart from all the topics we learned, I also learned a lot
about teamwork, since we all knew how to support each other both in this work and
in the previous evidence.

32

También podría gustarte