6/20/2024

Código Practica 5

 using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using static CalculoSalario.Empleado;

using static CalculoSalario.Salario;


namespace CalculoSalario

{

    public partial class Form1 : Form

    {

        // Declarar las instancias como variables de clase

        private Empleado miEmpleado;

        private Salario miSalario;


        public Form1()

        {

            InitializeComponent();

            // Inicializar las instancias aquí

            miEmpleado = new Empleado(); //instancia de la clase Empleado

            miSalario = new Salario(); //objeto de la clase Salario

        }


        private void Form1_Load(object sender, EventArgs e)

        {

            // Las instancias ya están inicializadas en el constructor

        }


        private void btnsalir_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }


        private void btnguardar_Click(object sender, EventArgs e)

        {

            /*los valores obtenidos en los textbox son pasados a los atributos por medio de sus

           propiedades, note que mandamos a llamar a través de los objetos creados*/

            miEmpleado.Nombre = txtnombre.Text;

            miEmpleado.Identificacion = txtidentificacion.Text;

            miEmpleado.SalarioDiario = Convert.ToDecimal(txtdiario.Text);

            miSalario.DiasLaborados = int.Parse(txtdias.Text);

            MessageBox.Show("Datos ingresados con éxito");

        }


        private void btncalcular_Click(object sender, EventArgs e)

        {

            /*Enviaremos el valor de salario calculado al textbox respectivo, como es un dato

            numérico debemos convertirlo a texto, el cálculo lo hace el método de la clase salario*/

            txtsalario.Text = Convert.ToString(miSalario.CalcularSalario(miSalario.DiasLaborados,

            miEmpleado.SalarioDiario));

        }


        private void btnnuevo_Click(object sender, EventArgs e)

        {

            //limpiando todo para ingresar nuevos datos

            txtnombre.Clear();

            txtidentificacion.Clear();

            txtdias.Clear();

            txtdiario.Clear();

            txtsalario.Clear();

            txtnombre.Focus(); //regresa el cursor al textbox del nombre

        }

    }

}




CLASE 

EMPLEADO

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CalculoSalario
{
    public class Empleado //publica para que pueda ser usada en cualquier instancia del proyecto
    {
        private string nombre; //primer atributo
        public string Nombre //propiedad asociada al atributo nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        private string identificacion; //segundo atributo
        public string Identificacion //propiedad asociada al atributo identificacion
        {
            get { return identificacion; }
            set { identificacion = value; }
        }
        private decimal salarioDiario; //tercer atributo
        public decimal SalarioDiario //propiedad asociada al atributo salarioDiario
        {
            get { return salarioDiario; }
            set { salarioDiario = value; }
        }
    }
}


CLASE 
SALARIO


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CalculoSalario
{
    public class Salario //publica para que pueda ser usada en cualquier instancia del proyecto
    {
        private int diasLaborados; //atributo
        public int DiasLaborados //propiedad del atributo
        { get; set; }
        //método para calcular salario
        public decimal CalcularSalario(int diaslab, decimal valordia)
        {
            decimal totalsalario = diaslab * valordia;
            return totalsalario;
        }
    }
}



EJEMPLO 2:

Realizaremos un ejercicio para llevar una agenda de contactos.
1. Crearemos un nuevo proyecto de Windows Form, el nombre es AgendaPersonas. El
formulario lucirá como el de la imagen.


Form1

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace AgendaPersonas
{
    public partial class Form1 : Form
    {
        private List<Contacto> contactos;

        public Form1()
        {
            InitializeComponent();
            this.Load += new System.EventHandler(this.Form1_Load);
            this.dgvcontactos.DoubleClick += new System.EventHandler(this.dgvcontactos_DoubleClick);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Inicializar la lista de contactos
            contactos = new List<Contacto>();

            // Asignar la lista de contactos como fuente de datos del DataGridView
            dgvcontactos.DataSource = contactos;
        }

        private void btnguardar_Click(object sender, EventArgs e)
        {
            
                // Crear un nuevo contacto y agregarlo a la lista
                Contacto nuevoContacto = new Contacto
                {
                    Nombre = textBoxNombre.Text,
                    Apellido = textBoxApellido.Text,
                    Telefono = textBoxTelefono.Text,
                    Correo = textBoxcorreo.Text
                };

                // Verificar que todos los campos están llenos
                if (string.IsNullOrWhiteSpace(nuevoContacto.Nombre) ||
                    string.IsNullOrWhiteSpace(nuevoContacto.Apellido) ||
                    string.IsNullOrWhiteSpace(nuevoContacto.Telefono) ||
                    string.IsNullOrWhiteSpace(nuevoContacto.Correo))
                {
                    MessageBox.Show("Por favor, complete todos los campos.");
                    return;
                }

                contactos.Add(nuevoContacto);

                // Actualizar el DataGridView
                dgvcontactos.DataSource = null;
                dgvcontactos.DataSource = contactos;

                // Limpiar los campos de texto
                limpiar();
            

        }

        private void btneliminar_Click(object sender, EventArgs e)
        {
            // Verificar si hay filas seleccionadas
            if (dgvcontactos.SelectedRows.Count > 0)
            {
                // Obtener la fila seleccionada
                DataGridViewRow selectedRow = dgvcontactos.SelectedRows[0];
                Contacto contactoSeleccionado = selectedRow.DataBoundItem as Contacto;

                // Eliminar el contacto de la lista
                contactos.Remove(contactoSeleccionado);

                // Actualizar el DataGridView
                dgvcontactos.DataSource = null;
                dgvcontactos.DataSource = contactos;
            }
            else
            {
                MessageBox.Show("No hay filas seleccionadas para eliminar.");
            }
        }

        public void limpiar()
        {
            // Limpiar los campos de texto
            textBoxNombre.Text = string.Empty;
            textBoxApellido.Text = string.Empty;
            textBoxTelefono.Text = string.Empty;
            textBoxcorreo.Text = string.Empty;
        }

        private void dgvcontactos_DoubleClick(object sender, EventArgs e)
        {
            // Verificar si hay filas seleccionadas
            if (dgvcontactos.SelectedRows.Count > 0)
            {
                // Obtener la fila seleccionada
                DataGridViewRow selectedRow = dgvcontactos.SelectedRows[0];

                // Realizar las operaciones necesarias con la fila seleccionada
                string nombre = selectedRow.Cells["Nombre"].Value.ToString();
                string apellido = selectedRow.Cells["Apellido"].Value.ToString();
                string telefono = selectedRow.Cells["Telefono"].Value.ToString();
                string correo = selectedRow.Cells["Correo"].Value.ToString();

                // Mostrar los valores en los campos de texto
                textBoxNombre.Text = nombre;
                textBoxApellido.Text = apellido;
                textBoxTelefono.Text = telefono;
                textBoxcorreo.Text = correo;
            }
            else
            {
                MessageBox.Show("No hay filas seleccionadas.");
            }
        }

       
        
            private void Dgvcontactos_DoubleClick(object sender, EventArgs e)
            {
                // Verificar si hay filas seleccionadas
                if (dgvcontactos.SelectedRows.Count > 0)
                {
                    // Obtener la fila seleccionada
                    DataGridViewRow selectedRow = dgvcontactos.SelectedRows[0];

                    // Realizar las operaciones necesarias con la fila seleccionada
                    if (selectedRow != null)
                    {
                        string nombre = selectedRow.Cells["Nombre"].Value?.ToString() ?? string.Empty;
                        string apellido = selectedRow.Cells["Apellido"].Value?.ToString() ?? string.Empty;
                        string telefono = selectedRow.Cells["Telefono"].Value?.ToString() ?? string.Empty;
                        string correo = selectedRow.Cells["Correo"].Value?.ToString() ?? string.Empty;

                        // Mostrar los valores en los campos de texto
                        textBoxNombre.Text = nombre;
                        textBoxApellido.Text = apellido;
                        textBoxTelefono.Text = telefono;
                        textBoxcorreo.Text = correo;
                    }
                }
                else
                {
                    MessageBox.Show("No hay filas seleccionadas.");
                }
            }

        private void btnlimpiar_Click(object sender, EventArgs e)
        {
          
{
    // Verificar si hay filas seleccionadas
    if (dgvcontactos.SelectedRows.Count > 0)
    {
        // Obtener la fila seleccionada
        DataGridViewRow selectedRow = dgvcontactos.SelectedRows[0];
        if (selectedRow != null)
        {
            Contacto contactoSeleccionado = selectedRow.DataBoundItem as Contacto;

            // Eliminar el contacto de la lista
            if (contactoSeleccionado != null)
            {
                contactos.Remove(contactoSeleccionado);

                // Actualizar el DataGridView
                dgvcontactos.DataSource = null;
                dgvcontactos.DataSource = contactos;
            }
        }
    }
    else
    {
        MessageBox.Show("No hay filas seleccionadas para eliminar.");
    }
}

        }

        private void dgvcontactos_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
    }

    public class Contacto
    {
        public string Nombre { get; set; }
        public string Apellido { get; set; }
        public string Telefono { get; set; }
        public string Correo { get; set; }
    
}



Clase CONTACTO

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AgendaPersonas
{
    internal class Contactos
    {
         //atributos
 private string nombre;
        private string apellido;
        private string telefono;
        private string correo;
        //métodos
        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        public string Apellido
        {
            get { return apellido; }
            set { apellido = value; }
        }
        public string Telefono
        {
            get { return telefono; }
            set { telefono = value; }
        }
        public string Correo
        {
            get { return correo; }
            set { correo = value; }
        }
    }

}



6/18/2024

Practica 1 Guía 4

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

 

namespace LoginBasico

{

    public partial class Sistema : Form

    {

        static string password;

 

        // Constructor de la clase

        public Sistema()

        {

            InitializeComponent();

        }

 

        // Constructor estático de la clase

        static Sistema()

        {

            // Inicializar la variable password si es necesario

            password = "defaultPassword";

        }

 

        // Método de ejemplo

        public void MetodoEjemplo()

        {

            // Usar la variable password dentro de un método

            Console.WriteLine(password);

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            string usuario = txtuser.Text;

            string contra = txtpass.Text;

            string url = "C:\\PROYECTO FINAL\\WBS012\\LoginBasico\\" + usuario + ".txt"; // Asegúrate que la carpeta exista

 

            if (File.Exists(url)) // verifica que el archivo exista

            {

                MessageBox.Show("ERROR. ¡Usuario ya existe!"); // usuario registrado

                txtuser.Clear(); // limpiamos todos los textbox

                txtpass.Clear();

            }

            else

            {

                File.WriteAllText(url, contra); // Crea un nuevo archivo y guarda la contraseña

                MessageBox.Show("Usuario Registrado con éxito");

 

                txtuser.Clear();

                txtpass.Clear();

            }

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            string usuario = txtuser.Text; // capturamos los valores de usuario y contraseña

            string contra = txtpass.Text;

            string url = "C:\\PROYECTO FINAL\\WBS012\\LoginBasico\\" + usuario + ".txt";

 

            if (File.Exists(url)) // verifica si existe

            {

                password = File.ReadAllText(url); // lee el texto almacenado dentro del archivo

                if (contra.Equals(password)) // verifica si contraseña es igual al archivo

                {

                    MessageBox.Show("¡Ingreso exitoso, bienvenido!"); // login exitoso

                }

                else

                {

                    MessageBox.Show("¡Contraseña incorrecta!"); // login fallido

                }

            }

            else

            {

                MessageBox.Show("¡Usuario incorrecto!"); // usuario incorrecto

            }

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }

    }

}

11/23/2023

Programación POO

Guía en PDF 






/* CREACION TABLAS DEL SISTEMA */
create database sistemaventas;

use sistemaventas;

create table permisos(
idPermiso int auto_increment primary key,
permiso varchar(50) not null
);

create table estados(
idEstado int auto_increment primary key,
estado boolean not null,
descripcion varchar(10) not null
);

create table proveedores(
idProveedor int auto_increment primary key,
nomProveedor varchar(100) not null,
numContacto double not null,
direccion varchar(200) not null,
email varchar(80) not null
);

create table usuarios(
idUsuario int auto_increment primary key,
nomUsuario varchar(200) not null,
usuario varchar(50) not null,
contrasena varchar(10) not null,
idPermiso int not null,
idEstado int not null
);

create table productos(
idProducto varchar(100) primary key,
nomProducto varchar(200) not null,
stock int,
precio double not null,
descripcion text,
idProveedor int not null
);

create table ventas(
idVenta varchar(20) primary key,
fechaVenta datetime,
idUsuario int,
idProductos mediumtext,
total double
);

/* LLAVES FORANEAS */

alter table productos add constraint fk_producto_proveedor foreign key (idProveedor) references proveedores(idProveedor);
alter table usuarios add constraint fk__usuario_permiso foreign key (idPermiso) references permisos(idPermiso);
alter table usuarios add constraint fk__usuario_estado foreign key (idEstado) references estados(idEstado);
alter table ventas add constraint fk__venta_usuario foreign key (idUsuario) references usuarios(idUsuario);

/* INSERT INICIALES */

insert into permisos values ('1', "Administrador");
insert into permisos values ('2', "Almacenista");
insert into permisos values ('3', "Vendedor");

insert into estados values ('1', '0', "Inactivo");
insert into estados values ('2', '1', "Activo");

insert into usuarios values ('1', "admin", "admin","admin", '1', '1');
insert into usuarios values ('2', "almacen", "almacen", "almacen", '2', '1');
insert into usuarios values ('3', "ventas", "ventas", "ventas", '3', '1');
insert into usuarios values ('4', "Laura Lopez Martinez, "lauralm", "lauralm", '3', '1');
insert into usuarios values ('5', "Luis Alvarez Morales, "luisam", "luisam", '3', '2');

insert into proveedores values ('', "Refrescos Garcia", '432424242', "Calle: Juan Num:1 Col: Centro", "ventas1@refrescosgarcia.com");
insert into proveedores values ('', "Sabritas", '4234456', "Calle: Ana Num:100 Col: Centro", "ventas5@sabritas.com");
insert into proveedores values ('', "Surtidor Farmacia", 'Surtidor Farmacia', "Calle: Obrera Num. 40 Col. Obrera", "surfarmaciaventas@surfarmacia.com");
insert into proveedores values ('', "Proveedor Dulces", '43254365467567', "Calle: Juan Gutierrez Num:10 Col. Sur", "dulceria@dulceria.com");

insert into productos values('75007614', "Refresco de Limon", '50', '10.50', "Refresco 600ml sabor limon",'1');
insert into productos values('7501557140308', "ketorolaco", '1', '80', "ketorolaco 10mg 10 tabletas",'3');

INSERT INTO ventas values (`idVenta`, `fechaVenta`, `idUsuario`, `idProductos`, `total`) VALUES
('2021-11-13 18:51:47', '2021-11-13 18:51:47', 3, '1-75007614', 15),
('2021-11-14 18:51:47', '2021-11-14 18:51:47', 3, '1-75007614', 15),
('2021-11-15 18:51:47', '2021-11-15 18:51:47', 1, '3-75007614', 45),
('2021-11-17 15:32:44', '2021-11-17 15:32:44', 4, '2-7501557140308,1-75007614', 175),
('2021-11-19 10:45:46', '2021-11-19 10:45:46', 1, '4-75007614,5-7501557140308', 460);

/* PROCEDIMIENTOS ALMACENADOS */

/* ESTADOS */
DELIMITER $$
CREATE PROCEDURE ObtenerEstados()
BEGIN
SELECT * 
FROM estados;
END $$


/* PERMISOS */
DELIMITER $$
CREATE PROCEDURE ObtenerPermisos()
BEGIN
SELECT *
FROM permisos;
END $$

/* USUARIOS */
DELIMITER $$
CREATE PROCEDURE ObtenerUsuarios()
BEGIN
SELECT *
FROM usuarios;
END

DELIMITER $$
CREATE PROCEDURE BuscarUsuario(IN usuario varchar(200))
BEGIN
SELECT *
FROM usuarios
WHERE nomUsuario LIKE CONCAT(usuario,'%');
END

DELIMITER $$
CREATE PROCEDURE InsertarUsuario(IN nomUsuario varchar(200), usuario varchar(50), contrasena varchar(10), idPermiso int, idEstado int)
BEGIN
INSERT INTO usuarios (nomUsuario, usuario, contrasena, idPermiso, idEstado)
VALUES (nomUsuario, usuario, contrasena, idPermiso, idEstado);
END

DELIMITER $$
CREATE PROCEDURE ActualizarUsuario(IN id int, nomUsuario varchar(200), usuario varchar(50), contrasena varchar(10), idPermiso int, idEstado int)
BEGIN
UPDATE usuarios 
SET nomUsuario=nomUsuario, usuario=usuario, contrasena=contrasena, idPermiso=idPermiso, idEstado=idEstado
WHERE idUsuario=id;
END

/* PROVEEDORES */
DELIMITER $$
CREATE PROCEDURE ObtenerProveedores()
BEGIN
SELECT *
FROM proveedores;
END

DELIMITER $$
CREATE PROCEDURE BuscarProveedor(IN proveedor varchar(100))
BEGIN
SELECT *
FROM proveedores
WHERE nomProveedor LIKE CONCAT(proveedor,'%');
END

DELIMITER $$
CREATE PROCEDURE InsertarProveedor(IN nomProveedor varchar(100), numContacto double, direccion varchar(200), email varchar(80))
BEGIN
INSERT INTO proveedores (nomProveedor, numContacto, direccion, email)
VALUES (nomProveedor, numContacto, direccion, email);
END

DELIMITER $$
CREATE PROCEDURE ActualizarProveedor(IN id int, nomProveedor varchar(100), numContacto double, direccion varchar(200), email varchar(80))
BEGIN
UPDATE proveedores 
SET nomProveedor=nomProveedor, numContacto=numContacto, direccion=direccion, email=email
WHERE idProveedor=id;
END

/* PRODUCTOS */
DELIMITER $$
CREATE PROCEDURE ObtenerProductos()
BEGIN
SELECT prod.*, prov.nomProveedor
FROM productos prod
INNER JOIN proveedores prov ON prod.idProveedor=prov.idProveedor;
END

DELIMITER $$
CREATE PROCEDURE InsertarProducto(IN idProducto int, nomProducto varchar(200), stock int, precio double, descripcion text, idProveedor int)
BEGIN
INSERT INTO productos (idProducto, nomProducto, stock, precio, descripcion, idProveedor)
VALUES (idProducto, nomProducto, stock, precio, descripcion, idProveedor);
END

DELIMITER $$
CREATE PROCEDURE ActualizarProducto(IN id int, nomProducto varchar(200), stock int, precio double, descripcion text, idProveedor int)
BEGIN
UPDATE productos 
SET nomProducto=nomProducto, stock=stock, precio=precio, descripcion=descripcion, idProveedor=idProveedor
WHERE idProducto=id;
END

DELIMITER $$
CREATE PROCEDURE BuscarProducto(IN producto varchar(200))
BEGIN
SELECT prod.*, prov.nomProveedor
FROM productos prod
INNER JOIN proveedores prov ON prod.idProveedor=prov.idProveedor
WHERE idProducto LIKE CONCAT(producto,'%') OR nomProducto LIKE CONCAT(producto, '%');
END

DELIMITER $$
CREATE PROCEDURE BuscarProductoVenta(IN codigo varchar(200))
BEGIN
SELECT idProducto, nomProducto, stock, precio, descripcion
FROM productos
WHERE idProducto LIKE CONCAT(codigo,'%');
END

DELIMITER $$
CREATE PROCEDURE ObtenerNombreProducto(IN codigo varchar(200))
BEGIN
SELECT idProducto, nomProducto, descripcion
FROM productos
WHERE idProducto LIKE CONCAT(codigo,'%');
END

/* VENTAS */
DELIMITER $$
CREATE PROCEDURE InsertarVenta(IN idVenta varchar(20), fechaVenta datetime, idUsuario int, idProductos mediumtext, total double)
BEGIN
INSERT INTO ventas(idVenta, fechaVenta, idUsuario, idProductos, total)
VALUES (idVenta, fechaVenta, idUsuario, idProductos, total);
END

DELIMITER $$
CREATE PROCEDURE ActualizarStock(IN codigo varchar(100), cantidad int)
BEGIN
UPDATE productos
SET stock=stock-cantidad
WHERE idProducto=codigo;
END

/* REPORTES */
DELIMITER $$
CREATE PROCEDURE ObtenerVentas(IN fechaInicial varchar(20), fechaFinal varchar(20))
BEGIN
SELECT ventas.*, usuarios.nomUsuario 
FROM ventas 
INNER JOIN usuarios ON ventas.idUsuario=usuarios.idUsuario
WHERE idVenta BETWEEN (fechaInicial) AND (fechaFinal);
END



/* PROCEDIMIENTO ALMACENADO LOGIN */
DELIMITER $$
CREATE PROCEDURE LoginUsuario(IN user varchar(50), pass varchar(10))
BEGIN
SELECT *
FROM usuarios
WHERE usuarios.usuario=user AND usuarios.contrasena=pass;
END










Los nombre de los Complementos u objetos utilizados











https://www.youtube.com/watch?v=m_ZB6CMYL_g&list=PLGbc7KJL6WyJQsow8WHFL3E64DFBHeGyd

Glosario de Windows

Computadora:  Es un aparato electrónico, capaz de procesar cualquier tipo de información, de forma rápida y eficiente. La cual es presenta...