Mostrando entradas con la etiqueta POO. Mostrar todas las entradas
Mostrando entradas con la etiqueta POO. Mostrar todas las entradas

jueves, 16 de febrero de 2017

Archivos de práctica del CRUD de personas.

Archivos de práctica del CRUD de personas.

https://drive.google.com/file/d/0B-hQiDaqUNLwLXJqVjRiSVFTNkk/view?usp=sharing




miércoles, 16 de noviembre de 2016

Uso de Excepciones en C#

/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 08/11/2016
 * Time: 02:32 p. m.
 */
 
using System;

namespace Examen2
{
   
    public class CalculosElectronicos:Interface2
    {
        public double V, R, I;
       
        public CalculosElectronicos()
        {
        }
       
        double Interface1.CalculoVoltaje(double r, double i){
            this.R = r;
            this.I = i;
            this.V = this.R*this.I;
           
            return this.V;
        }
       
         double Interface2.CalculoResistencia(double v, double i){
            this.V = v;
            this.I = i;
           
            try{
           
                this.R = this.V/this.I;
               
           
            }catch(DivideByZeroException){
               
                return 0.0;
            }
           
            return this.R;
        }
    }
}


/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 08/11/2016
 * Time: 02:27 p. m.
 */
using System;
//using System.Exception;

namespace Examen2
{
    class Program
    {
        class Comprueba{
           
            public int Convertir(String valor){
                int x;
                try{
           
                x = Convert.ToInt16(valor);
           
            }catch(FormatException){
               
                Console.WriteLine("Valores Incorrectos! Pulsa una tecla para continuar.");
                Console.ReadKey(true);
                return 0;
           
            }
                return x;
            }
        }
       
        public static void Main(string[] args)
        {
           
           
            Interface2 cal = new CalculosElectronicos();
            Comprueba comprueba = new Comprueba();
            int op = 0;
            double v,i,r;
            bool menu = true;
           
           
           
           
            while(menu){
           
                Console.WriteLine("1.- Calcular Voltage | 2.- Calcular Resistencia?");
           
            try{
           
                op = Convert.ToInt16(Console.ReadLine());
           
            }catch(FormatException){
               
                Console.WriteLine("Valores Incorrectos! Pulsa una tecla para continuar.");
                Console.ReadKey(true);
           
            }
           
            //El error fué lógico debido a que la instrucción de conversión
            //se estaba ejecutando antes del bloque try catch
           
           
            if(op == 1){
                Console.WriteLine("R = 3 ohms, I = 4 amps y V = {0} volts", cal.CalculoVoltaje(3,4));
                menu = false;
            } else if(op == 2){
               
                Console.WriteLine("Voltaje V?");
               
                v = comprueba.Convertir(Console.ReadLine());
               
                Console.WriteLine("Corriente I?");
               
                i = comprueba.Convertir(Console.ReadLine());
               
                Console.WriteLine("V = {0} volts, I = {1} amps y R = {2} ohms",v,i, cal.CalculoResistencia(v,i));
               
                menu = false;
            } else{
                Console.WriteLine("Error!");
            }
           
            }
            //Sabemos que un usuario puede, de manera
            //erronea introducir un caracter indebido.
           
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
   
   
}

miércoles, 9 de noviembre de 2016

Otro ejemplo de Interfaces en C#.

/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 08/11/2016
 * Time: 02:29 p. m.
 */
using System;

namespace Examen2
{
   
    public interface Interface1
    {
        double CalculoVoltaje(double R, double I);
       
    }
}


/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 08/11/2016
 * Time: 02:30 p. m.
 */
using System;

namespace Examen2
{
   
    public interface Interface2:Interface1
    {
        double CalculoResistencia(double V, double I);
       
    }
}

/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 08/11/2016
 * Time: 02:32 p. m.
 */
 
using System;

namespace Examen2
{
   
    public class CalculosElectronicos:Interface2
    {
        public double V, R, I;
       
        public CalculosElectronicos()
        {
        }
       
        double Interface1.CalculoVoltaje(double r, double i){
            this.R = r;
            this.I = i;
            this.V = this.R*this.I;
           
            return this.V;
        }
       
         double Interface2.CalculoResistencia(double v, double i){
            this.V = v;
            this.I = i;
           
            this.R = this.V/this.I;
           
            return this.R;
        }
    }
}

/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 08/11/2016
 * Time: 02:27 p. m.
 */
using System;

namespace Examen2
{
    class Program
    {
        public static void Main(string[] args)
        {
            Interface2 cal = new CalculosElectronicos();
           
           
            Console.WriteLine("R = 3 ohms, I = 4 amps y V = {0} volts", cal.CalculoVoltaje(3,4));
            Console.WriteLine("V = 3 volts, I = 4 amps y R = {0} ohms", cal.CalculoResistencia(3,4));
           
           
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

jueves, 13 de octubre de 2016

Calculadora Sueldos y Salarios

/*
 * Created by SharpDevelop.
 * User: manuel
 * Date: 11/10/2016
 * Time: 02:45 p. m.
 *
 *
 */
using System;

namespace CalculosProyect
{
    
    public class CalculadoraSueldo:Calculadora
    {
        
        //Atributos
        protected double iva;
        protected double sueldo;
        protected double isr;
            
        public CalculadoraSueldo()
        {
            this.iva = 0.16;
            this.isr = 0.34;
        }
        
        public CalculadoraSueldo(double s){
            this.iva = 0.16;
            this.isr = 0.34;
            this.sueldo = s;
        }
        
        public double CalculaIva(){
            return this.sueldo*this.iva;
        }
        
        public double CalculaIsr(){
            return this.sueldo*this.isr;
        }
        
        public double SumaIsr(){
            return this.sueldo + this.CalculaIsr();
        }
    }
}

using System;

namespace CalculosProyect
{
    /// <summary>
    /// Description of Calculadora.
    /// </summary>
    public class Calculadora
    {
        //Atributos de la clase
        protected double num1;
        protected double num2;
        protected double pi = 3.1416;
    
        //Métodos constructores
        public Calculadora()
        {
            
        }
        
        public Calculadora(double n1, double n2){
            this.num1 = n1;
            this.num2 = n2;
        }
        
        //Propiedades --- encapsulamiento en POO
        
        public double Num1{
        
            get{
                return this.num1;
            }
            
            set{
            
                this.num1 = value;
            }
        }
        
        public double Num2{
        
            get{
                return this.num2 - 0.5;
            }
            
            set{
                if(value < 20){
                    this.num2 = value * 2;
                }else{
                this.num2 = value;
                }
            }
        }
        
        public double PI{
            get{
                return this.pi;
            }
        }
        
        
        public double Suma(){
            return num1 + num2;
        }
        
        public double Resta(){
            return num1 - num2;
        }
        public double Multiplicacion(){
            return num1 * num2;
        }
        public double Division(){
            return num1 / num2;
        }
    }
}


using System;

namespace CalculosProyect
{
    class Program
    {
        
        
        public static void Main(string[] args)
        {
            Calculadora calculadora = new Calculadora();
            
            calculadora.Num1 = 10.2;
            calculadora.Num2 = 11.2; //value es el valor que captura
                                        //cuando se utiliza el operador =
                                        //o Operador de asignación
                                        
            //calculadora.PI = 23.5; Genera error
            
            
            
            Console.WriteLine("Num1: {0}-----Num2: {1} --- valor de PI = {2}",calculadora.Num1,calculadora.Num2,calculadora.PI);
            
            CalculadoraSueldo calSueldo = new CalculadoraSueldo(3000);
            
            Console.WriteLine("Sueldo mas ISR {0}",calSueldo.Suma());
            
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

miércoles, 28 de septiembre de 2016

Ejemplo de Clases en Java.

package calculosmatematicos; 

/** * * @author M.A. Manuel Juan Guereca Tijerina */ 
public class Calculadora { 
//Atributos de la clase 

private double num1; 
private double num2; 
private double suma; //Atributo calculado 

public Calculadora() { this.suma = 0; } 

public Calculadora(double num1, double num2) { 

this.num1 = num1; 
this.num2 = num2; 
this.suma = 0; 
} 

//Getter and Setter 

public double getNum1() { return num1; } 

public void setNum1(double num1) { this.num1 = num1; } 

public double getNum2() { return num2; } 

public void setNum2(double num2) { this.num2 = num2; } 

public double getSuma() { return suma; } 

public double Suma(){ 

this.suma = this.num1 + this.num2; 
return this.suma; 
} 

public double SumaAcumulada(double x){ 

this.suma += x; //suma = suma + x 

return this.suma; 

} 

public double Resta(){ 

return this.num1 - this.num2; 

} 

public double Division(){ 

return this.num1/this.num2; 

} 

public double Multiplicacion(){ 

return this.num1 * this.num2; 

} 

} 


package calculosmatematicos;

/**
 *
 * @author M.A. Manuel Juan Guereca Tijerina
 */
public class CalculadoraProbabilidad extends Calculadora {
   
    private double media;
    private double mediana;
    private double moda;
    private double frecModa;
   
    private double[] datos;
    final int N; //N elementos del arreglo

    public CalculadoraProbabilidad(double[] datos) {
        this.datos = datos;
        N = this.datos.length;
    }

    public CalculadoraProbabilidad() {
        N = 0;
    }

    public double[] getDatos() {
        return datos;
    }

    public void setDatos(double[] datos) {
        this.datos = datos;
    }

    public double getFrecModa() {
        return frecModa;
    }
   
   
   
    public double CalculoMedia(){
       
        double sumatoria = 0.0;
       
        for (int i = 0; i < N; i++){
            sumatoria = super.SumaAcumulada(this.datos[i]);
        }
       
        return sumatoria/N; //regresa el calculo de la media
    }
   
    public double CalculoMediana(){
        //Se ordenan todos los numeros de menor a mayor.
        double[] datosOrdenados = this.Ordenacion();
        //Si hay una cantidad de datos impar se toma el valor central de ellos.
       
        if( this.N % 2 != 0){
           
            this.mediana = datosOrdenados[this.N/2];
           
           
        }else{
            this.mediana = ((datosOrdenados[this.N/2] + datosOrdenados[(this.N/2)+1]))/2;
        }
       
        return mediana;
    }



    public double CalculoModa(){
       
        //Se ordenan todos los numeros de menor a mayor.
        double[] datosOrdenados = this.Ordenacion();
        double frecModa = 0.0, moda = 0.0;
        int tempFrecuencia;
       
        for(int i = 0; i < datosOrdenados.length; i++){
          tempFrecuencia = 1;
           
            for(int j = i + 1; j < datosOrdenados.length; j++){
                if(datosOrdenados[i] == datosOrdenados[j])
                    tempFrecuencia ++;
            }
           
            if(tempFrecuencia > frecModa){
                frecModa = tempFrecuencia;
                moda = datosOrdenados[i];
            }
        }
       
        this.moda = moda;
        this.frecModa = frecModa;
       
        return this.moda;
    }
   
    public double[] Ordenacion(){
        //Algoritmo de la burbuja
               
        double TEMP;
        int i, j;
            for(i = 0; i < N -1; i++){
                for(j = 0; j < N-i-1; j++){

                        if(this.datos[j] > this.datos[j+1]){
                            TEMP = this.datos[j];
                            this.datos[j] = this.datos[j+1];
                            this.datos[j+1] = TEMP;
                        }
                }
            }
        return this.datos;
    }
   
}



package calculosmatematicos;

/**
 *
 * @author M.A. Manuel Juan Guereca Tijerina
 */
public class CalculosMatematicos {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
       
        Calculadora C1 = new Calculadora();
       
        C1.SumaAcumulada(3.2);
        C1.SumaAcumulada(4.2);
        C1.SumaAcumulada(6.2);
        C1.SumaAcumulada(7.2);
        C1.SumaAcumulada(9.2);
       
        System.out.println("Suma Acumulada: " + Double.toString(C1.getSuma()));
       
        C1.setNum1(2.3);
        C1.setNum2(3.4);
       
        System.out.println("Suma de dos numeros " + Double.toString(C1.Suma()));
        System.out.println("Resta de dos numeros " + Double.toString(C1.Resta()));
        System.out.println("* de dos numeros " + Double.toString(C1.Multiplicacion()));
        System.out.println("/ de dos numeros " + Double.toString(C1.Division()));
       
        System.out.println("Valor actual del Atributo Suma: " + Double.toString(C1.getSuma()));
       
        System.out.println("\n|--------------Calculadora Probabilidad------------------|\n");
//Set de datos

        double[] datos = {5.4,3.9,3.9,43.2,5.4,10.0,10.0,3.14,5.4,9.0,5.4};
       
        //CalculadoraProbabilidad CP1 = new CalculadoraProbabilidad(datos);
        CalculadoraProbabilidad CP1 = new CalculadoraProbabilidad(datos);
       
        //CP1.setDatos(datos);
       
        System.out.println("La media es: " + CP1.CalculoMedia() + "\n");
       
        datos = CP1.Ordenacion();
       
        for(int i = 0; i < datos.length; i++)
            System.out.println(datos[i]);
       
        System.out.println("\nLa mediana es: " + CP1.CalculoMediana() + "\n");
       
        System.out.println("\nLa moda es: "+CP1.CalculoModa() + " y su frecuencia es: " + CP1.getFrecModa() );
    }
   
}

 

viernes, 29 de abril de 2016

De P.O.O., uso de la cámara e Importación de archivos OBJ en Processing.



Código:

La clase Piso

class Piso{

    int Sx, Sy, Sz; //parametros de escala
    int CF;
 
    void Poner(int sx, int sy, int sz, int c, int a){
      Sx = sx; Sy = sy; Sz = sz;
      CF = c;
   
      noStroke();
      noFill();
      pushMatrix();
      translate(width/2,height/2,0);
      scale(Sx,Sy,Sz);
      //rotateX(radians(a));
      fill(CF);
      box(1); //vertex o primitivas un cuadrado, etc.
      popMatrix();
    }
}

Sketch principal

Piso p1 = new Piso();
int angulo = 90;

void setup(){

  size(800,600,P3D);
  smooth();

  lights();
}

void draw(){
  background(500);

  //rotateY(radians(((mouseX/(float)width)*200)-90));
  //rotateX(radians(((mouseY/(float)width)*200)-90));
  camera(800, 0, 10, width/2, height/2, 0, 0, 1, 0);


  p1.Poner(400,1,400,255,angulo);

 
}





Código:

void setup(){

    size(600,600,P3D);
 
    //camera(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ);
    camera(700,700,700,0,0,0,1,0,0);

}

void draw(){

  background(0);

  stroke(255);
  noFill();
  box(600);
}






Código:

PShape s; //declaramos un objeto tipo PShape
int x = -30;

void setup(){
 
  size(300,300,P3D);
 
  //inicializamos el objeto con el nombre del archivo obj
  s = loadShape("table lamp.obj");
  frameRate(20); //30

}

void draw(){
 
  background(0);
  //translate(width/2,height/2);
  lights();
  translate(x,height/2);
  rotateX(radians(mouseY));
  shape(s, 0,0);
 
  x++;
 
  if(x == 350)
    x = -30;

}

miércoles, 2 de julio de 2014

CRUD básico para hacer la tarea con Mysql y C#

1.- Para este minitutorial se requiere haber instalado el driver de MySQL para windows junto con la base de datos MySQL, ya sea que la instales independientemente o a través del programa WAMPSERVER.

2.- Crear una base de datos, dentro de la cual debe de tener una tabla que se llame EMPLEADOS. Los nombres de las tablas en MySQL solo se permiten en minúsculas, por lo cual no se esfuercen en tratar de forzar el administrador de base de datos preferido (MySQL Workbench, phpMyAdmin, etc.).

Tabla empleados. Vista desde MySQL Workbench. Click para expandir.
3.- Crear una forma en Visual Studio, donde hay que hacer la referencia hacia las librerías de MySQL.

Forma en Visual Studio 2012. El círculo rojo muestra la referencia para poder utilizar el ensambaje de MySQL.

4.- Manos a la obra!... mejor dicho... Manos al código. El listado completo aquí y comentado!

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 MySql.Data; //1.- Agregar la referencia de las librerías de MySql
using MySql.Data.MySqlClient;


namespace ejemploMysql
{
    public partial class Form2 : Form
    {
        //Atributos que vamos a utilizar dentro de nuestra forma.
        private string servidor = "localhost";
        private string baseDatos = "practicaunipoli";
        private string usuario = "root";
        private string password = "";
        private string idEmpleado;
        private string nomEmpleado;
        private string emEmpleado;
        private bool bandera = false; //Se utiliza para jugarle rudo al datagridview!

        public Form2()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            this.TraerDatos(); //Método que se emplea para generar la consulta de los datos.
            //Modificamos los encabezados de nuestro datagridview llamado dgvEmpleados.
            dgvEmpleados.Columns[0].HeaderText = "ID";
            dgvEmpleados.Columns[1].HeaderText = "NOMBRE";
            dgvEmpleados.Columns[2].HeaderText = "E-MAIL";

            //Agregamos dos columnas tipo botón, para realizar acciones de editar y borrar!

            DataGridViewButtonColumn colEditar = new DataGridViewButtonColumn();
            colEditar.Name = "editar";
            colEditar.HeaderText = "EDITAR";
            dgvEmpleados.Columns.Add(colEditar);

            DataGridViewButtonColumn colBorrar = new DataGridViewButtonColumn();
            colBorrar.Name = "borrar";
            colBorrar.HeaderText = "BORRAR";
            dgvEmpleados.Columns.Add(colBorrar);

        }

        private void TraerDatos() {
            
            dgvEmpleados.Refresh();
            //Debido al refresh tuve que utilizar una propiedad "bandera" por que me
            //desplazaba de lugar las columnas. Esto lo pueden otimizar y mejorar.
            //Alguna otra opción??? dejeme un comentario en el blog!!!

            //Hacemos la conexión a la base de datos con la clase MySqlConnection
            //y la cadena de conexión

            MySqlConnection _con = new MySqlConnection();
            _con.ConnectionString = "Data Source=" + servidor + "; Database=" + baseDatos + "; Uid=" + usuario + "; Pwd=" + password;
            _con.Open();

            //Creamos un objeto de tipo Datatable para después
            //llenarlos de datos a través del objeto MySqlDataAdapter

            DataTable dtDatos = new DataTable();

            MySqlDataAdapter mdaDatos = new MySqlDataAdapter("Select * from empleados", _con);
            _con.Close();
            
            mdaDatos.Fill(dtDatos);
            //Con los datos listos en nuestra tabla llenamos el datagridview

            dgvEmpleados.DataSource = dtDatos;
            
            
        }

        

        private void button1_Click(object sender, EventArgs e)
        {
            /*El botón de la plicación es dinámico. Al inicio funcionará
            para que la aplicación guarde un registro nuevo.
            Después puede funcionar para editar un registo previamente cargado en los
            textboxes de la forma.
            */

            if (this.button1.Text == "EDITAR") {

                MySqlConnection _con = new MySqlConnection();
                _con.ConnectionString = "Data Source=" + servidor + "; Database=" + baseDatos + "; Uid=" + usuario + "; Pwd=" + password;
              
                //string sql para dar un update a la tabla tomando los valores
                //previamente cargados en otra función.

                string sql2 = "Update practicaunipoli.empleados set nombre = '"+this.txtNombre.Text+"', email ='"+txtEmail.Text+"' where idempleados = "+this.idEmpleado+";";

                MySqlCommand myCom2 = new MySqlCommand(sql2, _con);
                MySqlDataReader MyReader2;
                _con.Open();
                MyReader2 = myCom2.ExecuteReader();
                _con.Close();

                //Vaciamos los textbox y restablecemos el texto del botón
                this.txtNombre.Text = "";
                this.txtEmail.Text = "";
                this.button1.Text = "NUEVO";
                //mandamos llamar de nuevo el método que refresca y llena de nuevo
                //el dataridview
                this.TraerDatos();
                this.idEmpleado = "";
                
            }
            else
            {
                //Creamos la cadena sql a ejecutar la inserción
                string sql = "Insert into practicaunipoli.empleados(nombre,email) values('" + this.txtNombre.Text + "','" + this.txtEmail.Text + "');";

                //Creamos la conección a la base de datos
                MySqlConnection _con = new MySqlConnection();
                _con.ConnectionString = "Data Source=" + servidor + "; Database=" + baseDatos + "; Uid=" + usuario + "; Pwd=" + password;
                _con.Open();

                MySqlCommand MyCon = new MySqlCommand(sql, _con);
                MySqlDataReader MyReader;
                MyReader = MyCon.ExecuteReader();
                MessageBox.Show("Empleado Agregado");
                _con.Close();
                this.txtNombre.Text = "";
                this.txtEmail.Text = "";

                this.TraerDatos();
            }

        }

        private void dgvEmpleados_CellClick_1(object sender, DataGridViewCellEventArgs e)
        {
            //Con el método CellClick controlamos evento del usuario
            // al tratar de borrar o editar un registro de la tabla.

            if (dgvEmpleados.Columns[e.ColumnIndex].Name == "borrar")
            {
                //Usamos un atributo que se llama bandera ya que al refrescar el datagridview
                // movía de posición las columnas! y tronaba el programa!!!!

                if (bandera) {
                    this.idEmpleado = dgvEmpleados.Rows[e.RowIndex].Cells[2].Value.ToString();
                }
                else
                {
                    this.idEmpleado = dgvEmpleados.Rows[e.RowIndex].Cells[0].Value.ToString();
                    bandera = true;
                }

                MySqlConnection _con = new MySqlConnection();
                _con.ConnectionString = "Data Source=" + servidor + "; Database=" + baseDatos + "; Uid=" + usuario + "; Pwd=" + password;
                
                //sql de borrado!!!
                string sql = "delete from practicaunipoli.empleados where idempleados = " + idEmpleado + ";";
                MySqlCommand myCommand = new MySqlCommand(sql, _con);
                MySqlDataReader myReader;
                _con.Open();
                myReader = myCommand.ExecuteReader();
                MessageBox.Show("Dato del empleado Eliminado..." + idEmpleado);
                _con.Close();
                this.TraerDatos();
                this.idEmpleado = "";
            }

            if (dgvEmpleados.Columns[e.ColumnIndex].Name == "editar")
            {


                if (bandera)
                {
                    this.idEmpleado = dgvEmpleados.Rows[e.RowIndex].Cells[2].Value.ToString();
                    this.nomEmpleado = dgvEmpleados.Rows[e.RowIndex].Cells[3].Value.ToString();
                    this.emEmpleado = dgvEmpleados.Rows[e.RowIndex].Cells[4].Value.ToString();
                }
                else
                {
                    this.idEmpleado = dgvEmpleados.Rows[e.RowIndex].Cells[0].Value.ToString();
                    this.nomEmpleado = dgvEmpleados.Rows[e.RowIndex].Cells[1].Value.ToString();
                    this.emEmpleado = dgvEmpleados.Rows[e.RowIndex].Cells[2].Value.ToString();
                    bandera = true;
                }

                
                this.txtNombre.Text = nomEmpleado;
                this.txtEmail.Text = emEmpleado;
                this.button1.Text = "EDITAR";
            }
        }
    }
}

Bueno, tenía mucho que no escribía algo como esto en el blog. Espero que lo aprovechen, a demás de sus comentarios al respecto. Esto no les puede resolver un proyecto completo, ni tampoco es una práctica hecha a la medida. El trabajo de modificación o adaptación a proyectos y/o tareas académicas es de ustedes.

@rezzaca #RT