Académique Documents
Professionnel Documents
Culture Documents
NACIONAL
Unidad Profesional Interdisciplinaria en Ingeniera y
Tecnologas Avanzadas.
PROYECTO:
Dise
no e Implementaci
on de una M
aquina
Expendedora Virtual.
EQUIPO 11:
Arteaga Gaona Guillermo.
Devars Caballero Enrique.
Rangel Acosta Jessica Esmeralda.
Programacion Estructurada.
Profra. Maricela Serrano Fragoso.
Indice
1. Objetivos.
1.1. Objetivo General. . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Objetivo Especfico. . . . . . . . . . . . . . . . . . . . . . . .
2
2
2
2. Introducci
on.
3. Situaci
on actual.
4. Justificaci
on.
5. Investigaci
on y Desarrollo.
5.1. M
aquinas Expendedoras. . . . . . . . . . . . .
5.1.1. Tipos de Maquinas Expendedoras. . .
5.1.2. Ventajas y Desventajas. . . . . . . . .
5.2. Bases de Datos. . . . . . . . . . . . . . . . . .
5.2.1. Caractersticas de una Base de Datos.
5.2.2. Ventajas en el uso de Bases de Datos.
5.2.3. Microsoft SQL Server. . . . . . . . . .
5.3. Lenguaje de programacion C Sharp. . . . . .
5.3.1. Clases y Objetos en C Sharp. . . . . .
5.3.2. Metodos en C Sharp. . . . . . . . . . .
5.3.3. Microsoft Visual Studio. . . . . . . . .
5.4. C
odigo Fuente en C Sharp. . . . . . . . . . .
5.4.1. pantalla-logeo.cs . . . . . . . . . . . .
5.4.2. pantalla-menu.cs . . . . . . . . . . . .
5.4.3. Pantalla-comprar.cs . . . . . . . . . .
5.5. Procesos. . . . . . . . . . . . . . . . . . . . .
5.5.1. consultar-papas.sql . . . . . . . . . . .
5.5.2. INGRESAR.sql . . . . . . . . . . . . .
5.5.3. ACTUALIZAR-PAPAS.sql . . . . . .
5.6. Capturas de Pantalla. . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
4
4
5
5
5
7
8
8
9
10
12
12
14
15
18
18
18
19
20
6. Conclusiones.
22
6.1. Conclusiones Personales. . . . . . . . . . . . . . . . . . . . . . 22
7. Trabajos Futuros.
23
8. Bibliografa.
24
1.
1.1.
Objetivos.
Objetivo General.
1.2.
Objetivo Especfico.
Dise
no e implementaci
on de una maquina expendedora virtual a base de
creditos electr
onicos programada en C# .
2.
Introducci
on.
3.
Situaci
on actual.
A pesar de la desconfianza que senta la poblacion hacia las compras online, es evidente que su uso se ha ido incrementando debido a lo sencillo que
es comprar y que en algunos sitios las transacciones que se realizan entre el
cliente y vendedor pueden facilitarse mediante monedas virtuales, tales como BitCoin (el medio principal de intercambio online), LEOcoin, litecoins y
peercoin, las cuales, por estar realizadas en un medio electronico, le brindan
al usuario mayor privacidad y flexibilidad entre movimientos monetarios.
Nuestro prop
osito en este proyecto sera adecuar una maquina expendedora
al mundo virtual, ofreciendo varios tipos de productos, los cuales podran
ser comprados y posteriormente descontados de los creditos monetarios del
cliente. En caso de que este no cuente con la cantidad suficiente, se descontar
an en cuanto se le deposite dinero en movimientos posteriores.
4.
Justificaci
on.
5.
Investigaci
on y Desarrollo.
5.1.
M
aquinas Expendedoras.
La m
aquina expendedora es una maquina que proporciona aperitivos,
bebidas, golosinas y otros productos a los consumidores. Se trata de vender
sin la presencia de un dependiente para cobrar los artculos. Periodicamente
un empleado repone el producto y recoge el dinero en forma de monedas o,
menos habitualmente, billetes; a veces tambien se puede pagar con tarjeta
monedero, tarjeta de credito o telefono m
ovil.
Las posibilidades de las maquinas expendedoras son amplias. Normalmente suelen vender refrescos, cafe, comida, chucheras, etc. Pero tambien
existen modelos dise
nados para vender prensa, libros, sellos de correos, billetes del transporte p
ublico, bebidas alcoholicas, cigarrillos de tabaco, tambien
son frecuentes, en las oficinas que atienden al p
ublico, las maquinas expendedoras de un impreso peque
no con el n
umero de turno del solicitante.
5.1.1.
Tipos de M
aquinas Expendedoras.
Mec
anicas. Aquellas en que todo su funcionamiento es mecanico, sin
intervenci
on de ning
un mecanismo electrico o electronico. Son maquinas sencillas, pr
acticamente en desuso por las limitaciones que presentan.
Electr
onicas. Cuentan con componentes electronicos para su funcionamiento y necesitan de energa electrica.
5.1.2.
Ventajas y Desventajas.
5.2.
Bases de Datos.
Se define una base de datos como una serie de datos organizados y relacionados entre s, los cuales son recolectados y explotados por los sistemas
de informaci
on de una empresa o negocio en particular.
5.2.1.
5.3.
Lenguaje de programaci
on C Sharp.
A continuaci
on se presentan algunas especificaciones de C# con respecto
a la programaci
on orientada a objetos:
M
etodos en C Sharp.
Todo metodo debe ser parte de una clase, no existen metodos globales
(funciones).
ASP.NET MVC, Django, etc., a lo cual sumarle las nuevas capacidades online bajo Windows Azure en forma del editor Monaco.
Visual Studio permite a los desarrolladores crear sitios y aplicaciones
web, as como servicios web en cualquier entorno que soporte la plataforma
.NET (a partir de la versi
on .NET 2002). As se pueden crear aplicaciones
que se comuniquen entre estaciones de trabajo, paginas web, dispositivos
m
oviles, dispositivos embebidos, consolas, etc. Se utilizara esta IDE para
desarrollar el software.
11
5.4.
C
odigo Fuente en C Sharp.
A continuaci
on se muestran los codigos fuente en C# de cada una de las
clases realizadas para implementar la maquina expendedora virtual.
5.4.1.
using
using
using
using
using
using
using
using
using
using
pantalla-logeo.cs
System ;
System . C o l l e c t i o n s . G e n e r i c ;
System . ComponentModel ;
System . Data ;
System . Drawing ;
System . Linq ;
System . Text ;
System . Threading . Tasks ;
System . Windows . Forms ;
System . Data . S q l C l i e n t ;
namespace M a q u i n a e x p e n d e d o r a a c r e d i t o
{
public p a r t i a l c l a s s f r m I n i c i o : Form
{
public f r m I n i c i o ( )
{
InitializeComponent () ;
}
S q l C o n n e c t i o n Conexion = n u l l ;
SqlCommand Comando ;
SqlDataReader Dr ;
s t r i n g Str ;
int F i l a s ;
12
13
5.4.2.
using
using
using
using
using
using
using
using
using
pantalla-menu.cs
System ;
System . C o l l e c t i o n s . G e n e r i c ;
System . ComponentModel ;
System . Data ;
System . Drawing ;
System . Linq ;
System . Text ;
System . Threading . Tasks ;
System . Windows . Forms ;
namespace M a q u i n a e x p e n d e d o r a a c r e d i t o {
public p a r t i a l c l a s s frmMENU : Form {
public frmMENU( ) {
InitializeComponent () ;
}
private void frmMaquina Load ( o b j e c t s e n d e r , EventArgs e )
{
}
private void frmMaquina FormClosing ( o b j e c t s e n d e r ,
FormClosingEventArgs e ) {
Application . Exit ( ) ;
}
private void b t n C e r r a r C l i c k ( o b j e c t s e n d e r , EventArgs e )
{
f r m I n i c i o MOST = new f r m I n i c i o ( ) ;
MOST. Show ( ) ;
t h i s . Hide ( ) ;
}
private void b u t t o n 2 C l i c k ( o b j e c t s e n d e r , EventArgs e ) {
f r m R e f r e s c o s m o s t r a r = new f r m R e f r e s c o s ( ) ;
m o s t r a r . Show ( ) ;
}
private void b u t t o n 1 C l i c k ( o b j e c t s e n d e r , EventArgs e ) {
frmPapas m o s t r a r = new frmPapas ( ) ;
m o s t r a r . Show ( ) ;
}
}
}
14
5.4.3.
using
using
using
using
using
using
using
using
using
using
Pantalla-comprar.cs
System ;
System . C o l l e c t i o n s . G e n e r i c ;
System . ComponentModel ;
System . Data ;
System . Drawing ;
System . Linq ;
System . Text ;
System . Threading . Tasks ;
System . Windows . Forms ;
System . Data . S q l C l i e n t ;
namespace M a q u i n a e x p e n d e d o r a a c r e d i t o
{
public p a r t i a l c l a s s f r m S a b r i t a s : Form
{
public f r m S a b r i t a s ( )
{
InitializeComponent () ;
}
S q l C o n n e c t i o n Conexion = n u l l ;
SqlCommand Comando ;
SqlDataReader Dr ;
s t r i n g Str ;
SqlTransaction Transaccion = n u l l ;
int Valor Retornado = 0 ;
bool s u c c e s s = f a l s e ;
public void a c t u a l i z a r ( ) {
try
{
S t r = URL. S t r ;
Conexion = new S q l C o n n e c t i o n ( ) ;
Conexion . C o n n e c t i o n S t r i n g = S t r ;
Comando = new SqlCommand ( spCONSULTAR , Conexion
);
Comando . CommandType = CommandType .
StoredProcedure ;
Comando . Parameters . C l e a r ( ) ;
Comando . Parameters . AddWithValue ( @ID , 2 0 0 1 ) ;
Conexion . Open ( ) ;
Dr = Comando . ExecuteReader ( ) ;
i f ( Dr . Read ( ) == true )
{
15
16
17
5.5.
5.5.1.
Procesos.
consultar-papas.sql
create p r o c e d u r e spCONSULTAR
(
@ID i n t
)
as
begin
b e g i n transaction
5.5.2.
INGRESAR.sql
create p r o c e d u r e spINGRESAR
(
@ID varchar ( 5 0 ) ,
int ,
@CONTRASENA
@VALOR i n t output
)
as
begin
b e g i n transaction
SELECT FROM Empleados WHERE i d u s u a r i o=@ID AND
contrasen
a=@CONTRASENA
end
18
5.5.3.
ACTUALIZAR-PAPAS.sql
19
5.6.
Capturas de Pantalla.
20
21
6.
6.1.
Conclusiones.
Conclusiones Personales.
Guillermo: Este proyecto ha sido una gran oportunidad para aplicar
los conceptos aprendidos durante el curso a lo largo de este semestre.
Mis compa
neros como yo tomamos la decision de crear un software funcional y pr
actico que pueda ser utilizado en la vida cotidiana.
Adem
as de ser un gran reto, nos hemos familiarizado con la filosofa
y los conceptos de la programacion en general, puesto que hemos sido
capaces de trabajar con un lenguaje de programacion distinto al que
vimos en el curso, me refiero a C#. A pesar de las claras diferencias
entre la sintaxis y el paradigma utilizado por cada lenguaje, los principios b
asicos son los mismos, y por supuesto, las tecnicas para resolver
problemas tambien lo son.
Jessica: Esta pr
actica fue particularmente difcil de realizar, tomando
en cuenta que no posea ning
un conocimiento sobre C# y Visual Basic
creo que el aprendizaje adquirido es notable. A pesar de ser inexperta
con el programa, realizar la parte de dise
no me resulto sencilla debido
a que este es bastante amigable con el usuario y no requiere ser tan
exacto como lo es utilizando el lenguaje C.
Enrique: La realizacion de este trabajo fue algo laboriosa por la cuesti
on del manejo de la base de datos y la interfaz del usuario, pero
finalmente pudimos enlazarlas a traves de procedimientos almacenados con el fin de proteger y asegurar los datos de los usuarios. La
elaboraci
on fue en C# el cual es un lenguaje basado en C y C++,
decidimos hacerlo con C# pues el manejo de la interfaz grafica es muy
sencillo de dise
nar, pero tambien contiene elementos fundamentos de
programaci
on estructurada ya que la realizacion de un enlace al procedimiento almacenado es muy similar al codigo de la lectura de un
FILE.
22
7.
Trabajos Futuros.
Guillermo: Espero que en un futuro cercano, logremos aplicar los
conocimientos y experiencias adquiridas en el ambito de la programaci
on para extender el alcance de nuestros proyectos, ser capaces
de combinar aptitudes multidisciplinarias para dise
nar e implementar
dispositivos que puedan ser utilizados en alg
un area en particular.
Jessica: Adem
as de la implementacion del codigo para lograr el proposito de la m
aquina expendedora, se debe realizar el circuito en fsico, el
cual, a pesar de presentar cierto grado de dificultad es indispensable
para que la experiencia de recibir los productos este completa. Podemos usar en conjunto Visual Basic y Arduino, la primera para generar
una interface amable con el usuario para escoger sus productos y pagarlo con sus creditos y el segundo para asegurar de que los reciba.
Enrique: Este programa al ser desarrollado en Visual Studio con las
u
ltimas actualizaciones de Frameworks, podemos asegurar que su funcionamiento se podr
a realizar exitosamente a lo largo de muchos a
nos,
pues el mismo sistema nos da la opcion de diferentes compatibilidades
de las versiones de los sistemas operativos.
23
8.
Bibliografa.
Referencias
[1] http://www.maestrosdelweb.com/que-son-las-bases-de-datos/
[2] http://www.e-mas.co.cl/categorias/informatica/dinvirt.htm
[3] http://unimooc.com/monedas-virtuales-que-es-bitcoin/
[4] https://es.wikipedia.org/wiki/Microsoft Visual Studio
[5] https://es.wikipedia.org/wiki/C Sharp
24